[llvm-commits] [llvm] r160694 - /llvm/trunk/lib/Target/X86/Disassembler/X86Disassembler.cpp

Jim Grosbach grosbach at apple.com
Tue Jul 24 14:46:10 PDT 2012


Coolness.

That said, test case? :)

On Jul 24, 2012, at 2:40 PM, Kevin Enderby <enderby at apple.com> wrote:

> 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;
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list