| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
instead of comparing to nullptr.
llvm-svn: 206254
|
| |
|
|
| |
llvm-svn: 202233
|
| |
|
|
|
|
| |
Remove HasREPPrefix support from disassembler table generator since its now only used by CodeGenOnly instructions.
llvm-svn: 201767
|
| |
|
|
|
|
| |
handle all the FP operations. This increases format by 1 bit, but decreases opcode map by 1 bit so the TSFlags size doesn't change.
llvm-svn: 201649
|
| |
|
|
| |
llvm-svn: 201645
|
| |
|
|
|
|
| |
0xa6/0xa7, and adding MRM_C0/MRM_E0 forms. Removes 376K from the disassembler tables.
llvm-svn: 201641
|
| |
|
|
|
|
| |
instruction with 0xf2/f3/66 were in front of them, but don't themselves have a prefix. For now this doesn't change any bbehavior, but plan to use it to fix some bugs in the disassembler.
llvm-svn: 201538
|
| |
|
|
|
|
| |
longer necessary.
llvm-svn: 201299
|
| |
|
|
|
|
| |
all marked with isCodeGenOnly already.
llvm-svn: 201216
|
| |
|
|
|
|
| |
from the disassembler table build without custom filtering code.
llvm-svn: 201215
|
| |
|
|
|
|
|
|
|
|
| |
Original commits messages:
Add MRMXr/MRMXm form to X86 for use by instructions which treat the 'reg' field of modrm byte as a don't care value. Will allow for simplification of disassembler code.
Simplify a bunch of code by removing the need for the x86 disassembler table builder to know about extended opcodes. The modrm forms are sufficient to convey the information.
llvm-svn: 201065
|
| |
|
|
|
|
|
|
| |
r201059 appears to cause a crash in a bootstrapped build of clang. Craig
isn't available to look at it right now, so I'm reverting it while he
investigates.
llvm-svn: 201064
|
| |
|
|
|
|
| |
builder to know about extended opcodes. The modrm forms are sufficient to convey the information.
llvm-svn: 201060
|
| |
|
|
|
|
| |
field of modrm byte as a don't care value. Will allow for simplification of disassembler code.
llvm-svn: 201059
|
| |
|
|
|
|
| |
meaning no 0x66 prefix in any mode. Rename Opsize16->OpSize32 and OpSize->OpSize16. The classes now refer to their operand size rather than the mode in which they need a 0x66 prefix. Hopefully can merge REX_W into this as OpSize64.
llvm-svn: 200626
|
| |
|
|
| |
llvm-svn: 200625
|
| |
|
|
|
|
| |
in TSFlags.
llvm-svn: 200624
|
| |
|
|
|
|
| |
TSFlags. This greatly simplifies the switch statements in the disassembler tables and the code emitters.
llvm-svn: 200522
|
| |
|
|
|
|
| |
had special handling anyway and this enables a future patch.
llvm-svn: 200520
|
| |
|
|
| |
llvm-svn: 199806
|
| |
|
|
| |
llvm-svn: 199804
|
| |
|
|
| |
llvm-svn: 199803
|
| |
|
|
|
|
|
|
|
|
| |
The addition of IC_OPSIZE_ADSIZE in r198759 wasn't quite complete. It
also turns out to have been unnecessary. The disassembler handles the
AdSize prefix for itself, and doesn't care about the difference between
(e.g.) MOV8ao8 and MOB8ao8_16 definitions. So just let them coexist and
don't worry about it.
llvm-svn: 199654
|
| |
|
|
|
|
| |
encoded and disassembled with a segment override prefix. Fixes PR16962.
llvm-svn: 199364
|
| |
|
|
|
|
| |
TYPE_Rv/TYPE_R16/TYPE_R32 now that HasOpSizePrefix only means 16-bit instructions.
llvm-svn: 199295
|
| |
|
|
| |
llvm-svn: 199194
|
| |
|
|
|
|
|
|
| |
and the current mode from the concept of SSE instructions using 0x66 prefix as part of their encoding without being affected by the mode.
This should allow SSE instructions to be encoded correctly in 16-bit mode which r198586 probably broke.
llvm-svn: 199193
|
| |
|
|
|
|
|
|
|
|
| |
It seems there is no separate instruction class for having AdSize *and*
OpSize bits set, which is required in order to disambiguate between all
these instructions. So add that to the disassembler.
Hm, perhaps we do need an AdSize16 bit after all?
llvm-svn: 198759
|
| |
|
|
|
|
| |
being used.
llvm-svn: 198589
|
| |
|
|
| |
llvm-svn: 198550
|
| |
|
|
| |
llvm-svn: 198547
|
| |
|
|
| |
llvm-svn: 198546
|
| |
|
|
|
|
| |
disassembler without string matches.
llvm-svn: 198545
|
| |
|
|
|
|
| |
and remove disassmbler table emitter hack.
llvm-svn: 198544
|
| |
|
|
|
|
| |
instructions to go through to the disassembler tables without resorting to string matches. Apply flag to all _REV instructions.
llvm-svn: 198543
|
| |
|
|
|
|
| |
corresponding 32-bit versions with the same encodings Not64BitMode. Remove hack from tablegen disassembler table emitter. Fix bad test.
llvm-svn: 198530
|
| |
|
|
|
|
| |
Remove disassembler hack.
llvm-svn: 198515
|
| |
|
|
|
|
| |
won't be emitted correctly since it was set to NoImm. And I can't prove that gas accepts 'jmpq' with an immediate either. Remove the special case for it from the disassembler table generator.
llvm-svn: 198475
|
| |
|
|
| |
llvm-svn: 198336
|
| |
|
|
| |
llvm-svn: 198332
|
| |
|
|
|
|
| |
from the disassembler table builder.
llvm-svn: 198327
|
| |
|
|
| |
llvm-svn: 198325
|
| |
|
|
|
|
| |
table builder doesn't need to string match them to exclude them.
llvm-svn: 198323
|
| |
|
|
| |
llvm-svn: 198291
|
| |
|
|
|
|
| |
used. Removes ~11.5K from static tables.
llvm-svn: 198284
|
| |
|
|
|
|
| |
really more like OrRegFrm so we don't need a difference since we can just mask bits.
llvm-svn: 198278
|
| |
|
|
|
|
|
| |
Printing rounding control.
Enncoding for EVEX_RC (rounding control).
llvm-svn: 198277
|
| |
|
|
|
|
| |
instructions. These instructions can be handled by MRMXr instead.
llvm-svn: 198276
|
| |
|
|
|
|
| |
realized we had no FP disassembler test cases.
llvm-svn: 198265
|
| |
|
|
|
|
| |
can be handled by MRMXr instead.
llvm-svn: 198238
|