Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Hotspot7 hsdis PrintAssembly Intel Syntax

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 syntax?

like image 798
Voo Avatar asked Feb 18 '12 01:02

Voo


2 Answers

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/>.
like image 135
Greg Bowyer Avatar answered Oct 20 '22 16:10

Greg Bowyer


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 :)

like image 3
Pavan Manjunath Avatar answered Oct 20 '22 17:10

Pavan Manjunath