[PATCH] [llvm-mc] fix 64-bit mode call disassembly to ignore opcode size prefix

Matthew Barney m4b.github.io at gmail.com
Fri May 8 19:11:28 PDT 2015


Slightly more robust version, switching on all the relevant opcodes I could find for call/jmp/jcc.

Should probably do an audit of some sort to determine the extent of bad f64 subscript opcode table disassembly.

I'm still uncomfortable reassigning insn->immediateSize and insn->displacementSize in the getID() method, but not sure where else to do this.  Removing the ATTR_OPSIZE does not affect jmp and jcc instructions unfortunately, as it does for call.

May need to fix this in the releavnt .td files or perhaps in the readImmediate() method at some point.

Added more unit tests, specifically for jzz cases with 0x66 prefix.

- current revision switches on relevant call/jmp/jcc instructions, and avoids breaking lea, et. al.
- added unit tests for jzz 0x66 cases and removed whitespace;


http://reviews.llvm.org/D9573

Files:
  lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp
  test/MC/Disassembler/X86/x86-64.txt

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D9573.25397.patch
Type: text/x-patch
Size: 3806 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150509/8105b5ec/attachment.bin>


More information about the llvm-commits mailing list