jitwatch
jitwatch copied to clipboard
TriView assembly pane enhancements
Improve navigation in assembly pane. Allow jumping between compiled methods by recording entry point addresses and hyperlinking from branches. Highlight more assembly idioms - stack banging, bimorphic switch, null checks etc.
Bimorphic check:
[Entry Point]
[Constants]
# {method} {0x0000000199aad170} 'deposit' '()V' in 'PolymorphismTest$Nickel'
# [sp+0x20] (sp of caller)
0x0000000111a6fc20: cmp 0x8(%rsi),%rax
0x0000000111a6fc24: jne 0x0000000111a45e20 ; {runtime_call}
Expected type in %rax klass word is found oop pointer offset by 8 bytes (mark word) bail if not equal
Stack bang is
mov %eax, -0x14000(%rsp)
Hex 14000 is Dec 81920 = 80*1024 (80KB)
A couple more potential asm hints: https://twitter.com/alblue/status/829264940389244928