- Nov 06, 2010
-
-
Chris Lattner authored
shift-by-1 instructions, where the asmstring doesn't contain the implicit 1. It turns out that a bunch of these rotate instructions were completely broken because they used 1 instead of $1. This fixes assembly mismatches on "rclb $1, %bl" and friends, where we used to generate the 3 byte form, we now generate the proper 2-byte form. llvm-svn: 118355
-
Chris Lattner authored
listed in its asm string, for consistency with the other similar instructions. llvm-svn: 118354
-
Chris Lattner authored
llvm-svn: 118353
-
Chris Lattner authored
fixed physical registers. Start moving fp comparison aliases to the .td file (which default to using %st1 if nothing is specified). llvm-svn: 118352
-
Chris Lattner authored
add fixed immediate values. Move the aad and aam aliases to use this, and document it. llvm-svn: 118350
-
Chris Lattner authored
llvm-svn: 118349
-
Chris Lattner authored
llvm-svn: 118348
-
Chris Lattner authored
llvm-svn: 118347
-
Chris Lattner authored
result instruction operand numbering matched the result pattern. Fixing this allows us to move the xchg/test aliases to the .td file. llvm-svn: 118334
-
Chris Lattner authored
llvm-svn: 118332
-
Chris Lattner authored
tidy up the movsx and movzx aliases. llvm-svn: 118331
-
Chris Lattner authored
from c++ hacks to proper .td InstAlias definitions. Change them! llvm-svn: 118330
-
Chris Lattner authored
operand list instead of the operand list redundantly declared on the alias or instruction. With this change, we finally remove the ins/outs list on the alias. Before: def : InstAlias<(outs GR16:$dst), (ins GR8 :$src), "movsx $src, $dst", (MOVSX16rr8W GR16:$dst, GR8:$src)>; After: def : InstAlias<"movsx $src, $dst", (MOVSX16rr8W GR16:$dst, GR8:$src)>; This also makes the alias mechanism more general and powerful, which will be exploited in subsequent patches. llvm-svn: 118329
-
- Nov 02, 2010
-
-
Chris Lattner authored
llvm-svn: 117967
-
- Nov 01, 2010
-
-
Chris Lattner authored
from X86AsmParser.cpp llvm-svn: 117952
-
Chris Lattner authored
must be 8 bits. Support this memory form. llvm-svn: 117902
-
Chris Lattner authored
aliases installed and working. They now work when the matched pattern and the result instruction have exactly the same operand list. This is now enough for us to define proper aliases for movzx and movsx, implementing rdar://8017633 and PR7459. Note that we do not accept instructions like: movzx 0(%rsp), %rsi GAS accepts this instruction, but it doesn't make any sense because we don't know the size of the memory operand. It could be 8/16/32 bits. llvm-svn: 117901
-
- Oct 31, 2010
-
-
Chris Lattner authored
how the push/pop mnemonic aliases are wrong. llvm-svn: 117857
-
- Oct 30, 2010
-
-
Chris Lattner authored
"In32BitMode" and "In64BitMode" into tblgen, allow any predicate that inherits from AssemblerPredicate. llvm-svn: 117831
-
Chris Lattner authored
directives, allowing things like this: def : MnemonicAlias<"pop", "popl">, Requires<[In32BitMode]>; def : MnemonicAlias<"pop", "popq">, Requires<[In64BitMode]>; Move the rest of the X86 MnemonicAliases over to the .td file. llvm-svn: 117830
-
Chris Lattner authored
llvm-svn: 117823
-
Chris Lattner authored
llvm-svn: 117822
-
Chris Lattner authored
llvm-svn: 117821
-
Chris Lattner authored
llvm-svn: 117819
-
Chris Lattner authored
llvm-svn: 117818
-
Chris Lattner authored
llvm-svn: 117817
-
Chris Lattner authored
just remaps one mnemonic to another. Convert a few of the X86 aliases from .cpp to .td code. llvm-svn: 117815
-
- Oct 21, 2010
-
-
Michael J. Spencer authored
llvm-svn: 116984
-
Michael J. Spencer authored
llvm-svn: 116972
-
- Oct 18, 2010
-
-
Kevin Enderby authored
be more complete. These are only expected to be used by llvm-mc with assembly source so there is no pattern, [], in the .td files. Most are being added to X86InstrInfo.td as Chris suggested and only comments about register uses are added. Suggestions welcome on the .td changes as I'm not sure on every detail of the x86 records. More missing instructions will be coming. llvm-svn: 116716
-
- Oct 13, 2010
-
-
Rafael Espindola authored
8 bit constants can be used. llvm-svn: 116403
-
- Oct 12, 2010
-
-
Dan Gohman authored
llvm-svn: 116319
-
Jakob Stoklund Olesen authored
The reg-reg copies were no longer being generated since copyPhysReg copies physical registers only. The loads and stores are not necessary - The TC constraint is imposed by the TAILJMP and TCRETURN instructions, there should be no need for constrained loads and stores. llvm-svn: 116314
-
- Oct 08, 2010
-
-
Chris Lattner authored
"Reimplement (part of) the or -> add optimization. Matching 'or' into 'add'" With a critical fix: the add pseudos clobber EFLAGS. llvm-svn: 116039
-
Daniel Dunbar authored
'add'", which seems to have broken just about everything. llvm-svn: 116033
-
Chris Lattner authored
is general goodness because it allows ORs to be converted to LEA to avoid inserting copies. However, this is bad because it makes the generated .s file less obvious and gives valgrind heartburn (tons of false positives in bitfield code). While the general fix should be in valgrind, we can at least try to avoid emitting ADD instructions that *don't* get promoted to LEA. This is more work because it requires introducing pseudo instructions to represents "add that knows the bits are disjoint", but hey, people really love valgrind. This fixes this testcase: https://bugs.kde.org/show_bug.cgi?id=242137#c20 the add r/i cases are coming next. llvm-svn: 116007
-
- Oct 06, 2010
-
-
Chris Lattner authored
not getting marked as mayStore. This fixes llvm-gcc bootstrap. llvm-svn: 115693
-
- Oct 05, 2010
-
-
Chris Lattner authored
gross hack (having the asmmatcher handle the alias). llvm-svn: 115685
-
Chris Lattner authored
the right places. X86Instr64bit.td now dies, long live x86-64! llvm-svn: 115669
-
Chris Lattner authored
llvm-svn: 115627
-