summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen/X86RecognizableInstr.cpp
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
commit8d302b2e71f19a9551b6cbe318b9bf795b3cd6ba (patch)
treed05ba5ad354c076162e2953768fb5721a0638c2b /llvm/utils/TableGen/X86RecognizableInstr.cpp
parent3bcdb29cab367ce88a8fa337bf313bb8d2d1bbcd (diff)
downloadbcm5719-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.cpp17
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;
OpenPOWER on IntegriCloud