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?
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/>.
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 :)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With