[llvm] r200100 - Set displacementSize to 1 for instrucitons with mod==0x1. Fixes PR17310. Modified from patch by James Courtier-Dutton.
Craig Topper
craig.topper at gmail.com
Sat Jan 25 14:48:44 PST 2014
Author: ctopper
Date: Sat Jan 25 16:48:43 2014
New Revision: 200100
URL: http://llvm.org/viewvc/llvm-project?rev=200100&view=rev
Log:
Set displacementSize to 1 for instrucitons with mod==0x1. Fixes PR17310. Modified from patch by James Courtier-Dutton.
Modified:
llvm/trunk/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c
Modified: llvm/trunk/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c?rev=200100&r1=200099&r2=200100&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c (original)
+++ llvm/trunk/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c Sat Jan 25 16:48:43 2014
@@ -1311,6 +1311,7 @@ static int readModRM(struct InternalInst
case 0x1:
insn->eaBase = (EABase)(insn->eaBaseBase + rm);
insn->eaDisplacement = EA_DISP_8;
+ insn->displacementSize = 1;
if (readDisplacement(insn))
return -1;
break;
@@ -1356,6 +1357,8 @@ static int readModRM(struct InternalInst
}
break;
case 0x1:
+ insn->displacementSize = 1;
+ // FALLTHROUGH
case 0x2:
insn->eaDisplacement = (mod == 0x1 ? EA_DISP_8 : EA_DISP_32);
switch (rm) {
More information about the llvm-commits
mailing list