Hotspot7 hsdis PrintAssembly Intel Syntax

后端 未结 2 502
暗喜
暗喜 2021-02-04 05:34

It annoys me every time I use -XX:+PrintAssembly with Hotspot and have to read the horrible AT&T syntax.

Is there a way to tell it to use the Intel synt

相关标签:
2条回答
  • 2021-02-04 06:09

    All you need is to parse some options onto the dis-asm.h and binutils code

    For intel Asm (which I also prefer) just add the following

    -XX:PrintAssemblyOptions=intel

    If you need to combine options do it with commas like so

    -XX:PrintAssemblyOptions=intel,hsdis-help

    Anything not recognised as a hsdis option will be fed to the disassembler, these options are the same ones you see listed from

    objdump --help
    
    ... <SNIP A lot of --help text %<> ...
    The following i386/x86-64 specific disassembler options are supported for use
    with the -M switch (multiple options should be separated by commas):
      x86-64      Disassemble in 64bit mode
      i386        Disassemble in 32bit mode
      i8086       Disassemble in 16bit mode
      att         Display instruction in AT&T syntax
      intel       Display instruction in Intel syntax
      att-mnemonic
                  Display instruction in AT&T mnemonic
      intel-mnemonic
                  Display instruction in Intel mnemonic
      addr64      Assume 64bit address size
      addr32      Assume 32bit address size
      addr16      Assume 16bit address size
      data32      Assume 32bit data size
      data16      Assume 16bit data size
      suffix      Always display instruction suffix in AT&T syntax
    Report bugs to <http://www.sourceware.org/bugzilla/>.
    
    0 讨论(0)
  • 2021-02-04 06:09

    I don't think there's any existent way to do this. But this is what I've found- Here is the source of hsdis. You can change the Makefile by passing -masm=intel to GCC. And if it works, from now onwards, +PrintAssembly should start outputting Intel syntax assembly.

    Here is the step by step procedure to get the source, build and finally get the hsdis-arch.so which is the one which does the disassembly work!

    I haven't tried this out myself. I wish you get this to work :)

    If nothing works, this should make you comfortable with AT&T Syntax :)

    0 讨论(0)
提交回复
热议问题