diff options
author | Sean Callanan <scallanan@apple.com> | 2010-10-04 22:45:51 +0000 |
---|---|---|
committer | Sean Callanan <scallanan@apple.com> | 2010-10-04 22:45:51 +0000 |
commit | 8d302b2e71f19a9551b6cbe318b9bf795b3cd6ba (patch) | |
tree | d05ba5ad354c076162e2953768fb5721a0638c2b /llvm/utils/TableGen/X86RecognizableInstr.cpp | |
parent | 3bcdb29cab367ce88a8fa337bf313bb8d2d1bbcd (diff) | |
download | bcm5719-llvm-8d302b2e71f19a9551b6cbe318b9bf795b3cd6ba.tar.gz bcm5719-llvm-8d302b2e71f19a9551b6cbe318b9bf795b3cd6ba.zip |
Fixed the disassembler to handle two new X86
instruction forms. Now the ENTER instruction
disassembles correctly.
llvm-svn: 115573
Diffstat (limited to 'llvm/utils/TableGen/X86RecognizableInstr.cpp')
-rw-r--r-- | llvm/utils/TableGen/X86RecognizableInstr.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/llvm/utils/TableGen/X86RecognizableInstr.cpp b/llvm/utils/TableGen/X86RecognizableInstr.cpp index fc9f406fc0f..dcbce4d88e1 100644 --- a/llvm/utils/TableGen/X86RecognizableInstr.cpp +++ b/llvm/utils/TableGen/X86RecognizableInstr.cpp @@ -51,10 +51,11 @@ namespace X86Local { MRM0m = 24, MRM1m = 25, MRM2m = 26, MRM3m = 27, MRM4m = 28, MRM5m = 29, MRM6m = 30, MRM7m = 31, MRMInitReg = 32, - #define MAP(from, to) MRM_##from = to, MRM_MAPPING #undef MAP + RawFrmImm8 = 43, + RawFrmImm16 = 44, lastMRM }; @@ -587,6 +588,20 @@ void RecognizableInstr::emitInstructionSpecifier(DisassemblerTables &tables) { HANDLE_OPERAND(memory) HANDLE_OPTIONAL(relocation) break; + case X86Local::RawFrmImm8: + // operand 1 is a 16-bit immediate + // operand 2 is an 8-bit immediate + assert(numPhysicalOperands == 2 && + "Unexpected number of operands for X86Local::RawFrmImm8"); + HANDLE_OPERAND(immediate) + HANDLE_OPERAND(immediate) + break; + case X86Local::RawFrmImm16: + // operand 1 is a 16-bit immediate + // operand 2 is a 16-bit immediate + HANDLE_OPERAND(immediate) + HANDLE_OPERAND(immediate) + break; case X86Local::MRMInitReg: // Ignored. break; |