summaryrefslogtreecommitdiff
path: root/utils/TableGen
diff options
context:
space:
mode:
authorSean Callanan <scallanan@apple.com>2010-10-04 22:45:51 +0000
committerSean Callanan <scallanan@apple.com>2010-10-04 22:45:51 +0000
commit6aeb2e32b7724e7c4bd878d4c899be917492cb32 (patch)
tree5ace9f00074bf62a4afe32a03327f2d39f69fc1b /utils/TableGen
parent2a135ae53057ef7d0e9123d450b958d0d59d8ccc (diff)
downloadllvm-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
Diffstat (limited to 'utils/TableGen')
-rw-r--r--utils/TableGen/X86RecognizableInstr.cpp17
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;