- 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
-
Bill Wendling authored
(surprise!) a list of registers. Register lists are consecutive, so we only need to record the start register plus the number of registers. llvm-svn: 118351
-
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
floating point stack instructions instead of looking for b/w/l/q. This fixes issues where we'd accidentally match fistp to fistpl, when it is in fact an ambiguous instruction. This changes the behavior of llvm-mc to reject fstp, which was the correct fix for rdar://8456389: t.s:1:1: error: ambiguous instructions require an explicit suffix (could be 'fstps', 'fstpl', or 'fstpt') fstp (%rax) it also causes us to correctly reject fistp and fist, which addresses PR8528: t.s:2:1: error: ambiguous instructions require an explicit suffix (could be 'fistps', or 'fistpl') fistp (%rax) ^ t.s:3:1: error: ambiguous instructions require an explicit suffix (could be 'fists', or 'fistl') fist (%rax) ^ Thanks to Ismail Donmez for tracking down the issue here! llvm-svn: 118346
-
Benjamin Kramer authored
llvm-svn: 118342
-
Bill Wendling authored
llvm-svn: 118341
-
Bill Wendling authored
llvm-svn: 118340
-
Bill Wendling authored
llvm-svn: 118339
-
Bill Wendling authored
while the latter doesn't. llvm-svn: 118338
-
Benjamin Kramer authored
llvm-svn: 118337
-
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
-
Eric Christopher authored
Fixes 8559. llvm-svn: 118333
-
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 05, 2010
-
-
Jim Grosbach authored
llvm-svn: 118310
-
Jim Grosbach authored
llvm-svn: 118309
-
Jim Grosbach authored
llvm-svn: 118307
-
Jim Grosbach authored
llvm-svn: 118304
-
Jim Grosbach authored
llvm-svn: 118301
-
Owen Anderson authored
llvm-svn: 118300
-
Jim Grosbach authored
llvm-svn: 118295
-
Benjamin Kramer authored
llvm-svn: 118294
-
Owen Anderson authored
llvm-svn: 118291
-
Jim Grosbach authored
(relocations, e.g.), but this will allow simple things to flow through. llvm-svn: 118289
-
Jim Grosbach authored
llvm-svn: 118288
-
Jim Grosbach authored
llvm-svn: 118287
-
Jim Grosbach authored
llvm-svn: 118280
-
Duncan Sands authored
to perform the copy, which may be of lots of memory [*]. It would be good if the fall-back code generated something reasonable, i.e. did the copy in a loop, rather than vast numbers of loads and stores. Add a note about this. Currently target specific code seems to always kick in so this is more of a theoretical issue rather than a practical one now that X86 has been fixed. [*] It's amazing how often people pass mega-byte long arrays by copy... llvm-svn: 118275
-
Daniel Dunbar authored
llvm-svn: 118272
-
- Nov 04, 2010
-
-
Duncan Sands authored
sequence of loads and stores was being generated to perform the copy on the x86 targets if the parameter was less than 4 byte aligned, causing llc to use up vast amounts of memory and time. Use a "rep movs" form instead. PR7170. llvm-svn: 118260
-
Benjamin Kramer authored
llvm-svn: 118257
-
Rafael Espindola authored
llvm-svn: 118254
-