mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-22 20:05:38 +00:00
Fixed the disassembler to handle two new X86
instruction forms. Now the ENTER instruction disassembles correctly. llvm-svn: 115573
This commit is contained in:
parent
7218d81721
commit
1cadd25316
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user