| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 134721
|
|
|
|
|
|
|
|
|
|
| |
- Each target asm parser now creates its own MCSubtatgetInfo (if needed).
- Changed AssemblerPredicate to take subtarget features which tablegen uses
to generate asm matcher subtarget feature queries. e.g.
"ModeThumb,FeatureThumb2" is translated to
"(Bits & ModeThumb) != 0 && (Bits & FeatureThumb2) != 0".
llvm-svn: 134678
|
|
|
|
|
|
| |
use proper aliases for the pclmullqlqdq and friends. PR10269.
llvm-svn: 134424
|
|
|
|
|
|
|
| |
InstAlias doesn't allow matching immediate operands, so we have to write
C++ code to do this.
llvm-svn: 129223
|
|
|
|
|
|
| |
For now, only the default segments are supported.
llvm-svn: 127875
|
|
|
|
| |
llvm-svn: 126244
|
|
|
|
|
|
| |
custom conversion functions).
llvm-svn: 124872
|
|
|
|
|
|
| |
Create override of this method in X86/ARM/MBlaze.
llvm-svn: 124378
|
|
|
|
| |
llvm-svn: 121320
|
|
|
|
|
|
|
|
|
|
| |
instructions. I choose to handle this with an asmparser hack,
though it could be handled by changing all the instruction definitions
to allow be "setneb" instead of "setne". The asm parser hack is
better in this case, because we want the disassembler to produce
setne, not setneb.
llvm-svn: 120260
|
|
|
|
| |
llvm-svn: 120224
|
|
|
|
| |
llvm-svn: 120017
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
sahf movl 344(%rdi),%r14d
we used to produce:
t.s:2:1: error: unexpected token in argument list
^
we now produce:
t.s:1:11: error: unexpected token in argument list
sahf movl 344(%rdi),%r14d
^
rdar://8581401
llvm-svn: 119676
|
|
|
|
| |
llvm-svn: 118361
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 118353
|
|
|
|
|
|
|
|
| |
fixed physical registers. Start moving fp comparison
aliases to the .td file (which default to using %st1 if
nothing is specified).
llvm-svn: 118352
|
|
|
|
|
|
|
| |
add fixed immediate values. Move the aad and aam aliases to
use this, and document it.
llvm-svn: 118350
|
|
|
|
| |
llvm-svn: 118349
|
|
|
|
| |
llvm-svn: 118348
|
|
|
|
| |
llvm-svn: 118347
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 118332
|
|
|
|
|
|
| |
tidy up the movsx and movzx aliases.
llvm-svn: 118331
|
|
|
|
|
|
| |
from c++ hacks to proper .td InstAlias definitions. Change them!
llvm-svn: 118330
|
|
|
|
|
|
| |
from X86AsmParser.cpp
llvm-svn: 117952
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 117824
|
|
|
|
| |
llvm-svn: 117823
|
|
|
|
| |
llvm-svn: 117822
|
|
|
|
| |
llvm-svn: 117821
|
|
|
|
|
|
| |
for shl. Caught by inspection.
llvm-svn: 117820
|
|
|
|
| |
llvm-svn: 117819
|
|
|
|
| |
llvm-svn: 117818
|
|
|
|
| |
llvm-svn: 117817
|
|
|
|
| |
llvm-svn: 117816
|
|
|
|
|
|
|
| |
just remaps one mnemonic to another. Convert a few of the X86 aliases
from .cpp to .td code.
llvm-svn: 117815
|
|
|
|
| |
llvm-svn: 117773
|
|
|
|
|
|
| |
(still to add ud2b).
llvm-svn: 117435
|
|
|
|
|
|
| |
the wait prefix).
llvm-svn: 117434
|
|
|
|
|
|
|
|
|
| |
sense, when the instruction takes the 16-bit ax register or m16 memory
location. These changes to llvm-mc matches what the darwin assembler
allows for these instructions. Done differently than in r117031 that
caused a valgrind error which was later reverted.
llvm-svn: 117433
|
|
|
|
|
|
|
| |
will accept versions that the darwin assembler allows. Forms ending in "pi" and
forms without all the operands.
llvm-svn: 117427
|
|
|
|
|
|
|
| |
It doesn't look like anything is wrong with the checkin,
but the new test cases expose a mem bug in AsmParser.
llvm-svn: 117087
|
|
|
|
|
|
|
|
|
| |
sense, when the instruction takes the 16-bit ax register or m16 memory
location. These changes to llvm-mc matches what the darwin assembler allows
for these instructions. Also added the missing flex (without the wait prefix)
and ud2a as an alias to ud2 (still to add ud2b).
llvm-svn: 117031
|
|
|
|
|
|
|
| |
word forms and suffixed versions to match the darwin assembler in 32-bit and
64-bit modes. This is again for use just with assembly source for llvm-mc .
llvm-svn: 116773
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 116149
|
|
|
|
|
|
| |
gross hack (having the asmmatcher handle the alias).
llvm-svn: 115685
|