Created
October 24, 2023 21:49
-
-
Save navyxliu/dc69de73231d9eb71eff4c15966e76ff to your computer and use it in GitHub Desktop.
RelockInDeopt.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// java -XX:CompileCommand=quiet -XX:CompileCommand=compileonly,RelockInDeopt::snippet2 -XX:-TieredCompilation -XX:-UseOnStackReplacement -XX:+PrintCompilation -XX:+TraceDeoptimization -XX:+PrintEliminateLocks -XX:+PrintDeoptimizationDetails -XX:-PrintInlining -Xbatch -XX:+PrintEliminateAllocations RelockInDeopt | |
class RelockInDeopt { | |
static int staticInt = 0; | |
static Object staticObj = null; | |
public static void snippet2() { | |
Object escaped = new Object(); | |
Object nonEscaped = new Object(); | |
synchronized (nonEscaped) { | |
synchronized (escaped) { | |
staticObj = escaped; | |
staticInt++; | |
if (staticInt >= 9_999) { | |
staticObj = null; // deoptimize | |
} | |
} | |
} | |
} | |
public static void main(String[] args) { | |
var kase = new RelockInDeopt(); | |
for (int i = 0; i < 10_000; ++i) { | |
snippet2(); | |
} | |
} | |
} |
Compiled method (n/a) 203 1 n java.lang.invoke.MethodHandle::linkToStatic(LLLLLLL)L (native)
total in heap [0x00007f50e9124190,0x00007f50e9124410] = 640
relocation [0x00007f50e9124300,0x00007f50e9124348] = 72
main code [0x00007f50e9124360,0x00007f50e912440f] = 175
stub code [0x00007f50e912440f,0x00007f50e9124410] = 1
[Disassembly]
--------------------------------------------------------------------------------
[Constant Pool (empty)]
--------------------------------------------------------------------------------
[Verified Entry Point]
# {method} {0x00007f50a040df50} 'linkToStatic' '(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/invoke/MemberName;)Ljava/lang/Object;' in 'java/lang/invoke/MethodHandle'
# parm0: rsi:rsi = 'java/lang/Object'
# parm1: rdx:rdx = 'java/lang/Object'
# parm2: rcx:rcx = 'java/lang/Object'
# parm3: r8:r8 = 'java/lang/Object'
# parm4: r9:r9 = 'java/lang/Object'
# parm5: rdi:rdi = 'java/lang/Object'
# parm6: [sp+0x0] = 'java/lang/invoke/MemberName' (sp of caller)
0x00007f50e9124360: mov 0x8(%rsp),%rbx
;; verify_klass {
0x00007f50e9124365: test %rbx,%rbx
0x00007f50e9124368: je 0x00007f50e9124395
0x00007f50e912436e: push %rdi
0x00007f50e912436f: push %r10
0x00007f50e9124371: mov 0x8(%rbx),%edi
0x00007f50e9124374: cmp 0xa120de5(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e912437b: je 0x00007f50e91243a9
0x00007f50e9124381: mov 0x40(%rdi),%rdi
0x00007f50e9124385: cmp 0xa120dd4(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e912438c: je 0x00007f50e91243a9
0x00007f50e9124392: pop %r10
0x00007f50e9124394: pop %rdi
;; MemberName required for invokeVirtual etc.
0x00007f50e9124395: movabs $0x7f50f2cfdfc0,%rdi ; {external_word}
0x00007f50e912439f: and $0xfffffffffffffff0,%rsp
0x00007f50e91243a3: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e91243a8: hlt
;; L_ok:
0x00007f50e91243a9: pop %r10
0x00007f50e91243ab: pop %rdi
;; } verify_klass
;; verify_ref_kind {
0x00007f50e91243ac: mov 0xc(%rbx),%eax
0x00007f50e91243af: shr $0x18,%eax
0x00007f50e91243b2: and $0xf,%eax
0x00007f50e91243b5: cmp $0x6,%eax
0x00007f50e91243b8: je 0x00007f50e91243d2
;; verify_ref_kind expected 6
0x00007f50e91243be: movabs $0x7f50ec17a420,%rdi ; {external_word}
0x00007f50e91243c8: and $0xfffffffffffffff0,%rsp
0x00007f50e91243cc: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e91243d1: hlt
;; } verify_ref_kind
0x00007f50e91243d2: mov 0x24(%rbx),%ebx
0x00007f50e91243d5: cmp 0xa053c04(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e91243dc: je 0x00007f50e91243f6
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e91243e2: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e91243ec: and $0xfffffffffffffff0,%rsp
0x00007f50e91243f0: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e91243f5: hlt
0x00007f50e91243f6: shl $0x3,%rbx
0x00007f50e91243fa: mov 0x10(%rbx),%rbx
0x00007f50e91243fe: test %rbx,%rbx
0x00007f50e9124401: je 0x00007f50e912440a
0x00007f50e9124407: jmpq *0x58(%rbx)
0x00007f50e912440a: jmpq 0x00007f50e907a620 ; {runtime_call AbstractMethodError throw_exception}
[Stub Code]
0x00007f50e912440f: hlt
--------------------------------------------------------------------------------
[/Disassembly]
210 1 n java.lang.invoke.MethodHandle::linkToStatic(LLLLLLL)L (native) (static)
Compiled method (n/a) 225 2 n java.lang.invoke.MethodHandle::linkToStatic(LLL)L (native)
total in heap [0x00007f50e9126010,0x00007f50e9126290] = 640
relocation [0x00007f50e9126180,0x00007f50e91261c8] = 72
main code [0x00007f50e91261e0,0x00007f50e912628a] = 170
stub code [0x00007f50e912628a,0x00007f50e9126290] = 6
[Disassembly]
--------------------------------------------------------------------------------
[Constant Pool (empty)]
--------------------------------------------------------------------------------
[Verified Entry Point]
# {method} {0x00007f50a0462f20} 'linkToStatic' '(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/invoke/MemberName;)Ljava/lang/Object;' in 'java/lang/invoke/MethodHandle'
# parm0: rsi:rsi = 'java/lang/Object'
# parm1: rdx:rdx = 'java/lang/Object'
# parm2: rcx:rcx = 'java/lang/invoke/MemberName'
# [sp+0x0] (sp of caller)
;; verify_klass {
0x00007f50e91261e0: test %rcx,%rcx
0x00007f50e91261e3: je 0x00007f50e9126210
0x00007f50e91261e9: push %rdi
0x00007f50e91261ea: push %r10
0x00007f50e91261ec: mov 0x8(%rcx),%edi
0x00007f50e91261ef: cmp 0xa11ef6a(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e91261f6: je 0x00007f50e9126224
0x00007f50e91261fc: mov 0x40(%rdi),%rdi
0x00007f50e9126200: cmp 0xa11ef59(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e9126207: je 0x00007f50e9126224
0x00007f50e912620d: pop %r10
0x00007f50e912620f: pop %rdi
;; MemberName required for invokeVirtual etc.
0x00007f50e9126210: movabs $0x7f50f2cfdfc0,%rdi ; {external_word}
0x00007f50e912621a: and $0xfffffffffffffff0,%rsp
0x00007f50e912621e: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9126223: hlt
;; L_ok:
0x00007f50e9126224: pop %r10
0x00007f50e9126226: pop %rdi
;; } verify_klass
;; verify_ref_kind {
0x00007f50e9126227: mov 0xc(%rcx),%eax
0x00007f50e912622a: shr $0x18,%eax
0x00007f50e912622d: and $0xf,%eax
0x00007f50e9126230: cmp $0x6,%eax
0x00007f50e9126233: je 0x00007f50e912624d
;; verify_ref_kind expected 6
0x00007f50e9126239: movabs $0x7f50ec3fcc00,%rdi ; {external_word}
0x00007f50e9126243: and $0xfffffffffffffff0,%rsp
0x00007f50e9126247: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e912624c: hlt
;; } verify_ref_kind
0x00007f50e912624d: mov 0x24(%rcx),%ebx
0x00007f50e9126250: cmp 0xa051d89(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e9126257: je 0x00007f50e9126271
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e912625d: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e9126267: and $0xfffffffffffffff0,%rsp
0x00007f50e912626b: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9126270: hlt
0x00007f50e9126271: shl $0x3,%rbx
0x00007f50e9126275: mov 0x10(%rbx),%rbx
0x00007f50e9126279: test %rbx,%rbx
0x00007f50e912627c: je 0x00007f50e9126285
0x00007f50e9126282: jmpq *0x58(%rbx)
0x00007f50e9126285: jmpq 0x00007f50e907a620 ; {runtime_call AbstractMethodError throw_exception}
[Stub Code]
0x00007f50e912628a: hlt
0x00007f50e912628b: hlt
0x00007f50e912628c: hlt
0x00007f50e912628d: hlt
0x00007f50e912628e: hlt
0x00007f50e912628f: hlt
--------------------------------------------------------------------------------
[/Disassembly]
227 2 n java.lang.invoke.MethodHandle::linkToStatic(LLL)L (native) (static)
Compiled method (n/a) 232 3 n java.lang.invoke.MethodHandle::invokeBasic(LLLLLL)L (native)
total in heap [0x00007f50e9139510,0x00007f50e9139770] = 608
relocation [0x00007f50e9139680,0x00007f50e91396c8] = 72
main code [0x00007f50e91396e0,0x00007f50e913976d] = 141
stub code [0x00007f50e913976d,0x00007f50e9139770] = 3
[Disassembly]
--------------------------------------------------------------------------------
[Constant Pool (empty)]
--------------------------------------------------------------------------------
[Verified Entry Point]
# {method} {0x00007f50a046c938} 'invokeBasic' '(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;' in 'java/lang/invoke/MethodHandle'
# this: rsi:rsi = 'java/lang/invoke/MethodHandle'
# parm0: rdx:rdx = 'java/lang/Object'
# parm1: rcx:rcx = 'java/lang/Object'
# parm2: r8:r8 = 'java/lang/Object'
# parm3: r9:r9 = 'java/lang/Object'
# parm4: rdi:rdi = 'java/lang/Object'
# parm5: [sp+0x0] = 'java/lang/Object' (sp of caller)
;; jump_to_lambda_form {
0x00007f50e91396e0: mov 0x14(%rsi),%ebx
0x00007f50e91396e3: cmp 0xa03e8f6(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e91396ea: je 0x00007f50e9139704
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e91396f0: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e91396fa: and $0xfffffffffffffff0,%rsp
0x00007f50e91396fe: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9139703: hlt
0x00007f50e9139704: shl $0x3,%rbx
0x00007f50e9139708: mov 0x28(%rbx),%ebx
0x00007f50e913970b: cmp 0xa03e8ce(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e9139712: je 0x00007f50e913972c
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e9139718: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e9139722: and $0xfffffffffffffff0,%rsp
0x00007f50e9139726: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e913972b: hlt
0x00007f50e913972c: shl $0x3,%rbx
0x00007f50e9139730: mov 0x24(%rbx),%ebx
0x00007f50e9139733: cmp 0xa03e8a6(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e913973a: je 0x00007f50e9139754
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e9139740: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e913974a: and $0xfffffffffffffff0,%rsp
0x00007f50e913974e: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9139753: hlt
0x00007f50e9139754: shl $0x3,%rbx
0x00007f50e9139758: mov 0x10(%rbx),%rbx
0x00007f50e913975c: test %rbx,%rbx
0x00007f50e913975f: je 0x00007f50e9139768
0x00007f50e9139765: jmpq *0x58(%rbx)
0x00007f50e9139768: jmpq 0x00007f50e907a620 ; {runtime_call AbstractMethodError throw_exception}
[Stub Code]
;; } jump_to_lambda_form
0x00007f50e913976d: hlt
0x00007f50e913976e: hlt
0x00007f50e913976f: hlt
--------------------------------------------------------------------------------
[/Disassembly]
234 3 n java.lang.invoke.MethodHandle::invokeBasic(LLLLLL)L (native)
Compiled method (n/a) 234 4 n java.lang.invoke.MethodHandle::linkToSpecial(LLLLLLLL)L (native)
total in heap [0x00007f50e9139810,0x00007f50e9139bb0] = 928
relocation [0x00007f50e9139980,0x00007f50e9139a10] = 144
main code [0x00007f50e9139a20,0x00007f50e9139bad] = 397
stub code [0x00007f50e9139bad,0x00007f50e9139bb0] = 3
[Disassembly]
--------------------------------------------------------------------------------
[Constant Pool (empty)]
--------------------------------------------------------------------------------
[Verified Entry Point]
# {method} {0x00007f50a046cae0} 'linkToSpecial' '(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/invoke/MemberName;)Ljava/lang/Object;' in 'java/lang/invoke/MethodHandle'
# parm0: rsi:rsi = 'java/lang/Object'
# parm1: rdx:rdx = 'java/lang/Object'
# parm2: rcx:rcx = 'java/lang/Object'
# parm3: r8:r8 = 'java/lang/Object'
# parm4: r9:r9 = 'java/lang/Object'
# parm5: rdi:rdi = 'java/lang/Object'
# parm6: [sp+0x0] = 'java/lang/Object' (sp of caller)
# parm7: [sp+0x8] = 'java/lang/invoke/MemberName'
0x00007f50e9139a20: mov 0x10(%rsp),%rbx
;; verify_klass {
0x00007f50e9139a25: test %rbx,%rbx
0x00007f50e9139a28: je 0x00007f50e9139a55
0x00007f50e9139a2e: push %rdi
0x00007f50e9139a2f: push %r10
0x00007f50e9139a31: mov 0x8(%rbx),%edi
0x00007f50e9139a34: cmp 0xa10b725(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e9139a3b: je 0x00007f50e9139a69
0x00007f50e9139a41: mov 0x40(%rdi),%rdi
0x00007f50e9139a45: cmp 0xa10b714(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e9139a4c: je 0x00007f50e9139a69
0x00007f50e9139a52: pop %r10
0x00007f50e9139a54: pop %rdi
;; MemberName required for invokeVirtual etc.
0x00007f50e9139a55: movabs $0x7f50f2cfdfc0,%rdi ; {external_word}
0x00007f50e9139a5f: and $0xfffffffffffffff0,%rsp
0x00007f50e9139a63: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9139a68: hlt
;; L_ok:
0x00007f50e9139a69: pop %r10
0x00007f50e9139a6b: pop %rdi
;; } verify_klass
0x00007f50e9139a6c: cmp (%rsi),%rax
;; check_receiver {
0x00007f50e9139a6f: mov 0x8(%rsi),%r10d
0x00007f50e9139a73: mov 0x18(%rbx),%r11d
0x00007f50e9139a77: cmp 0xa03e562(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e9139a7e: je 0x00007f50e9139a98
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e9139a84: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e9139a8e: and $0xfffffffffffffff0,%rsp
0x00007f50e9139a92: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9139a97: hlt
0x00007f50e9139a98: shl $0x3,%r11
;; verify_klass {
0x00007f50e9139a9c: test %r11,%r11
0x00007f50e9139a9f: je 0x00007f50e9139acd
0x00007f50e9139aa5: push %rdi
0x00007f50e9139aa6: push %r10
0x00007f50e9139aa8: mov 0x8(%r11),%edi
0x00007f50e9139aac: cmp 0xa10b4dd(%rip),%rdi # 0x00007f50f3244f90
; {external_word}
0x00007f50e9139ab3: je 0x00007f50e9139ae1
0x00007f50e9139ab9: mov 0x40(%rdi),%rdi
0x00007f50e9139abd: cmp 0xa10b4cc(%rip),%rdi # 0x00007f50f3244f90
; {external_word}
0x00007f50e9139ac4: je 0x00007f50e9139ae1
0x00007f50e9139aca: pop %r10
0x00007f50e9139acc: pop %rdi
;; MH argument is a Class
0x00007f50e9139acd: movabs $0x7f50f2bcc414,%rdi ; {external_word}
0x00007f50e9139ad7: and $0xfffffffffffffff0,%rsp
0x00007f50e9139adb: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9139ae0: hlt
;; L_ok:
0x00007f50e9139ae1: pop %r10
0x00007f50e9139ae3: pop %rdi
;; } verify_klass
0x00007f50e9139ae4: mov 0x10(%r11),%r11
0x00007f50e9139ae8: cmp %r11,%r10
0x00007f50e9139aeb: je 0x00007f50e9139b4a
0x00007f50e9139af1: mov 0x18(%r11),%eax
0x00007f50e9139af5: cmp (%r10,%rax,1),%r11
0x00007f50e9139af9: je 0x00007f50e9139b4a
0x00007f50e9139aff: cmp $0x28,%eax
0x00007f50e9139b02: jne 0x00007f50e9139b36
0x00007f50e9139b08: mov %r11,%rax
0x00007f50e9139b0b: push %rcx
0x00007f50e9139b0c: push %rdi
0x00007f50e9139b0d: movabs $0x7f50f32253e0,%rcx ; {external_word}
0x00007f50e9139b17: incl (%rcx)
0x00007f50e9139b19: mov 0x30(%r10),%rdi
0x00007f50e9139b1d: mov (%rdi),%ecx
0x00007f50e9139b1f: add $0x8,%rdi
0x00007f50e9139b23: test %rax,%rax
0x00007f50e9139b26: repnz scas %es:(%rdi),%rax
0x00007f50e9139b29: pop %rdi
0x00007f50e9139b2a: pop %rcx
0x00007f50e9139b2b: jne 0x00007f50e9139b36
0x00007f50e9139b2d: mov %r11,0x28(%r10)
0x00007f50e9139b31: jmpq 0x00007f50e9139b4a
;; receiver class disagrees with MemberName.clazz
0x00007f50e9139b36: movabs $0x7f50f2cfe040,%rdi ; {external_word}
0x00007f50e9139b40: and $0xfffffffffffffff0,%rsp
0x00007f50e9139b44: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9139b49: hlt
;; } check_receiver
;; verify_ref_kind {
0x00007f50e9139b4a: mov 0xc(%rbx),%eax
0x00007f50e9139b4d: shr $0x18,%eax
0x00007f50e9139b50: and $0xf,%eax
0x00007f50e9139b53: cmp $0x7,%eax
0x00007f50e9139b56: je 0x00007f50e9139b70
;; verify_ref_kind expected 7
0x00007f50e9139b5c: movabs $0x7f50ec407da0,%rdi ; {external_word}
0x00007f50e9139b66: and $0xfffffffffffffff0,%rsp
0x00007f50e9139b6a: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9139b6f: hlt
;; } verify_ref_kind
0x00007f50e9139b70: mov 0x24(%rbx),%ebx
0x00007f50e9139b73: cmp 0xa03e466(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e9139b7a: je 0x00007f50e9139b94
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e9139b80: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e9139b8a: and $0xfffffffffffffff0,%rsp
0x00007f50e9139b8e: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9139b93: hlt
0x00007f50e9139b94: shl $0x3,%rbx
0x00007f50e9139b98: mov 0x10(%rbx),%rbx
0x00007f50e9139b9c: test %rbx,%rbx
0x00007f50e9139b9f: je 0x00007f50e9139ba8
0x00007f50e9139ba5: jmpq *0x58(%rbx)
0x00007f50e9139ba8: jmpq 0x00007f50e907a620 ; {runtime_call AbstractMethodError throw_exception}
[Stub Code]
0x00007f50e9139bad: hlt
0x00007f50e9139bae: hlt
0x00007f50e9139baf: hlt
--------------------------------------------------------------------------------
[/Disassembly]
240 4 n java.lang.invoke.MethodHandle::linkToSpecial(LLLLLLLL)L (native) (static)
Compiled method (n/a) 247 5 n java.lang.invoke.MethodHandle::linkToSpecial(LLLL)V (native)
total in heap [0x00007f50e913a810,0x00007f50e913abb0] = 928
relocation [0x00007f50e913a980,0x00007f50e913aa10] = 144
main code [0x00007f50e913aa20,0x00007f50e913abab] = 395
stub code [0x00007f50e913abab,0x00007f50e913abb0] = 5
[Disassembly]
--------------------------------------------------------------------------------
[Constant Pool (empty)]
--------------------------------------------------------------------------------
[Verified Entry Point]
# {method} {0x00007f50a0483588} 'linkToSpecial' '(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/invoke/MemberName;)V' in 'java/lang/invoke/MethodHandle'
# parm0: rsi:rsi = 'java/lang/Object'
# parm1: rdx:rdx = 'java/lang/Object'
# parm2: rcx:rcx = 'java/lang/Object'
# parm3: r8:r8 = 'java/lang/invoke/MemberName'
# [sp+0x0] (sp of caller)
;; verify_klass {
0x00007f50e913aa20: test %r8,%r8
0x00007f50e913aa23: je 0x00007f50e913aa51
0x00007f50e913aa29: push %rdi
0x00007f50e913aa2a: push %r10
0x00007f50e913aa2c: mov 0x8(%r8),%edi
0x00007f50e913aa30: cmp 0xa10a729(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e913aa37: je 0x00007f50e913aa65
0x00007f50e913aa3d: mov 0x40(%rdi),%rdi
0x00007f50e913aa41: cmp 0xa10a718(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e913aa48: je 0x00007f50e913aa65
0x00007f50e913aa4e: pop %r10
0x00007f50e913aa50: pop %rdi
;; MemberName required for invokeVirtual etc.
0x00007f50e913aa51: movabs $0x7f50f2cfdfc0,%rdi ; {external_word}
0x00007f50e913aa5b: and $0xfffffffffffffff0,%rsp
0x00007f50e913aa5f: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e913aa64: hlt
;; L_ok:
0x00007f50e913aa65: pop %r10
0x00007f50e913aa67: pop %rdi
;; } verify_klass
0x00007f50e913aa68: cmp (%rsi),%rax
;; check_receiver {
0x00007f50e913aa6b: mov 0x8(%rsi),%r10d
0x00007f50e913aa6f: mov 0x18(%r8),%r11d
0x00007f50e913aa73: cmp 0xa03d566(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e913aa7a: je 0x00007f50e913aa94
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e913aa80: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e913aa8a: and $0xfffffffffffffff0,%rsp
0x00007f50e913aa8e: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e913aa93: hlt
0x00007f50e913aa94: shl $0x3,%r11
;; verify_klass {
0x00007f50e913aa98: test %r11,%r11
0x00007f50e913aa9b: je 0x00007f50e913aac9
0x00007f50e913aaa1: push %rdi
0x00007f50e913aaa2: push %r10
0x00007f50e913aaa4: mov 0x8(%r11),%edi
0x00007f50e913aaa8: cmp 0xa10a4e1(%rip),%rdi # 0x00007f50f3244f90
; {external_word}
0x00007f50e913aaaf: je 0x00007f50e913aadd
0x00007f50e913aab5: mov 0x40(%rdi),%rdi
0x00007f50e913aab9: cmp 0xa10a4d0(%rip),%rdi # 0x00007f50f3244f90
; {external_word}
0x00007f50e913aac0: je 0x00007f50e913aadd
0x00007f50e913aac6: pop %r10
0x00007f50e913aac8: pop %rdi
;; MH argument is a Class
0x00007f50e913aac9: movabs $0x7f50f2bcc414,%rdi ; {external_word}
0x00007f50e913aad3: and $0xfffffffffffffff0,%rsp
0x00007f50e913aad7: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e913aadc: hlt
;; L_ok:
0x00007f50e913aadd: pop %r10
0x00007f50e913aadf: pop %rdi
;; } verify_klass
0x00007f50e913aae0: mov 0x10(%r11),%r11
0x00007f50e913aae4: cmp %r11,%r10
0x00007f50e913aae7: je 0x00007f50e913ab46
0x00007f50e913aaed: mov 0x18(%r11),%eax
0x00007f50e913aaf1: cmp (%r10,%rax,1),%r11
0x00007f50e913aaf5: je 0x00007f50e913ab46
0x00007f50e913aafb: cmp $0x28,%eax
0x00007f50e913aafe: jne 0x00007f50e913ab32
0x00007f50e913ab04: mov %r11,%rax
0x00007f50e913ab07: push %rcx
0x00007f50e913ab08: push %rdi
0x00007f50e913ab09: movabs $0x7f50f32253e0,%rcx ; {external_word}
0x00007f50e913ab13: incl (%rcx)
0x00007f50e913ab15: mov 0x30(%r10),%rdi
0x00007f50e913ab19: mov (%rdi),%ecx
0x00007f50e913ab1b: add $0x8,%rdi
0x00007f50e913ab1f: test %rax,%rax
0x00007f50e913ab22: repnz scas %es:(%rdi),%rax
0x00007f50e913ab25: pop %rdi
0x00007f50e913ab26: pop %rcx
0x00007f50e913ab27: jne 0x00007f50e913ab32
0x00007f50e913ab29: mov %r11,0x28(%r10)
0x00007f50e913ab2d: jmpq 0x00007f50e913ab46
;; receiver class disagrees with MemberName.clazz
0x00007f50e913ab32: movabs $0x7f50f2cfe040,%rdi ; {external_word}
0x00007f50e913ab3c: and $0xfffffffffffffff0,%rsp
0x00007f50e913ab40: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e913ab45: hlt
;; } check_receiver
;; verify_ref_kind {
0x00007f50e913ab46: mov 0xc(%r8),%eax
0x00007f50e913ab4a: shr $0x18,%eax
0x00007f50e913ab4d: and $0xf,%eax
0x00007f50e913ab50: cmp $0x7,%eax
0x00007f50e913ab53: je 0x00007f50e913ab6d
;; verify_ref_kind expected 7
0x00007f50e913ab59: movabs $0x7f50ec408840,%rdi ; {external_word}
0x00007f50e913ab63: and $0xfffffffffffffff0,%rsp
0x00007f50e913ab67: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e913ab6c: hlt
;; } verify_ref_kind
0x00007f50e913ab6d: mov 0x24(%r8),%ebx
0x00007f50e913ab71: cmp 0xa03d468(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e913ab78: je 0x00007f50e913ab92
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e913ab7e: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e913ab88: and $0xfffffffffffffff0,%rsp
0x00007f50e913ab8c: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e913ab91: hlt
0x00007f50e913ab92: shl $0x3,%rbx
0x00007f50e913ab96: mov 0x10(%rbx),%rbx
0x00007f50e913ab9a: test %rbx,%rbx
0x00007f50e913ab9d: je 0x00007f50e913aba6
0x00007f50e913aba3: jmpq *0x58(%rbx)
0x00007f50e913aba6: jmpq 0x00007f50e907a620 ; {runtime_call AbstractMethodError throw_exception}
[Stub Code]
0x00007f50e913abab: hlt
0x00007f50e913abac: hlt
0x00007f50e913abad: hlt
0x00007f50e913abae: hlt
0x00007f50e913abaf: hlt
--------------------------------------------------------------------------------
[/Disassembly]
252 5 n java.lang.invoke.MethodHandle::linkToSpecial(LLLL)V (native) (static)
Compiled method (n/a) 254 6 n java.lang.invoke.MethodHandle::invokeBasic(LL)L (native)
total in heap [0x00007f50e913b210,0x00007f50e913b470] = 608
relocation [0x00007f50e913b380,0x00007f50e913b3c8] = 72
main code [0x00007f50e913b3e0,0x00007f50e913b46d] = 141
stub code [0x00007f50e913b46d,0x00007f50e913b470] = 3
[Disassembly]
--------------------------------------------------------------------------------
[Constant Pool (empty)]
--------------------------------------------------------------------------------
[Verified Entry Point]
# {method} {0x00007f50a0484d50} 'invokeBasic' '(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;' in 'java/lang/invoke/MethodHandle'
# this: rsi:rsi = 'java/lang/invoke/MethodHandle'
# parm0: rdx:rdx = 'java/lang/Object'
# parm1: rcx:rcx = 'java/lang/Object'
# [sp+0x0] (sp of caller)
;; jump_to_lambda_form {
0x00007f50e913b3e0: mov 0x14(%rsi),%ebx
0x00007f50e913b3e3: cmp 0xa03cbf6(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e913b3ea: je 0x00007f50e913b404
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e913b3f0: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e913b3fa: and $0xfffffffffffffff0,%rsp
0x00007f50e913b3fe: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e913b403: hlt
0x00007f50e913b404: shl $0x3,%rbx
0x00007f50e913b408: mov 0x28(%rbx),%ebx
0x00007f50e913b40b: cmp 0xa03cbce(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e913b412: je 0x00007f50e913b42c
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e913b418: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e913b422: and $0xfffffffffffffff0,%rsp
0x00007f50e913b426: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e913b42b: hlt
0x00007f50e913b42c: shl $0x3,%rbx
0x00007f50e913b430: mov 0x24(%rbx),%ebx
0x00007f50e913b433: cmp 0xa03cba6(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e913b43a: je 0x00007f50e913b454
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e913b440: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e913b44a: and $0xfffffffffffffff0,%rsp
0x00007f50e913b44e: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e913b453: hlt
0x00007f50e913b454: shl $0x3,%rbx
0x00007f50e913b458: mov 0x10(%rbx),%rbx
0x00007f50e913b45c: test %rbx,%rbx
0x00007f50e913b45f: je 0x00007f50e913b468
0x00007f50e913b465: jmpq *0x58(%rbx)
0x00007f50e913b468: jmpq 0x00007f50e907a620 ; {runtime_call AbstractMethodError throw_exception}
[Stub Code]
;; } jump_to_lambda_form
0x00007f50e913b46d: hlt
0x00007f50e913b46e: hlt
0x00007f50e913b46f: hlt
--------------------------------------------------------------------------------
[/Disassembly]
256 6 n java.lang.invoke.MethodHandle::invokeBasic(LL)L (native)
Compiled method (n/a) 256 7 n java.lang.invoke.MethodHandle::linkToSpecial(LLLL)L (native)
total in heap [0x00007f50e913b510,0x00007f50e913b8b0] = 928
relocation [0x00007f50e913b680,0x00007f50e913b710] = 144
main code [0x00007f50e913b720,0x00007f50e913b8ab] = 395
stub code [0x00007f50e913b8ab,0x00007f50e913b8b0] = 5
[Disassembly]
--------------------------------------------------------------------------------
[Constant Pool (empty)]
--------------------------------------------------------------------------------
[Verified Entry Point]
# {method} {0x00007f50a0484e88} 'linkToSpecial' '(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/invoke/MemberName;)Ljava/lang/Object;' in 'java/lang/invoke/MethodHandle'
# parm0: rsi:rsi = 'java/lang/Object'
# parm1: rdx:rdx = 'java/lang/Object'
# parm2: rcx:rcx = 'java/lang/Object'
# parm3: r8:r8 = 'java/lang/invoke/MemberName'
# [sp+0x0] (sp of caller)
;; verify_klass {
0x00007f50e913b720: test %r8,%r8
0x00007f50e913b723: je 0x00007f50e913b751
0x00007f50e913b729: push %rdi
0x00007f50e913b72a: push %r10
0x00007f50e913b72c: mov 0x8(%r8),%edi
0x00007f50e913b730: cmp 0xa109a29(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e913b737: je 0x00007f50e913b765
0x00007f50e913b73d: mov 0x40(%rdi),%rdi
0x00007f50e913b741: cmp 0xa109a18(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e913b748: je 0x00007f50e913b765
0x00007f50e913b74e: pop %r10
0x00007f50e913b750: pop %rdi
;; MemberName required for invokeVirtual etc.
0x00007f50e913b751: movabs $0x7f50f2cfdfc0,%rdi ; {external_word}
0x00007f50e913b75b: and $0xfffffffffffffff0,%rsp
0x00007f50e913b75f: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e913b764: hlt
;; L_ok:
0x00007f50e913b765: pop %r10
0x00007f50e913b767: pop %rdi
;; } verify_klass
0x00007f50e913b768: cmp (%rsi),%rax
;; check_receiver {
0x00007f50e913b76b: mov 0x8(%rsi),%r10d
0x00007f50e913b76f: mov 0x18(%r8),%r11d
0x00007f50e913b773: cmp 0xa03c866(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e913b77a: je 0x00007f50e913b794
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e913b780: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e913b78a: and $0xfffffffffffffff0,%rsp
0x00007f50e913b78e: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e913b793: hlt
0x00007f50e913b794: shl $0x3,%r11
;; verify_klass {
0x00007f50e913b798: test %r11,%r11
0x00007f50e913b79b: je 0x00007f50e913b7c9
0x00007f50e913b7a1: push %rdi
0x00007f50e913b7a2: push %r10
0x00007f50e913b7a4: mov 0x8(%r11),%edi
0x00007f50e913b7a8: cmp 0xa1097e1(%rip),%rdi # 0x00007f50f3244f90
; {external_word}
0x00007f50e913b7af: je 0x00007f50e913b7dd
0x00007f50e913b7b5: mov 0x40(%rdi),%rdi
0x00007f50e913b7b9: cmp 0xa1097d0(%rip),%rdi # 0x00007f50f3244f90
; {external_word}
0x00007f50e913b7c0: je 0x00007f50e913b7dd
0x00007f50e913b7c6: pop %r10
0x00007f50e913b7c8: pop %rdi
;; MH argument is a Class
0x00007f50e913b7c9: movabs $0x7f50f2bcc414,%rdi ; {external_word}
0x00007f50e913b7d3: and $0xfffffffffffffff0,%rsp
0x00007f50e913b7d7: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e913b7dc: hlt
;; L_ok:
0x00007f50e913b7dd: pop %r10
0x00007f50e913b7df: pop %rdi
;; } verify_klass
0x00007f50e913b7e0: mov 0x10(%r11),%r11
0x00007f50e913b7e4: cmp %r11,%r10
0x00007f50e913b7e7: je 0x00007f50e913b846
0x00007f50e913b7ed: mov 0x18(%r11),%eax
0x00007f50e913b7f1: cmp (%r10,%rax,1),%r11
0x00007f50e913b7f5: je 0x00007f50e913b846
0x00007f50e913b7fb: cmp $0x28,%eax
0x00007f50e913b7fe: jne 0x00007f50e913b832
0x00007f50e913b804: mov %r11,%rax
0x00007f50e913b807: push %rcx
0x00007f50e913b808: push %rdi
0x00007f50e913b809: movabs $0x7f50f32253e0,%rcx ; {external_word}
0x00007f50e913b813: incl (%rcx)
0x00007f50e913b815: mov 0x30(%r10),%rdi
0x00007f50e913b819: mov (%rdi),%ecx
0x00007f50e913b81b: add $0x8,%rdi
0x00007f50e913b81f: test %rax,%rax
0x00007f50e913b822: repnz scas %es:(%rdi),%rax
0x00007f50e913b825: pop %rdi
0x00007f50e913b826: pop %rcx
0x00007f50e913b827: jne 0x00007f50e913b832
0x00007f50e913b829: mov %r11,0x28(%r10)
0x00007f50e913b82d: jmpq 0x00007f50e913b846
;; receiver class disagrees with MemberName.clazz
0x00007f50e913b832: movabs $0x7f50f2cfe040,%rdi ; {external_word}
0x00007f50e913b83c: and $0xfffffffffffffff0,%rsp
0x00007f50e913b840: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e913b845: hlt
;; } check_receiver
;; verify_ref_kind {
0x00007f50e913b846: mov 0xc(%r8),%eax
0x00007f50e913b84a: shr $0x18,%eax
0x00007f50e913b84d: and $0xf,%eax
0x00007f50e913b850: cmp $0x7,%eax
0x00007f50e913b853: je 0x00007f50e913b86d
;; verify_ref_kind expected 7
0x00007f50e913b859: movabs $0x7f50ec414c40,%rdi ; {external_word}
0x00007f50e913b863: and $0xfffffffffffffff0,%rsp
0x00007f50e913b867: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e913b86c: hlt
;; } verify_ref_kind
0x00007f50e913b86d: mov 0x24(%r8),%ebx
0x00007f50e913b871: cmp 0xa03c768(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e913b878: je 0x00007f50e913b892
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e913b87e: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e913b888: and $0xfffffffffffffff0,%rsp
0x00007f50e913b88c: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e913b891: hlt
0x00007f50e913b892: shl $0x3,%rbx
0x00007f50e913b896: mov 0x10(%rbx),%rbx
0x00007f50e913b89a: test %rbx,%rbx
0x00007f50e913b89d: je 0x00007f50e913b8a6
0x00007f50e913b8a3: jmpq *0x58(%rbx)
0x00007f50e913b8a6: jmpq 0x00007f50e907a620 ; {runtime_call AbstractMethodError throw_exception}
[Stub Code]
0x00007f50e913b8ab: hlt
0x00007f50e913b8ac: hlt
0x00007f50e913b8ad: hlt
0x00007f50e913b8ae: hlt
0x00007f50e913b8af: hlt
--------------------------------------------------------------------------------
[/Disassembly]
261 7 n java.lang.invoke.MethodHandle::linkToSpecial(LLLL)L (native) (static)
Compiled method (n/a) 275 8 n java.lang.invoke.MethodHandle::linkToSpecial(LLL)L (native)
total in heap [0x00007f50e9140710,0x00007f50e9140aa8] = 920
relocation [0x00007f50e9140880,0x00007f50e9140910] = 144
main code [0x00007f50e9140920,0x00007f50e9140aa8] = 392
[Disassembly]
--------------------------------------------------------------------------------
[Constant Pool (empty)]
--------------------------------------------------------------------------------
[Verified Entry Point]
# {method} {0x00007f50a04cba58} 'linkToSpecial' '(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/invoke/MemberName;)Ljava/lang/Object;' in 'java/lang/invoke/MethodHandle'
# parm0: rsi:rsi = 'java/lang/Object'
# parm1: rdx:rdx = 'java/lang/Object'
# parm2: rcx:rcx = 'java/lang/invoke/MemberName'
# [sp+0x0] (sp of caller)
;; verify_klass {
0x00007f50e9140920: test %rcx,%rcx
0x00007f50e9140923: je 0x00007f50e9140950
0x00007f50e9140929: push %rdi
0x00007f50e914092a: push %r10
0x00007f50e914092c: mov 0x8(%rcx),%edi
0x00007f50e914092f: cmp 0xa10482a(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e9140936: je 0x00007f50e9140964
0x00007f50e914093c: mov 0x40(%rdi),%rdi
0x00007f50e9140940: cmp 0xa104819(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e9140947: je 0x00007f50e9140964
0x00007f50e914094d: pop %r10
0x00007f50e914094f: pop %rdi
;; MemberName required for invokeVirtual etc.
0x00007f50e9140950: movabs $0x7f50f2cfdfc0,%rdi ; {external_word}
0x00007f50e914095a: and $0xfffffffffffffff0,%rsp
0x00007f50e914095e: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9140963: hlt
;; L_ok:
0x00007f50e9140964: pop %r10
0x00007f50e9140966: pop %rdi
;; } verify_klass
0x00007f50e9140967: cmp (%rsi),%rax
;; check_receiver {
0x00007f50e914096a: mov 0x8(%rsi),%r10d
0x00007f50e914096e: mov 0x18(%rcx),%r11d
0x00007f50e9140972: cmp 0xa037667(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e9140979: je 0x00007f50e9140993
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e914097f: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e9140989: and $0xfffffffffffffff0,%rsp
0x00007f50e914098d: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9140992: hlt
0x00007f50e9140993: shl $0x3,%r11
;; verify_klass {
0x00007f50e9140997: test %r11,%r11
0x00007f50e914099a: je 0x00007f50e91409c8
0x00007f50e91409a0: push %rdi
0x00007f50e91409a1: push %r10
0x00007f50e91409a3: mov 0x8(%r11),%edi
0x00007f50e91409a7: cmp 0xa1045e2(%rip),%rdi # 0x00007f50f3244f90
; {external_word}
0x00007f50e91409ae: je 0x00007f50e91409dc
0x00007f50e91409b4: mov 0x40(%rdi),%rdi
0x00007f50e91409b8: cmp 0xa1045d1(%rip),%rdi # 0x00007f50f3244f90
; {external_word}
0x00007f50e91409bf: je 0x00007f50e91409dc
0x00007f50e91409c5: pop %r10
0x00007f50e91409c7: pop %rdi
;; MH argument is a Class
0x00007f50e91409c8: movabs $0x7f50f2bcc414,%rdi ; {external_word}
0x00007f50e91409d2: and $0xfffffffffffffff0,%rsp
0x00007f50e91409d6: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e91409db: hlt
;; L_ok:
0x00007f50e91409dc: pop %r10
0x00007f50e91409de: pop %rdi
;; } verify_klass
0x00007f50e91409df: mov 0x10(%r11),%r11
0x00007f50e91409e3: cmp %r11,%r10
0x00007f50e91409e6: je 0x00007f50e9140a45
0x00007f50e91409ec: mov 0x18(%r11),%eax
0x00007f50e91409f0: cmp (%r10,%rax,1),%r11
0x00007f50e91409f4: je 0x00007f50e9140a45
0x00007f50e91409fa: cmp $0x28,%eax
0x00007f50e91409fd: jne 0x00007f50e9140a31
0x00007f50e9140a03: mov %r11,%rax
0x00007f50e9140a06: push %rcx
0x00007f50e9140a07: push %rdi
0x00007f50e9140a08: movabs $0x7f50f32253e0,%rcx ; {external_word}
0x00007f50e9140a12: incl (%rcx)
0x00007f50e9140a14: mov 0x30(%r10),%rdi
0x00007f50e9140a18: mov (%rdi),%ecx
0x00007f50e9140a1a: add $0x8,%rdi
0x00007f50e9140a1e: test %rax,%rax
0x00007f50e9140a21: repnz scas %es:(%rdi),%rax
0x00007f50e9140a24: pop %rdi
0x00007f50e9140a25: pop %rcx
0x00007f50e9140a26: jne 0x00007f50e9140a31
0x00007f50e9140a28: mov %r11,0x28(%r10)
0x00007f50e9140a2c: jmpq 0x00007f50e9140a45
;; receiver class disagrees with MemberName.clazz
0x00007f50e9140a31: movabs $0x7f50f2cfe040,%rdi ; {external_word}
0x00007f50e9140a3b: and $0xfffffffffffffff0,%rsp
0x00007f50e9140a3f: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9140a44: hlt
;; } check_receiver
;; verify_ref_kind {
0x00007f50e9140a45: mov 0xc(%rcx),%eax
0x00007f50e9140a48: shr $0x18,%eax
0x00007f50e9140a4b: and $0xf,%eax
0x00007f50e9140a4e: cmp $0x7,%eax
0x00007f50e9140a51: je 0x00007f50e9140a6b
;; verify_ref_kind expected 7
0x00007f50e9140a57: movabs $0x7f50ec429120,%rdi ; {external_word}
0x00007f50e9140a61: and $0xfffffffffffffff0,%rsp
0x00007f50e9140a65: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9140a6a: hlt
;; } verify_ref_kind
0x00007f50e9140a6b: mov 0x24(%rcx),%ebx
0x00007f50e9140a6e: cmp 0xa03756b(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e9140a75: je 0x00007f50e9140a8f
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e9140a7b: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e9140a85: and $0xfffffffffffffff0,%rsp
0x00007f50e9140a89: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9140a8e: hlt
0x00007f50e9140a8f: shl $0x3,%rbx
0x00007f50e9140a93: mov 0x10(%rbx),%rbx
0x00007f50e9140a97: test %rbx,%rbx
0x00007f50e9140a9a: je 0x00007f50e9140aa3
0x00007f50e9140aa0: jmpq *0x58(%rbx)
0x00007f50e9140aa3: jmpq 0x00007f50e907a620 ; {runtime_call AbstractMethodError throw_exception}
--------------------------------------------------------------------------------
[/Disassembly]
280 8 n java.lang.invoke.MethodHandle::linkToSpecial(LLL)L (native) (static)
Compiled method (n/a) 292 9 n java.lang.invoke.MethodHandle::linkToStatic(LLIL)I (native)
total in heap [0x00007f50e9147c90,0x00007f50e9147f10] = 640
relocation [0x00007f50e9147e00,0x00007f50e9147e48] = 72
main code [0x00007f50e9147e60,0x00007f50e9147f0d] = 173
stub code [0x00007f50e9147f0d,0x00007f50e9147f10] = 3
[Disassembly]
--------------------------------------------------------------------------------
[Constant Pool (empty)]
--------------------------------------------------------------------------------
[Verified Entry Point]
# {method} {0x00007f50a058d688} 'linkToStatic' '(Ljava/lang/Object;Ljava/lang/Object;ILjava/lang/invoke/MemberName;)I' in 'java/lang/invoke/MethodHandle'
# parm0: rsi:rsi = 'java/lang/Object'
# parm1: rdx:rdx = 'java/lang/Object'
# parm2: rcx = int
# parm3: r8:r8 = 'java/lang/invoke/MemberName'
# [sp+0x0] (sp of caller)
;; verify_klass {
0x00007f50e9147e60: test %r8,%r8
0x00007f50e9147e63: je 0x00007f50e9147e91
0x00007f50e9147e69: push %rdi
0x00007f50e9147e6a: push %r10
0x00007f50e9147e6c: mov 0x8(%r8),%edi
0x00007f50e9147e70: cmp 0xa0fd2e9(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e9147e77: je 0x00007f50e9147ea5
0x00007f50e9147e7d: mov 0x40(%rdi),%rdi
0x00007f50e9147e81: cmp 0xa0fd2d8(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e9147e88: je 0x00007f50e9147ea5
0x00007f50e9147e8e: pop %r10
0x00007f50e9147e90: pop %rdi
;; MemberName required for invokeVirtual etc.
0x00007f50e9147e91: movabs $0x7f50f2cfdfc0,%rdi ; {external_word}
0x00007f50e9147e9b: and $0xfffffffffffffff0,%rsp
0x00007f50e9147e9f: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9147ea4: hlt
;; L_ok:
0x00007f50e9147ea5: pop %r10
0x00007f50e9147ea7: pop %rdi
;; } verify_klass
;; verify_ref_kind {
0x00007f50e9147ea8: mov 0xc(%r8),%eax
0x00007f50e9147eac: shr $0x18,%eax
0x00007f50e9147eaf: and $0xf,%eax
0x00007f50e9147eb2: cmp $0x6,%eax
0x00007f50e9147eb5: je 0x00007f50e9147ecf
;; verify_ref_kind expected 6
0x00007f50e9147ebb: movabs $0x7f50ec416c80,%rdi ; {external_word}
0x00007f50e9147ec5: and $0xfffffffffffffff0,%rsp
0x00007f50e9147ec9: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9147ece: hlt
;; } verify_ref_kind
0x00007f50e9147ecf: mov 0x24(%r8),%ebx
0x00007f50e9147ed3: cmp 0xa030106(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e9147eda: je 0x00007f50e9147ef4
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e9147ee0: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e9147eea: and $0xfffffffffffffff0,%rsp
0x00007f50e9147eee: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9147ef3: hlt
0x00007f50e9147ef4: shl $0x3,%rbx
0x00007f50e9147ef8: mov 0x10(%rbx),%rbx
0x00007f50e9147efc: test %rbx,%rbx
0x00007f50e9147eff: je 0x00007f50e9147f08
0x00007f50e9147f05: jmpq *0x58(%rbx)
0x00007f50e9147f08: jmpq 0x00007f50e907a620 ; {runtime_call AbstractMethodError throw_exception}
[Stub Code]
0x00007f50e9147f0d: hlt
0x00007f50e9147f0e: hlt
0x00007f50e9147f0f: hlt
--------------------------------------------------------------------------------
[/Disassembly]
295 9 n java.lang.invoke.MethodHandle::linkToStatic(LLIL)I (native) (static)
Compiled method (n/a) 306 10 n java.lang.invoke.MethodHandle::linkToStatic(LL)L (native)
total in heap [0x00007f50e914a390,0x00007f50e914a610] = 640
relocation [0x00007f50e914a500,0x00007f50e914a548] = 72
main code [0x00007f50e914a560,0x00007f50e914a60a] = 170
stub code [0x00007f50e914a60a,0x00007f50e914a610] = 6
[Disassembly]
--------------------------------------------------------------------------------
[Constant Pool (empty)]
--------------------------------------------------------------------------------
[Verified Entry Point]
# {method} {0x00007f50a05b7638} 'linkToStatic' '(Ljava/lang/Object;Ljava/lang/invoke/MemberName;)Ljava/lang/Object;' in 'java/lang/invoke/MethodHandle'
# parm0: rsi:rsi = 'java/lang/Object'
# parm1: rdx:rdx = 'java/lang/invoke/MemberName'
# [sp+0x0] (sp of caller)
;; verify_klass {
0x00007f50e914a560: test %rdx,%rdx
0x00007f50e914a563: je 0x00007f50e914a590
0x00007f50e914a569: push %rdi
0x00007f50e914a56a: push %r10
0x00007f50e914a56c: mov 0x8(%rdx),%edi
0x00007f50e914a56f: cmp 0xa0fabea(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e914a576: je 0x00007f50e914a5a4
0x00007f50e914a57c: mov 0x40(%rdi),%rdi
0x00007f50e914a580: cmp 0xa0fabd9(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e914a587: je 0x00007f50e914a5a4
0x00007f50e914a58d: pop %r10
0x00007f50e914a58f: pop %rdi
;; MemberName required for invokeVirtual etc.
0x00007f50e914a590: movabs $0x7f50f2cfdfc0,%rdi ; {external_word}
0x00007f50e914a59a: and $0xfffffffffffffff0,%rsp
0x00007f50e914a59e: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e914a5a3: hlt
;; L_ok:
0x00007f50e914a5a4: pop %r10
0x00007f50e914a5a6: pop %rdi
;; } verify_klass
;; verify_ref_kind {
0x00007f50e914a5a7: mov 0xc(%rdx),%eax
0x00007f50e914a5aa: shr $0x18,%eax
0x00007f50e914a5ad: and $0xf,%eax
0x00007f50e914a5b0: cmp $0x6,%eax
0x00007f50e914a5b3: je 0x00007f50e914a5cd
;; verify_ref_kind expected 6
0x00007f50e914a5b9: movabs $0x7f50ec4505c0,%rdi ; {external_word}
0x00007f50e914a5c3: and $0xfffffffffffffff0,%rsp
0x00007f50e914a5c7: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e914a5cc: hlt
;; } verify_ref_kind
0x00007f50e914a5cd: mov 0x24(%rdx),%ebx
0x00007f50e914a5d0: cmp 0xa02da09(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e914a5d7: je 0x00007f50e914a5f1
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e914a5dd: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e914a5e7: and $0xfffffffffffffff0,%rsp
0x00007f50e914a5eb: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e914a5f0: hlt
0x00007f50e914a5f1: shl $0x3,%rbx
0x00007f50e914a5f5: mov 0x10(%rbx),%rbx
0x00007f50e914a5f9: test %rbx,%rbx
0x00007f50e914a5fc: je 0x00007f50e914a605
0x00007f50e914a602: jmpq *0x58(%rbx)
0x00007f50e914a605: jmpq 0x00007f50e907a620 ; {runtime_call AbstractMethodError throw_exception}
[Stub Code]
0x00007f50e914a60a: hlt
0x00007f50e914a60b: hlt
0x00007f50e914a60c: hlt
0x00007f50e914a60d: hlt
0x00007f50e914a60e: hlt
0x00007f50e914a60f: hlt
--------------------------------------------------------------------------------
[/Disassembly]
308 10 n java.lang.invoke.MethodHandle::linkToStatic(LL)L (native) (static)
Compiled method (n/a) 311 11 n java.lang.invoke.MethodHandle::linkToSpecial(LLL)V (native)
total in heap [0x00007f50e914a690,0x00007f50e914aa28] = 920
relocation [0x00007f50e914a800,0x00007f50e914a890] = 144
main code [0x00007f50e914a8a0,0x00007f50e914aa28] = 392
[Disassembly]
--------------------------------------------------------------------------------
[Constant Pool (empty)]
--------------------------------------------------------------------------------
[Verified Entry Point]
# {method} {0x00007f50a05b8040} 'linkToSpecial' '(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/invoke/MemberName;)V' in 'java/lang/invoke/MethodHandle'
# parm0: rsi:rsi = 'java/lang/Object'
# parm1: rdx:rdx = 'java/lang/Object'
# parm2: rcx:rcx = 'java/lang/invoke/MemberName'
# [sp+0x0] (sp of caller)
;; verify_klass {
0x00007f50e914a8a0: test %rcx,%rcx
0x00007f50e914a8a3: je 0x00007f50e914a8d0
0x00007f50e914a8a9: push %rdi
0x00007f50e914a8aa: push %r10
0x00007f50e914a8ac: mov 0x8(%rcx),%edi
0x00007f50e914a8af: cmp 0xa0fa8aa(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e914a8b6: je 0x00007f50e914a8e4
0x00007f50e914a8bc: mov 0x40(%rdi),%rdi
0x00007f50e914a8c0: cmp 0xa0fa899(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e914a8c7: je 0x00007f50e914a8e4
0x00007f50e914a8cd: pop %r10
0x00007f50e914a8cf: pop %rdi
;; MemberName required for invokeVirtual etc.
0x00007f50e914a8d0: movabs $0x7f50f2cfdfc0,%rdi ; {external_word}
0x00007f50e914a8da: and $0xfffffffffffffff0,%rsp
0x00007f50e914a8de: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e914a8e3: hlt
;; L_ok:
0x00007f50e914a8e4: pop %r10
0x00007f50e914a8e6: pop %rdi
;; } verify_klass
0x00007f50e914a8e7: cmp (%rsi),%rax
;; check_receiver {
0x00007f50e914a8ea: mov 0x8(%rsi),%r10d
0x00007f50e914a8ee: mov 0x18(%rcx),%r11d
0x00007f50e914a8f2: cmp 0xa02d6e7(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e914a8f9: je 0x00007f50e914a913
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e914a8ff: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e914a909: and $0xfffffffffffffff0,%rsp
0x00007f50e914a90d: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e914a912: hlt
0x00007f50e914a913: shl $0x3,%r11
;; verify_klass {
0x00007f50e914a917: test %r11,%r11
0x00007f50e914a91a: je 0x00007f50e914a948
0x00007f50e914a920: push %rdi
0x00007f50e914a921: push %r10
0x00007f50e914a923: mov 0x8(%r11),%edi
0x00007f50e914a927: cmp 0xa0fa662(%rip),%rdi # 0x00007f50f3244f90
; {external_word}
0x00007f50e914a92e: je 0x00007f50e914a95c
0x00007f50e914a934: mov 0x40(%rdi),%rdi
0x00007f50e914a938: cmp 0xa0fa651(%rip),%rdi # 0x00007f50f3244f90
; {external_word}
0x00007f50e914a93f: je 0x00007f50e914a95c
0x00007f50e914a945: pop %r10
0x00007f50e914a947: pop %rdi
;; MH argument is a Class
0x00007f50e914a948: movabs $0x7f50f2bcc414,%rdi ; {external_word}
0x00007f50e914a952: and $0xfffffffffffffff0,%rsp
0x00007f50e914a956: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e914a95b: hlt
;; L_ok:
0x00007f50e914a95c: pop %r10
0x00007f50e914a95e: pop %rdi
;; } verify_klass
0x00007f50e914a95f: mov 0x10(%r11),%r11
0x00007f50e914a963: cmp %r11,%r10
0x00007f50e914a966: je 0x00007f50e914a9c5
0x00007f50e914a96c: mov 0x18(%r11),%eax
0x00007f50e914a970: cmp (%r10,%rax,1),%r11
0x00007f50e914a974: je 0x00007f50e914a9c5
0x00007f50e914a97a: cmp $0x28,%eax
0x00007f50e914a97d: jne 0x00007f50e914a9b1
0x00007f50e914a983: mov %r11,%rax
0x00007f50e914a986: push %rcx
0x00007f50e914a987: push %rdi
0x00007f50e914a988: movabs $0x7f50f32253e0,%rcx ; {external_word}
0x00007f50e914a992: incl (%rcx)
0x00007f50e914a994: mov 0x30(%r10),%rdi
0x00007f50e914a998: mov (%rdi),%ecx
0x00007f50e914a99a: add $0x8,%rdi
0x00007f50e914a99e: test %rax,%rax
0x00007f50e914a9a1: repnz scas %es:(%rdi),%rax
0x00007f50e914a9a4: pop %rdi
0x00007f50e914a9a5: pop %rcx
0x00007f50e914a9a6: jne 0x00007f50e914a9b1
0x00007f50e914a9a8: mov %r11,0x28(%r10)
0x00007f50e914a9ac: jmpq 0x00007f50e914a9c5
;; receiver class disagrees with MemberName.clazz
0x00007f50e914a9b1: movabs $0x7f50f2cfe040,%rdi ; {external_word}
0x00007f50e914a9bb: and $0xfffffffffffffff0,%rsp
0x00007f50e914a9bf: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e914a9c4: hlt
;; } check_receiver
;; verify_ref_kind {
0x00007f50e914a9c5: mov 0xc(%rcx),%eax
0x00007f50e914a9c8: shr $0x18,%eax
0x00007f50e914a9cb: and $0xf,%eax
0x00007f50e914a9ce: cmp $0x7,%eax
0x00007f50e914a9d1: je 0x00007f50e914a9eb
;; verify_ref_kind expected 7
0x00007f50e914a9d7: movabs $0x7f50ec468a40,%rdi ; {external_word}
0x00007f50e914a9e1: and $0xfffffffffffffff0,%rsp
0x00007f50e914a9e5: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e914a9ea: hlt
;; } verify_ref_kind
0x00007f50e914a9eb: mov 0x24(%rcx),%ebx
0x00007f50e914a9ee: cmp 0xa02d5eb(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e914a9f5: je 0x00007f50e914aa0f
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e914a9fb: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e914aa05: and $0xfffffffffffffff0,%rsp
0x00007f50e914aa09: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e914aa0e: hlt
0x00007f50e914aa0f: shl $0x3,%rbx
0x00007f50e914aa13: mov 0x10(%rbx),%rbx
0x00007f50e914aa17: test %rbx,%rbx
0x00007f50e914aa1a: je 0x00007f50e914aa23
0x00007f50e914aa20: jmpq *0x58(%rbx)
0x00007f50e914aa23: jmpq 0x00007f50e907a620 ; {runtime_call AbstractMethodError throw_exception}
--------------------------------------------------------------------------------
[/Disassembly]
316 11 n java.lang.invoke.MethodHandle::linkToSpecial(LLL)V (native) (static)
Compiled method (n/a) 317 12 n java.lang.invoke.MethodHandle::invokeBasic(L)L (native)
total in heap [0x00007f50e914aa90,0x00007f50e914acf0] = 608
relocation [0x00007f50e914ac00,0x00007f50e914ac48] = 72
main code [0x00007f50e914ac60,0x00007f50e914aced] = 141
stub code [0x00007f50e914aced,0x00007f50e914acf0] = 3
[Disassembly]
--------------------------------------------------------------------------------
[Constant Pool (empty)]
--------------------------------------------------------------------------------
[Verified Entry Point]
# {method} {0x00007f50a05b8178} 'invokeBasic' '(Ljava/lang/Object;)Ljava/lang/Object;' in 'java/lang/invoke/MethodHandle'
# this: rsi:rsi = 'java/lang/invoke/MethodHandle'
# parm0: rdx:rdx = 'java/lang/Object'
# [sp+0x0] (sp of caller)
;; jump_to_lambda_form {
0x00007f50e914ac60: mov 0x14(%rsi),%ebx
0x00007f50e914ac63: cmp 0xa02d376(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e914ac6a: je 0x00007f50e914ac84
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e914ac70: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e914ac7a: and $0xfffffffffffffff0,%rsp
0x00007f50e914ac7e: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e914ac83: hlt
0x00007f50e914ac84: shl $0x3,%rbx
0x00007f50e914ac88: mov 0x28(%rbx),%ebx
0x00007f50e914ac8b: cmp 0xa02d34e(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e914ac92: je 0x00007f50e914acac
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e914ac98: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e914aca2: and $0xfffffffffffffff0,%rsp
0x00007f50e914aca6: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e914acab: hlt
0x00007f50e914acac: shl $0x3,%rbx
0x00007f50e914acb0: mov 0x24(%rbx),%ebx
0x00007f50e914acb3: cmp 0xa02d326(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e914acba: je 0x00007f50e914acd4
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e914acc0: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e914acca: and $0xfffffffffffffff0,%rsp
0x00007f50e914acce: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e914acd3: hlt
0x00007f50e914acd4: shl $0x3,%rbx
0x00007f50e914acd8: mov 0x10(%rbx),%rbx
0x00007f50e914acdc: test %rbx,%rbx
0x00007f50e914acdf: je 0x00007f50e914ace8
0x00007f50e914ace5: jmpq *0x58(%rbx)
0x00007f50e914ace8: jmpq 0x00007f50e907a620 ; {runtime_call AbstractMethodError throw_exception}
[Stub Code]
;; } jump_to_lambda_form
0x00007f50e914aced: hlt
0x00007f50e914acee: hlt
0x00007f50e914acef: hlt
--------------------------------------------------------------------------------
[/Disassembly]
319 12 n java.lang.invoke.MethodHandle::invokeBasic(L)L (native)
Compiled method (n/a) 545 13 n java.lang.invoke.MethodHandle::linkToInterface(LL)L (native)
total in heap [0x00007f50e914e390,0x00007f50e914e6d8] = 840
relocation [0x00007f50e914e500,0x00007f50e914e578] = 120
main code [0x00007f50e914e580,0x00007f50e914e6d3] = 339
stub code [0x00007f50e914e6d3,0x00007f50e914e6d8] = 5
[Disassembly]
--------------------------------------------------------------------------------
[Constant Pool (empty)]
--------------------------------------------------------------------------------
[Verified Entry Point]
# {method} {0x00007f50a0540428} 'linkToInterface' '(Ljava/lang/Object;Ljava/lang/invoke/MemberName;)Ljava/lang/Object;' in 'java/lang/invoke/MethodHandle'
# parm0: rsi:rsi = 'java/lang/Object'
# parm1: rdx:rdx = 'java/lang/invoke/MemberName'
# [sp+0x0] (sp of caller)
;; verify_klass {
0x00007f50e914e580: test %rdx,%rdx
0x00007f50e914e583: je 0x00007f50e914e5b0
0x00007f50e914e589: push %rdi
0x00007f50e914e58a: push %r10
0x00007f50e914e58c: mov 0x8(%rdx),%edi
0x00007f50e914e58f: cmp 0xa0f6bca(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e914e596: je 0x00007f50e914e5c4
0x00007f50e914e59c: mov 0x40(%rdi),%rdi
0x00007f50e914e5a0: cmp 0xa0f6bb9(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e914e5a7: je 0x00007f50e914e5c4
0x00007f50e914e5ad: pop %r10
0x00007f50e914e5af: pop %rdi
;; MemberName required for invokeVirtual etc.
0x00007f50e914e5b0: movabs $0x7f50f2cfdfc0,%rdi ; {external_word}
0x00007f50e914e5ba: and $0xfffffffffffffff0,%rsp
0x00007f50e914e5be: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e914e5c3: hlt
;; L_ok:
0x00007f50e914e5c4: pop %r10
0x00007f50e914e5c6: pop %rdi
;; } verify_klass
0x00007f50e914e5c7: mov 0x8(%rsi),%r10d
;; check_receiver {
;; } check_receiver
;; verify_ref_kind {
0x00007f50e914e5cb: mov 0xc(%rdx),%eax
0x00007f50e914e5ce: shr $0x18,%eax
0x00007f50e914e5d1: and $0xf,%eax
0x00007f50e914e5d4: cmp $0x9,%eax
0x00007f50e914e5d7: je 0x00007f50e914e5f1
;; verify_ref_kind expected 9
0x00007f50e914e5dd: movabs $0x7f50ec3b3910,%rdi ; {external_word}
0x00007f50e914e5e7: and $0xfffffffffffffff0,%rsp
0x00007f50e914e5eb: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e914e5f0: hlt
;; } verify_ref_kind
0x00007f50e914e5f1: mov 0x18(%rdx),%eax
0x00007f50e914e5f4: cmp 0xa0299e5(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e914e5fb: je 0x00007f50e914e615
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e914e601: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e914e60b: and $0xfffffffffffffff0,%rsp
0x00007f50e914e60f: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e914e614: hlt
0x00007f50e914e615: shl $0x3,%rax
;; verify_klass {
0x00007f50e914e619: test %rax,%rax
0x00007f50e914e61c: je 0x00007f50e914e649
0x00007f50e914e622: push %rdi
0x00007f50e914e623: push %r10
0x00007f50e914e625: mov 0x8(%rax),%edi
0x00007f50e914e628: cmp 0xa0f6961(%rip),%rdi # 0x00007f50f3244f90
; {external_word}
0x00007f50e914e62f: je 0x00007f50e914e65d
0x00007f50e914e635: mov 0x40(%rdi),%rdi
0x00007f50e914e639: cmp 0xa0f6950(%rip),%rdi # 0x00007f50f3244f90
; {external_word}
0x00007f50e914e640: je 0x00007f50e914e65d
0x00007f50e914e646: pop %r10
0x00007f50e914e648: pop %rdi
;; MH argument is a Class
0x00007f50e914e649: movabs $0x7f50f2bcc414,%rdi ; {external_word}
0x00007f50e914e653: and $0xfffffffffffffff0,%rsp
0x00007f50e914e657: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e914e65c: hlt
;; L_ok:
0x00007f50e914e65d: pop %r10
0x00007f50e914e65f: pop %rdi
;; } verify_klass
0x00007f50e914e660: mov 0x10(%rax),%rax
0x00007f50e914e664: mov 0x10(%rdx),%rbx
0x00007f50e914e668: cmp $0x0,%ebx
0x00007f50e914e66b: jge 0x00007f50e914e685
;; invalid vtable index for MH.invokeInterface
0x00007f50e914e671: movabs $0x7f50f2cfe070,%rdi ; {external_word}
0x00007f50e914e67b: and $0xfffffffffffffff0,%rsp
0x00007f50e914e67f: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e914e684: hlt
0x00007f50e914e685: mov 0xa8(%r10),%r11d
0x00007f50e914e68c: lea 0x1d8(%r10,%r11,8),%r11
0x00007f50e914e694: lea (%r10,%rbx,8),%r10
0x00007f50e914e698: mov (%r11),%rbx
0x00007f50e914e69b: cmp %rbx,%rax
0x00007f50e914e69e: je 0x00007f50e914e6b5
0x00007f50e914e6a0: test %rbx,%rbx
0x00007f50e914e6a3: je 0x00007f50e914e6ce
0x00007f50e914e6a9: add $0x10,%r11
0x00007f50e914e6ad: mov (%r11),%rbx
0x00007f50e914e6b0: cmp %rbx,%rax
0x00007f50e914e6b3: jne 0x00007f50e914e6a0
0x00007f50e914e6b5: mov 0x8(%r11),%r11d
0x00007f50e914e6b9: mov (%r10,%r11,1),%rbx
0x00007f50e914e6bd: test %rbx,%rbx
0x00007f50e914e6c0: je 0x00007f50e914e6c9
0x00007f50e914e6c6: jmpq *0x58(%rbx)
0x00007f50e914e6c9: jmpq 0x00007f50e907a620 ; {runtime_call AbstractMethodError throw_exception}
0x00007f50e914e6ce: jmpq 0x00007f50e907a320 ; {runtime_call IncompatibleClassChangeError throw_exception}
[Stub Code]
0x00007f50e914e6d3: hlt
0x00007f50e914e6d4: hlt
0x00007f50e914e6d5: hlt
0x00007f50e914e6d6: hlt
0x00007f50e914e6d7: hlt
--------------------------------------------------------------------------------
[/Disassembly]
549 13 n java.lang.invoke.MethodHandle::linkToInterface(LL)L (native) (static)
Compiled method (n/a) 559 14 n java.lang.invoke.MethodHandle::linkToStatic(L)L (native)
total in heap [0x00007f50e914ed10,0x00007f50e914ef90] = 640
relocation [0x00007f50e914ee80,0x00007f50e914eec8] = 72
main code [0x00007f50e914eee0,0x00007f50e914ef8a] = 170
stub code [0x00007f50e914ef8a,0x00007f50e914ef90] = 6
[Disassembly]
--------------------------------------------------------------------------------
[Constant Pool (empty)]
--------------------------------------------------------------------------------
[Verified Entry Point]
# {method} {0x00007f50a056e338} 'linkToStatic' '(Ljava/lang/invoke/MemberName;)Ljava/lang/Object;' in 'java/lang/invoke/MethodHandle'
# parm0: rsi:rsi = 'java/lang/invoke/MemberName'
# [sp+0x0] (sp of caller)
;; verify_klass {
0x00007f50e914eee0: test %rsi,%rsi
0x00007f50e914eee3: je 0x00007f50e914ef10
0x00007f50e914eee9: push %rdi
0x00007f50e914eeea: push %r10
0x00007f50e914eeec: mov 0x8(%rsi),%edi
0x00007f50e914eeef: cmp 0xa0f626a(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e914eef6: je 0x00007f50e914ef24
0x00007f50e914eefc: mov 0x40(%rdi),%rdi
0x00007f50e914ef00: cmp 0xa0f6259(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e914ef07: je 0x00007f50e914ef24
0x00007f50e914ef0d: pop %r10
0x00007f50e914ef0f: pop %rdi
;; MemberName required for invokeVirtual etc.
0x00007f50e914ef10: movabs $0x7f50f2cfdfc0,%rdi ; {external_word}
0x00007f50e914ef1a: and $0xfffffffffffffff0,%rsp
0x00007f50e914ef1e: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e914ef23: hlt
;; L_ok:
0x00007f50e914ef24: pop %r10
0x00007f50e914ef26: pop %rdi
;; } verify_klass
;; verify_ref_kind {
0x00007f50e914ef27: mov 0xc(%rsi),%eax
0x00007f50e914ef2a: shr $0x18,%eax
0x00007f50e914ef2d: and $0xf,%eax
0x00007f50e914ef30: cmp $0x6,%eax
0x00007f50e914ef33: je 0x00007f50e914ef4d
;; verify_ref_kind expected 6
0x00007f50e914ef39: movabs $0x7f50ec3b3e90,%rdi ; {external_word}
0x00007f50e914ef43: and $0xfffffffffffffff0,%rsp
0x00007f50e914ef47: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e914ef4c: hlt
;; } verify_ref_kind
0x00007f50e914ef4d: mov 0x24(%rsi),%ebx
0x00007f50e914ef50: cmp 0xa029089(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e914ef57: je 0x00007f50e914ef71
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e914ef5d: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e914ef67: and $0xfffffffffffffff0,%rsp
0x00007f50e914ef6b: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e914ef70: hlt
0x00007f50e914ef71: shl $0x3,%rbx
0x00007f50e914ef75: mov 0x10(%rbx),%rbx
0x00007f50e914ef79: test %rbx,%rbx
0x00007f50e914ef7c: je 0x00007f50e914ef85
0x00007f50e914ef82: jmpq *0x58(%rbx)
0x00007f50e914ef85: jmpq 0x00007f50e907a620 ; {runtime_call AbstractMethodError throw_exception}
[Stub Code]
0x00007f50e914ef8a: hlt
0x00007f50e914ef8b: hlt
0x00007f50e914ef8c: hlt
0x00007f50e914ef8d: hlt
0x00007f50e914ef8e: hlt
0x00007f50e914ef8f: hlt
--------------------------------------------------------------------------------
[/Disassembly]
561 14 n java.lang.invoke.MethodHandle::linkToStatic(L)L (native) (static)
Compiled method (n/a) 567 15 n java.lang.invoke.MethodHandle::linkToStatic(LLLL)L (native)
total in heap [0x00007f50e914fc10,0x00007f50e914fe90] = 640
relocation [0x00007f50e914fd80,0x00007f50e914fdc8] = 72
main code [0x00007f50e914fde0,0x00007f50e914fe8d] = 173
stub code [0x00007f50e914fe8d,0x00007f50e914fe90] = 3
[Disassembly]
--------------------------------------------------------------------------------
[Constant Pool (empty)]
--------------------------------------------------------------------------------
[Verified Entry Point]
# {method} {0x00007f50a0523930} 'linkToStatic' '(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/invoke/MemberName;)Ljava/lang/Object;' in 'java/lang/invoke/MethodHandle'
# parm0: rsi:rsi = 'java/lang/Object'
# parm1: rdx:rdx = 'java/lang/Object'
# parm2: rcx:rcx = 'java/lang/Object'
# parm3: r8:r8 = 'java/lang/invoke/MemberName'
# [sp+0x0] (sp of caller)
;; verify_klass {
0x00007f50e914fde0: test %r8,%r8
0x00007f50e914fde3: je 0x00007f50e914fe11
0x00007f50e914fde9: push %rdi
0x00007f50e914fdea: push %r10
0x00007f50e914fdec: mov 0x8(%r8),%edi
0x00007f50e914fdf0: cmp 0xa0f5369(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e914fdf7: je 0x00007f50e914fe25
0x00007f50e914fdfd: mov 0x40(%rdi),%rdi
0x00007f50e914fe01: cmp 0xa0f5358(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e914fe08: je 0x00007f50e914fe25
0x00007f50e914fe0e: pop %r10
0x00007f50e914fe10: pop %rdi
;; MemberName required for invokeVirtual etc.
0x00007f50e914fe11: movabs $0x7f50f2cfdfc0,%rdi ; {external_word}
0x00007f50e914fe1b: and $0xfffffffffffffff0,%rsp
0x00007f50e914fe1f: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e914fe24: hlt
;; L_ok:
0x00007f50e914fe25: pop %r10
0x00007f50e914fe27: pop %rdi
;; } verify_klass
;; verify_ref_kind {
0x00007f50e914fe28: mov 0xc(%r8),%eax
0x00007f50e914fe2c: shr $0x18,%eax
0x00007f50e914fe2f: and $0xf,%eax
0x00007f50e914fe32: cmp $0x6,%eax
0x00007f50e914fe35: je 0x00007f50e914fe4f
;; verify_ref_kind expected 6
0x00007f50e914fe3b: movabs $0x7f50ec4a5dd0,%rdi ; {external_word}
0x00007f50e914fe45: and $0xfffffffffffffff0,%rsp
0x00007f50e914fe49: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e914fe4e: hlt
;; } verify_ref_kind
0x00007f50e914fe4f: mov 0x24(%r8),%ebx
0x00007f50e914fe53: cmp 0xa028186(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e914fe5a: je 0x00007f50e914fe74
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e914fe60: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e914fe6a: and $0xfffffffffffffff0,%rsp
0x00007f50e914fe6e: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e914fe73: hlt
0x00007f50e914fe74: shl $0x3,%rbx
0x00007f50e914fe78: mov 0x10(%rbx),%rbx
0x00007f50e914fe7c: test %rbx,%rbx
0x00007f50e914fe7f: je 0x00007f50e914fe88
0x00007f50e914fe85: jmpq *0x58(%rbx)
0x00007f50e914fe88: jmpq 0x00007f50e907a620 ; {runtime_call AbstractMethodError throw_exception}
[Stub Code]
0x00007f50e914fe8d: hlt
0x00007f50e914fe8e: hlt
0x00007f50e914fe8f: hlt
--------------------------------------------------------------------------------
[/Disassembly]
570 15 n java.lang.invoke.MethodHandle::linkToStatic(LLLL)L (native) (static)
Compiled method (n/a) 575 16 n java.lang.invoke.MethodHandle::invokeBasic()L (native)
total in heap [0x00007f50e9150b10,0x00007f50e9150d70] = 608
relocation [0x00007f50e9150c80,0x00007f50e9150cc8] = 72
main code [0x00007f50e9150ce0,0x00007f50e9150d6d] = 141
stub code [0x00007f50e9150d6d,0x00007f50e9150d70] = 3
[Disassembly]
--------------------------------------------------------------------------------
[Constant Pool (empty)]
--------------------------------------------------------------------------------
[Verified Entry Point]
# {method} {0x00007f50a0527f08} 'invokeBasic' '()Ljava/lang/Object;' in 'java/lang/invoke/MethodHandle'
# [sp+0x0] (sp of caller)
;; jump_to_lambda_form {
0x00007f50e9150ce0: mov 0x14(%rsi),%ebx
0x00007f50e9150ce3: cmp 0xa0272f6(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e9150cea: je 0x00007f50e9150d04
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e9150cf0: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e9150cfa: and $0xfffffffffffffff0,%rsp
0x00007f50e9150cfe: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9150d03: hlt
0x00007f50e9150d04: shl $0x3,%rbx
0x00007f50e9150d08: mov 0x28(%rbx),%ebx
0x00007f50e9150d0b: cmp 0xa0272ce(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e9150d12: je 0x00007f50e9150d2c
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e9150d18: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e9150d22: and $0xfffffffffffffff0,%rsp
0x00007f50e9150d26: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9150d2b: hlt
0x00007f50e9150d2c: shl $0x3,%rbx
0x00007f50e9150d30: mov 0x24(%rbx),%ebx
0x00007f50e9150d33: cmp 0xa0272a6(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e9150d3a: je 0x00007f50e9150d54
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e9150d40: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e9150d4a: and $0xfffffffffffffff0,%rsp
0x00007f50e9150d4e: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9150d53: hlt
0x00007f50e9150d54: shl $0x3,%rbx
0x00007f50e9150d58: mov 0x10(%rbx),%rbx
0x00007f50e9150d5c: test %rbx,%rbx
0x00007f50e9150d5f: je 0x00007f50e9150d68
0x00007f50e9150d65: jmpq *0x58(%rbx)
0x00007f50e9150d68: jmpq 0x00007f50e907a620 ; {runtime_call AbstractMethodError throw_exception}
[Stub Code]
;; } jump_to_lambda_form
0x00007f50e9150d6d: hlt
0x00007f50e9150d6e: hlt
0x00007f50e9150d6f: hlt
--------------------------------------------------------------------------------
[/Disassembly]
577 16 n java.lang.invoke.MethodHandle::invokeBasic()L (native)
Compiled method (n/a) 577 17 n java.lang.invoke.MethodHandle::linkToSpecial(LL)L (native)
total in heap [0x00007f50e9150e10,0x00007f50e91511a8] = 920
relocation [0x00007f50e9150f80,0x00007f50e9151010] = 144
main code [0x00007f50e9151020,0x00007f50e91511a8] = 392
[Disassembly]
--------------------------------------------------------------------------------
[Constant Pool (empty)]
--------------------------------------------------------------------------------
[Verified Entry Point]
# {method} {0x00007f50a0528040} 'linkToSpecial' '(Ljava/lang/Object;Ljava/lang/invoke/MemberName;)Ljava/lang/Object;' in 'java/lang/invoke/MethodHandle'
# parm0: rsi:rsi = 'java/lang/Object'
# parm1: rdx:rdx = 'java/lang/invoke/MemberName'
# [sp+0x0] (sp of caller)
;; verify_klass {
0x00007f50e9151020: test %rdx,%rdx
0x00007f50e9151023: je 0x00007f50e9151050
0x00007f50e9151029: push %rdi
0x00007f50e915102a: push %r10
0x00007f50e915102c: mov 0x8(%rdx),%edi
0x00007f50e915102f: cmp 0xa0f412a(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e9151036: je 0x00007f50e9151064
0x00007f50e915103c: mov 0x40(%rdi),%rdi
0x00007f50e9151040: cmp 0xa0f4119(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e9151047: je 0x00007f50e9151064
0x00007f50e915104d: pop %r10
0x00007f50e915104f: pop %rdi
;; MemberName required for invokeVirtual etc.
0x00007f50e9151050: movabs $0x7f50f2cfdfc0,%rdi ; {external_word}
0x00007f50e915105a: and $0xfffffffffffffff0,%rsp
0x00007f50e915105e: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9151063: hlt
;; L_ok:
0x00007f50e9151064: pop %r10
0x00007f50e9151066: pop %rdi
;; } verify_klass
0x00007f50e9151067: cmp (%rsi),%rax
;; check_receiver {
0x00007f50e915106a: mov 0x8(%rsi),%r10d
0x00007f50e915106e: mov 0x18(%rdx),%r11d
0x00007f50e9151072: cmp 0xa026f67(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e9151079: je 0x00007f50e9151093
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e915107f: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e9151089: and $0xfffffffffffffff0,%rsp
0x00007f50e915108d: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9151092: hlt
0x00007f50e9151093: shl $0x3,%r11
;; verify_klass {
0x00007f50e9151097: test %r11,%r11
0x00007f50e915109a: je 0x00007f50e91510c8
0x00007f50e91510a0: push %rdi
0x00007f50e91510a1: push %r10
0x00007f50e91510a3: mov 0x8(%r11),%edi
0x00007f50e91510a7: cmp 0xa0f3ee2(%rip),%rdi # 0x00007f50f3244f90
; {external_word}
0x00007f50e91510ae: je 0x00007f50e91510dc
0x00007f50e91510b4: mov 0x40(%rdi),%rdi
0x00007f50e91510b8: cmp 0xa0f3ed1(%rip),%rdi # 0x00007f50f3244f90
; {external_word}
0x00007f50e91510bf: je 0x00007f50e91510dc
0x00007f50e91510c5: pop %r10
0x00007f50e91510c7: pop %rdi
;; MH argument is a Class
0x00007f50e91510c8: movabs $0x7f50f2bcc414,%rdi ; {external_word}
0x00007f50e91510d2: and $0xfffffffffffffff0,%rsp
0x00007f50e91510d6: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e91510db: hlt
;; L_ok:
0x00007f50e91510dc: pop %r10
0x00007f50e91510de: pop %rdi
;; } verify_klass
0x00007f50e91510df: mov 0x10(%r11),%r11
0x00007f50e91510e3: cmp %r11,%r10
0x00007f50e91510e6: je 0x00007f50e9151145
0x00007f50e91510ec: mov 0x18(%r11),%eax
0x00007f50e91510f0: cmp (%r10,%rax,1),%r11
0x00007f50e91510f4: je 0x00007f50e9151145
0x00007f50e91510fa: cmp $0x28,%eax
0x00007f50e91510fd: jne 0x00007f50e9151131
0x00007f50e9151103: mov %r11,%rax
0x00007f50e9151106: push %rcx
0x00007f50e9151107: push %rdi
0x00007f50e9151108: movabs $0x7f50f32253e0,%rcx ; {external_word}
0x00007f50e9151112: incl (%rcx)
0x00007f50e9151114: mov 0x30(%r10),%rdi
0x00007f50e9151118: mov (%rdi),%ecx
0x00007f50e915111a: add $0x8,%rdi
0x00007f50e915111e: test %rax,%rax
0x00007f50e9151121: repnz scas %es:(%rdi),%rax
0x00007f50e9151124: pop %rdi
0x00007f50e9151125: pop %rcx
0x00007f50e9151126: jne 0x00007f50e9151131
0x00007f50e9151128: mov %r11,0x28(%r10)
0x00007f50e915112c: jmpq 0x00007f50e9151145
;; receiver class disagrees with MemberName.clazz
0x00007f50e9151131: movabs $0x7f50f2cfe040,%rdi ; {external_word}
0x00007f50e915113b: and $0xfffffffffffffff0,%rsp
0x00007f50e915113f: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9151144: hlt
;; } check_receiver
;; verify_ref_kind {
0x00007f50e9151145: mov 0xc(%rdx),%eax
0x00007f50e9151148: shr $0x18,%eax
0x00007f50e915114b: and $0xf,%eax
0x00007f50e915114e: cmp $0x7,%eax
0x00007f50e9151151: je 0x00007f50e915116b
;; verify_ref_kind expected 7
0x00007f50e9151157: movabs $0x7f50ec4ab640,%rdi ; {external_word}
0x00007f50e9151161: and $0xfffffffffffffff0,%rsp
0x00007f50e9151165: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e915116a: hlt
;; } verify_ref_kind
0x00007f50e915116b: mov 0x24(%rdx),%ebx
0x00007f50e915116e: cmp 0xa026e6b(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e9151175: je 0x00007f50e915118f
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e915117b: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e9151185: and $0xfffffffffffffff0,%rsp
0x00007f50e9151189: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e915118e: hlt
0x00007f50e915118f: shl $0x3,%rbx
0x00007f50e9151193: mov 0x10(%rbx),%rbx
0x00007f50e9151197: test %rbx,%rbx
0x00007f50e915119a: je 0x00007f50e91511a3
0x00007f50e91511a0: jmpq *0x58(%rbx)
0x00007f50e91511a3: jmpq 0x00007f50e907a620 ; {runtime_call AbstractMethodError throw_exception}
--------------------------------------------------------------------------------
[/Disassembly]
582 17 n java.lang.invoke.MethodHandle::linkToSpecial(LL)L (native) (static)
Compiled method (n/a) 592 18 n java.lang.invoke.MethodHandle::linkToSpecial(LL)V (native)
total in heap [0x00007f50e9151210,0x00007f50e91515a8] = 920
relocation [0x00007f50e9151380,0x00007f50e9151410] = 144
main code [0x00007f50e9151420,0x00007f50e91515a8] = 392
[Disassembly]
--------------------------------------------------------------------------------
[Constant Pool (empty)]
--------------------------------------------------------------------------------
[Verified Entry Point]
# {method} {0x00007f50a051fd50} 'linkToSpecial' '(Ljava/lang/Object;Ljava/lang/invoke/MemberName;)V' in 'java/lang/invoke/MethodHandle'
# parm0: rsi:rsi = 'java/lang/Object'
# parm1: rdx:rdx = 'java/lang/invoke/MemberName'
# [sp+0x0] (sp of caller)
;; verify_klass {
0x00007f50e9151420: test %rdx,%rdx
0x00007f50e9151423: je 0x00007f50e9151450
0x00007f50e9151429: push %rdi
0x00007f50e915142a: push %r10
0x00007f50e915142c: mov 0x8(%rdx),%edi
0x00007f50e915142f: cmp 0xa0f3d2a(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e9151436: je 0x00007f50e9151464
0x00007f50e915143c: mov 0x40(%rdi),%rdi
0x00007f50e9151440: cmp 0xa0f3d19(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e9151447: je 0x00007f50e9151464
0x00007f50e915144d: pop %r10
0x00007f50e915144f: pop %rdi
;; MemberName required for invokeVirtual etc.
0x00007f50e9151450: movabs $0x7f50f2cfdfc0,%rdi ; {external_word}
0x00007f50e915145a: and $0xfffffffffffffff0,%rsp
0x00007f50e915145e: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9151463: hlt
;; L_ok:
0x00007f50e9151464: pop %r10
0x00007f50e9151466: pop %rdi
;; } verify_klass
0x00007f50e9151467: cmp (%rsi),%rax
;; check_receiver {
0x00007f50e915146a: mov 0x8(%rsi),%r10d
0x00007f50e915146e: mov 0x18(%rdx),%r11d
0x00007f50e9151472: cmp 0xa026b67(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e9151479: je 0x00007f50e9151493
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e915147f: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e9151489: and $0xfffffffffffffff0,%rsp
0x00007f50e915148d: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9151492: hlt
0x00007f50e9151493: shl $0x3,%r11
;; verify_klass {
0x00007f50e9151497: test %r11,%r11
0x00007f50e915149a: je 0x00007f50e91514c8
0x00007f50e91514a0: push %rdi
0x00007f50e91514a1: push %r10
0x00007f50e91514a3: mov 0x8(%r11),%edi
0x00007f50e91514a7: cmp 0xa0f3ae2(%rip),%rdi # 0x00007f50f3244f90
; {external_word}
0x00007f50e91514ae: je 0x00007f50e91514dc
0x00007f50e91514b4: mov 0x40(%rdi),%rdi
0x00007f50e91514b8: cmp 0xa0f3ad1(%rip),%rdi # 0x00007f50f3244f90
; {external_word}
0x00007f50e91514bf: je 0x00007f50e91514dc
0x00007f50e91514c5: pop %r10
0x00007f50e91514c7: pop %rdi
;; MH argument is a Class
0x00007f50e91514c8: movabs $0x7f50f2bcc414,%rdi ; {external_word}
0x00007f50e91514d2: and $0xfffffffffffffff0,%rsp
0x00007f50e91514d6: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e91514db: hlt
;; L_ok:
0x00007f50e91514dc: pop %r10
0x00007f50e91514de: pop %rdi
;; } verify_klass
0x00007f50e91514df: mov 0x10(%r11),%r11
0x00007f50e91514e3: cmp %r11,%r10
0x00007f50e91514e6: je 0x00007f50e9151545
0x00007f50e91514ec: mov 0x18(%r11),%eax
0x00007f50e91514f0: cmp (%r10,%rax,1),%r11
0x00007f50e91514f4: je 0x00007f50e9151545
0x00007f50e91514fa: cmp $0x28,%eax
0x00007f50e91514fd: jne 0x00007f50e9151531
0x00007f50e9151503: mov %r11,%rax
0x00007f50e9151506: push %rcx
0x00007f50e9151507: push %rdi
0x00007f50e9151508: movabs $0x7f50f32253e0,%rcx ; {external_word}
0x00007f50e9151512: incl (%rcx)
0x00007f50e9151514: mov 0x30(%r10),%rdi
0x00007f50e9151518: mov (%rdi),%ecx
0x00007f50e915151a: add $0x8,%rdi
0x00007f50e915151e: test %rax,%rax
0x00007f50e9151521: repnz scas %es:(%rdi),%rax
0x00007f50e9151524: pop %rdi
0x00007f50e9151525: pop %rcx
0x00007f50e9151526: jne 0x00007f50e9151531
0x00007f50e9151528: mov %r11,0x28(%r10)
0x00007f50e915152c: jmpq 0x00007f50e9151545
;; receiver class disagrees with MemberName.clazz
0x00007f50e9151531: movabs $0x7f50f2cfe040,%rdi ; {external_word}
0x00007f50e915153b: and $0xfffffffffffffff0,%rsp
0x00007f50e915153f: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9151544: hlt
;; } check_receiver
;; verify_ref_kind {
0x00007f50e9151545: mov 0xc(%rdx),%eax
0x00007f50e9151548: shr $0x18,%eax
0x00007f50e915154b: and $0xf,%eax
0x00007f50e915154e: cmp $0x7,%eax
0x00007f50e9151551: je 0x00007f50e915156b
;; verify_ref_kind expected 7
0x00007f50e9151557: movabs $0x7f50ec4c7680,%rdi ; {external_word}
0x00007f50e9151561: and $0xfffffffffffffff0,%rsp
0x00007f50e9151565: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e915156a: hlt
;; } verify_ref_kind
0x00007f50e915156b: mov 0x24(%rdx),%ebx
0x00007f50e915156e: cmp 0xa026a6b(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e9151575: je 0x00007f50e915158f
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e915157b: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e9151585: and $0xfffffffffffffff0,%rsp
0x00007f50e9151589: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e915158e: hlt
0x00007f50e915158f: shl $0x3,%rbx
0x00007f50e9151593: mov 0x10(%rbx),%rbx
0x00007f50e9151597: test %rbx,%rbx
0x00007f50e915159a: je 0x00007f50e91515a3
0x00007f50e91515a0: jmpq *0x58(%rbx)
0x00007f50e91515a3: jmpq 0x00007f50e907a620 ; {runtime_call AbstractMethodError throw_exception}
--------------------------------------------------------------------------------
[/Disassembly]
597 18 n java.lang.invoke.MethodHandle::linkToSpecial(LL)V (native) (static)
Compiled method (n/a) 606 19 n java.lang.invoke.MethodHandle::linkToInterface(LLL)I (native)
total in heap [0x00007f50e9151610,0x00007f50e9151958] = 840
relocation [0x00007f50e9151780,0x00007f50e91517f8] = 120
main code [0x00007f50e9151800,0x00007f50e9151953] = 339
stub code [0x00007f50e9151953,0x00007f50e9151958] = 5
[Disassembly]
--------------------------------------------------------------------------------
[Constant Pool (empty)]
--------------------------------------------------------------------------------
[Verified Entry Point]
# {method} {0x00007f50a050e408} 'linkToInterface' '(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/invoke/MemberName;)I' in 'java/lang/invoke/MethodHandle'
# parm0: rsi:rsi = 'java/lang/Object'
# parm1: rdx:rdx = 'java/lang/Object'
# parm2: rcx:rcx = 'java/lang/invoke/MemberName'
# [sp+0x0] (sp of caller)
;; verify_klass {
0x00007f50e9151800: test %rcx,%rcx
0x00007f50e9151803: je 0x00007f50e9151830
0x00007f50e9151809: push %rdi
0x00007f50e915180a: push %r10
0x00007f50e915180c: mov 0x8(%rcx),%edi
0x00007f50e915180f: cmp 0xa0f394a(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e9151816: je 0x00007f50e9151844
0x00007f50e915181c: mov 0x40(%rdi),%rdi
0x00007f50e9151820: cmp 0xa0f3939(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e9151827: je 0x00007f50e9151844
0x00007f50e915182d: pop %r10
0x00007f50e915182f: pop %rdi
;; MemberName required for invokeVirtual etc.
0x00007f50e9151830: movabs $0x7f50f2cfdfc0,%rdi ; {external_word}
0x00007f50e915183a: and $0xfffffffffffffff0,%rsp
0x00007f50e915183e: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9151843: hlt
;; L_ok:
0x00007f50e9151844: pop %r10
0x00007f50e9151846: pop %rdi
;; } verify_klass
0x00007f50e9151847: mov 0x8(%rsi),%r10d
;; check_receiver {
;; } check_receiver
;; verify_ref_kind {
0x00007f50e915184b: mov 0xc(%rcx),%eax
0x00007f50e915184e: shr $0x18,%eax
0x00007f50e9151851: and $0xf,%eax
0x00007f50e9151854: cmp $0x9,%eax
0x00007f50e9151857: je 0x00007f50e9151871
;; verify_ref_kind expected 9
0x00007f50e915185d: movabs $0x7f50ec4c9740,%rdi ; {external_word}
0x00007f50e9151867: and $0xfffffffffffffff0,%rsp
0x00007f50e915186b: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9151870: hlt
;; } verify_ref_kind
0x00007f50e9151871: mov 0x18(%rcx),%eax
0x00007f50e9151874: cmp 0xa026765(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e915187b: je 0x00007f50e9151895
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e9151881: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e915188b: and $0xfffffffffffffff0,%rsp
0x00007f50e915188f: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9151894: hlt
0x00007f50e9151895: shl $0x3,%rax
;; verify_klass {
0x00007f50e9151899: test %rax,%rax
0x00007f50e915189c: je 0x00007f50e91518c9
0x00007f50e91518a2: push %rdi
0x00007f50e91518a3: push %r10
0x00007f50e91518a5: mov 0x8(%rax),%edi
0x00007f50e91518a8: cmp 0xa0f36e1(%rip),%rdi # 0x00007f50f3244f90
; {external_word}
0x00007f50e91518af: je 0x00007f50e91518dd
0x00007f50e91518b5: mov 0x40(%rdi),%rdi
0x00007f50e91518b9: cmp 0xa0f36d0(%rip),%rdi # 0x00007f50f3244f90
; {external_word}
0x00007f50e91518c0: je 0x00007f50e91518dd
0x00007f50e91518c6: pop %r10
0x00007f50e91518c8: pop %rdi
;; MH argument is a Class
0x00007f50e91518c9: movabs $0x7f50f2bcc414,%rdi ; {external_word}
0x00007f50e91518d3: and $0xfffffffffffffff0,%rsp
0x00007f50e91518d7: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e91518dc: hlt
;; L_ok:
0x00007f50e91518dd: pop %r10
0x00007f50e91518df: pop %rdi
;; } verify_klass
0x00007f50e91518e0: mov 0x10(%rax),%rax
0x00007f50e91518e4: mov 0x10(%rcx),%rbx
0x00007f50e91518e8: cmp $0x0,%ebx
0x00007f50e91518eb: jge 0x00007f50e9151905
;; invalid vtable index for MH.invokeInterface
0x00007f50e91518f1: movabs $0x7f50f2cfe070,%rdi ; {external_word}
0x00007f50e91518fb: and $0xfffffffffffffff0,%rsp
0x00007f50e91518ff: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9151904: hlt
0x00007f50e9151905: mov 0xa8(%r10),%r11d
0x00007f50e915190c: lea 0x1d8(%r10,%r11,8),%r11
0x00007f50e9151914: lea (%r10,%rbx,8),%r10
0x00007f50e9151918: mov (%r11),%rbx
0x00007f50e915191b: cmp %rbx,%rax
0x00007f50e915191e: je 0x00007f50e9151935
0x00007f50e9151920: test %rbx,%rbx
0x00007f50e9151923: je 0x00007f50e915194e
0x00007f50e9151929: add $0x10,%r11
0x00007f50e915192d: mov (%r11),%rbx
0x00007f50e9151930: cmp %rbx,%rax
0x00007f50e9151933: jne 0x00007f50e9151920
0x00007f50e9151935: mov 0x8(%r11),%r11d
0x00007f50e9151939: mov (%r10,%r11,1),%rbx
0x00007f50e915193d: test %rbx,%rbx
0x00007f50e9151940: je 0x00007f50e9151949
0x00007f50e9151946: jmpq *0x58(%rbx)
0x00007f50e9151949: jmpq 0x00007f50e907a620 ; {runtime_call AbstractMethodError throw_exception}
0x00007f50e915194e: jmpq 0x00007f50e907a320 ; {runtime_call IncompatibleClassChangeError throw_exception}
[Stub Code]
0x00007f50e9151953: hlt
0x00007f50e9151954: hlt
0x00007f50e9151955: hlt
0x00007f50e9151956: hlt
0x00007f50e9151957: hlt
--------------------------------------------------------------------------------
[/Disassembly]
610 19 n java.lang.invoke.MethodHandle::linkToInterface(LLL)I (native) (static)
Compiled method (n/a) 621 20 n java.lang.invoke.MethodHandle::linkToStatic(LL)I (native)
total in heap [0x00007f50e9151f90,0x00007f50e9152210] = 640
relocation [0x00007f50e9152100,0x00007f50e9152148] = 72
main code [0x00007f50e9152160,0x00007f50e915220a] = 170
stub code [0x00007f50e915220a,0x00007f50e9152210] = 6
[Disassembly]
--------------------------------------------------------------------------------
[Constant Pool (empty)]
--------------------------------------------------------------------------------
[Verified Entry Point]
# {method} {0x00007f50a0709e40} 'linkToStatic' '(Ljava/lang/Object;Ljava/lang/invoke/MemberName;)I' in 'java/lang/invoke/MethodHandle'
# parm0: rsi:rsi = 'java/lang/Object'
# parm1: rdx:rdx = 'java/lang/invoke/MemberName'
# [sp+0x0] (sp of caller)
;; verify_klass {
0x00007f50e9152160: test %rdx,%rdx
0x00007f50e9152163: je 0x00007f50e9152190
0x00007f50e9152169: push %rdi
0x00007f50e915216a: push %r10
0x00007f50e915216c: mov 0x8(%rdx),%edi
0x00007f50e915216f: cmp 0xa0f2fea(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e9152176: je 0x00007f50e91521a4
0x00007f50e915217c: mov 0x40(%rdi),%rdi
0x00007f50e9152180: cmp 0xa0f2fd9(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e9152187: je 0x00007f50e91521a4
0x00007f50e915218d: pop %r10
0x00007f50e915218f: pop %rdi
;; MemberName required for invokeVirtual etc.
0x00007f50e9152190: movabs $0x7f50f2cfdfc0,%rdi ; {external_word}
0x00007f50e915219a: and $0xfffffffffffffff0,%rsp
0x00007f50e915219e: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e91521a3: hlt
;; L_ok:
0x00007f50e91521a4: pop %r10
0x00007f50e91521a6: pop %rdi
;; } verify_klass
;; verify_ref_kind {
0x00007f50e91521a7: mov 0xc(%rdx),%eax
0x00007f50e91521aa: shr $0x18,%eax
0x00007f50e91521ad: and $0xf,%eax
0x00007f50e91521b0: cmp $0x6,%eax
0x00007f50e91521b3: je 0x00007f50e91521cd
;; verify_ref_kind expected 6
0x00007f50e91521b9: movabs $0x7f50ec4cbce0,%rdi ; {external_word}
0x00007f50e91521c3: and $0xfffffffffffffff0,%rsp
0x00007f50e91521c7: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e91521cc: hlt
;; } verify_ref_kind
0x00007f50e91521cd: mov 0x24(%rdx),%ebx
0x00007f50e91521d0: cmp 0xa025e09(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e91521d7: je 0x00007f50e91521f1
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e91521dd: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e91521e7: and $0xfffffffffffffff0,%rsp
0x00007f50e91521eb: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e91521f0: hlt
0x00007f50e91521f1: shl $0x3,%rbx
0x00007f50e91521f5: mov 0x10(%rbx),%rbx
0x00007f50e91521f9: test %rbx,%rbx
0x00007f50e91521fc: je 0x00007f50e9152205
0x00007f50e9152202: jmpq *0x58(%rbx)
0x00007f50e9152205: jmpq 0x00007f50e907a620 ; {runtime_call AbstractMethodError throw_exception}
[Stub Code]
0x00007f50e915220a: hlt
0x00007f50e915220b: hlt
0x00007f50e915220c: hlt
0x00007f50e915220d: hlt
0x00007f50e915220e: hlt
0x00007f50e915220f: hlt
--------------------------------------------------------------------------------
[/Disassembly]
623 20 n java.lang.invoke.MethodHandle::linkToStatic(LL)I (native) (static)
Compiled method (n/a) 628 21 n java.lang.invoke.MethodHandle::linkToStatic(LLL)I (native)
total in heap [0x00007f50e9152290,0x00007f50e9152510] = 640
relocation [0x00007f50e9152400,0x00007f50e9152448] = 72
main code [0x00007f50e9152460,0x00007f50e915250a] = 170
stub code [0x00007f50e915250a,0x00007f50e9152510] = 6
[Disassembly]
--------------------------------------------------------------------------------
[Constant Pool (empty)]
--------------------------------------------------------------------------------
[Verified Entry Point]
# {method} {0x00007f50a070bf18} 'linkToStatic' '(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/invoke/MemberName;)I' in 'java/lang/invoke/MethodHandle'
# parm0: rsi:rsi = 'java/lang/Object'
# parm1: rdx:rdx = 'java/lang/Object'
# parm2: rcx:rcx = 'java/lang/invoke/MemberName'
# [sp+0x0] (sp of caller)
;; verify_klass {
0x00007f50e9152460: test %rcx,%rcx
0x00007f50e9152463: je 0x00007f50e9152490
0x00007f50e9152469: push %rdi
0x00007f50e915246a: push %r10
0x00007f50e915246c: mov 0x8(%rcx),%edi
0x00007f50e915246f: cmp 0xa0f2cea(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e9152476: je 0x00007f50e91524a4
0x00007f50e915247c: mov 0x40(%rdi),%rdi
0x00007f50e9152480: cmp 0xa0f2cd9(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e9152487: je 0x00007f50e91524a4
0x00007f50e915248d: pop %r10
0x00007f50e915248f: pop %rdi
;; MemberName required for invokeVirtual etc.
0x00007f50e9152490: movabs $0x7f50f2cfdfc0,%rdi ; {external_word}
0x00007f50e915249a: and $0xfffffffffffffff0,%rsp
0x00007f50e915249e: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e91524a3: hlt
;; L_ok:
0x00007f50e91524a4: pop %r10
0x00007f50e91524a6: pop %rdi
;; } verify_klass
;; verify_ref_kind {
0x00007f50e91524a7: mov 0xc(%rcx),%eax
0x00007f50e91524aa: shr $0x18,%eax
0x00007f50e91524ad: and $0xf,%eax
0x00007f50e91524b0: cmp $0x6,%eax
0x00007f50e91524b3: je 0x00007f50e91524cd
;; verify_ref_kind expected 6
0x00007f50e91524b9: movabs $0x7f50ec4d8780,%rdi ; {external_word}
0x00007f50e91524c3: and $0xfffffffffffffff0,%rsp
0x00007f50e91524c7: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e91524cc: hlt
;; } verify_ref_kind
0x00007f50e91524cd: mov 0x24(%rcx),%ebx
0x00007f50e91524d0: cmp 0xa025b09(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e91524d7: je 0x00007f50e91524f1
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e91524dd: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e91524e7: and $0xfffffffffffffff0,%rsp
0x00007f50e91524eb: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e91524f0: hlt
0x00007f50e91524f1: shl $0x3,%rbx
0x00007f50e91524f5: mov 0x10(%rbx),%rbx
0x00007f50e91524f9: test %rbx,%rbx
0x00007f50e91524fc: je 0x00007f50e9152505
0x00007f50e9152502: jmpq *0x58(%rbx)
0x00007f50e9152505: jmpq 0x00007f50e907a620 ; {runtime_call AbstractMethodError throw_exception}
[Stub Code]
0x00007f50e915250a: hlt
0x00007f50e915250b: hlt
0x00007f50e915250c: hlt
0x00007f50e915250d: hlt
0x00007f50e915250e: hlt
0x00007f50e915250f: hlt
--------------------------------------------------------------------------------
[/Disassembly]
630 21 n java.lang.invoke.MethodHandle::linkToStatic(LLL)I (native) (static)
Compiled method (n/a) 633 22 n java.lang.invoke.MethodHandle::linkToVirtual(LL)L (native)
total in heap [0x00007f50e9152590,0x00007f50e9152928] = 920
relocation [0x00007f50e9152700,0x00007f50e9152788] = 136
main code [0x00007f50e91527a0,0x00007f50e9152923] = 387
stub code [0x00007f50e9152923,0x00007f50e9152928] = 5
[Disassembly]
--------------------------------------------------------------------------------
[Constant Pool (empty)]
--------------------------------------------------------------------------------
[Verified Entry Point]
# {method} {0x00007f50a070c490} 'linkToVirtual' '(Ljava/lang/Object;Ljava/lang/invoke/MemberName;)Ljava/lang/Object;' in 'java/lang/invoke/MethodHandle'
# parm0: rsi:rsi = 'java/lang/Object'
# parm1: rdx:rdx = 'java/lang/invoke/MemberName'
# [sp+0x0] (sp of caller)
;; verify_klass {
0x00007f50e91527a0: test %rdx,%rdx
0x00007f50e91527a3: je 0x00007f50e91527d0
0x00007f50e91527a9: push %rdi
0x00007f50e91527aa: push %r10
0x00007f50e91527ac: mov 0x8(%rdx),%edi
0x00007f50e91527af: cmp 0xa0f29aa(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e91527b6: je 0x00007f50e91527e4
0x00007f50e91527bc: mov 0x40(%rdi),%rdi
0x00007f50e91527c0: cmp 0xa0f2999(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e91527c7: je 0x00007f50e91527e4
0x00007f50e91527cd: pop %r10
0x00007f50e91527cf: pop %rdi
;; MemberName required for invokeVirtual etc.
0x00007f50e91527d0: movabs $0x7f50f2cfdfc0,%rdi ; {external_word}
0x00007f50e91527da: and $0xfffffffffffffff0,%rsp
0x00007f50e91527de: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e91527e3: hlt
;; L_ok:
0x00007f50e91527e4: pop %r10
0x00007f50e91527e6: pop %rdi
;; } verify_klass
0x00007f50e91527e7: mov 0x8(%rsi),%r10d
;; check_receiver {
0x00007f50e91527eb: mov 0x18(%rdx),%r11d
0x00007f50e91527ef: cmp 0xa0257ea(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e91527f6: je 0x00007f50e9152810
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e91527fc: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e9152806: and $0xfffffffffffffff0,%rsp
0x00007f50e915280a: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e915280f: hlt
0x00007f50e9152810: shl $0x3,%r11
;; verify_klass {
0x00007f50e9152814: test %r11,%r11
0x00007f50e9152817: je 0x00007f50e9152845
0x00007f50e915281d: push %rdi
0x00007f50e915281e: push %r10
0x00007f50e9152820: mov 0x8(%r11),%edi
0x00007f50e9152824: cmp 0xa0f2765(%rip),%rdi # 0x00007f50f3244f90
; {external_word}
0x00007f50e915282b: je 0x00007f50e9152859
0x00007f50e9152831: mov 0x40(%rdi),%rdi
0x00007f50e9152835: cmp 0xa0f2754(%rip),%rdi # 0x00007f50f3244f90
; {external_word}
0x00007f50e915283c: je 0x00007f50e9152859
0x00007f50e9152842: pop %r10
0x00007f50e9152844: pop %rdi
;; MH argument is a Class
0x00007f50e9152845: movabs $0x7f50f2bcc414,%rdi ; {external_word}
0x00007f50e915284f: and $0xfffffffffffffff0,%rsp
0x00007f50e9152853: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9152858: hlt
;; L_ok:
0x00007f50e9152859: pop %r10
0x00007f50e915285b: pop %rdi
;; } verify_klass
0x00007f50e915285c: mov 0x10(%r11),%r11
0x00007f50e9152860: cmp %r11,%r10
0x00007f50e9152863: je 0x00007f50e91528c2
0x00007f50e9152869: mov 0x18(%r11),%eax
0x00007f50e915286d: cmp (%r10,%rax,1),%r11
0x00007f50e9152871: je 0x00007f50e91528c2
0x00007f50e9152877: cmp $0x28,%eax
0x00007f50e915287a: jne 0x00007f50e91528ae
0x00007f50e9152880: mov %r11,%rax
0x00007f50e9152883: push %rcx
0x00007f50e9152884: push %rdi
0x00007f50e9152885: movabs $0x7f50f32253e0,%rcx ; {external_word}
0x00007f50e915288f: incl (%rcx)
0x00007f50e9152891: mov 0x30(%r10),%rdi
0x00007f50e9152895: mov (%rdi),%ecx
0x00007f50e9152897: add $0x8,%rdi
0x00007f50e915289b: test %rax,%rax
0x00007f50e915289e: repnz scas %es:(%rdi),%rax
0x00007f50e91528a1: pop %rdi
0x00007f50e91528a2: pop %rcx
0x00007f50e91528a3: jne 0x00007f50e91528ae
0x00007f50e91528a5: mov %r11,0x28(%r10)
0x00007f50e91528a9: jmpq 0x00007f50e91528c2
;; receiver class disagrees with MemberName.clazz
0x00007f50e91528ae: movabs $0x7f50f2cfe040,%rdi ; {external_word}
0x00007f50e91528b8: and $0xfffffffffffffff0,%rsp
0x00007f50e91528bc: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e91528c1: hlt
;; } check_receiver
;; verify_ref_kind {
0x00007f50e91528c2: mov 0xc(%rdx),%eax
0x00007f50e91528c5: shr $0x18,%eax
0x00007f50e91528c8: and $0xf,%eax
0x00007f50e91528cb: cmp $0x5,%eax
0x00007f50e91528ce: je 0x00007f50e91528e8
;; verify_ref_kind expected 5
0x00007f50e91528d4: movabs $0x7f50ec4d8ab0,%rdi ; {external_word}
0x00007f50e91528de: and $0xfffffffffffffff0,%rsp
0x00007f50e91528e2: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e91528e7: hlt
;; } verify_ref_kind
0x00007f50e91528e8: mov 0x10(%rdx),%r11
0x00007f50e91528ec: cmp $0x0,%r11d
0x00007f50e91528f0: jge 0x00007f50e915290a
;; no virtual index
0x00007f50e91528f6: movabs $0x7f50f2bcc60e,%rdi ; {external_word}
0x00007f50e9152900: and $0xfffffffffffffff0,%rsp
0x00007f50e9152904: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9152909: hlt
;; L_index_ok:
0x00007f50e915290a: mov 0x1d8(%r10,%r11,8),%rbx
0x00007f50e9152912: test %rbx,%rbx
0x00007f50e9152915: je 0x00007f50e915291e
0x00007f50e915291b: jmpq *0x58(%rbx)
0x00007f50e915291e: jmpq 0x00007f50e907a620 ; {runtime_call AbstractMethodError throw_exception}
[Stub Code]
0x00007f50e9152923: hlt
0x00007f50e9152924: hlt
0x00007f50e9152925: hlt
0x00007f50e9152926: hlt
0x00007f50e9152927: hlt
--------------------------------------------------------------------------------
[/Disassembly]
637 22 n java.lang.invoke.MethodHandle::linkToVirtual(LL)L (native) (static)
Compiled method (n/a) 644 23 n java.lang.invoke.MethodHandle::linkToSpecial(LL)I (native)
total in heap [0x00007f50e9152990,0x00007f50e9152d28] = 920
relocation [0x00007f50e9152b00,0x00007f50e9152b90] = 144
main code [0x00007f50e9152ba0,0x00007f50e9152d28] = 392
[Disassembly]
--------------------------------------------------------------------------------
[Constant Pool (empty)]
--------------------------------------------------------------------------------
[Verified Entry Point]
# {method} {0x00007f50a071d928} 'linkToSpecial' '(Ljava/lang/Object;Ljava/lang/invoke/MemberName;)I' in 'java/lang/invoke/MethodHandle'
# parm0: rsi:rsi = 'java/lang/Object'
# parm1: rdx:rdx = 'java/lang/invoke/MemberName'
# [sp+0x0] (sp of caller)
;; verify_klass {
0x00007f50e9152ba0: test %rdx,%rdx
0x00007f50e9152ba3: je 0x00007f50e9152bd0
0x00007f50e9152ba9: push %rdi
0x00007f50e9152baa: push %r10
0x00007f50e9152bac: mov 0x8(%rdx),%edi
0x00007f50e9152baf: cmp 0xa0f25aa(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e9152bb6: je 0x00007f50e9152be4
0x00007f50e9152bbc: mov 0x40(%rdi),%rdi
0x00007f50e9152bc0: cmp 0xa0f2599(%rip),%rdi # 0x00007f50f3245160
; {external_word}
0x00007f50e9152bc7: je 0x00007f50e9152be4
0x00007f50e9152bcd: pop %r10
0x00007f50e9152bcf: pop %rdi
;; MemberName required for invokeVirtual etc.
0x00007f50e9152bd0: movabs $0x7f50f2cfdfc0,%rdi ; {external_word}
0x00007f50e9152bda: and $0xfffffffffffffff0,%rsp
0x00007f50e9152bde: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9152be3: hlt
;; L_ok:
0x00007f50e9152be4: pop %r10
0x00007f50e9152be6: pop %rdi
;; } verify_klass
0x00007f50e9152be7: cmp (%rsi),%rax
;; check_receiver {
0x00007f50e9152bea: mov 0x8(%rsi),%r10d
0x00007f50e9152bee: mov 0x18(%rdx),%r11d
0x00007f50e9152bf2: cmp 0xa0253e7(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e9152bf9: je 0x00007f50e9152c13
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e9152bff: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e9152c09: and $0xfffffffffffffff0,%rsp
0x00007f50e9152c0d: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9152c12: hlt
0x00007f50e9152c13: shl $0x3,%r11
;; verify_klass {
0x00007f50e9152c17: test %r11,%r11
0x00007f50e9152c1a: je 0x00007f50e9152c48
0x00007f50e9152c20: push %rdi
0x00007f50e9152c21: push %r10
0x00007f50e9152c23: mov 0x8(%r11),%edi
0x00007f50e9152c27: cmp 0xa0f2362(%rip),%rdi # 0x00007f50f3244f90
; {external_word}
0x00007f50e9152c2e: je 0x00007f50e9152c5c
0x00007f50e9152c34: mov 0x40(%rdi),%rdi
0x00007f50e9152c38: cmp 0xa0f2351(%rip),%rdi # 0x00007f50f3244f90
; {external_word}
0x00007f50e9152c3f: je 0x00007f50e9152c5c
0x00007f50e9152c45: pop %r10
0x00007f50e9152c47: pop %rdi
;; MH argument is a Class
0x00007f50e9152c48: movabs $0x7f50f2bcc414,%rdi ; {external_word}
0x00007f50e9152c52: and $0xfffffffffffffff0,%rsp
0x00007f50e9152c56: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9152c5b: hlt
;; L_ok:
0x00007f50e9152c5c: pop %r10
0x00007f50e9152c5e: pop %rdi
;; } verify_klass
0x00007f50e9152c5f: mov 0x10(%r11),%r11
0x00007f50e9152c63: cmp %r11,%r10
0x00007f50e9152c66: je 0x00007f50e9152cc5
0x00007f50e9152c6c: mov 0x18(%r11),%eax
0x00007f50e9152c70: cmp (%r10,%rax,1),%r11
0x00007f50e9152c74: je 0x00007f50e9152cc5
0x00007f50e9152c7a: cmp $0x28,%eax
0x00007f50e9152c7d: jne 0x00007f50e9152cb1
0x00007f50e9152c83: mov %r11,%rax
0x00007f50e9152c86: push %rcx
0x00007f50e9152c87: push %rdi
0x00007f50e9152c88: movabs $0x7f50f32253e0,%rcx ; {external_word}
0x00007f50e9152c92: incl (%rcx)
0x00007f50e9152c94: mov 0x30(%r10),%rdi
0x00007f50e9152c98: mov (%rdi),%ecx
0x00007f50e9152c9a: add $0x8,%rdi
0x00007f50e9152c9e: test %rax,%rax
0x00007f50e9152ca1: repnz scas %es:(%rdi),%rax
0x00007f50e9152ca4: pop %rdi
0x00007f50e9152ca5: pop %rcx
0x00007f50e9152ca6: jne 0x00007f50e9152cb1
0x00007f50e9152ca8: mov %r11,0x28(%r10)
0x00007f50e9152cac: jmpq 0x00007f50e9152cc5
;; receiver class disagrees with MemberName.clazz
0x00007f50e9152cb1: movabs $0x7f50f2cfe040,%rdi ; {external_word}
0x00007f50e9152cbb: and $0xfffffffffffffff0,%rsp
0x00007f50e9152cbf: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9152cc4: hlt
;; } check_receiver
;; verify_ref_kind {
0x00007f50e9152cc5: mov 0xc(%rdx),%eax
0x00007f50e9152cc8: shr $0x18,%eax
0x00007f50e9152ccb: and $0xf,%eax
0x00007f50e9152cce: cmp $0x7,%eax
0x00007f50e9152cd1: je 0x00007f50e9152ceb
;; verify_ref_kind expected 7
0x00007f50e9152cd7: movabs $0x7f50ec4d9c70,%rdi ; {external_word}
0x00007f50e9152ce1: and $0xfffffffffffffff0,%rsp
0x00007f50e9152ce5: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9152cea: hlt
;; } verify_ref_kind
0x00007f50e9152ceb: mov 0x24(%rdx),%ebx
0x00007f50e9152cee: cmp 0xa0252eb(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e9152cf5: je 0x00007f50e9152d0f
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e9152cfb: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e9152d05: and $0xfffffffffffffff0,%rsp
0x00007f50e9152d09: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9152d0e: hlt
0x00007f50e9152d0f: shl $0x3,%rbx
0x00007f50e9152d13: mov 0x10(%rbx),%rbx
0x00007f50e9152d17: test %rbx,%rbx
0x00007f50e9152d1a: je 0x00007f50e9152d23
0x00007f50e9152d20: jmpq *0x58(%rbx)
0x00007f50e9152d23: jmpq 0x00007f50e907a620 ; {runtime_call AbstractMethodError throw_exception}
--------------------------------------------------------------------------------
[/Disassembly]
649 23 n java.lang.invoke.MethodHandle::linkToSpecial(LL)I (native) (static)
714 24 !b RelockInDeopt::snippet2 (74 bytes)
++++ Eliminated: 341 Unlock 'NonEscObj'
++++ Eliminated: 133 Lock 'NonEscObj'
Scalar 94 CheckCastPP === 91 89 [[ 324 143 324 143 ]] #java/lang/Object:NotNull:exact *,iid=77 Oop:java/lang/Object:NotNull:exact *,iid=77 !jvms: RelockInDeopt::snippet2 @ bci:8 (line 8)
++++ Eliminated: 77 Allocate
============================= C2-compiled nmethod ==============================
# -- Old rsp -- Framesize: 64 --
#r595 rsp+60: in_preserve
#r594 rsp+56: return address
#r593 rsp+52: in_preserve
#r592 rsp+48: saved fp register
#r591 rsp+44: pad2, stack alignment
#r590 rsp+40: pad2, stack alignment
#r589 rsp+36: Fixed slot 5
#r588 rsp+32: Fixed slot 4
#r587 rsp+28: Fixed slot 3
#r586 rsp+24: Fixed slot 2
#r585 rsp+20: Fixed slot 1
#r584 rsp+16: Fixed slot 0
#r599 rsp+12: spill
#r598 rsp+ 8: spill
#r597 rsp+ 4: spill
#r596 rsp+ 0: spill
#
----------------------- MetaData before Compile_id = 24 ------------------------
{method}
- this oop: 0x00007f50a0603318
- method holder: 'RelockInDeopt'
- constants: 0x00007f50a0603028 constant pool [31] {0x00007f50a0603028} for 'RelockInDeopt' cache=0x00007f50a06035b8
- access: 0x9 public static
- flags: 0x40c1 has_monitor_bytecodes monitor_matching queued_for_compilation has_loops_flag_init
- name: 'snippet2'
- signature: '()V'
- max stack: 3
- max locals: 6
- size of params: 0
- method size: 14
- vtable index: -2
- i2i entry: 0x00007f50e900ce20
- adapters: AHE@0x00007f50ec17eab0: 0x i2c: 0x00007f50e91167e0 c2i: 0x00007f50e9116896 c2iUV: 0x00007f50e9116871 c2iNCI: 0x00007f50e91168d0
- compiled entry 0x00007f50e9116896
- code size: 74
- code start: 0x00007f50a06032a0
- code end (excl): 0x00007f50a06032ea
- method data: 0x00007f50a0603738
- checked ex length: 0
- linenumber start: 0x00007f50a06032ea
- localvar length: 0
------------------------ OptoAssembly for Compile_id = 24 -----------------------
#
# void ( )
#
000 N1: # out( B1 ) <- in( B22 B9 B23 ) Freq: 1
000 B1: # out( B17 B2 ) <- BLOCK HEAD IS JUNK Freq: 1
000 # stack bang (192 bytes)
pushq rbp # Save rbp
subq rsp, #48 # Create frame
01a # TLS is in R15
01a movq R11, [R15 + #456 (32-bit)] # ptr
021 movq R10, R11 # spill
024 addq R10, #16 # ptr
028 # TLS is in R15
028 cmpq R10, [R15 + #472 (32-bit)] # raw ptr
02f jae,u B17 P=0.000100 C=-1.000000
035 B2: # out( B3 ) <- in( B1 ) Freq: 0.9999
035 # TLS is in R15
035 movq [R15 + #456 (32-bit)], R10 # ptr
03c PREFETCHNTA [R10 + #192 (32-bit)] # Prefetch allocation to non-temporal cache for write
044 movq [R11], #1 # long
04b movl [R11 + #8 (8-bit)], narrowklass: precise java/lang/Object: 0x00007f50ec30f898:Constant:exact * # compressed klass ptr
053 movl [R11 + #12 (8-bit)], R12 # int (R12_heapbase==0)
057 B3: # out( B19 B4 ) <- in( B18 B2 ) Freq: 1
057
057 MEMBAR-storestore (empty encoding)
057 # checkcastPP of R11
057 movq [rsp + #0], R11 # spill
05b leaq RBX, [rsp + #24] # box lock
060 fastlock R11,RBX ! kills RBX,RAX,R10
0e1 jne B19 P=0.000001 C=-1.000000
0e7 B4: # out( B10 B5 ) <- in( B19 B3 ) Freq: 1
0e7 MEMBAR-acquire (prior CMPXCHG in FastLock so empty encoding)
0e7 movq RBX, java/lang/Class (java/io/Serializable,java/lang/constant/Constable,java/lang/reflect/AnnotatedElement,java/lang/invoke/TypeDescriptor,java/lang/reflect/GenericDeclaration,java/lang/reflect/Type,java/lang/invoke/TypeDescriptor$OfField):exact * # ptr
0f1 # TLS is in R15
0f1 cmpb [R15 + #56 (8-bit)], #0
0f6 jne B10 P=0.001000 C=-1.000000
0fc B5: # out( B7 B6 ) <- in( B21 B12 B10 B4 ) Freq: 1
0fc movq R10, RBX # ptr -> long
0ff movq R11, [rsp + #0] # spill
103 encode_heap_oop_not_null R11,R11
145 movl [RBX + #112 (8-bit)], R11 # compressed ptr ! Field: RelockInDeopt.staticObj
149 movq R11, [rsp + #0] # spill
14d movq R11, R11 # ptr -> long
14d xorq R11, R10 # long
150 shrq R11, #24
154 testq R11, R11
157 je,s B7 P=0.001000 C=-1.000000
159 B6: # out( B13 B7 ) <- in( B5 ) Freq: 0.999
159 shrq R10, #9
15d movq RDI, 0x00007f50e0201000 # ptr
167 addq RDI, R10 # ptr
16a cmpb [RDI], #2
16d jne B13 P=0.001000 C=-1.000000
173 B7: # out( B22 B8 ) <- in( B15 B16 B13 B6 B5 ) Freq: 1
173 movl RBP, [RBX + #116 (8-bit)] # int ! Field: RelockInDeopt.staticInt
176 incl RBP # int
178 movl [RBX + #116 (8-bit)], RBP # int ! Field: RelockInDeopt.staticInt
17b cmpl RBP, #9999
181 jge B22 P=0.000000 C=6784.000000
187 B8: # out( B20 B9 ) <- in( B7 ) Freq: 1
187 MEMBAR-release (a FastUnlock follows so empty encoding)
187 leaq RAX, [rsp + #24] # box lock
18c movq R11, [rsp + #0] # spill
190 fastunlock R11,RAX ! kills RAX,R10
247 jne B20 P=0.000001 C=-1.000000
24d B9: # out( N1 ) <- in( B20 B8 ) Freq: 1
24d addq rsp, 48 # Destroy frame
popq rbp
cmpq rsp, poll_offset[r15_thread]
ja #safepoint_stub # Safepoint: poll for GC
25f ret
260 B10: # out( B5 B11 ) <- in( B4 ) Freq: 0.000999987
260 movl R11, [RBX + #112 (8-bit)] # compressed ptr ! Field: RelockInDeopt.staticObj
264 testl R11, R11 # compressed ptr
267 je B5 P=0.500000 C=-1.000000
26d B11: # out( B21 B12 ) <- in( B10 ) Freq: 0.000499994
26d # TLS is in R15
26d movq R10, [R15 + #40 (8-bit)] # long
271 decode_heap_oop RDI,R11
299 testq R10, R10
29c je B21 P=0.001000 C=-1.000000
2a2 B12: # out( B5 ) <- in( B11 ) Freq: 0.000499494
2a2 # TLS is in R15
2a2 movq R11, [R15 + #48 (8-bit)] # ptr
2a6 movq [R11 + #-8 + R10], RDI # ptr
2ab addq R10, #-8 # long
2af # TLS is in R15
2af movq [R15 + #40 (8-bit)], R10 # long
2b3 jmp B5
2b8 B13: # out( B7 B14 ) <- in( B6 ) Freq: 0.000999
2b8 # TLS is in R15
2b8 movq R10, [R15 + #64 (8-bit)] # long
2bc # TLS is in R15
2bc movq R11, [R15 + #72 (8-bit)] # ptr
2c0 lock addl [rsp + #0], 0 ! membar_volatile
2c6 cmpb [RDI], #0
2c9 je B7 P=0.500000 C=-1.000000
2cf B14: # out( B16 B15 ) <- in( B13 ) Freq: 0.0004995
2cf movb [RDI], R12 # CMS card-mark byte 0 (R12_heapbase==0)
2d2 testq R10, R10
2d5 jne,s B16 P=0.500000 C=-1.000000
2d7 B15: # out( B7 ) <- in( B14 ) Freq: 0.00024975
2d7 # TLS is in R15
2d7 movq RSI, R15 # spill
2da call_leaf,runtime write_ref_field_post_entry
No JVM State Info
#
2ef jmp B7
2f4 B16: # out( B7 ) <- in( B14 ) Freq: 0.00024975
2f4 movq [R11 + #-8 + R10], RDI # ptr
2f9 addq R10, #-8 # long
2fd # TLS is in R15
2fd movq [R15 + #64 (8-bit)], R10 # long
301 jmp B7
306 B17: # out( B23 B18 ) <- in( B1 ) Freq: 0.000100017
306 movq RSI, precise java/lang/Object: 0x00007f50ec30f898:Constant:exact * # ptr
nop # 3 bytes pad for loops and calls
313 call,static wrapper for: _new_instance_Java
# RelockInDeopt::snippet2 @ bci:0 (line 7) L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_
# OopMap {off=792/0x318}
320 B18: # out( B3 ) <- in( B17 ) Freq: 0.000100015
# Block is sole successor of call
320 movq R11, RAX # spill
323 jmp B3
328 B19: # out( B4 ) <- in( B3 ) Freq: 1e-06
328 movq RSI, R11 # spill
32b leaq RDX, [rsp + #24] # box lock
330 movq [rsp + #8], R11 # spill
nop # 2 bytes pad for loops and calls
337 call,static wrapper for: _complete_monitor_locking_Java
# RelockInDeopt::snippet2 @ bci:23 (line 11) L[0]=rsp + #8 L[1]=_ L[2]=#ScObj0 L[3]=rsp + #0 L[4]=_ L[5]=_ MON-BOX0=rsp+16 MON-OBJ(LOCK ELIMINATED)[0]=#ScObj0 MON-BOX1=rsp+24 MON-OBJ[1]=rsp + #0
# ScObj0 java/lang/Object={ }
# OopMap {[0]=Oop [8]=Oop off=828/0x33c}
344 jmp B4
349 B20: # out( B9 ) <- in( B8 ) Freq: 1e-06
349 movq RDI, R11 # spill
34c leaq RSI, [rsp + #24] # box lock
351 # TLS is in R15
351 movq RDX, R15 # spill
354 call_leaf,runtime complete_monitor_unlocking_C
No JVM State Info
#
369 jmp B9
36e B21: # out( B5 ) <- in( B11 ) Freq: 4.99987e-07
36e # TLS is in R15
36e movq RSI, R15 # spill
371 call_leaf,runtime write_ref_field_pre_entry
No JVM State Info
#
386 jmp B5
38b B22: # out( N1 ) <- in( B7 ) Freq: 4.76837e-07
38b movl RSI, #-187 # int
nop # 3 bytes pad for loops and calls
393 call,static wrapper for: uncommon_trap(reason='unstable_if' action='reinterpret' debug_id='0')
# RelockInDeopt::snippet2 @ bci:42 (line 15) L[0]=_ L[1]=_ L[2]=#ScObj0 L[3]=rsp + #0 L[4]=_ L[5]=_ STK[0]=RBP STK[1]=#9999 MON-BOX0=rsp+16 MON-OBJ(LOCK ELIMINATED)[0]=#ScObj0 MON-BOX1=rsp+24 MON-OBJ[1]=rsp + #0
# ScObj0 java/lang/Object={ }
# OopMap {[0]=Oop off=920/0x398}
3a0 stop # ShouldNotReachHere
3b4 B23: # out( N1 ) <- in( B17 ) Freq: 1.00017e-09
3b4 # exception oop is in rax; no code emitted
3b4 movq RSI, RAX # spill
3b7 addq rsp, 48 # Destroy frame
popq rbp
3bc jmp rethrow_stub
--------------------------------------------------------------------------------
----------------------------------- Assembly -----------------------------------
Compiled method (c2) 721 24 ! RelockInDeopt::snippet2 (74 bytes)
total in heap [0x00007f50e9158490,0x00007f50e9158cc0] = 2096
relocation [0x00007f50e9158600,0x00007f50e9158678] = 120
main code [0x00007f50e9158680,0x00007f50e9158a88] = 1032
stub code [0x00007f50e9158a88,0x00007f50e9158aa0] = 24
oops [0x00007f50e9158aa0,0x00007f50e9158ab0] = 16
metadata [0x00007f50e9158ab0,0x00007f50e9158ac0] = 16
scopes data [0x00007f50e9158ac0,0x00007f50e9158b50] = 144
scopes pcs [0x00007f50e9158b50,0x00007f50e9158ca0] = 336
dependencies [0x00007f50e9158ca0,0x00007f50e9158ca8] = 8
handler table [0x00007f50e9158ca8,0x00007f50e9158cc0] = 24
[Disassembly]
--------------------------------------------------------------------------------
[Constant Pool (empty)]
--------------------------------------------------------------------------------
[Verified Entry Point]
# {method} {0x00007f50a0603318} 'snippet2' '()V' in 'RelockInDeopt'
# [sp+0x40] (sp of caller)
;; N1: # out( B1 ) <- in( B22 B9 B23 ) Freq: 1
;; B1: # out( B17 B2 ) <- BLOCK HEAD IS JUNK Freq: 1
0x00007f50e9158680: mov %eax,-0x18000(%rsp)
0x00007f50e9158687: push %rbp
0x00007f50e9158688: sub $0x30,%rsp
0x00007f50e915868c: cmpl $0x0,0x20(%r15)
0x00007f50e9158694: jne 0x00007f50e9158a77
0x00007f50e915869a: mov 0x1c8(%r15),%r11
0x00007f50e91586a1: mov %r11,%r10
0x00007f50e91586a4: add $0x10,%r10
0x00007f50e91586a8: cmp 0x1d8(%r15),%r10
0x00007f50e91586af: jae 0x00007f50e9158986 ;*putstatic staticObj {reexecute=0 rethrow=0 return_oop=0}
; - RelockInDeopt::snippet2@25 (line 12)
;; B2: # out( B3 ) <- in( B1 ) Freq: 0.9999
0x00007f50e91586b5: mov %r10,0x1c8(%r15)
0x00007f50e91586bc: prefetchnta 0xc0(%r10)
0x00007f50e91586c4: movq $0x1,(%r11)
0x00007f50e91586cb: movl $0x53041200,0x8(%r11) ; {metadata('java/lang/Object')}
0x00007f50e91586d3: mov %r12d,0xc(%r11) ;*new {reexecute=0 rethrow=0 return_oop=0}
; - RelockInDeopt::snippet2@0 (line 7)
;; B3: # out( B19 B4 ) <- in( B18 B2 ) Freq: 1
0x00007f50e91586d7: mov %r11,(%rsp)
0x00007f50e91586db: lea 0x18(%rsp),%rbx
0x00007f50e91586e0: mov (%r11),%rax
0x00007f50e91586e3: test $0x2,%al
0x00007f50e91586e5: jne 0x00007f50e9158732
0x00007f50e91586eb: cmpl $0x777,0x730(%r15)
0x00007f50e91586f6: jg 0x00007f50e9158761
0x00007f50e91586fc: and $0xfffffffffffffffc,%rax
0x00007f50e9158700: mov %rax,%r10
0x00007f50e9158703: or $0x1,%rax
0x00007f50e9158707: lock cmpxchg %r10,(%r11)
0x00007f50e915870c: jne 0x00007f50e9158761
0x00007f50e9158712: mov 0x730(%r15),%r10d
0x00007f50e9158719: mov %r11,(%r15,%r10,1)
0x00007f50e915871d: add $0x8,%r10d
0x00007f50e9158721: mov %r10d,0x730(%r15)
0x00007f50e9158728: jmpq 0x00007f50e9158758
0x00007f50e915872d: jmpq 0x00007f50e9158756
0x00007f50e9158732: mov %rax,%r10
0x00007f50e9158735: xor %rax,%rax
0x00007f50e9158738: lock cmpxchg %r15,0x3e(%r10)
0x00007f50e915873e: movq $0x3,(%rbx)
0x00007f50e9158745: je 0x00007f50e9158758
0x00007f50e9158747: cmp %rax,%r15
0x00007f50e915874a: jne 0x00007f50e9158761
0x00007f50e915874c: incq 0x86(%r10)
0x00007f50e9158753: xor %rax,%rax
0x00007f50e9158756: jne 0x00007f50e9158761
0x00007f50e9158758: incq 0x5a8(%r15)
0x00007f50e915875f: xor %eax,%eax
0x00007f50e9158761: jne 0x00007f50e91589a8 ;*monitorenter {reexecute=0 rethrow=0 return_oop=0}
; - RelockInDeopt::snippet2@23 (line 11)
;; B4: # out( B10 B5 ) <- in( B19 B3 ) Freq: 1
0x00007f50e9158767: movabs $0x11f922cf0,%rbx ; {oop(a 'java/lang/Class'{0x000000011f922cf0} = 'RelockInDeopt')}
0x00007f50e9158771: cmpb $0x0,0x38(%r15)
0x00007f50e9158776: jne 0x00007f50e91588e0
;; B5: # out( B7 B6 ) <- in( B21 B12 B10 B4 ) Freq: 1
0x00007f50e915877c: mov %rbx,%r10
0x00007f50e915877f: mov (%rsp),%r11
0x00007f50e9158783: cmp 0xa01f856(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e915878a: je 0x00007f50e91587a4
;; MacroAssembler::encode_heap_oop_not_null2: heap base corrupted?
0x00007f50e9158790: movabs $0x7f50f2cf0a70,%rdi ; {external_word}
0x00007f50e915879a: and $0xfffffffffffffff0,%rsp
0x00007f50e915879e: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e91587a3: hlt
0x00007f50e91587a4: test %r11,%r11
0x00007f50e91587a7: jne 0x00007f50e91587c1
;; null oop passed to encode_heap_oop_not_null2
0x00007f50e91587ad: movabs $0x7f50f2cf0ab0,%rdi ; {external_word}
0x00007f50e91587b7: and $0xfffffffffffffff0,%rsp
0x00007f50e91587bb: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e91587c0: hlt
0x00007f50e91587c1: shr $0x3,%r11
0x00007f50e91587c5: mov %r11d,0x70(%rbx)
0x00007f50e91587c9: mov (%rsp),%r11
0x00007f50e91587cd: xor %r10,%r11
0x00007f50e91587d0: shr $0x18,%r11
0x00007f50e91587d4: test %r11,%r11
0x00007f50e91587d7: je 0x00007f50e91587f3
;; B6: # out( B13 B7 ) <- in( B5 ) Freq: 0.999
0x00007f50e91587d9: shr $0x9,%r10
0x00007f50e91587dd: movabs $0x7f50e0201000,%rdi
0x00007f50e91587e7: add %r10,%rdi
0x00007f50e91587ea: cmpb $0x2,(%rdi)
0x00007f50e91587ed: jne 0x00007f50e9158938 ;*putstatic staticObj {reexecute=0 rethrow=0 return_oop=0}
; - RelockInDeopt::snippet2@25 (line 12)
;; B7: # out( B22 B8 ) <- in( B15 B16 B13 B6 B5 ) Freq: 1
0x00007f50e91587f3: mov 0x74(%rbx),%ebp
0x00007f50e91587f6: inc %ebp ;*iadd {reexecute=0 rethrow=0 return_oop=0}
; - RelockInDeopt::snippet2@32 (line 13)
0x00007f50e91587f8: mov %ebp,0x74(%rbx) ;*putstatic staticInt {reexecute=0 rethrow=0 return_oop=0}
; - RelockInDeopt::snippet2@33 (line 13)
0x00007f50e91587fb: cmp $0x270f,%ebp
0x00007f50e9158801: jge 0x00007f50e9158a0b ;*monitorexit {reexecute=0 rethrow=0 return_oop=0}
; - RelockInDeopt::snippet2@50 (line 18)
;; B8: # out( B20 B9 ) <- in( B7 ) Freq: 1
0x00007f50e9158807: lea 0x18(%rsp),%rax ;*monitorenter {reexecute=0 rethrow=0 return_oop=0}
; - RelockInDeopt::snippet2@23 (line 11)
0x00007f50e915880c: mov (%rsp),%r11
0x00007f50e9158810: mov (%r11),%r10
0x00007f50e9158813: test $0x2,%r10b
0x00007f50e9158817: je 0x00007f50e915888a
0x00007f50e915881d: testb $0x1,0x3e(%r10)
0x00007f50e9158822: jne 0x00007f50e9158a57
0x00007f50e9158828: cmpq $0x0,0x86(%r10)
0x00007f50e9158830: je 0x00007f50e915883b
0x00007f50e9158832: decq 0x86(%r10)
0x00007f50e9158839: jmp 0x00007f50e9158886
0x00007f50e915883b: mov 0x96(%r10),%rax
0x00007f50e9158842: or 0x8e(%r10),%rax
0x00007f50e9158849: jne 0x00007f50e9158855
0x00007f50e915884b: movq $0x0,0x3e(%r10)
0x00007f50e9158853: jmp 0x00007f50e91588bb
0x00007f50e9158855: cmpq $0x0,0x9e(%r10)
0x00007f50e915885d: je 0x00007f50e9158881
0x00007f50e915885f: xor %rax,%rax
0x00007f50e9158862: movq $0x0,0x3e(%r10)
0x00007f50e915886a: lock addl $0x0,(%rsp)
0x00007f50e915886f: cmpq $0x0,0x9e(%r10)
0x00007f50e9158877: jne 0x00007f50e9158886
0x00007f50e9158879: lock cmpxchg %r15,0x3e(%r10)
0x00007f50e915887f: jne 0x00007f50e9158886
0x00007f50e9158881: or $0x1,%eax
0x00007f50e9158884: jmp 0x00007f50e91588bb
0x00007f50e9158886: test $0x0,%al
0x00007f50e9158888: jmp 0x00007f50e91588bb
0x00007f50e915888a: mov %r10,%rax
0x00007f50e915888d: mov %rax,%r10
0x00007f50e9158890: or $0x1,%r10
0x00007f50e9158894: lock cmpxchg %r10,(%r11)
0x00007f50e9158899: jne 0x00007f50e91588c7
0x00007f50e915889f: subl $0x8,0x730(%r15)
0x00007f50e91588a7: mov 0x730(%r15),%r10d
0x00007f50e91588ae: movq $0x0,(%r15,%r10,1)
0x00007f50e91588b6: jmpq 0x00007f50e91588bd ; {no_reloc}
0x00007f50e91588bb: jne 0x00007f50e91588c7
0x00007f50e91588bd: decq 0x5a8(%r15)
0x00007f50e91588c4: xor %r10d,%r10d
0x00007f50e91588c7: jne 0x00007f50e91589c9
;; B9: # out( N1 ) <- in( B20 B8 ) Freq: 1
0x00007f50e91588cd: add $0x30,%rsp
0x00007f50e91588d1: pop %rbp
0x00007f50e91588d2: cmp 0x498(%r15),%rsp ; {poll_return}
0x00007f50e91588d9: ja 0x00007f50e9158a41
0x00007f50e91588df: retq
;; B10: # out( B5 B11 ) <- in( B4 ) Freq: 0.000999987
0x00007f50e91588e0: mov 0x70(%rbx),%r11d
0x00007f50e91588e4: test %r11d,%r11d
0x00007f50e91588e7: je 0x00007f50e915877c
;; B11: # out( B21 B12 ) <- in( B10 ) Freq: 0.000499994
0x00007f50e91588ed: mov 0x28(%r15),%r10
0x00007f50e91588f1: mov %r11,%rdi
0x00007f50e91588f4: cmp 0xa01f6e5(%rip),%r12 # 0x00007f50f3177fe0
; {external_word}
0x00007f50e91588fb: je 0x00007f50e9158915
;; MacroAssembler::decode_heap_oop: heap base corrupted?
0x00007f50e9158901: movabs $0x7f50f2cf0b20,%rdi ; {external_word}
0x00007f50e915890b: and $0xfffffffffffffff0,%rsp
0x00007f50e915890f: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9158914: hlt
0x00007f50e9158915: shl $0x3,%rdi
0x00007f50e9158919: test %r10,%r10
0x00007f50e915891c: je 0x00007f50e91589ee
;; B12: # out( B5 ) <- in( B11 ) Freq: 0.000499494
0x00007f50e9158922: mov 0x30(%r15),%r11
0x00007f50e9158926: mov %rdi,-0x8(%r11,%r10,1)
0x00007f50e915892b: add $0xfffffffffffffff8,%r10
0x00007f50e915892f: mov %r10,0x28(%r15)
0x00007f50e9158933: jmpq 0x00007f50e915877c
;; B13: # out( B7 B14 ) <- in( B6 ) Freq: 0.000999
0x00007f50e9158938: mov 0x40(%r15),%r10
0x00007f50e915893c: mov 0x48(%r15),%r11
0x00007f50e9158940: lock addl $0x0,-0x40(%rsp)
0x00007f50e9158946: cmpb $0x0,(%rdi)
0x00007f50e9158949: je 0x00007f50e91587f3
;; B14: # out( B16 B15 ) <- in( B13 ) Freq: 0.0004995
0x00007f50e915894f: mov %r12b,(%rdi)
0x00007f50e9158952: test %r10,%r10
0x00007f50e9158955: jne 0x00007f50e9158974
;; B15: # out( B7 ) <- in( B14 ) Freq: 0.00024975
0x00007f50e9158957: mov %r15,%rsi
0x00007f50e915895a: movabs $0x7f50f1c4adc0,%r10
0x00007f50e9158964: callq *%r10
0x00007f50e9158967: nopl 0x0(%rax,%rax,1) ; {other}
0x00007f50e915896f: jmpq 0x00007f50e91587f3
;; B16: # out( B7 ) <- in( B14 ) Freq: 0.00024975
0x00007f50e9158974: mov %rdi,-0x8(%r11,%r10,1)
0x00007f50e9158979: add $0xfffffffffffffff8,%r10
0x00007f50e915897d: mov %r10,0x40(%r15) ;*putstatic staticObj {reexecute=0 rethrow=0 return_oop=0}
; - RelockInDeopt::snippet2@25 (line 12)
0x00007f50e9158981: jmpq 0x00007f50e91587f3
;; B17: # out( B23 B18 ) <- in( B1 ) Freq: 0.000100017
0x00007f50e9158986: movabs $0x53041200,%rsi ; {metadata('java/lang/Object')}
0x00007f50e9158990: nop
0x00007f50e9158991: nop
0x00007f50e9158992: nop
0x00007f50e9158993: callq 0x00007f50e9029020 ; ImmutableOopMap {}
;*new {reexecute=0 rethrow=0 return_oop=1}
; - RelockInDeopt::snippet2@0 (line 7)
; {runtime_call _new_instance_Java}
0x00007f50e9158998: nopl 0x508(%rax,%rax,1) ;*new {reexecute=0 rethrow=0 return_oop=0}
; - RelockInDeopt::snippet2@0 (line 7)
; {other}
;; B18: # out( B3 ) <- in( B17 ) Freq: 0.000100015
0x00007f50e91589a0: mov %rax,%r11
0x00007f50e91589a3: jmpq 0x00007f50e91586d7 ;*invokespecial <init> {reexecute=0 rethrow=0 return_oop=0}
; - RelockInDeopt::snippet2@12 (line 8)
;; B19: # out( B4 ) <- in( B3 ) Freq: 1e-06
0x00007f50e91589a8: mov %r11,%rsi
0x00007f50e91589ab: lea 0x18(%rsp),%rdx
0x00007f50e91589b0: mov %r11,0x8(%rsp)
0x00007f50e91589b5: nop
0x00007f50e91589b6: nop
0x00007f50e91589b7: callq 0x00007f50e9125da0 ; ImmutableOopMap {[0]=Oop [8]=Oop }
;*monitorenter {reexecute=0 rethrow=0 return_oop=0}
; - RelockInDeopt::snippet2@23 (line 11)
; {runtime_call _complete_monitor_locking_Java}
0x00007f50e91589bc: nopl 0x100052c(%rax,%rax,1) ; {other}
0x00007f50e91589c4: jmpq 0x00007f50e9158767
;; B20: # out( B9 ) <- in( B8 ) Freq: 1e-06
0x00007f50e91589c9: mov %r11,%rdi
0x00007f50e91589cc: lea 0x18(%rsp),%rsi ;*putstatic staticObj {reexecute=0 rethrow=0 return_oop=0}
; - RelockInDeopt::snippet2@25 (line 12)
0x00007f50e91589d1: mov %r15,%rdx
0x00007f50e91589d4: movabs $0x7f50f2626eb0,%r10
0x00007f50e91589de: callq *%r10
0x00007f50e91589e1: nopl 0x0(%rax,%rax,1) ;*monitorexit {reexecute=0 rethrow=0 return_oop=0}
; - RelockInDeopt::snippet2@50 (line 18)
; {other}
0x00007f50e91589e9: jmpq 0x00007f50e91588cd
;; B21: # out( B5 ) <- in( B11 ) Freq: 4.99987e-07
0x00007f50e91589ee: mov %r15,%rsi
0x00007f50e91589f1: movabs $0x7f50f1c4aa30,%r10
0x00007f50e91589fb: callq *%r10
0x00007f50e91589fe: nopl 0x0(%rax,%rax,1) ; {other}
0x00007f50e9158a06: jmpq 0x00007f50e915877c ;*putstatic staticObj {reexecute=0 rethrow=0 return_oop=0}
; - RelockInDeopt::snippet2@25 (line 12)
;; B22: # out( N1 ) <- in( B7 ) Freq: 4.76837e-07
0x00007f50e9158a0b: mov $0xffffff45,%esi
0x00007f50e9158a10: nop
0x00007f50e9158a11: nop
0x00007f50e9158a12: nop
0x00007f50e9158a13: callq 0x00007f50e911f320 ; ImmutableOopMap {[0]=Oop }
;*if_icmplt {reexecute=1 rethrow=0 return_oop=0}
; - (reexecute) RelockInDeopt::snippet2@42 (line 15)
; {runtime_call UncommonTrapBlob}
0x00007f50e9158a18: nopl 0x2000588(%rax,%rax,1) ; {other}
0x00007f50e9158a20: movabs $0x7f50f2c8b3a0,%rdi ; {external_word}
0x00007f50e9158a2a: and $0xfffffffffffffff0,%rsp
0x00007f50e9158a2e: callq 0x00007f50f22fb4e0 ; {runtime_call MacroAssembler::debug64(char*, long, long*)}
0x00007f50e9158a33: hlt ;*new {reexecute=0 rethrow=0 return_oop=0}
; - RelockInDeopt::snippet2@0 (line 7)
;; B23: # out( N1 ) <- in( B17 ) Freq: 1.00017e-09
0x00007f50e9158a34: mov %rax,%rsi
0x00007f50e9158a37: add $0x30,%rsp
0x00007f50e9158a3b: pop %rbp
0x00007f50e9158a3c: jmpq 0x00007f50e9122ca0 ;*putstatic staticObj {reexecute=0 rethrow=0 return_oop=0}
; - RelockInDeopt::snippet2@25 (line 12)
; {runtime_call _rethrow_Java}
0x00007f50e9158a41: movabs $0x7f50e91588d2,%r10 ; {internal_word}
0x00007f50e9158a4b: mov %r10,0x4b0(%r15)
0x00007f50e9158a52: jmpq 0x00007f50e911e4a0 ; {runtime_call SafepointBlob}
0x00007f50e9158a57: mov %r15,0x3e(%r10)
0x00007f50e9158a5b: subl $0x8,0x730(%r15)
0x00007f50e9158a63: mov 0x730(%r15),%eax
0x00007f50e9158a6a: movq $0x0,(%r15,%rax,1)
0x00007f50e9158a72: jmpq 0x00007f50e9158828
0x00007f50e9158a77: callq Stub::nmethod_entry_barrier ; {runtime_call StubRoutines (final stubs)}
0x00007f50e9158a7c: jmpq 0x00007f50e915869a
0x00007f50e9158a81: hlt
0x00007f50e9158a82: hlt
0x00007f50e9158a83: hlt
0x00007f50e9158a84: hlt
0x00007f50e9158a85: hlt
0x00007f50e9158a86: hlt
0x00007f50e9158a87: hlt
[Exception Handler]
0x00007f50e9158a88: jmpq 0x00007f50e907a920 ; {no_reloc}
[Deopt Handler Code]
0x00007f50e9158a8d: callq 0x00007f50e9158a92
0x00007f50e9158a92: subq $0x5,(%rsp)
0x00007f50e9158a97: jmpq 0x00007f50e911d340 ; {runtime_call DeoptimizationBlob}
0x00007f50e9158a9c: hlt
0x00007f50e9158a9d: hlt
0x00007f50e9158a9e: hlt
0x00007f50e9158a9f: hlt
--------------------------------------------------------------------------------
[/Disassembly]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Oops:
0x00007f50e9158aa0: 0x000000011f0007e0 a 'java/lang/Class'{0x000000011f0007e0} = 'java/lang/Object'
0x00007f50e9158aa8: 0x000000011f8210f8 a 'jdk/internal/loader/ClassLoaders$AppClassLoader'{0x000000011f8210f8}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Metadata:
0x00007f50e9158ab0: 0x0000000053041200 'java/lang/Object'
0x00007f50e9158ab8: 0x00007f50a0603318 {method} {0x00007f50a0603318} 'snippet2' '()V' in 'RelockInDeopt'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
pc-bytecode offsets:
PcDesc(pc=0x00007f50e915867f offset=ffffffff bits=0):
PcDesc(pc=0x00007f50e91586b5 offset=35 bits=0):
RelockInDeopt::snippet2@25 (line 12)
PcDesc(pc=0x00007f50e91586d7 offset=57 bits=0):
RelockInDeopt::snippet2@0 (line 7)
PcDesc(pc=0x00007f50e9158767 offset=e7 bits=0):
RelockInDeopt::snippet2@23 (line 11)
PcDesc(pc=0x00007f50e91587f3 offset=173 bits=0):
RelockInDeopt::snippet2@25 (line 12)
PcDesc(pc=0x00007f50e91587f8 offset=178 bits=0):
RelockInDeopt::snippet2@32 (line 13)
PcDesc(pc=0x00007f50e91587fb offset=17b bits=0):
RelockInDeopt::snippet2@33 (line 13)
PcDesc(pc=0x00007f50e9158807 offset=187 bits=0):
RelockInDeopt::snippet2@50 (line 18)
PcDesc(pc=0x00007f50e915880c offset=18c bits=0):
RelockInDeopt::snippet2@23 (line 11)
PcDesc(pc=0x00007f50e9158981 offset=301 bits=0):
RelockInDeopt::snippet2@25 (line 12)
PcDesc(pc=0x00007f50e9158998 offset=318 bits=4):
RelockInDeopt::snippet2@0 (line 7)
Locals
- l0: empty
- l1: empty
- l2: empty
- l3: empty
- l4: empty
- l5: empty
PcDesc(pc=0x00007f50e91589a0 offset=320 bits=0):
RelockInDeopt::snippet2@0 (line 7)
PcDesc(pc=0x00007f50e91589a8 offset=328 bits=0):
RelockInDeopt::snippet2@12 (line 8)
PcDesc(pc=0x00007f50e91589bc offset=33c bits=0):
RelockInDeopt::snippet2@23 (line 11)
Locals
- l0: stack[8],oop
- l1: empty
- l2: obj[101]
- l3: stack[0],oop
- l4: empty
- l5: empty
Monitor stack
- @0: monitor{obj[101],stack[16]} (eliminated)
- @1: monitor{stack[0],oop,stack[24]}
Objects
- 0: R obj[101], java.lang.Object
Fields:
PcDesc(pc=0x00007f50e91589d1 offset=351 bits=0):
RelockInDeopt::snippet2@25 (line 12)
PcDesc(pc=0x00007f50e91589e9 offset=369 bits=0):
RelockInDeopt::snippet2@50 (line 18)
PcDesc(pc=0x00007f50e9158a0b offset=38b bits=0):
RelockInDeopt::snippet2@25 (line 12)
PcDesc(pc=0x00007f50e9158a18 offset=398 bits=1):
RelockInDeopt::snippet2@42 (line 15) reexecute=true
Locals
- l0: empty
- l1: empty
- l2: obj[166]
- l3: stack[0],oop
- l4: empty
- l5: empty
Expression stack
- @0: reg rbp [10],int
- @1: 9999
Monitor stack
- @0: monitor{obj[166],stack[16]} (eliminated)
- @1: monitor{stack[0],oop,stack[24]}
Objects
- 0: R obj[166], java.lang.Object
Fields:
PcDesc(pc=0x00007f50e9158a34 offset=3b4 bits=0):
RelockInDeopt::snippet2@0 (line 7)
PcDesc(pc=0x00007f50e9158a41 offset=3c1 bits=0):
RelockInDeopt::snippet2@25 (line 12)
PcDesc(pc=0x00007f50e9158aa1 offset=421 bits=0):
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
oop maps:ImmutableOopMapSet contains 3 OopMaps
ImmutableOopMap {} pc offsets: 792
ImmutableOopMap {[0]=Oop [8]=Oop } pc offsets: 828
ImmutableOopMap {[0]=Oop } pc offsets: 920
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
scopes:
ScopeDesc(pc=0x00007f50e91586b5 offset=35):
RelockInDeopt::snippet2@25 (line 12)
ScopeDesc(pc=0x00007f50e91586d7 offset=57):
RelockInDeopt::snippet2@0 (line 7)
ScopeDesc(pc=0x00007f50e9158767 offset=e7):
RelockInDeopt::snippet2@23 (line 11)
ScopeDesc(pc=0x00007f50e91587f3 offset=173):
RelockInDeopt::snippet2@25 (line 12)
ScopeDesc(pc=0x00007f50e91587f8 offset=178):
RelockInDeopt::snippet2@32 (line 13)
ScopeDesc(pc=0x00007f50e91587fb offset=17b):
RelockInDeopt::snippet2@33 (line 13)
ScopeDesc(pc=0x00007f50e9158807 offset=187):
RelockInDeopt::snippet2@50 (line 18)
ScopeDesc(pc=0x00007f50e915880c offset=18c):
RelockInDeopt::snippet2@23 (line 11)
ScopeDesc(pc=0x00007f50e9158981 offset=301):
RelockInDeopt::snippet2@25 (line 12)
ScopeDesc(pc=0x00007f50e9158998 offset=318):
RelockInDeopt::snippet2@0 (line 7)
Locals
- l0: empty
- l1: empty
- l2: empty
- l3: empty
- l4: empty
- l5: empty
ScopeDesc(pc=0x00007f50e91589a0 offset=320):
RelockInDeopt::snippet2@0 (line 7)
ScopeDesc(pc=0x00007f50e91589a8 offset=328):
RelockInDeopt::snippet2@12 (line 8)
ScopeDesc(pc=0x00007f50e91589bc offset=33c):
RelockInDeopt::snippet2@23 (line 11)
Locals
- l0: stack[8],oop
- l1: empty
- l2: obj[101]
- l3: stack[0],oop
- l4: empty
- l5: empty
Monitor stack
- @0: monitor{obj[101],stack[16]} (eliminated)
- @1: monitor{stack[0],oop,stack[24]}
Objects
- 0: R obj[101], java.lang.Object
Fields:
ScopeDesc(pc=0x00007f50e91589d1 offset=351):
RelockInDeopt::snippet2@25 (line 12)
ScopeDesc(pc=0x00007f50e91589e9 offset=369):
RelockInDeopt::snippet2@50 (line 18)
ScopeDesc(pc=0x00007f50e9158a0b offset=38b):
RelockInDeopt::snippet2@25 (line 12)
ScopeDesc(pc=0x00007f50e9158a18 offset=398):
RelockInDeopt::snippet2@42 (line 15) reexecute=true
Locals
- l0: empty
- l1: empty
- l2: obj[166]
- l3: stack[0],oop
- l4: empty
- l5: empty
Expression stack
- @0: reg rbp [10],int
- @1: 9999
Monitor stack
- @0: monitor{obj[166],stack[16]} (eliminated)
- @1: monitor{stack[0],oop,stack[24]}
Objects
- 0: R obj[166], java.lang.Object
Fields:
ScopeDesc(pc=0x00007f50e9158a34 offset=3b4):
RelockInDeopt::snippet2@0 (line 7)
ScopeDesc(pc=0x00007f50e9158a41 offset=3c1):
RelockInDeopt::snippet2@25 (line 12)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
relocations:
@0x00007f50e9158600: 7801634b
relocInfo@0x00007f50e9158602 [type=12(metadata) addr=0x00007f50e91586cb offset=75 format=3 data=1] | [metadata_addr=0x00007f50e9158ab0 *=0x0000000053041200 offset=0]metadata_value=0x0000000053041200: 'java/lang/Object'
@0x00007f50e9158604: 089c
relocInfo@0x00007f50e9158604 [type=1(oop) addr=0x00007f50e9158767 offset=156] | [oop_addr=0x00007f50e9158769 *=0x000000011f922cf0 offset=0]
@0x00007f50e9158606: 7c03f3177fe07f50391c
relocInfo@0x00007f50e915860e [type=7(external_word) addr=0x00007f50e9158783 offset=28 format=1 data={f3177fe07f50}] | [target=0x00007f50f3177fe0]
@0x00007f50e9158610: 7c03f2cf0a707f50380d
relocInfo@0x00007f50e9158618 [type=7(external_word) addr=0x00007f50e9158790 offset=13 data={f2cf0a707f50}] | [target=0x00007f50f2cf0a70]
@0x00007f50e915861a: 310e
relocInfo@0x00007f50e915861a [type=6(runtime_call) addr=0x00007f50e915879e offset=14 format=1] | [destination=0x00007f50f22fb4e0]
@0x00007f50e915861c: 7c03f2cf0ab07f50380f
relocInfo@0x00007f50e9158624 [type=7(external_word) addr=0x00007f50e91587ad offset=15 data={f2cf0ab07f50}] | [target=0x00007f50f2cf0ab0]
@0x00007f50e9158626: 310e
relocInfo@0x00007f50e9158626 [type=6(runtime_call) addr=0x00007f50e91587bb offset=14 format=1] | [destination=0x00007f50f22fb4e0]
@0x00007f50e9158628: 00ff
relocInfo@0x00007f50e9158628 [type=0(none) addr=0x00007f50e91588ba offset=255]
@0x00007f50e915862a: 5818
relocInfo@0x00007f50e915862a [type=11(poll_return) addr=0x00007f50e91588d2 offset=24]
@0x00007f50e915862c: 7c03f3177fe07f503922
relocInfo@0x00007f50e9158634 [type=7(external_word) addr=0x00007f50e91588f4 offset=34 format=1 data={f3177fe07f50}] | [target=0x00007f50f3177fe0]
@0x00007f50e9158636: 7c03f2cf0b207f50380d
relocInfo@0x00007f50e915863e [type=7(external_word) addr=0x00007f50e9158901 offset=13 data={f2cf0b207f50}] | [target=0x00007f50f2cf0b20]
@0x00007f50e9158640: 310e
relocInfo@0x00007f50e9158640 [type=6(runtime_call) addr=0x00007f50e915890f offset=14 format=1] | [destination=0x00007f50f22fb4e0]
@0x00007f50e9158642: 8058
relocInfo@0x00007f50e9158642 [type=16(post_call_nop) addr=0x00007f50e9158967 offset=88]
@0x00007f50e9158644: 601f
relocInfo@0x00007f50e9158644 [type=12(metadata) addr=0x00007f50e9158986 offset=31] | [metadata_addr=0x00007f50e9158988 *=0x0000000053041200 offset=0]metadata_value=0x0000000053041200: 'java/lang/Object'
@0x00007f50e9158646: 310d
relocInfo@0x00007f50e9158646 [type=6(runtime_call) addr=0x00007f50e9158993 offset=13 format=1] | [destination=0x00007f50e9029020]
@0x00007f50e9158648: 8005
relocInfo@0x00007f50e9158648 [type=16(post_call_nop) addr=0x00007f50e9158998 offset=5]
@0x00007f50e915864a: 311f
relocInfo@0x00007f50e915864a [type=6(runtime_call) addr=0x00007f50e91589b7 offset=31 format=1] | [destination=0x00007f50e9125da0]
@0x00007f50e915864c: 8005
relocInfo@0x00007f50e915864c [type=16(post_call_nop) addr=0x00007f50e91589bc offset=5]
@0x00007f50e915864e: 8025
relocInfo@0x00007f50e915864e [type=16(post_call_nop) addr=0x00007f50e91589e1 offset=37]
@0x00007f50e9158650: 801d
relocInfo@0x00007f50e9158650 [type=16(post_call_nop) addr=0x00007f50e91589fe offset=29]
@0x00007f50e9158652: 3115
relocInfo@0x00007f50e9158652 [type=6(runtime_call) addr=0x00007f50e9158a13 offset=21 format=1] | [destination=0x00007f50e911f320]
@0x00007f50e9158654: 8005
relocInfo@0x00007f50e9158654 [type=16(post_call_nop) addr=0x00007f50e9158a18 offset=5]
@0x00007f50e9158656: 7c03f2c8b3a07f503808
relocInfo@0x00007f50e915865e [type=7(external_word) addr=0x00007f50e9158a20 offset=8 data={f2c8b3a07f50}] | [target=0x00007f50f2c8b3a0]
@0x00007f50e9158660: 310e
relocInfo@0x00007f50e9158660 [type=6(runtime_call) addr=0x00007f50e9158a2e offset=14 format=1] | [destination=0x00007f50f22fb4e0]
@0x00007f50e9158662: 310e
relocInfo@0x00007f50e9158662 [type=6(runtime_call) addr=0x00007f50e9158a3c offset=14 format=1] | [destination=0x00007f50e9122ca0]
@0x00007f50e9158664: 796f4005
relocInfo@0x00007f50e9158666 [type=8(internal_word) addr=0x00007f50e9158a41 offset=5 data=367] | [target=0x00007f50e91588d2]
@0x00007f50e9158668: 3111
relocInfo@0x00007f50e9158668 [type=6(runtime_call) addr=0x00007f50e9158a52 offset=17 format=1] | [destination=0x00007f50e911e4a0]
@0x00007f50e915866a: 3125
relocInfo@0x00007f50e915866a [type=6(runtime_call) addr=0x00007f50e9158a77 offset=37 format=1] | [destination=0x00007f50e907c7e0]
@0x00007f50e915866c: 0011
relocInfo@0x00007f50e915866c [type=0(none) addr=0x00007f50e9158a88 offset=17]
@0x00007f50e915866e: 3100
relocInfo@0x00007f50e915866e [type=6(runtime_call) addr=0x00007f50e9158a88 offset=0 format=1] | [destination=0x00007f50e907a920]
@0x00007f50e9158670: 310f
relocInfo@0x00007f50e9158670 [type=6(runtime_call) addr=0x00007f50e9158a97 offset=15 format=1] | [destination=0x00007f50e911d340]
@0x00007f50e9158672: 0000
relocInfo@0x00007f50e9158672 [type=0(none) addr=0x00007f50e9158a97 offset=0]
@0x00007f50e9158674: 0000
relocInfo@0x00007f50e9158674 [type=0(none) addr=0x00007f50e9158a97 offset=0]
@0x00007f50e9158676: 0000
relocInfo@0x00007f50e9158676 [type=0(none) addr=0x00007f50e9158a97 offset=0]
@0x00007f50e9158678:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Dependencies:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ExceptionHandlerTable (size = 24 bytes)
catch_pco = 792 (pc=0x00007f50e9158998, 1 entries)
bci -1 at scope depth 0 -> pco 948 (pc=0x00007f50e9158a34)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ImplicitExceptionTable is empty
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Recorded oops:
#0: 0x0000000000000000 nullptr-oop
#1: 0x000000011f0007e0 a 'java/lang/Class'{0x000000011f0007e0} = 'java/lang/Object'
#2: 0x000000011f8210f8 a 'jdk/internal/loader/ClassLoaders$AppClassLoader'{0x000000011f8210f8}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Recorded metadata:
#0: 0x0000000000000000 nullptr-oop
#1: 0x0000000053041200 'java/lang/Object'
#2: 0x00007f50a0603318 {method} {0x00007f50a0603318} 'snippet2' '()V' in 'RelockInDeopt'
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
UNCOMMON TRAP method=RelockInDeopt.snippet2()V bci=42 pc=0x00007f50e9158a18, relative_pc=0x0000000000000398, debug_id=0 compiler=c2 compile_id=24 (@0x00007f50e9158a18) thread=52022 reason=unstable_if action=reinterpret unloaded_class_index=-1 debug_id=0
733 24 ! RelockInDeopt::snippet2 (74 bytes) made not entrant
reassign fields for object of type java/lang/Object!
REALLOC OBJECTS in thread 0x00007f50ec02aee0
object <0x000000011f964c00> of type 'java/lang/Object' allocated (16 bytes)
RELOCK OBJECTS in thread 0x00007f50ec02aee0
object <0x000000011f964c00> locked
DEOPT PACKING thread=0x00007f50ec02aee0 vframeArray=0x00007f50ec553c20
Compiled frame (sp=0x00007f50f3e33910 unextended sp=0x00007f50f3e33910, fp=0x000000000000270f, real_fp=0x00007f50f3e33950, pc=0x00007f50e9158a18)
nmethod734 24 ! RelockInDeopt::snippet2 (74 bytes)
Virtual frames (innermost/newest first):
VFrame 0 (0x00007f508009dcd0) - RelockInDeopt.snippet2()V - if_icmplt @ bci=42
DEOPT UNPACKING thread=0x00007f50ec02aee0 vframeArray=0x00007f50ec553c20 mode=2
Virtual frames (outermost/oldest first):
VFrame 0 (0x00007f50ec554f00) - RelockInDeopt.snippet2()V - if_icmplt @ bci=42 sp=0x00007f50f3e33898
Expressions size: 2
- Reconstructed expression 0 (INT): 9999
- Reconstructed expression 1 (INT): 9999
Locals size: 6
- Reconstructed local 2 (OBJECT): java/lang/Object
- Reconstructed local 3 (OBJECT): java/lang/Object
[1. Interpreted Frame]
Interpreted frame (sp=0x00007f50f3e33898 unextended sp=0x00007f50f3e33898, fp=0x00007f50f3e33910, real_fp=0x00007f50f3e33910, pc=0x00007f50e9024ac0)
~deoptimization entry points [0x00007f50e9024ac0, 0x00007f50e90280d8] 13848 bytes
BufferBlob (0x00007f50e9007a90) used for Interpreter
- local [0x0000000000000000]; #0
- local [0x0000000000000000]; #1
- local [0x000000011f964c00]; #2
- local [0x000000011f964bf0]; #3
- local [0x0000000000000000]; #4
- local [0x0000000000000000]; #5
- stack [0xdeaddeaf0000270f]; #1
- stack [0xdeaddeaf0000270f]; #0
- obj [a 'java/lang/Object'{0x000000011f964bf0}]
- lock [monitor locked(0x00000000de0bd000)]
- obj [a 'java/lang/Object'{0x000000011f964c00}]
- lock [monitor locked(0x00000000de0bd000)]
- monitor[0x00007f50f3e338c8]
- bcp [0x00007f50a06032ca]; @42
- locals [0x00007f50f3e33948]
- method [0x00007f50a0603318]; static void RelockInDeopt.snippet2()
{method} {0x00007f50a0603318} 'snippet2' '()V' in 'RelockInDeopt'
bci: 42
locals:
0 null <0x0000000000000000>
1 null <0x0000000000000000>
2 a 'java/lang/Object'{0x000000011f964c00} <0x000000011f964c00>
3 a 'java/lang/Object'{0x000000011f964bf0} <0x000000011f964bf0>
4 0 (int) 0.000000 (float) 0 (hex) 0 (long)
0.000000000000000e+00 (double) 0x0000000000000000 (longhex)
5 0 (int) 0.000000 (float) 0 (hex)
expressions:
0 9999 (int) 0.000000 (float) 270f (hex) -2401018183117953265 (long)
-1.193551171177127e+148 (double) 0xdeaddeaf0000270f (longhex)
1 9999 (int) 0.000000 (float) 270f (hex)
monitor list:
obj a 'java/lang/Object'{0x000000011f964bf0}(owner=0x000000011f964bf0)
monitor locked(0x00000000de0bd000)
obj a 'java/lang/Object'{0x000000011f964c00}(owner=0x000000011f964c00)
monitor locked(0x00000000de0bd000)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
we can confirm that c2 can eliminate nonEscaped at line 8 and its lock/unlock nodes.
Secondly, we can confirm that we rematerialize object nonEscaped and relock it at deoptimization.