[llvm-commits] [llvm] r160694 - /llvm/trunk/lib/Target/X86/Disassembler/X86Disassembler.cpp
Kevin Enderby
enderby at apple.com
Tue Jul 24 14:40:01 PDT 2012
Author: enderby
Date: Tue Jul 24 16:40:01 2012
New Revision: 160694
URL: http://llvm.org/viewvc/llvm-project?rev=160694&view=rev
Log:
Fix a bug in the x86 disassembler's symbolic disassembly support for Jcc-Jump
if Condition Is Met instuctions that was not correctly determining the target
instruction.
So for a jne rel32 instruction:
% cat x.s
.byte 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00
% as x.s
it was incorrectly deterining the target:
% otool -q -tv a.out
a.out:
(__TEXT,__text) section
0000000000000000 jne 0xd
and with the fix it gets this correct as:
% otool -q -tv a.out
a.out:
(__TEXT,__text) section
0000000000000000 jne 0xf
rdar://11505997
Modified:
llvm/trunk/lib/Target/X86/Disassembler/X86Disassembler.cpp
Modified: llvm/trunk/lib/Target/X86/Disassembler/X86Disassembler.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/Disassembler/X86Disassembler.cpp?rev=160694&r1=160693&r2=160694&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/Disassembler/X86Disassembler.cpp (original)
+++ llvm/trunk/lib/Target/X86/Disassembler/X86Disassembler.cpp Tue Jul 24 16:40:01 2012
@@ -327,7 +327,7 @@
if (type == TYPE_RELv) {
isBranch = true;
pcrel = insn.startLocation +
- insn.displacementOffset + insn.displacementSize;
+ insn.immediateOffset + insn.immediateSize;
switch (insn.displacementSize) {
default:
break;
More information about the llvm-commits
mailing list