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 | 6aeb2e32b7724e7c4bd878d4c899be917492cb32 (patch) | |
tree | 5ace9f00074bf62a4afe32a03327f2d39f69fc1b | |
parent | 2a135ae53057ef7d0e9123d450b958d0d59d8ccc (diff) | |
download | llvm-6aeb2e32b7724e7c4bd878d4c899be917492cb32.tar.gz llvm-6aeb2e32b7724e7c4bd878d4c899be917492cb32.tar.bz2 llvm-6aeb2e32b7724e7c4bd878d4c899be917492cb32.tar.xz |
Fixed the disassembler to handle two new X86
instruction forms. Now the ENTER instruction
disassembles correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115573 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | utils/TableGen/X86RecognizableInstr.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/utils/TableGen/X86RecognizableInstr.cpp b/utils/TableGen/X86RecognizableInstr.cpp index fc9f406fc0..dcbce4d88e 100644 --- a/utils/TableGen/X86RecognizableInstr.cpp +++ b/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; |