synchronized.2
用hsdis观察synchronized和volatile
安装hsdis (自行百度)
代码
public class T {public static volatile int i = 0;public static void main(String[] args) {for(int i=0; i<1000000; i++) {m();n();}}public static synchronized void m() {}public static void n() {i = 1;} }
java -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly T > 1.txt
输出结果
由于JIT会为所有代码生成汇编,请搜索T::m T::n,来找到m() 和 n()方法的汇编码
============================= C1-compiled nmethod ==============================
----------------------------------- Assembly -----------------------------------Compiled method (c1) 67 1 3 java.lang.Object::<init> (1 bytes)total in heap [0x00007f81d4d33010,0x00007f81d4d33360] = 848relocation [0x00007f81d4d33170,0x00007f81d4d33198] = 40main code [0x00007f81d4d331a0,0x00007f81d4d33260] = 192stub code [0x00007f81d4d33260,0x00007f81d4d332f0] = 144metadata [0x00007f81d4d332f0,0x00007f81d4d33300] = 16scopes data [0x00007f81d4d33300,0x00007f81d4d33318] = 24scopes pcs [0x00007f81d4d33318,0x00007f81d4d33358] = 64dependencies [0x00007f81d4d33358,0x00007f81d4d33360] = 8--------------------------------------------------------------------------------
[Constant Pool (empty)]--------------------------------------------------------------------------------[Entry Point]# {method} {0x00007f81d3cfe650} '<init>' '()V' in 'java/lang/Object'# [sp+0x40] (sp of caller)0x00007f81d4d331a0: mov 0x8(%rsi),%r10d0x00007f81d4d331a4: shl $0x3,%r100x00007f81d4d331a8: cmp %rax,%r100x00007f81d4d331ab: jne 0x00007f81d47eed00 ; {runtime_call ic_miss_stub}0x00007f81d4d331b1: data16 data16 nopw 0x0(%rax,%rax,1)0x00007f81d4d331bc: data16 data16 xchg %ax,%ax
[Verified Entry Point]0x00007f81d4d331c0: mov %eax,-0x14000(%rsp)0x00007f81d4d331c7: push %rbp0x00007f81d4d331c8: sub $0x30,%rsp0x00007f81d4d331cc: movabs $0x7f81d3f33388,%rdi ; {metadata(method data for {method} {0x00007f81d3cfe650} '<init>' '()V' in 'java/lang/Object')}0x00007f81d4d331d6: mov 0x13c(%rdi),%ebx0x00007f81d4d331dc: add $0x8,%ebx0x00007f81d4d331df: mov %ebx,0x13c(%rdi)0x00007f81d4d331e5: and $0x1ff8,%ebx0x00007f81d4d331eb: cmp $0x0,%ebx0x00007f81d4d331ee: je 0x00007f81d4d33204 ;*return {reexecute=0 rethrow=0 return_oop=0}; - java.lang.Object::<init>@0 (line 50)0x00007f81d4d331f4: add $0x30,%rsp0x00007f81d4d331f8: pop %rbp0x00007f81d4d331f9: mov 0x108(%r15),%r100x00007f81d4d33200: test %eax,(%r10) ; {poll_return}0x00007f81d4d33203: retq 0x00007f81d4d33204: movabs $0x7f81d3cfe650,%r10 ; {metadata({method} {0x00007f81d3cfe650} '<init>' '()V' in 'java/lang/Object')}0x00007f81d4d3320e: mov %r10,0x8(%rsp)0x00007f81d4d33213: movq $0xffffffffffffffff,(%rsp)0x00007f81d4d3321b: callq 0x00007f81d489e000 ; ImmutableOopMap {rsi=Oop };*synchronization entry; - java.lang.Object::<init>@-1 (line 50); {runtime_call counter_overflow Runtime1 stub}0x00007f81d4d33220: jmp 0x00007f81d4d331f40x00007f81d4d33222: nop0x00007f81d4d33223: nop0x00007f81d4d33224: mov 0x3f0(%r15),%rax0x00007f81d4d3322b: movabs $0x0,%r100x00007f81d4d33235: mov %r10,0x3f0(%r15)0x00007f81d4d3323c: movabs $0x0,%r100x00007f81d4d33246: mov %r10,0x3f8(%r15)0x00007f81d4d3324d: add $0x30,%rsp0x00007f81d4d33251: pop %rbp0x00007f81d4d33252: jmpq 0x00007f81d480be80 ; {runtime_call unwind_exception Runtime1 stub}0x00007f81d4d33257: hlt 0x00007f81d4d33258: hlt 0x00007f81d4d33259: hlt 0x00007f81d4d3325a: hlt 0x00007f81d4d3325b: hlt 0x00007f81d4d3325c: hlt 0x00007f81d4d3325d: hlt 0x00007f81d4d3325e: hlt 0x00007f81d4d3325f: hlt
[Exception Handler]0x00007f81d4d33260: callq 0x00007f81d489ad00 ; {no_reloc}0x00007f81d4d33265: mov %rsp,-0x28(%rsp)0x00007f81d4d3326a: sub $0x80,%rsp0x00007f81d4d33271: mov %rax,0x78(%rsp)0x00007f81d4d33276: mov %rcx,0x70(%rsp)0x00007f81d4d3327b: mov %rdx,0x68(%rsp)0x00007f81d4d33280: mov %rbx,0x60(%rsp)0x00007f81d4d33285: mov %rbp,0x50(%rsp)0x00007f81d4d3328a: mov %rsi,0x48(%rsp)0x00007f81d4d3328f: mov %rdi,0x40(%rsp)0x00007f81d4d33294: mov %r8,0x38(%rsp)0x00007f81d4d33299: mov %r9,0x30(%rsp)0x00007f81d4d3329e: mov %r10,0x28(%rsp)0x00007f81d4d332a3: mov %r11,0x20(%rsp)0x00007f81d4d332a8: mov %r12,0x18(%rsp)0x00007f81d4d332ad: mov %r13,0x10(%rsp)0x00007f81d4d332b2: mov %r14,0x8(%rsp)0x00007f81d4d332b7: mov %r15,(%rsp)0x00007f81d4d332bb: movabs $0x7f81f15ff3e2,%rdi ; {external_word}0x00007f81d4d332c5: movabs $0x7f81d4d33265,%rsi ; {internal_word}0x00007f81d4d332cf: mov %rsp,%rdx0x00007f81d4d332d2: and $0xfffffffffffffff0,%rsp0x00007f81d4d332d6: callq 0x00007f81f1108240 ; {runtime_call}0x00007f81d4d332db: hlt
[Deopt Handler Code]0x00007f81d4d332dc: movabs $0x7f81d4d332dc,%r10 ; {section_word}0x00007f81d4d332e6: push %r100x00007f81d4d332e8: jmpq 0x00007f81d47ed0a0 ; {runtime_call DeoptimizationBlob}0x00007f81d4d332ed: hlt 0x00007f81d4d332ee: hlt 0x00007f81d4d332ef: hlt
--------------------------------------------------------------------------------============================= C1-compiled nmethod ==============================
----------------------------------- Assembly -----------------------------------Compiled method (c1) 74 2 3 java.lang.StringLatin1::hashCode (42 bytes)total in heap [0x00007f81d4d33390,0x00007f81d4d338a8] = 1304relocation [0x00007f81d4d334f0,0x00007f81d4d33528] = 56main code [0x00007f81d4d33540,0x00007f81d4d336c0] = 384stub code [0x00007f81d4d336c0,0x00007f81d4d33750] = 144metadata [0x00007f81d4d33750,0x00007f81d4d33758] = 8scopes data [0x00007f81d4d33758,0x00007f81d4d337c0] = 104scopes pcs [0x00007f81d4d337c0,0x00007f81d4d33890] = 208dependencies [0x00007f81d4d33890,0x00007f81d4d33898] = 8nul chk table [0x00007f81d4d33898,0x00007f81d4d338a8] = 16--------------------------------------------------------------------------------
[Constant Pool (empty)]--------------------------------------------------------------------------------[Verified Entry Point]# {method} {0x00007f81d3e6ddd0} 'hashCode' '([B)I' in 'java/lang/StringLatin1'# parm0: rsi:rsi = '[B'# [sp+0x40] (sp of caller)0x00007f81d4d33540: mov %eax,-0x14000(%rsp)0x00007f81d4d33547: push %rbp0x00007f81d4d33548: sub $0x30,%rsp0x00007f81d4d3354c: movabs $0x7f81d3f33980,%rax ; {metadata(method data for {method} {0x00007f81d3e6ddd0} 'hashCode' '([B)I' in 'java/lang/StringLatin1')}0x00007f81d4d33556: mov 0x13c(%rax),%edi0x00007f81d4d3355c: add $0x8,%edi0x00007f81d4d3355f: mov %edi,0x13c(%rax)0x00007f81d4d33565: and $0x1ff8,%edi0x00007f81d4d3356b: cmp $0x0,%edi0x00007f81d4d3356e: je 0x00007f81d4d3362f ;*iconst_0 {reexecute=0 rethrow=0 return_oop=0}; - java.lang.StringLatin1::hashCode@0 (line 195)0x00007f81d4d33574: mov 0xc(%rsi),%eax ; implicit exception: dispatches to 0x00007f81d4d33650;*arraylength {reexecute=0 rethrow=0 return_oop=0}; - java.lang.StringLatin1::hashCode@5 (line 196)0x00007f81d4d33577: mov $0x0,%edi0x00007f81d4d3357c: mov $0x0,%ebx0x00007f81d4d33581: jmpq 0x00007f81d4d335e4 ;*iload {reexecute=0 rethrow=0 return_oop=0}; - java.lang.StringLatin1::hashCode@10 (line 196)0x00007f81d4d33586: xchg %ax,%ax0x00007f81d4d33588: movslq %edi,%rdx0x00007f81d4d3358b: movsbl 0x10(%rsi,%rdx,1),%edx ;*baload {reexecute=0 rethrow=0 return_oop=0}; - java.lang.StringLatin1::hashCode@19 (line 196)0x00007f81d4d33590: mov %rbx,%rcx0x00007f81d4d33593: shl $0x5,%ebx0x00007f81d4d33596: sub %ecx,%ebx0x00007f81d4d33598: and $0xff,%edx0x00007f81d4d3359e: add %edx,%ebx0x00007f81d4d335a0: inc %edi0x00007f81d4d335a2: movabs $0x7f81d3f33980,%rdx ; {metadata(method data for {method} {0x00007f81d3e6ddd0} 'hashCode' '([B)I' in 'java/lang/StringLatin1')}0x00007f81d4d335ac: mov 0x140(%rdx),%ecx0x00007f81d4d335b2: add $0x8,%ecx0x00007f81d4d335b5: mov %ecx,0x140(%rdx)0x00007f81d4d335bb: and $0xfff8,%ecx0x00007f81d4d335c1: cmp $0x0,%ecx0x00007f81d4d335c4: je 0x00007f81d4d33655 ;*goto {reexecute=0 rethrow=0 return_oop=0}; - java.lang.StringLatin1::hashCode@37 (line 196)0x00007f81d4d335ca: mov 0x108(%r15),%r10 ; ImmutableOopMap {rsi=Oop };*goto {reexecute=1 rethrow=0 return_oop=0}; - (reexecute) java.lang.StringLatin1::hashCode@37 (line 196)0x00007f81d4d335d1: test %eax,(%r10) ; {poll}0x00007f81d4d335d4: movabs $0x7f81d3f33980,%rdx ; {metadata(method data for {method} {0x00007f81d3e6ddd0} 'hashCode' '([B)I' in 'java/lang/StringLatin1')}0x00007f81d4d335de: incl 0x1a0(%rdx) ;*goto {reexecute=0 rethrow=0 return_oop=0}; - java.lang.StringLatin1::hashCode@37 (line 196)0x00007f81d4d335e4: cmp %eax,%edi0x00007f81d4d335e6: movabs $0x7f81d3f33980,%rdx ; {metadata(method data for {method} {0x00007f81d3e6ddd0} 'hashCode' '([B)I' in 'java/lang/StringLatin1')}0x00007f81d4d335f0: movabs $0x190,%rcx0x00007f81d4d335fa: jl 0x00007f81d4d3360a0x00007f81d4d33600: movabs $0x180,%rcx0x00007f81d4d3360a: mov (%rdx,%rcx,1),%r80x00007f81d4d3360e: lea 0x1(%r8),%r80x00007f81d4d33612: mov %r8,(%rdx,%rcx,1)0x00007f81d4d33616: jl 0x00007f81d4d33588 ;*if_icmpge {reexecute=0 rethrow=0 return_oop=0}; - java.lang.StringLatin1::hashCode@13 (line 196)0x00007f81d4d3361c: mov %rbx,%rax0x00007f81d4d3361f: add $0x30,%rsp0x00007f81d4d33623: pop %rbp0x00007f81d4d33624: mov 0x108(%r15),%r100x00007f81d4d3362b: test %eax,(%r10) ; {poll_return}0x00007f81d4d3362e: retq 0x00007f81d4d3362f: movabs $0x7f81d3e6ddd0,%r10 ; {metadata({method} {0x00007f81d3e6ddd0} 'hashCode' '([B)I' in 'java/lang/StringLatin1')}0x00007f81d4d33639: mov %r10,0x8(%rsp)0x00007f81d4d3363e: movq $0xffffffffffffffff,(%rsp)0x00007f81d4d33646: callq 0x00007f81d489e000 ; ImmutableOopMap {rsi=Oop };*synchronization entry; - java.lang.StringLatin1::hashCode@-1 (line 195); {runtime_call counter_overflow Runtime1 stub}0x00007f81d4d3364b: jmpq 0x00007f81d4d335740x00007f81d4d33650: callq 0x00007f81d480afa0 ; ImmutableOopMap {rsi=Oop };*arraylength {reexecute=0 rethrow=0 return_oop=0}; - java.lang.StringLatin1::hashCode@5 (line 196); {runtime_call throw_null_pointer_exception Runtime1 stub}0x00007f81d4d33655: movabs $0x7f81d3e6ddd0,%r10 ; {metadata({method} {0x00007f81d3e6ddd0} 'hashCode' '([B)I' in 'java/lang/StringLatin1')}0x00007f81d4d3365f: mov %r10,0x8(%rsp)0x00007f81d4d33664: movq $0x25,(%rsp)0x00007f81d4d3366c: callq 0x00007f81d489e000 ; ImmutableOopMap {rsi=Oop };*goto {reexecute=1 rethrow=0 return_oop=0}; - (reexecute) java.lang.StringLatin1::hashCode@37 (line 196); {runtime_call counter_overflow Runtime1 stub}0x00007f81d4d33671: jmpq 0x00007f81d4d335ca0x00007f81d4d33676: nop0x00007f81d4d33677: nop0x00007f81d4d33678: mov 0x3f0(%r15),%rax0x00007f81d4d3367f: movabs $0x0,%r100x00007f81d4d33689: mov %r10,0x3f0(%r15)0x00007f81d4d33690: movabs $0x0,%r100x00007f81d4d3369a: mov %r10,0x3f8(%r15)0x00007f81d4d336a1: add $0x30,%rsp0x00007f81d4d336a5: pop %rbp0x00007f81d4d336a6: jmpq 0x00007f81d480be80 ; {runtime_call unwind_exception Runtime1 stub}0x00007f81d4d336ab: hlt 0x00007f81d4d336ac: hlt 0x00007f81d4d336ad: hlt 0x00007f81d4d336ae: hlt 0x00007f81d4d336af: hlt 0x00007f81d4d336b0: hlt 0x00007f81d4d336b1: hlt 0x00007f81d4d336b2: hlt 0x00007f81d4d336b3: hlt 0x00007f81d4d336b4: hlt 0x00007f81d4d336b5: hlt 0x00007f81d4d336b6: hlt 0x00007f81d4d336b7: hlt 0x00007f81d4d336b8: hlt 0x00007f81d4d336b9: hlt 0x00007f81d4d336ba: hlt 0x00007f81d4d336bb: hlt 0x00007f81d4d336bc: hlt 0x00007f81d4d336bd: hlt 0x00007f81d4d336be: hlt 0x00007f81d4d336bf: hlt
[Exception Handler]0x00007f81d4d336c0: callq 0x00007f81d489ad00 ; {no_reloc}0x00007f81d4d336c5: mov %rsp,-0x28(%rsp)0x00007f81d4d336ca: sub $0x80,%rsp0x00007f81d4d336d1: mov %rax,0x78(%rsp)0x00007f81d4d336d6: mov %rcx,0x70(%rsp)0x00007f81d4d336db: mov %rdx,0x68(%rsp)0x00007f81d4d336e0: mov %rbx,0x60(%rsp)0x00007f81d4d336e5: mov %rbp,0x50(%rsp)0x00007f81d4d336ea: mov %rsi,0x48(%rsp)0x00007f81d4d336ef: mov %rdi,0x40(%rsp)0x00007f81d4d336f4: mov %r8,0x38(%rsp)0x00007f81d4d336f9: mov %r9,0x30(%rsp)0x00007f81d4d336fe: mov %r10,0x28(%rsp)0x00007f81d4d33703: mov %r11,0x20(%rsp)0x00007f81d4d33708: mov %r12,0x18(%rsp)0x00007f81d4d3370d: mov %r13,0x10(%rsp)0x00007f81d4d33712: mov %r14,0x8(%rsp)0x00007f81d4d33717: mov %r15,(%rsp)0x00007f81d4d3371b: movabs $0x7f81f15ff3e2,%rdi ; {external_word}0x00007f81d4d33725: movabs $0x7f81d4d336c5,%rsi ; {internal_word}0x00007f81d4d3372f: mov %rsp,%rdx0x00007f81d4d33732: and $0xfffffffffffffff0,%rsp0x00007f81d4d33736: callq 0x00007f81f1108240 ; {runtime_call}0x00007f81d4d3373b: hlt
[Deopt Handler Code]0x00007f81d4d3373c: movabs $0x7f81d4d3373c,%r10 ; {section_word}0x00007f81d4d33746: push %r100x00007f81d4d33748: jmpq 0x00007f81d47ed0a0 ; {runtime_call DeoptimizationBlob}0x00007f81d4d3374d: hlt 0x00007f81d4d3374e: hlt 0x00007f81d4d3374f: hlt
--------------------------------------------------------------------------------============================= C2-compiled nmethod ==============================
----------------------------------- Assembly -----------------------------------Compiled method (c2) 82 11 4 java.lang.Object::<init> (1 bytes)total in heap [0x00007f81dc26b010,0x00007f81dc26b228] = 536relocation [0x00007f81dc26b170,0x00007f81dc26b180] = 16main code [0x00007f81dc26b180,0x00007f81dc26b1c0] = 64stub code [0x00007f81dc26b1c0,0x00007f81dc26b1d8] = 24metadata [0x00007f81dc26b1d8,0x00007f81dc26b1e8] = 16scopes data [0x00007f81dc26b1e8,0x00007f81dc26b1f0] = 8scopes pcs [0x00007f81dc26b1f0,0x00007f81dc26b220] = 48dependencies [0x00007f81dc26b220,0x00007f81dc26b228] = 8--------------------------------------------------------------------------------
[Constant Pool (empty)]--------------------------------------------------------------------------------[Entry Point]# {method} {0x00007f81d3cfe650} '<init>' '()V' in 'java/lang/Object'# [sp+0x20] (sp of caller)0x00007f81dc26b180: mov 0x8(%rsi),%r10d0x00007f81dc26b184: shl $0x3,%r100x00007f81dc26b188: cmp %r10,%rax0x00007f81dc26b18b: jne 0x00007f81d47eed00 ; {runtime_call ic_miss_stub}0x00007f81dc26b191: data16 xchg %ax,%ax0x00007f81dc26b194: nopl 0x0(%rax,%rax,1)0x00007f81dc26b19c: data16 data16 xchg %ax,%ax
[Verified Entry Point]0x00007f81dc26b1a0: sub $0x18,%rsp0x00007f81dc26b1a7: mov %rbp,0x10(%rsp) ;*synchronization entry; - java.lang.Object::<init>@-1 (line 50)0x00007f81dc26b1ac: add $0x10,%rsp0x00007f81dc26b1b0: pop %rbp0x00007f81dc26b1b1: mov 0x108(%r15),%r100x00007f81dc26b1b8: test %eax,(%r10) ; {poll_return}0x00007f81dc26b1bb: retq 0x00007f81dc26b1bc: hlt 0x00007f81dc26b1bd: hlt 0x00007f81dc26b1be: hlt 0x00007f81dc26b1bf: hlt
[Exception Handler]0x00007f81dc26b1c0: jmpq 0x00007f81d4809300 ; {no_reloc}
[Deopt Handler Code]0x00007f81dc26b1c5: callq 0x00007f81dc26b1ca0x00007f81dc26b1ca: subq $0x5,(%rsp)0x00007f81dc26b1cf: jmpq 0x00007f81d47ed0a0 ; {runtime_call DeoptimizationBlob}0x00007f81dc26b1d4: hlt 0x00007f81dc26b1d5: hlt 0x00007f81dc26b1d6: hlt 0x00007f81dc26b1d7: hlt
--------------------------------------------------------------------------------============================= C1-compiled nmethod ==============================
----------------------------------- Assembly -----------------------------------Compiled method (c1) 86 5 3 java.util.ImmutableCollections$SetN::probe (56 bytes)total in heap [0x00007f81d4d33910,0x00007f81d4d343a8] = 2712relocation [0x00007f81d4d33a70,0x00007f81d4d33ae8] = 120main code [0x00007f81d4d33b00,0x00007f81d4d33fa0] = 1184stub code [0x00007f81d4d33fa0,0x00007f81d4d34058] = 184metadata [0x00007f81d4d34058,0x00007f81d4d34068] = 16scopes data [0x00007f81d4d34068,0x00007f81d4d34170] = 264scopes pcs [0x00007f81d4d34170,0x00007f81d4d34370] = 512dependencies [0x00007f81d4d34370,0x00007f81d4d34378] = 8nul chk table [0x00007f81d4d34378,0x00007f81d4d343a8] = 48--------------------------------------------------------------------------------
[Constant Pool (empty)]--------------------------------------------------------------------------------[Entry Point]# {method} {0x00007f81d3f11bb8} 'probe' '(Ljava/lang/Object;)I' in 'java/util/ImmutableCollections$SetN'# this: rsi:rsi = 'java/util/ImmutableCollections$SetN'# parm0: rdx:rdx = 'java/lang/Object'# [sp+0x60] (sp of caller)0x00007f81d4d33b00: mov 0x8(%rsi),%r10d0x00007f81d4d33b04: shl $0x3,%r100x00007f81d4d33b08: cmp %rax,%r100x00007f81d4d33b0b: jne 0x00007f81d47eed00 ; {runtime_call ic_miss_stub}0x00007f81d4d33b11: data16 data16 nopw 0x0(%rax,%rax,1)0x00007f81d4d33b1c: data16 data16 xchg %ax,%ax
[Verified Entry Point]0x00007f81d4d33b20: mov %eax,-0x14000(%rsp)0x00007f81d4d33b27: push %rbp0x00007f81d4d33b28: sub $0x50,%rsp0x00007f81d4d33b2c: mov %rsi,0x30(%rsp)0x00007f81d4d33b31: mov %rdx,0x38(%rsp)0x00007f81d4d33b36: movabs $0x7f81d3f43b88,%rdi ; {metadata(method data for {method} {0x00007f81d3f11bb8} 'probe' '(Ljava/lang/Object;)I' in 'java/util/ImmutableCollections$SetN')}0x00007f81d4d33b40: mov 0x13c(%rdi),%ebx0x00007f81d4d33b46: add $0x8,%ebx0x00007f81d4d33b49: mov %ebx,0x13c(%rdi)0x00007f81d4d33b4f: and $0x1ff8,%ebx0x00007f81d4d33b55: cmp $0x0,%ebx0x00007f81d4d33b58: je 0x00007f81d4d33ee0 ;*aload_1 {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN::probe@0 (line 796)0x00007f81d4d33b5e: cmp (%rdx),%rax ; implicit exception: dispatches to 0x00007f81d4d33f010x00007f81d4d33b61: mov %rdx,%rdi0x00007f81d4d33b64: movabs $0x7f81d3f43b88,%rbx ; {metadata(method data for {method} {0x00007f81d3f11bb8} 'probe' '(Ljava/lang/Object;)I' in 'java/util/ImmutableCollections$SetN')}0x00007f81d4d33b6e: mov 0x8(%rdi),%edi0x00007f81d4d33b71: shl $0x3,%rdi0x00007f81d4d33b75: cmp 0x190(%rbx),%rdi0x00007f81d4d33b7c: jne 0x00007f81d4d33b8b0x00007f81d4d33b7e: addq $0x1,0x198(%rbx)0x00007f81d4d33b86: jmpq 0x00007f81d4d33bf10x00007f81d4d33b8b: cmp 0x1a0(%rbx),%rdi0x00007f81d4d33b92: jne 0x00007f81d4d33ba10x00007f81d4d33b94: addq $0x1,0x1a8(%rbx)0x00007f81d4d33b9c: jmpq 0x00007f81d4d33bf10x00007f81d4d33ba1: cmpq $0x0,0x190(%rbx)0x00007f81d4d33bac: jne 0x00007f81d4d33bc50x00007f81d4d33bae: mov %rdi,0x190(%rbx)0x00007f81d4d33bb5: movq $0x1,0x198(%rbx)0x00007f81d4d33bc0: jmpq 0x00007f81d4d33bf10x00007f81d4d33bc5: cmpq $0x0,0x1a0(%rbx)0x00007f81d4d33bd0: jne 0x00007f81d4d33be90x00007f81d4d33bd2: mov %rdi,0x1a0(%rbx)0x00007f81d4d33bd9: movq $0x1,0x1a8(%rbx)0x00007f81d4d33be4: jmpq 0x00007f81d4d33bf10x00007f81d4d33be9: addq $0x1,0x180(%rbx)0x00007f81d4d33bf1: mov %rdx,%rsi ;*invokevirtual hashCode {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN::probe@1 (line 796)0x00007f81d4d33bf4: nop0x00007f81d4d33bf5: movabs $0xffffffffffffffff,%rax0x00007f81d4d33bff: callq 0x00007f81d47ee700 ; ImmutableOopMap {[48]=Oop [56]=Oop };*invokevirtual hashCode {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN::probe@1 (line 796); {virtual_call}0x00007f81d4d33c04: mov 0x30(%rsp),%rsi0x00007f81d4d33c09: mov 0x10(%rsi),%edx ;*getfield elements {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN::probe@5 (line 796)0x00007f81d4d33c0c: mov 0xc(%rdx),%edi ; implicit exception: dispatches to 0x00007f81d4d33f06;*arraylength {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN::probe@8 (line 796)0x00007f81d4d33c0f: movabs $0x7f81d3f43b88,%rdx ; {metadata(method data for {method} {0x00007f81d3f11bb8} 'probe' '(Ljava/lang/Object;)I' in 'java/util/ImmutableCollections$SetN')}0x00007f81d4d33c19: addq $0x1,0x1b8(%rdx)0x00007f81d4d33c21: movabs $0x7f81d3f439a0,%rdx ; {metadata(method data for {method} {0x00007f81d3e376e8} 'floorMod' '(II)I' in 'java/lang/Math')}0x00007f81d4d33c2b: mov 0x13c(%rdx),%ebx0x00007f81d4d33c31: add $0x8,%ebx0x00007f81d4d33c34: mov %ebx,0x13c(%rdx)0x00007f81d4d33c3a: and $0x7ffff8,%ebx0x00007f81d4d33c40: cmp $0x0,%ebx0x00007f81d4d33c43: je 0x00007f81d4d33f0b0x00007f81d4d33c49: cmp $0x80000000,%eax0x00007f81d4d33c4f: jne 0x00007f81d4d33c600x00007f81d4d33c55: xor %edx,%edx0x00007f81d4d33c57: cmp $0xffffffff,%edi0x00007f81d4d33c5a: je 0x00007f81d4d33c630x00007f81d4d33c60: cltd 0x00007f81d4d33c61: idiv %edi ; implicit exception: dispatches to 0x00007f81d4d33f2c;*irem {reexecute=0 rethrow=0 return_oop=0}; - java.lang.Math::floorMod@2 (line 1277); - java.util.ImmutableCollections$SetN::probe@9 (line 796)0x00007f81d4d33c63: mov %rdx,%rbx0x00007f81d4d33c66: xor %rdi,%rbx0x00007f81d4d33c69: cmp $0x0,%ebx0x00007f81d4d33c6c: movabs $0x7f81d3f439a0,%rbx ; {metadata(method data for {method} {0x00007f81d3e376e8} 'floorMod' '(II)I' in 'java/lang/Math')}0x00007f81d4d33c76: movabs $0x180,%rax0x00007f81d4d33c80: jge 0x00007f81d4d33c900x00007f81d4d33c86: movabs $0x190,%rax0x00007f81d4d33c90: mov (%rbx,%rax,1),%rcx0x00007f81d4d33c94: lea 0x1(%rcx),%rcx0x00007f81d4d33c98: mov %rcx,(%rbx,%rax,1)0x00007f81d4d33c9c: jge 0x00007f81d4d33ce0 ;*ifge {reexecute=0 rethrow=0 return_oop=0}; - java.lang.Math::floorMod@7 (line 1279); - java.util.ImmutableCollections$SetN::probe@9 (line 796)0x00007f81d4d33ca2: cmp $0x0,%edx0x00007f81d4d33ca5: movabs $0x7f81d3f439a0,%rbx ; {metadata(method data for {method} {0x00007f81d3e376e8} 'floorMod' '(II)I' in 'java/lang/Math')}0x00007f81d4d33caf: movabs $0x1a0,%rax0x00007f81d4d33cb9: je 0x00007f81d4d33cc90x00007f81d4d33cbf: movabs $0x1b0,%rax0x00007f81d4d33cc9: mov (%rbx,%rax,1),%rcx0x00007f81d4d33ccd: lea 0x1(%rcx),%rcx0x00007f81d4d33cd1: mov %rcx,(%rbx,%rax,1)0x00007f81d4d33cd5: je 0x00007f81d4d33ce0 ;*ifeq {reexecute=0 rethrow=0 return_oop=0}; - java.lang.Math::floorMod@11 (line 1279); - java.util.ImmutableCollections$SetN::probe@9 (line 796)0x00007f81d4d33cdb: add %edi,%edx0x00007f81d4d33cdd: data16 xchg %ax,%ax0x00007f81d4d33ce0: mov 0x38(%rsp),%rdi0x00007f81d4d33ce5: mov 0x10(%rsi),%ebx ;*getfield elements {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN::probe@14 (line 798)0x00007f81d4d33ce8: mov 0xc(%rbx),%eax ; implicit exception: dispatches to 0x00007f81d4d33f310x00007f81d4d33ceb: cmp %edx,%eax0x00007f81d4d33ced: jbe 0x00007f81d4d33f360x00007f81d4d33cf3: movslq %edx,%rax0x00007f81d4d33cf6: mov 0x10(%rbx,%rax,4),%ebx ;*aaload {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN::probe@18 (line 798)0x00007f81d4d33cfa: cmp $0x0,%rbx0x00007f81d4d33cfe: movabs $0x7f81d3f43b88,%rax ; {metadata(method data for {method} {0x00007f81d3f11bb8} 'probe' '(Ljava/lang/Object;)I' in 'java/util/ImmutableCollections$SetN')}0x00007f81d4d33d08: movabs $0x1d8,%rcx0x00007f81d4d33d12: je 0x00007f81d4d33d220x00007f81d4d33d18: movabs $0x1c8,%rcx0x00007f81d4d33d22: mov (%rax,%rcx,1),%r80x00007f81d4d33d26: lea 0x1(%r8),%r80x00007f81d4d33d2a: mov %r8,(%rax,%rcx,1)0x00007f81d4d33d2e: je 0x00007f81d4d33ec9 ;*ifnonnull {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN::probe@21 (line 799)0x00007f81d4d33d34: mov %edx,0x40(%rsp)0x00007f81d4d33d38: mov %rdi,%rax0x00007f81d4d33d3b: movabs $0x7f81d3f43b88,%rcx ; {metadata(method data for {method} {0x00007f81d3f11bb8} 'probe' '(Ljava/lang/Object;)I' in 'java/util/ImmutableCollections$SetN')}0x00007f81d4d33d45: mov 0x8(%rax),%eax0x00007f81d4d33d48: shl $0x3,%rax0x00007f81d4d33d4c: cmp 0x1f8(%rcx),%rax0x00007f81d4d33d53: jne 0x00007f81d4d33d620x00007f81d4d33d55: addq $0x1,0x200(%rcx)0x00007f81d4d33d5d: jmpq 0x00007f81d4d33dc80x00007f81d4d33d62: cmp 0x208(%rcx),%rax0x00007f81d4d33d69: jne 0x00007f81d4d33d780x00007f81d4d33d6b: addq $0x1,0x210(%rcx)0x00007f81d4d33d73: jmpq 0x00007f81d4d33dc80x00007f81d4d33d78: cmpq $0x0,0x1f8(%rcx)0x00007f81d4d33d83: jne 0x00007f81d4d33d9c0x00007f81d4d33d85: mov %rax,0x1f8(%rcx)0x00007f81d4d33d8c: movq $0x1,0x200(%rcx)0x00007f81d4d33d97: jmpq 0x00007f81d4d33dc80x00007f81d4d33d9c: cmpq $0x0,0x208(%rcx)0x00007f81d4d33da7: jne 0x00007f81d4d33dc00x00007f81d4d33da9: mov %rax,0x208(%rcx)0x00007f81d4d33db0: movq $0x1,0x210(%rcx)0x00007f81d4d33dbb: jmpq 0x00007f81d4d33dc80x00007f81d4d33dc0: addq $0x1,0x1e8(%rcx)0x00007f81d4d33dc8: mov %rbx,%rdx0x00007f81d4d33dcb: mov %rdi,%rsi ;*invokevirtual equals {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN::probe@31 (line 801)0x00007f81d4d33dce: nopl 0x0(%rax)0x00007f81d4d33dd5: movabs $0xffffffffffffffff,%rax0x00007f81d4d33ddf: callq 0x00007f81d47ee700 ; ImmutableOopMap {[48]=Oop [56]=Oop };*invokevirtual equals {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN::probe@31 (line 801); {virtual_call}0x00007f81d4d33de4: cmp $0x0,%eax0x00007f81d4d33de7: movabs $0x7f81d3f43b88,%rax ; {metadata(method data for {method} {0x00007f81d3f11bb8} 'probe' '(Ljava/lang/Object;)I' in 'java/util/ImmutableCollections$SetN')}0x00007f81d4d33df1: movabs $0x230,%rsi0x00007f81d4d33dfb: jne 0x00007f81d4d33e0b0x00007f81d4d33e01: movabs $0x220,%rsi0x00007f81d4d33e0b: mov (%rax,%rsi,1),%rdi0x00007f81d4d33e0f: lea 0x1(%rdi),%rdi0x00007f81d4d33e13: mov %rdi,(%rax,%rsi,1)0x00007f81d4d33e17: jne 0x00007f81d4d33eb2 ;*ifeq {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN::probe@34 (line 801)0x00007f81d4d33e1d: mov 0x30(%rsp),%rsi0x00007f81d4d33e22: mov 0x40(%rsp),%edx0x00007f81d4d33e26: inc %edx0x00007f81d4d33e28: mov 0x10(%rsi),%eax ;*getfield elements {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN::probe@44 (line 803)0x00007f81d4d33e2b: mov 0xc(%rax),%eax ; implicit exception: dispatches to 0x00007f81d4d33f44;*arraylength {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN::probe@47 (line 803)0x00007f81d4d33e2e: cmp %eax,%edx0x00007f81d4d33e30: movabs $0x7f81d3f43b88,%rax ; {metadata(method data for {method} {0x00007f81d3f11bb8} 'probe' '(Ljava/lang/Object;)I' in 'java/util/ImmutableCollections$SetN')}0x00007f81d4d33e3a: movabs $0x240,%rdi0x00007f81d4d33e44: jne 0x00007f81d4d33e540x00007f81d4d33e4a: movabs $0x250,%rdi0x00007f81d4d33e54: mov (%rax,%rdi,1),%rbx0x00007f81d4d33e58: lea 0x1(%rbx),%rbx0x00007f81d4d33e5c: mov %rbx,(%rax,%rdi,1)0x00007f81d4d33e60: jne 0x00007f81d4d33e6b ;*if_icmpne {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN::probe@48 (line 803)0x00007f81d4d33e66: mov $0x0,%edx0x00007f81d4d33e6b: movabs $0x7f81d3f43b88,%rax ; {metadata(method data for {method} {0x00007f81d3f11bb8} 'probe' '(Ljava/lang/Object;)I' in 'java/util/ImmutableCollections$SetN')}0x00007f81d4d33e75: mov 0x140(%rax),%edi0x00007f81d4d33e7b: add $0x8,%edi0x00007f81d4d33e7e: mov %edi,0x140(%rax)0x00007f81d4d33e84: and $0xfff8,%edi0x00007f81d4d33e8a: cmp $0x0,%edi0x00007f81d4d33e8d: je 0x00007f81d4d33f49 ;*goto {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN::probe@53 (line 806)0x00007f81d4d33e93: mov 0x108(%r15),%r10 ; ImmutableOopMap {[56]=Oop rsi=Oop [48]=Oop };*goto {reexecute=1 rethrow=0 return_oop=0}; - (reexecute) java.util.ImmutableCollections$SetN::probe@53 (line 806)0x00007f81d4d33e9a: test %eax,(%r10) ; {poll}0x00007f81d4d33e9d: movabs $0x7f81d3f43b88,%rax ; {metadata(method data for {method} {0x00007f81d3f11bb8} 'probe' '(Ljava/lang/Object;)I' in 'java/util/ImmutableCollections$SetN')}0x00007f81d4d33ea7: incl 0x260(%rax)0x00007f81d4d33ead: jmpq 0x00007f81d4d33ce0 ;*goto {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN::probe@53 (line 806)0x00007f81d4d33eb2: mov 0x40(%rsp),%edx0x00007f81d4d33eb6: mov %rdx,%rax0x00007f81d4d33eb9: add $0x50,%rsp0x00007f81d4d33ebd: pop %rbp0x00007f81d4d33ebe: mov 0x108(%r15),%r100x00007f81d4d33ec5: test %eax,(%r10) ; {poll_return}0x00007f81d4d33ec8: retq ;*ireturn {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN::probe@38 (line 802)0x00007f81d4d33ec9: neg %edx0x00007f81d4d33ecb: mov %rdx,%rax0x00007f81d4d33ece: dec %eax0x00007f81d4d33ed0: add $0x50,%rsp0x00007f81d4d33ed4: pop %rbp0x00007f81d4d33ed5: mov 0x108(%r15),%r100x00007f81d4d33edc: test %eax,(%r10) ; {poll_return}0x00007f81d4d33edf: retq 0x00007f81d4d33ee0: movabs $0x7f81d3f11bb8,%r10 ; {metadata({method} {0x00007f81d3f11bb8} 'probe' '(Ljava/lang/Object;)I' in 'java/util/ImmutableCollections$SetN')}0x00007f81d4d33eea: mov %r10,0x8(%rsp)0x00007f81d4d33eef: movq $0xffffffffffffffff,(%rsp)0x00007f81d4d33ef7: callq 0x00007f81d489e000 ; ImmutableOopMap {rsi=Oop [48]=Oop rdx=Oop [56]=Oop };*synchronization entry; - java.util.ImmutableCollections$SetN::probe@-1 (line 796); {runtime_call counter_overflow Runtime1 stub}0x00007f81d4d33efc: jmpq 0x00007f81d4d33b5e0x00007f81d4d33f01: callq 0x00007f81d480afa0 ; ImmutableOopMap {rdx=Oop [56]=Oop [48]=Oop };*invokevirtual hashCode {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN::probe@1 (line 796); {runtime_call throw_null_pointer_exception Runtime1 stub}0x00007f81d4d33f06: callq 0x00007f81d480afa0 ; ImmutableOopMap {[56]=Oop rsi=Oop [48]=Oop };*arraylength {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN::probe@8 (line 796); {runtime_call throw_null_pointer_exception Runtime1 stub}0x00007f81d4d33f0b: movabs $0x7f81d3e376e8,%r10 ; {metadata({method} {0x00007f81d3e376e8} 'floorMod' '(II)I' in 'java/lang/Math')}0x00007f81d4d33f15: mov %r10,0x8(%rsp)0x00007f81d4d33f1a: movq $0xffffffffffffffff,(%rsp)0x00007f81d4d33f22: callq 0x00007f81d489e000 ; ImmutableOopMap {[56]=Oop rsi=Oop [48]=Oop };*synchronization entry; - java.lang.Math::floorMod@-1 (line 1277); - java.util.ImmutableCollections$SetN::probe@9 (line 796); {runtime_call counter_overflow Runtime1 stub}0x00007f81d4d33f27: jmpq 0x00007f81d4d33c490x00007f81d4d33f2c: callq 0x00007f81d480b2a0 ; ImmutableOopMap {[56]=Oop rsi=Oop [48]=Oop };*irem {reexecute=0 rethrow=0 return_oop=0}; - java.lang.Math::floorMod@2 (line 1277); - java.util.ImmutableCollections$SetN::probe@9 (line 796); {runtime_call throw_div0_exception Runtime1 stub}0x00007f81d4d33f31: callq 0x00007f81d480afa0 ; ImmutableOopMap {rsi=Oop [48]=Oop rdi=Oop [56]=Oop rbx=Oop };*aaload {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN::probe@18 (line 798); {runtime_call throw_null_pointer_exception Runtime1 stub}0x00007f81d4d33f36: mov %rdx,(%rsp)0x00007f81d4d33f3a: mov %rbx,0x8(%rsp)0x00007f81d4d33f3f: callq 0x00007f81d480b8a0 ; ImmutableOopMap {rsi=Oop [48]=Oop rdi=Oop [56]=Oop rbx=Oop };*aaload {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN::probe@18 (line 798); {runtime_call throw_range_check_failed Runtime1 stub}0x00007f81d4d33f44: callq 0x00007f81d480afa0 ; ImmutableOopMap {[56]=Oop rsi=Oop [48]=Oop };*arraylength {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN::probe@47 (line 803); {runtime_call throw_null_pointer_exception Runtime1 stub}0x00007f81d4d33f49: movabs $0x7f81d3f11bb8,%r10 ; {metadata({method} {0x00007f81d3f11bb8} 'probe' '(Ljava/lang/Object;)I' in 'java/util/ImmutableCollections$SetN')}0x00007f81d4d33f53: mov %r10,0x8(%rsp)0x00007f81d4d33f58: movq $0x35,(%rsp)0x00007f81d4d33f60: callq 0x00007f81d489e000 ; ImmutableOopMap {[56]=Oop rsi=Oop [48]=Oop };*goto {reexecute=1 rethrow=0 return_oop=0}; - (reexecute) java.util.ImmutableCollections$SetN::probe@53 (line 806); {runtime_call counter_overflow Runtime1 stub}0x00007f81d4d33f65: jmpq 0x00007f81d4d33e930x00007f81d4d33f6a: nop0x00007f81d4d33f6b: nop0x00007f81d4d33f6c: mov 0x3f0(%r15),%rax0x00007f81d4d33f73: movabs $0x0,%r100x00007f81d4d33f7d: mov %r10,0x3f0(%r15)0x00007f81d4d33f84: movabs $0x0,%r100x00007f81d4d33f8e: mov %r10,0x3f8(%r15)0x00007f81d4d33f95: add $0x50,%rsp0x00007f81d4d33f99: pop %rbp0x00007f81d4d33f9a: jmpq 0x00007f81d480be80 ; {runtime_call unwind_exception Runtime1 stub}0x00007f81d4d33f9f: hlt
[Stub Code]0x00007f81d4d33fa0: nopl 0x0(%rax,%rax,1) ; {no_reloc}0x00007f81d4d33fa5: movabs $0x0,%rbx ; {static_stub}0x00007f81d4d33faf: jmpq 0x00007f81d4d33faf ; {runtime_call}0x00007f81d4d33fb4: nop0x00007f81d4d33fb5: movabs $0x0,%rbx ; {static_stub}0x00007f81d4d33fbf: jmpq 0x00007f81d4d33fbf ; {runtime_call}
[Exception Handler]0x00007f81d4d33fc4: callq 0x00007f81d489ad00 ; {runtime_call handle_exception_from_callee Runtime1 stub}0x00007f81d4d33fc9: mov %rsp,-0x28(%rsp)0x00007f81d4d33fce: sub $0x80,%rsp0x00007f81d4d33fd5: mov %rax,0x78(%rsp)0x00007f81d4d33fda: mov %rcx,0x70(%rsp)0x00007f81d4d33fdf: mov %rdx,0x68(%rsp)0x00007f81d4d33fe4: mov %rbx,0x60(%rsp)0x00007f81d4d33fe9: mov %rbp,0x50(%rsp)0x00007f81d4d33fee: mov %rsi,0x48(%rsp)0x00007f81d4d33ff3: mov %rdi,0x40(%rsp)0x00007f81d4d33ff8: mov %r8,0x38(%rsp)0x00007f81d4d33ffd: mov %r9,0x30(%rsp)0x00007f81d4d34002: mov %r10,0x28(%rsp)0x00007f81d4d34007: mov %r11,0x20(%rsp)0x00007f81d4d3400c: mov %r12,0x18(%rsp)0x00007f81d4d34011: mov %r13,0x10(%rsp)0x00007f81d4d34016: mov %r14,0x8(%rsp)0x00007f81d4d3401b: mov %r15,(%rsp)0x00007f81d4d3401f: movabs $0x7f81f15ff3e2,%rdi ; {external_word}0x00007f81d4d34029: movabs $0x7f81d4d33fc9,%rsi ; {internal_word}0x00007f81d4d34033: mov %rsp,%rdx0x00007f81d4d34036: and $0xfffffffffffffff0,%rsp0x00007f81d4d3403a: callq 0x00007f81f1108240 ; {runtime_call}0x00007f81d4d3403f: hlt
[Deopt Handler Code]0x00007f81d4d34040: movabs $0x7f81d4d34040,%r10 ; {section_word}0x00007f81d4d3404a: push %r100x00007f81d4d3404c: jmpq 0x00007f81d47ed0a0 ; {runtime_call DeoptimizationBlob}0x00007f81d4d34051: hlt 0x00007f81d4d34052: hlt 0x00007f81d4d34053: hlt 0x00007f81d4d34054: hlt 0x00007f81d4d34055: hlt 0x00007f81d4d34056: hlt 0x00007f81d4d34057: hlt
--------------------------------------------------------------------------------Compiled method (n/a) 103 23 n 0 jdk.internal.misc.Unsafe::getReferenceVolatile (native)total in heap [0x00007f81dc26b310,0x00007f81dc26b6b0] = 928relocation [0x00007f81dc26b470,0x00007f81dc26b4a0] = 48main code [0x00007f81dc26b4a0,0x00007f81dc26b6b0] = 528--------------------------------------------------------------------------------
[Constant Pool (empty)]--------------------------------------------------------------------------------[Entry Point]# {method} {0x00007f81d3dbfb08} 'getReferenceVolatile' '(Ljava/lang/Object;J)Ljava/lang/Object;' in 'jdk/internal/misc/Unsafe'# this: rsi:rsi = 'jdk/internal/misc/Unsafe'# parm0: rdx:rdx = 'java/lang/Object'# parm1: rcx:rcx = long# [sp+0x50] (sp of caller)0x00007f81dc26b4a0: mov 0x8(%rsi),%r10d0x00007f81dc26b4a4: shl $0x3,%r100x00007f81dc26b4a8: cmp %r10,%rax0x00007f81dc26b4ab: je 0x00007f81dc26b4b80x00007f81dc26b4b1: jmpq 0x00007f81d47eed00 ; {runtime_call ic_miss_stub}0x00007f81dc26b4b6: xchg %ax,%ax
[Verified Entry Point]0x00007f81dc26b4b8: mov %eax,-0x14000(%rsp)0x00007f81dc26b4bf: push %rbp0x00007f81dc26b4c0: mov %rsp,%rbp0x00007f81dc26b4c3: sub $0x40,%rsp0x00007f81dc26b4c7: mov %rdx,0x8(%rsp)0x00007f81dc26b4cc: cmp $0x0,%rdx0x00007f81dc26b4d0: lea 0x8(%rsp),%rdx0x00007f81dc26b4d5: cmove 0x8(%rsp),%rdx0x00007f81dc26b4db: mov %rsi,(%rsp)0x00007f81dc26b4df: cmp $0x0,%rsi0x00007f81dc26b4e3: lea (%rsp),%rsi0x00007f81dc26b4e7: cmove (%rsp),%rsi0x00007f81dc26b4ec: vzeroupper 0x00007f81dc26b4ef: movabs $0x7f81dc26b4ec,%r10 ; {internal_word}0x00007f81dc26b4f9: mov %r10,0x2f8(%r15)0x00007f81dc26b500: mov %rsp,0x2f0(%r15)0x00007f81dc26b507: cmpb $0x0,0x1572b1c9(%rip) # 0x00007f81f19966d7; {external_word}0x00007f81dc26b50e: je 0x00007f81dc26b54a0x00007f81dc26b514: push %rsi0x00007f81dc26b515: push %rdx0x00007f81dc26b516: push %rcx0x00007f81dc26b517: movabs $0x7f81d3dbfb08,%rsi ; {metadata({method} {0x00007f81d3dbfb08} 'getReferenceVolatile' '(Ljava/lang/Object;J)Ljava/lang/Object;' in 'jdk/internal/misc/Unsafe')}0x00007f81dc26b521: mov %r15,%rdi0x00007f81dc26b524: test $0xf,%esp0x00007f81dc26b52a: je 0x00007f81dc26b5420x00007f81dc26b530: sub $0x8,%rsp0x00007f81dc26b534: callq 0x00007f81f12e97a0 ; {runtime_call}0x00007f81dc26b539: add $0x8,%rsp0x00007f81dc26b53d: jmpq 0x00007f81dc26b5470x00007f81dc26b542: callq 0x00007f81f12e97a0 ; {runtime_call}0x00007f81dc26b547: pop %rcx0x00007f81dc26b548: pop %rdx0x00007f81dc26b549: pop %rsi0x00007f81dc26b54a: lea 0x310(%r15),%rdi0x00007f81dc26b551: movl $0x4,0x388(%r15)0x00007f81dc26b55c: callq 0x00007f81f152bdf0 ; {runtime_call}0x00007f81dc26b561: vzeroupper 0x00007f81dc26b564: movl $0x5,0x388(%r15)0x00007f81dc26b56f: lock addl $0x0,-0x40(%rsp)0x00007f81dc26b575: testb $0x8,0x108(%r15)0x00007f81dc26b57d: jne 0x00007f81dc26b5940x00007f81dc26b583: cmpl $0x0,0xd8(%r15)0x00007f81dc26b58e: je 0x00007f81dc26b5b80x00007f81dc26b594: vzeroupper 0x00007f81dc26b597: mov %rax,-0x8(%rbp)0x00007f81dc26b59b: mov %r15,%rdi0x00007f81dc26b59e: mov %rsp,%r120x00007f81dc26b5a1: sub $0x0,%rsp0x00007f81dc26b5a5: and $0xfffffffffffffff0,%rsp0x00007f81dc26b5a9: callq 0x00007f81f14fd040 ; {runtime_call}0x00007f81dc26b5ae: mov %r12,%rsp0x00007f81dc26b5b1: xor %r12,%r120x00007f81dc26b5b4: mov -0x8(%rbp),%rax0x00007f81dc26b5b8: movl $0x8,0x388(%r15)0x00007f81dc26b5c3: cmpl $0x2,0x3d8(%r15)0x00007f81dc26b5ce: je 0x00007f81dc26b6850x00007f81dc26b5d4: cmpb $0x0,0x1572b0fc(%rip) # 0x00007f81f19966d7; {external_word}0x00007f81dc26b5db: je 0x00007f81dc26b6190x00007f81dc26b5e1: mov %rax,-0x8(%rbp)0x00007f81dc26b5e5: movabs $0x7f81d3dbfb08,%rsi ; {metadata({method} {0x00007f81d3dbfb08} 'getReferenceVolatile' '(Ljava/lang/Object;J)Ljava/lang/Object;' in 'jdk/internal/misc/Unsafe')}0x00007f81dc26b5ef: mov %r15,%rdi0x00007f81dc26b5f2: test $0xf,%esp0x00007f81dc26b5f8: je 0x00007f81dc26b6100x00007f81dc26b5fe: sub $0x8,%rsp0x00007f81dc26b602: callq 0x00007f81f12e97c0 ; {runtime_call}0x00007f81dc26b607: add $0x8,%rsp0x00007f81dc26b60b: jmpq 0x00007f81dc26b6150x00007f81dc26b610: callq 0x00007f81f12e97c0 ; {runtime_call}0x00007f81dc26b615: mov -0x8(%rbp),%rax0x00007f81dc26b619: movabs $0x0,%r100x00007f81dc26b623: mov %r10,0x2f0(%r15)0x00007f81dc26b62a: movabs $0x0,%r100x00007f81dc26b634: mov %r10,0x2f8(%r15)0x00007f81dc26b63b: vzeroupper 0x00007f81dc26b63e: test %rax,%rax0x00007f81dc26b641: je 0x00007f81dc26b65f0x00007f81dc26b647: test $0x1,%rax0x00007f81dc26b64d: je 0x00007f81dc26b65c0x00007f81dc26b653: mov -0x1(%rax),%rax0x00007f81dc26b657: jmpq 0x00007f81dc26b65f0x00007f81dc26b65c: mov (%rax),%rax0x00007f81dc26b65f: mov 0xe0(%r15),%rcx0x00007f81dc26b666: movl $0x0,0x100(%rcx)0x00007f81dc26b670: leaveq 0x00007f81dc26b671: cmpq $0x0,0x8(%r15)0x00007f81dc26b679: jne 0x00007f81dc26b6800x00007f81dc26b67f: retq 0x00007f81dc26b680: jmpq Stub::forward exception ; {runtime_call StubRoutines (1)}0x00007f81dc26b685: vzeroupper 0x00007f81dc26b688: mov %rax,-0x8(%rbp)0x00007f81dc26b68c: mov %rsp,%r120x00007f81dc26b68f: sub $0x0,%rsp0x00007f81dc26b693: and $0xfffffffffffffff0,%rsp0x00007f81dc26b697: callq 0x00007f81f12ea530 ; {runtime_call}0x00007f81dc26b69c: mov %r12,%rsp0x00007f81dc26b69f: xor %r12,%r120x00007f81dc26b6a2: mov -0x8(%rbp),%rax0x00007f81dc26b6a6: jmpq 0x00007f81dc26b5d40x00007f81dc26b6ab: hlt 0x00007f81dc26b6ac: hlt 0x00007f81dc26b6ad: hlt 0x00007f81dc26b6ae: hlt 0x00007f81dc26b6af: hlt
--------------------------------------------------------------------------------============================= C1-compiled nmethod ==============================
----------------------------------- Assembly -----------------------------------Compiled method (c1) 109 20 3 java.util.ImmutableCollections$SetN$SetNIterator::next (47 bytes)total in heap [0x00007f81d4d34410,0x00007f81d4d34b88] = 1912relocation [0x00007f81d4d34570,0x00007f81d4d345d0] = 96main code [0x00007f81d4d345e0,0x00007f81d4d34860] = 640stub code [0x00007f81d4d34860,0x00007f81d4d34918] = 184metadata [0x00007f81d4d34918,0x00007f81d4d34920] = 8scopes data [0x00007f81d4d34920,0x00007f81d4d349b8] = 152scopes pcs [0x00007f81d4d349b8,0x00007f81d4d34b68] = 432dependencies [0x00007f81d4d34b68,0x00007f81d4d34b70] = 8nul chk table [0x00007f81d4d34b70,0x00007f81d4d34b88] = 24--------------------------------------------------------------------------------
[Constant Pool (empty)]--------------------------------------------------------------------------------[Entry Point]# {method} {0x00007f81d3f883f8} 'next' '()Ljava/lang/Object;' in 'java/util/ImmutableCollections$SetN$SetNIterator'# [sp+0x50] (sp of caller)0x00007f81d4d345e0: mov 0x8(%rsi),%r10d0x00007f81d4d345e4: shl $0x3,%r100x00007f81d4d345e8: cmp %rax,%r100x00007f81d4d345eb: jne 0x00007f81d47eed00 ; {runtime_call ic_miss_stub}0x00007f81d4d345f1: data16 data16 nopw 0x0(%rax,%rax,1)0x00007f81d4d345fc: data16 data16 xchg %ax,%ax
[Verified Entry Point]0x00007f81d4d34600: mov %eax,-0x14000(%rsp)0x00007f81d4d34607: push %rbp0x00007f81d4d34608: sub $0x40,%rsp0x00007f81d4d3460c: mov %rsi,0x28(%rsp)0x00007f81d4d34611: movabs $0x7f81d3f95558,%rdi ; {metadata(method data for {method} {0x00007f81d3f883f8} 'next' '()Ljava/lang/Object;' in 'java/util/ImmutableCollections$SetN$SetNIterator')}0x00007f81d4d3461b: mov 0x13c(%rdi),%ebx0x00007f81d4d34621: add $0x8,%ebx0x00007f81d4d34624: mov %ebx,0x13c(%rdi)0x00007f81d4d3462a: and $0x1ff8,%ebx0x00007f81d4d34630: cmp $0x0,%ebx0x00007f81d4d34633: je 0x00007f81d4d347a6 ;*aload_0 {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN$SetNIterator::next@0 (line 763)0x00007f81d4d34639: mov 0xc(%rsi),%edi ;*getfield remaining {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN$SetNIterator::next@1 (line 763)0x00007f81d4d3463c: cmp $0x0,%edi0x00007f81d4d3463f: movabs $0x7f81d3f95558,%rdi ; {metadata(method data for {method} {0x00007f81d3f883f8} 'next' '()Ljava/lang/Object;' in 'java/util/ImmutableCollections$SetN$SetNIterator')}0x00007f81d4d34649: movabs $0x180,%rbx0x00007f81d4d34653: jle 0x00007f81d4d346630x00007f81d4d34659: movabs $0x190,%rbx0x00007f81d4d34663: mov (%rdi,%rbx,1),%rax0x00007f81d4d34667: lea 0x1(%rax),%rax0x00007f81d4d3466b: mov %rax,(%rdi,%rbx,1)0x00007f81d4d3466f: jle 0x00007f81d4d347620x00007f81d4d34675: jmpq 0x00007f81d4d346c7 ;*ifle {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN$SetNIterator::next@4 (line 763)0x00007f81d4d3467a: nopw 0x0(%rax,%rax,1)0x00007f81d4d34680: movabs $0x7f81d3f95558,%rax ; {metadata(method data for {method} {0x00007f81d3f883f8} 'next' '()Ljava/lang/Object;' in 'java/util/ImmutableCollections$SetN$SetNIterator')}0x00007f81d4d3468a: mov 0x140(%rax),%edx0x00007f81d4d34690: add $0x8,%edx0x00007f81d4d34693: mov %edx,0x140(%rax)0x00007f81d4d34699: and $0xfff8,%edx0x00007f81d4d3469f: cmp $0x0,%edx0x00007f81d4d346a2: je 0x00007f81d4d347c7 ;*goto {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN$SetNIterator::next@24 (line 766)0x00007f81d4d346a8: mov 0x108(%r15),%r10 ; ImmutableOopMap {[40]=Oop };*goto {reexecute=1 rethrow=0 return_oop=0}; - (reexecute) java.util.ImmutableCollections$SetN$SetNIterator::next@24 (line 766)0x00007f81d4d346af: test %eax,(%r10) ; {poll}0x00007f81d4d346b2: movabs $0x7f81d3f95558,%rax ; {metadata(method data for {method} {0x00007f81d3f883f8} 'next' '()Ljava/lang/Object;' in 'java/util/ImmutableCollections$SetN$SetNIterator')}0x00007f81d4d346bc: incl 0x1f8(%rax) ;*goto {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN$SetNIterator::next@24 (line 766)0x00007f81d4d346c2: mov 0x28(%rsp),%rsi0x00007f81d4d346c7: mov 0x14(%rsi),%edi ;*getfield this$0 {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN$SetNIterator::next@8 (line 766)0x00007f81d4d346ca: mov 0x10(%rdi),%edi ; implicit exception: dispatches to 0x00007f81d4d347e8;*getfield elements {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN$SetNIterator::next@11 (line 766)0x00007f81d4d346cd: mov %rsi,%rbx0x00007f81d4d346d0: movabs $0x7f81d3f95558,%rax ; {metadata(method data for {method} {0x00007f81d3f883f8} 'next' '()Ljava/lang/Object;' in 'java/util/ImmutableCollections$SetN$SetNIterator')}0x00007f81d4d346da: addq $0x1,0x1a0(%rax)0x00007f81d4d346e2: mov %rsi,%rbx0x00007f81d4d346e5: mov %rbx,%rsi ;*invokevirtual nextIndex {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN$SetNIterator::next@15 (line 766)0x00007f81d4d346e8: mov %rdi,0x20(%rsp)0x00007f81d4d346ed: xchg %ax,%ax0x00007f81d4d346ef: callq 0x00007f81d47eea00 ; ImmutableOopMap {[40]=Oop [32]=Oop };*invokevirtual nextIndex {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN$SetNIterator::next@15 (line 766); {optimized virtual_call}0x00007f81d4d346f4: mov 0x20(%rsp),%rdi0x00007f81d4d346f9: mov 0xc(%rdi),%edx ; implicit exception: dispatches to 0x00007f81d4d347ed0x00007f81d4d346fc: cmp %eax,%edx0x00007f81d4d346fe: jbe 0x00007f81d4d347f20x00007f81d4d34704: movslq %eax,%rax0x00007f81d4d34707: mov 0x10(%rdi,%rax,4),%eax ;*aaload {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN$SetNIterator::next@18 (line 766)0x00007f81d4d3470b: cmp $0x0,%rax0x00007f81d4d3470f: movabs $0x7f81d3f95558,%rdx ; {metadata(method data for {method} {0x00007f81d3f883f8} 'next' '()Ljava/lang/Object;' in 'java/util/ImmutableCollections$SetN$SetNIterator')}0x00007f81d4d34719: movabs $0x1e8,%rsi0x00007f81d4d34723: je 0x00007f81d4d347330x00007f81d4d34729: movabs $0x1d8,%rsi0x00007f81d4d34733: mov (%rdx,%rsi,1),%rdi0x00007f81d4d34737: lea 0x1(%rdi),%rdi0x00007f81d4d3473b: mov %rdi,(%rdx,%rsi,1)0x00007f81d4d3473f: je 0x00007f81d4d34680 ;*ifnonnull {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN$SetNIterator::next@21 (line 766)0x00007f81d4d34745: mov 0x28(%rsp),%rsi0x00007f81d4d3474a: mov 0xc(%rsi),%edx ;*getfield remaining {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN$SetNIterator::next@29 (line 767)0x00007f81d4d3474d: dec %edx0x00007f81d4d3474f: mov %edx,0xc(%rsi) ;*putfield remaining {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN$SetNIterator::next@34 (line 767)0x00007f81d4d34752: add $0x40,%rsp0x00007f81d4d34756: pop %rbp0x00007f81d4d34757: mov 0x108(%r15),%r100x00007f81d4d3475e: test %eax,(%r10) ; {poll_return}0x00007f81d4d34761: retq ;*areturn {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN$SetNIterator::next@38 (line 768)0x00007f81d4d34762: nopw 0x0(%rax,%rax,1)0x00007f81d4d34768: jmpq 0x00007f81d4d3480f ; {no_reloc}0x00007f81d4d3476d: add %al,(%rax)0x00007f81d4d3476f: add %al,(%rax)0x00007f81d4d34771: add %ch,%cl0x00007f81d4d34773: movabs %al,0xbf48f08b48000000 ;*new {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN$SetNIterator::next@39 (line 770); {metadata(method data for {method} {0x00007f81d3f883f8} 'next' '()Ljava/lang/Object;' in 'java/util/ImmutableCollections$SetN$SetNIterator')}0x00007f81d4d3477c: pop %rax0x00007f81d4d3477d: push %rbp0x00007f81d4d3477e: stc 0x00007f81d4d3477f: roll %cl,0x4800007f(%rcx)0x00007f81d4d34785: addl $0x1,0x210(%rdi)0x00007f81d4d3478c: mov %rax,%rsi ;*invokespecial <init> {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN$SetNIterator::next@43 (line 770)0x00007f81d4d3478f: mov %rax,0x30(%rsp)0x00007f81d4d34794: data16 xchg %ax,%ax0x00007f81d4d34797: callq 0x00007f81d47eea00 ; ImmutableOopMap {[48]=Oop };*invokespecial <init> {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN$SetNIterator::next@43 (line 770); {optimized virtual_call}0x00007f81d4d3479c: mov 0x30(%rsp),%rax0x00007f81d4d347a1: jmpq 0x00007f81d4d348510x00007f81d4d347a6: movabs $0x7f81d3f883f8,%r10 ; {metadata({method} {0x00007f81d3f883f8} 'next' '()Ljava/lang/Object;' in 'java/util/ImmutableCollections$SetN$SetNIterator')}0x00007f81d4d347b0: mov %r10,0x8(%rsp)0x00007f81d4d347b5: movq $0xffffffffffffffff,(%rsp)0x00007f81d4d347bd: callq 0x00007f81d489e000 ; ImmutableOopMap {rsi=Oop [40]=Oop };*synchronization entry; - java.util.ImmutableCollections$SetN$SetNIterator::next@-1 (line 763); {runtime_call counter_overflow Runtime1 stub}0x00007f81d4d347c2: jmpq 0x00007f81d4d346390x00007f81d4d347c7: movabs $0x7f81d3f883f8,%r10 ; {metadata({method} {0x00007f81d3f883f8} 'next' '()Ljava/lang/Object;' in 'java/util/ImmutableCollections$SetN$SetNIterator')}0x00007f81d4d347d1: mov %r10,0x8(%rsp)0x00007f81d4d347d6: movq $0x18,(%rsp)0x00007f81d4d347de: callq 0x00007f81d489e000 ; ImmutableOopMap {[40]=Oop };*goto {reexecute=1 rethrow=0 return_oop=0}; - (reexecute) java.util.ImmutableCollections$SetN$SetNIterator::next@24 (line 766); {runtime_call counter_overflow Runtime1 stub}0x00007f81d4d347e3: jmpq 0x00007f81d4d346a80x00007f81d4d347e8: callq 0x00007f81d480afa0 ; ImmutableOopMap {rsi=Oop [40]=Oop };*getfield elements {reexecute=1 rethrow=0 return_oop=0}; - (reexecute) java.util.ImmutableCollections$SetN$SetNIterator::next@11 (line 766); {runtime_call throw_null_pointer_exception Runtime1 stub}0x00007f81d4d347ed: callq 0x00007f81d480afa0 ; ImmutableOopMap {[40]=Oop rdi=Oop };*aaload {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN$SetNIterator::next@18 (line 766); {runtime_call throw_null_pointer_exception Runtime1 stub}0x00007f81d4d347f2: mov %rax,(%rsp)0x00007f81d4d347f6: mov %rdi,0x8(%rsp)0x00007f81d4d347fb: callq 0x00007f81d480b8a0 ; ImmutableOopMap {[40]=Oop rdi=Oop };*aaload {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN$SetNIterator::next@18 (line 766); {runtime_call throw_range_check_failed Runtime1 stub}0x00007f81d4d34800: movabs $0x0,%rdx ; {metadata(NULL)}0x00007f81d4d3480a: mov $0xa050f00,%eax0x00007f81d4d3480f: callq 0x00007f81d489cf80 ; ImmutableOopMap {};*new {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN$SetNIterator::next@39 (line 770); {runtime_call load_klass_patching Runtime1 stub}0x00007f81d4d34814: jmpq 0x00007f81d4d347680x00007f81d4d34819: mov %rdx,%rdx0x00007f81d4d3481c: callq 0x00007f81d480a980 ; ImmutableOopMap {};*new {reexecute=0 rethrow=0 return_oop=0}; - java.util.ImmutableCollections$SetN$SetNIterator::next@39 (line 770); {runtime_call new_instance Runtime1 stub}0x00007f81d4d34821: jmpq 0x00007f81d4d347770x00007f81d4d34826: nop0x00007f81d4d34827: nop0x00007f81d4d34828: mov 0x3f0(%r15),%rax0x00007f81d4d3482f: movabs $0x0,%r100x00007f81d4d34839: mov %r10,0x3f0(%r15)0x00007f81d4d34840: movabs $0x0,%r100x00007f81d4d3484a: mov %r10,0x3f8(%r15)0x00007f81d4d34851: add $0x40,%rsp0x00007f81d4d34855: pop %rbp0x00007f81d4d34856: jmpq 0x00007f81d480be80 ; {runtime_call unwind_exception Runtime1 stub}0x00007f81d4d3485b: hlt 0x00007f81d4d3485c: hlt 0x00007f81d4d3485d: hlt 0x00007f81d4d3485e: hlt 0x00007f81d4d3485f: hlt
[Stub Code]0x00007f81d4d34860: nopl 0x0(%rax,%rax,1) ; {no_reloc}0x00007f81d4d34865: movabs $0x0,%rbx ; {static_stub}0x00007f81d4d3486f: jmpq 0x00007f81d4d3486f ; {runtime_call}0x00007f81d4d34874: nop0x00007f81d4d34875: movabs $0x0,%rbx ; {static_stub}0x00007f81d4d3487f: jmpq 0x00007f81d4d3487f ; {runtime_call}
[Exception Handler]0x00007f81d4d34884: callq 0x00007f81d489ad00 ; {runtime_call handle_exception_from_callee Runtime1 stub}0x00007f81d4d34889: mov %rsp,-0x28(%rsp)0x00007f81d4d3488e: sub $0x80,%rsp0x00007f81d4d34895: mov %rax,0x78(%rsp)0x00007f81d4d3489a: mov %rcx,0x70(%rsp)0x00007f81d4d3489f: mov %rdx,0x68(%rsp)0x00007f81d4d348a4: mov %rbx,0x60(%rsp)0x00007f81d4d348a9: mov %rbp,0x50(%rsp)0x00007f81d4d348ae: mov %rsi,0x48(%rsp)0x00007f81d4d348b3: mov %rdi,0x40(%rsp)0x00007f81d4d348b8: mov %r8,0x38(%rsp)0x00007f81d4d348bd: mov %r9,0x30(%rsp)0x00007f81d4d348c2: mov %r10,0x28(%rsp)0x00007f81d4d348c7: mov %r11,0x20(%rsp)0x00007f81d4d348cc: mov %r12,0x18(%rsp)0x00007f81d4d348d1: mov %r13,0x10(%rsp)0x00007f81d4d348d6: mov %r14,0x8(%rsp)0x00007f81d4d348db: mov %r15,(%rsp)0x00007f81d4d348df: movabs $0x7f81f15ff3e2,%rdi ; {external_word}0x00007f81d4d348e9: movabs $0x7f81d4d34889,%rsi ; {internal_word}0x00007f81d4d348f3: mov %rsp,%rdx0x00007f81d4d348f6: and $0xfffffffffffffff0,%rsp0x00007f81d4d348fa: callq 0x00007f81f1108240 ; {runtime_call}0x00007f81d4d348ff: hlt
[Deopt Handler Code]0x00007f81d4d34900: movabs $0x7f81d4d34900,%r10 ; {section_word}0x00007f81d4d3490a: push %r100x00007f81d4d3490c: jmpq 0x00007f81d47ed0a0 ; {runtime_call DeoptimizationBlob}0x00007f81d4d34911: hlt 0x00007f81d4d34912: hlt 0x00007f81d4d34913: hlt 0x00007f81d4d34914: hlt 0x00007f81d4d34915: hlt 0x00007f81d4d34916: hlt 0x00007f81d4d34917: hlt
--------------------------------------------------------------------------------============================= C1-compiled nmethod ==============================
----------------------------------- Assembly -----------------------------------Compiled method (c1) 119 8 3 java.lang.StringLatin1::equals (36 bytes)total in heap [0x00007f81d4d34c10,0x00007f81d4d35268] = 1624relocation [0x00007f81d4d34d70,0x00007f81d4d34db0] = 64main code [0x00007f81d4d34dc0,0x00007f81d4d34fe0] = 544stub code [0x00007f81d4d34fe0,0x00007f81d4d35070] = 144metadata [0x00007f81d4d35070,0x00007f81d4d35078] = 8scopes data [0x00007f81d4d35078,0x00007f81d4d350f8] = 128scopes pcs [0x00007f81d4d350f8,0x00007f81d4d35248] = 336dependencies [0x00007f81d4d35248,0x00007f81d4d35250] = 8nul chk table [0x00007f81d4d35250,0x00007f81d4d35268] = 24--------------------------------------------------------------------------------
[Constant Pool (empty)]--------------------------------------------------------------------------------[Verified Entry Point]# {method} {0x00007f81d3e6d4a0} 'equals' '([B[B)Z' in 'java/lang/StringLatin1'# parm0: rsi:rsi = '[B'# parm1: rdx:rdx = '[B'# [sp+0x40] (sp of caller)0x00007f81d4d34dc0: mov %eax,-0x14000(%rsp)0x00007f81d4d34dc7: push %rbp0x00007f81d4d34dc8: sub $0x30,%rsp0x00007f81d4d34dcc: movabs $0x7f81d3f45a40,%rax ; {metadata(method data for {method} {0x00007f81d3e6d4a0} 'equals' '([B[B)Z' in 'java/lang/StringLatin1')}0x00007f81d4d34dd6: mov 0x13c(%rax),%edi0x00007f81d4d34ddc: add $0x8,%edi0x00007f81d4d34ddf: mov %edi,0x13c(%rax)0x00007f81d4d34de5: and $0x1ff8,%edi0x00007f81d4d34deb: cmp $0x0,%edi0x00007f81d4d34dee: je 0x00007f81d4d34f51 ;*aload_0 {reexecute=0 rethrow=0 return_oop=0}; - java.lang.StringLatin1::equals@0 (line 95)0x00007f81d4d34df4: mov 0xc(%rsi),%eax ; implicit exception: dispatches to 0x00007f81d4d34f72;*arraylength {reexecute=0 rethrow=0 return_oop=0}; - java.lang.StringLatin1::equals@1 (line 95)0x00007f81d4d34df7: mov 0xc(%rdx),%edi ; implicit exception: dispatches to 0x00007f81d4d34f77;*arraylength {reexecute=0 rethrow=0 return_oop=0}; - java.lang.StringLatin1::equals@3 (line 95)0x00007f81d4d34dfa: cmp %edi,%eax0x00007f81d4d34dfc: movabs $0x7f81d3f45a40,%rdi ; {metadata(method data for {method} {0x00007f81d3e6d4a0} 'equals' '([B[B)Z' in 'java/lang/StringLatin1')}0x00007f81d4d34e06: movabs $0x180,%rbx0x00007f81d4d34e10: jne 0x00007f81d4d34e200x00007f81d4d34e16: movabs $0x190,%rbx0x00007f81d4d34e20: mov (%rdi,%rbx,1),%rcx0x00007f81d4d34e24: lea 0x1(%rcx),%rcx0x00007f81d4d34e28: mov %rcx,(%rdi,%rbx,1)0x00007f81d4d34e2c: jne 0x00007f81d4d34f3c ;*if_icmpne {reexecute=0 rethrow=0 return_oop=0}; - java.lang.StringLatin1::equals@4 (line 95)0x00007f81d4d34e32: mov $0x0,%edi0x00007f81d4d34e37: jmpq 0x00007f81d4d34ed5 ;*iload_2 {reexecute=0 rethrow=0 return_oop=0}; - java.lang.StringLatin1::equals@9 (line 96)0x00007f81d4d34e3c: nopl 0x0(%rax)0x00007f81d4d34e40: movslq %edi,%rbx0x00007f81d4d34e43: movsbl 0x10(%rsi,%rbx,1),%ebx ;*baload {reexecute=0 rethrow=0 return_oop=0}; - java.lang.StringLatin1::equals@17 (line 97)0x00007f81d4d34e48: cmp 0xc(%rdx),%edi0x00007f81d4d34e4b: jae 0x00007f81d4d34f7c0x00007f81d4d34e51: movslq %edi,%rcx0x00007f81d4d34e54: movsbl 0x10(%rdx,%rcx,1),%ecx ;*baload {reexecute=0 rethrow=0 return_oop=0}; - java.lang.StringLatin1::equals@20 (line 97)0x00007f81d4d34e59: cmp %ecx,%ebx0x00007f81d4d34e5b: movabs $0x7f81d3f45a40,%rbx ; {metadata(method data for {method} {0x00007f81d3e6d4a0} 'equals' '([B[B)Z' in 'java/lang/StringLatin1')}0x00007f81d4d34e65: movabs $0x1d0,%rcx0x00007f81d4d34e6f: jne 0x00007f81d4d34e7f0x00007f81d4d34e75: movabs $0x1c0,%rcx0x00007f81d4d34e7f: mov (%rbx,%rcx,1),%r80x00007f81d4d34e83: lea 0x1(%r8),%r80x00007f81d4d34e87: mov %r8,(%rbx,%rcx,1)0x00007f81d4d34e8b: jne 0x00007f81d4d34f12 ;*if_icmpeq {reexecute=0 rethrow=0 return_oop=0}; - java.lang.StringLatin1::equals@21 (line 97)0x00007f81d4d34e91: inc %edi0x00007f81d4d34e93: movabs $0x7f81d3f45a40,%rbx ; {metadata(method data for {method} {0x00007f81d3e6d4a0} 'equals' '([B[B)Z' in 'java/lang/StringLatin1')}0x00007f81d4d34e9d: mov 0x140(%rbx),%ecx0x00007f81d4d34ea3: add $0x8,%ecx0x00007f81d4d34ea6: mov %ecx,0x140(%rbx)0x00007f81d4d34eac: and $0xfff8,%ecx0x00007f81d4d34eb2: cmp $0x0,%ecx0x00007f81d4d34eb5: je 0x00007f81d4d34f8a ;*goto {reexecute=0 rethrow=0 return_oop=0}; - java.lang.StringLatin1::equals@29 (line 96)0x00007f81d4d34ebb: mov 0x108(%r15),%r10 ; ImmutableOopMap {rsi=Oop rdx=Oop };*goto {reexecute=1 rethrow=0 return_oop=0}; - (reexecute) java.lang.StringLatin1::equals@29 (line 96)0x00007f81d4d34ec2: test %eax,(%r10) ; {poll}0x00007f81d4d34ec5: movabs $0x7f81d3f45a40,%rbx ; {metadata(method data for {method} {0x00007f81d3e6d4a0} 'equals' '([B[B)Z' in 'java/lang/StringLatin1')}0x00007f81d4d34ecf: incl 0x1e0(%rbx) ;*goto {reexecute=0 rethrow=0 return_oop=0}; - java.lang.StringLatin1::equals@29 (line 96)0x00007f81d4d34ed5: cmp %eax,%edi0x00007f81d4d34ed7: movabs $0x7f81d3f45a40,%rbx ; {metadata(method data for {method} {0x00007f81d3e6d4a0} 'equals' '([B[B)Z' in 'java/lang/StringLatin1')}0x00007f81d4d34ee1: movabs $0x1a0,%rcx0x00007f81d4d34eeb: jge 0x00007f81d4d34efb0x00007f81d4d34ef1: movabs $0x1b0,%rcx0x00007f81d4d34efb: mov (%rbx,%rcx,1),%r80x00007f81d4d34eff: lea 0x1(%r8),%r80x00007f81d4d34f03: mov %r8,(%rbx,%rcx,1)0x00007f81d4d34f07: jge 0x00007f81d4d34f270x00007f81d4d34f0d: jmpq 0x00007f81d4d34e40 ;*if_icmpge {reexecute=0 rethrow=0 return_oop=0}; - java.lang.StringLatin1::equals@12 (line 96)0x00007f81d4d34f12: mov $0x0,%eax0x00007f81d4d34f17: add $0x30,%rsp0x00007f81d4d34f1b: pop %rbp0x00007f81d4d34f1c: mov 0x108(%r15),%r100x00007f81d4d34f23: test %eax,(%r10) ; {poll_return}0x00007f81d4d34f26: retq ;*ireturn {reexecute=0 rethrow=0 return_oop=0}; - java.lang.StringLatin1::equals@25 (line 98)0x00007f81d4d34f27: mov $0x1,%eax0x00007f81d4d34f2c: add $0x30,%rsp0x00007f81d4d34f30: pop %rbp0x00007f81d4d34f31: mov 0x108(%r15),%r100x00007f81d4d34f38: test %eax,(%r10) ; {poll_return}0x00007f81d4d34f3b: retq ;*ireturn {reexecute=0 rethrow=0 return_oop=0}; - java.lang.StringLatin1::equals@33 (line 101)0x00007f81d4d34f3c: mov $0x0,%eax0x00007f81d4d34f41: add $0x30,%rsp0x00007f81d4d34f45: pop %rbp0x00007f81d4d34f46: mov 0x108(%r15),%r100x00007f81d4d34f4d: test %eax,(%r10) ; {poll_return}0x00007f81d4d34f50: retq 0x00007f81d4d34f51: movabs $0x7f81d3e6d4a0,%r10 ; {metadata({method} {0x00007f81d3e6d4a0} 'equals' '([B[B)Z' in 'java/lang/StringLatin1')}0x00007f81d4d34f5b: mov %r10,0x8(%rsp)0x00007f81d4d34f60: movq $0xffffffffffffffff,(%rsp)0x00007f81d4d34f68: callq 0x00007f81d489e000 ; ImmutableOopMap {rsi=Oop rdx=Oop };*synchronization entry; - java.lang.StringLatin1::equals@-1 (line 95); {runtime_call counter_overflow Runtime1 stub}0x00007f81d4d34f6d: jmpq 0x00007f81d4d34df40x00007f81d4d34f72: callq 0x00007f81d480afa0 ; ImmutableOopMap {rsi=Oop rdx=Oop };*arraylength {reexecute=0 rethrow=0 return_oop=0}; - java.lang.StringLatin1::equals@1 (line 95); {runtime_call throw_null_pointer_exception Runtime1 stub}0x00007f81d4d34f77: callq 0x00007f81d480afa0 ; ImmutableOopMap {rsi=Oop rdx=Oop };*arraylength {reexecute=0 rethrow=0 return_oop=0}; - java.lang.StringLatin1::equals@3 (line 95); {runtime_call throw_null_pointer_exception Runtime1 stub}0x00007f81d4d34f7c: mov %rdi,(%rsp)0x00007f81d4d34f80: mov %rdx,0x8(%rsp)0x00007f81d4d34f85: callq 0x00007f81d480b8a0 ; ImmutableOopMap {rsi=Oop rdx=Oop };*baload {reexecute=0 rethrow=0 return_oop=0}; - java.lang.StringLatin1::equals@20 (line 97); {runtime_call throw_range_check_failed Runtime1 stub}0x00007f81d4d34f8a: movabs $0x7f81d3e6d4a0,%r10 ; {metadata({method} {0x00007f81d3e6d4a0} 'equals' '([B[B)Z' in 'java/lang/StringLatin1')}0x00007f81d4d34f94: mov %r10,0x8(%rsp)0x00007f81d4d34f99: movq $0x1d,(%rsp)0x00007f81d4d34fa1: callq 0x00007f81d489e000 ; ImmutableOopMap {rsi=Oop rdx=Oop };*goto {reexecute=1 rethrow=0 return_oop=0}; - (reexecute) java.lang.StringLatin1::equals@29 (line 96); {runtime_call counter_overflow Runtime1 stub}0x00007f81d4d34fa6: jmpq 0x00007f81d4d34ebb0x00007f81d4d34fab: nop0x00007f81d4d34fac: nop0x00007f81d4d34fad: mov 0x3f0(%r15),%rax0x00007f81d4d34fb4: movabs $0x0,%r100x00007f81d4d34fbe: mov %r10,0x3f0(%r15)0x00007f81d4d34fc5: movabs $0x0,%r100x00007f81d4d34fcf: mov %r10,0x3f8(%r15)0x00007f81d4d34fd6: add $0x30,%rsp0x00007f81d4d34fda: pop %rbp0x00007f81d4d34fdb: jmpq 0x00007f81d480be80 ; {runtime_call unwind_exception Runtime1 stub}
[Exception Handler]0x00007f81d4d34fe0: callq 0x00007f81d489ad00 ; {no_reloc}0x00007f81d4d34fe5: mov %rsp,-0x28(%rsp)0x00007f81d4d34fea: sub $0x80,%rsp0x00007f81d4d34ff1: mov %rax,0x78(%rsp)0x00007f81d4d34ff6: mov %rcx,0x70(%rsp)0x00007f81d4d34ffb: mov %rdx,0x68(%rsp)0x00007f81d4d35000: mov %rbx,0x60(%rsp)0x00007f81d4d35005: mov %rbp,0x50(%rsp)0x00007f81d4d3500a: mov %rsi,0x48(%rsp)0x00007f81d4d3500f: mov %rdi,0x40(%rsp)0x00007f81d4d35014: mov %r8,0x38(%rsp)0x00007f81d4d35019: mov %r9,0x30(%rsp)0x00007f81d4d3501e: mov %r10,0x28(%rsp)0x00007f81d4d35023: mov %r11,0x20(%rsp)0x00007f81d4d35028: mov %r12,0x18(%rsp)0x00007f81d4d3502d: mov %r13,0x10(%rsp)0x00007f81d4d35032: mov %r14,0x8(%rsp)0x00007f81d4d35037: mov %r15,(%rsp)0x00007f81d4d3503b: movabs $0x7f81f15ff3e2,%rdi ; {external_word}0x00007f81d4d35045: movabs $0x7f81d4d34fe5,%rsi ; {internal_word}0x00007f81d4d3504f: mov %rsp,%rdx0x00007f81d4d35052: and $0xfffffffffffffff0,%rsp0x00007f81d4d35056: callq 0x00007f81f1108240 ; {runtime_call}0x00007f81d4d3505b: hlt
[Deopt Handler Code]0x00007f81d4d3505c: movabs $0x7f81d4d3505c,%r10 ; {section_word}0x00007f81d4d35066: push %r100x00007f81d4d35068: jmpq 0x00007f81d47ed0a0 ; {runtime_call DeoptimizationBlob}0x00007f81d4d3506d: hlt 0x00007f81d4d3506e: hlt 0x00007f81d4d3506f: hlt
--------------------------------------------------------------------------------============================= C1-compiled nmethod ==============================
----------------------------------- Assembly -----------------------------------Compiled method (c1) 127 33 3 java.util.HashMap::putVal (300 bytes)total in heap [0x00007f81d4d35290,0x00007f81d4d373b8] = 8488relocation [0x00007f81d4d353f0,0x00007f81d4d35530] = 320main code [0x00007f81d4d35540,0x00007f81d4d366e0] = 4512stub code [0x00007f81d4d366e0,0x00007f81d4d367d8] = 248metadata [0x00007f81d4d367d8,0x00007f81d4d36810] = 56scopes data [0x00007f81d4d36810,0x00007f81d4d36ca8] = 1176scopes pcs [0x00007f81d4d36ca8,0x00007f81d4d37348] = 1696dependencies [0x00007f81d4d37348,0x00007f81d4d37350] = 8nul chk table [0x00007f81d4d37350,0x00007f81d4d373b8] = 104--------------------------------------------------------------------------------
[Constant Pool (empty)]--------------------------------------------------------------------------------[Entry Point]# {method} {0x00007f81d3e413e0} 'putVal' '(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object;' in 'java/util/HashMap'# this: rsi:rsi = 'java/util/HashMap'# parm0: rdx = int# parm1: rcx:rcx = 'java/lang/Object'# parm2: r8:r8 = 'java/lang/Object'# parm3: r9 = boolean# parm4: rdi = boolean# [sp+0xf0] (sp of caller)0x00007f81d4d35540: mov 0x8(%rsi),%r10d0x00007f81d4d35544: shl $0x3,%r100x00007f81d4d35548: cmp %rax,%r100x00007f81d4d3554b: jne 0x00007f81d47eed00 ; {runtime_call ic_miss_stub}0x00007f81d4d35551: data16 data16 nopw 0x0(%rax,%rax,1)0x00007f81d4d3555c: data16 data16 xchg %ax,%ax
[Verified Entry Point]0x00007f81d4d35560: mov %eax,-0x14000(%rsp)0x00007f81d4d35567: push %rbp0x00007f81d4d35568: sub $0xe0,%rsp0x00007f81d4d3556f: mov %rsi,0xa0(%rsp)0x00007f81d4d35577: mov %edx,0x98(%rsp)0x00007f81d4d3557e: mov %rcx,0xa8(%rsp)0x00007f81d4d35586: mov %r8,0xb0(%rsp)0x00007f81d4d3558e: mov %edi,0xb8(%rsp)0x00007f81d4d35595: movabs $0x7f81d3f9df18,%rbx ; {metadata(method data for {method} {0x00007f81d3e413e0} 'putVal' '(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object;' in 'java/util/HashMap')}0x00007f81d4d3559f: mov 0x13c(%rbx),%eax0x00007f81d4d355a5: add $0x8,%eax0x00007f81d4d355a8: mov %eax,0x13c(%rbx)0x00007f81d4d355ae: and $0x1ff8,%eax0x00007f81d4d355b4: cmp $0x0,%eax0x00007f81d4d355b7: je 0x00007f81d4d364bb ;*aload_0 {reexecute=0 rethrow=0 return_oop=0}; - java.util.HashMap::putVal@0 (line 628)0x00007f81d4d355bd: mov 0x24(%rsi),%ebx ;*getfield table {reexecute=0 rethrow=0 return_oop=0}; - java.util.HashMap::putVal@1 (line 628)0x00007f81d4d355c0: cmp $0x0,%rbx0x00007f81d4d355c4: movabs $0x7f81d3f9df18,%rax ; {metadata(method data for {method} {0x00007f81d3e413e0} 'putVal' '(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object;' in 'java/util/HashMap')}0x00007f81d4d355ce: movabs $0x180,%r110x00007f81d4d355d8: je 0x00007f81d4d355e80x00007f81d4d355de: movabs $0x190,%r110x00007f81d4d355e8: mov (%rax,%r11,1),%r130x00007f81d4d355ec: lea 0x1(%r13),%r130x00007f81d4d355f0: mov %r13,(%rax,%r11,1)0x00007f81d4d355f4: je 0x00007f81d4d35643 ;*ifnull {reexecute=0 rethrow=0 return_oop=0}; - java.util.HashMap::putVal@7 (line 628)0x00007f81d4d355fa: mov 0xc(%rbx),%eax ; implicit exception: dispatches to 0x00007f81d4d364dc;*arraylength {reexecute=0 rethrow=0 return_oop=0}; - java.util.HashMap::putVal@12 (line 628)0x00007f81d4d355fd: cmp $0x0,%eax0x00007f81d4d35600: movabs $0x7f81d3f9df18,%r11 ; {metadata(method data for {method} {0x00007f81d3e413e0} 'putVal' '(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object;' in 'java/util/HashMap')}0x00007f81d4d3560a: movabs $0x1b0,%r130x00007f81d4d35614: je 0x00007f81d4d356240x00007f81d4d3561a: movabs $0x1a0,%r130x00007f81d4d35624: mov (%r11,%r13,1),%r140x00007f81d4d35628: lea 0x1(%r14),%r140x00007f81d4d3562c: mov %r14,(%r11,%r13,1)0x00007f81d4d35630: je 0x00007f81d4d35643 ;*ifne {reexecute=0 rethrow=0 return_oop=0}; - java.util.HashMap::putVal@16 (line 628)0x00007f81d4d35636: mov %r9d,0x9c(%rsp)0x00007f81d4d3563e: jmpq 0x00007f81d4d35678 ;*aload {reexecute=0 rethrow=0 return_oop=0}; - java.util.HashMap::putVal@29 (line 630)0x00007f81d4d35643: mov %r9d,0x9c(%rsp)0x00007f81d4d3564b: mov %rsi,%rbx0x00007f81d4d3564e: movabs $0x7f81d3f9df18,%rax ; {metadata(method data for {method} {0x00007f81d3e413e0} 'putVal' '(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object;' in 'java/util/HashMap')}0x00007f81d4d35658: addq $0x1,0x1c0(%rax)0x00007f81d4d35660: mov %rsi,%rbx0x00007f81d4d35663: mov %rbx,%rsi ;*invokevirtual resize {reexecute=0 rethrow=0 return_oop=0}; - java.util.HashMap::putVal@20 (line 629)0x00007f81d4d35666: nop0x00007f81d4d35667: callq 0x00007f81d47eea00 ; ImmutableOopMap {[160]=Oop [176]=Oop [168]=Oop };*invokevirtual resize {reexecute=0 rethrow=0 return_oop=0}; - java.util.HashMap::putVal@20 (line 629); {optimized virtual_call}0x00007f81d4d3566c: mov %rax,%rdx ;*invokevirtual resize {reexecute=0 rethrow=0 return_oop=0}; - java.util.HashMap::putVal@20 (line 629)0x00007f81d4d3566f: mov 0xc(%rdx),%esi ; implicit exception: dispatches to 0x00007f81d4d364e1;*arraylength {reexecute=0 rethrow=0 return_oop=0}; - java.util.HashMap::putVal@26 (line 629)0x00007f81d4d35672: mov %rsi,%rax0x00007f81d4d35675: mov %rdx,%rbx ;*aload {reexecute=0 rethrow=0 return_oop=0}; - java.util.HashMap::putVal@29 (line 630)0x00007f81d4d35678: dec %eax0x00007f81d4d3567a: mov %rax,%r80x00007f81d4d3567d: and 0x98(%rsp),%r8d0x00007f81d4d35685: cmp 0xc(%rbx),%r8d ; implicit exception: dispatches to 0x00007f81d4d364e60x00007f81d4d35689: jae 0x00007f81d4d364f00x00007f81d4d3568f: movslq %r8d,%rdx0x00007f81d4d35692: mov 0x10(%rbx,%rdx,4),%edi ;*aaload {reexecute=0 rethrow=0 return_oop=0}; - java.util.HashMap::putVal@40 (line 630)0x00007f81d4d35696: cmp $0x0,%rdi0x00007f81d4d3569a: movabs $0x7f81d3f9df18,%rdx ; {metadata(method data for {method} {0x00007f81d3e413e0} 'putVal' '(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object;' in 'java/util/HashMap')}0x00007f81d4d356a4: movabs $0x1f8,%rsi0x00007f81d4d356ae: jne 0x00007f81d4d356be0x00007f81d4d356b4: movabs $0x208,%rsi0x00007f81d4d356be: mov (%rdx,%rsi,1),%rax0x00007f81d4d356c2: lea 0x1(%rax),%rax0x00007f81d4d356c6: mov %rax,(%rdx,%rsi,1)0x00007f81d4d356ca: mov 0xb0(%rsp),%r90x00007f81d4d356d2: jne 0x00007f81d4d3595e ;*ifnonnull {reexecute=0 rethrow=0 return_oop=0}; - java.util.HashMap::putVal@44 (line 630)0x00007f81d4d356d8: mov 0xa8(%rsp),%rcx0x00007f81d4d356e0: mov 0x98(%rsp),%edx0x00007f81d4d356e7: mov 0xa0(%rsp),%rsi0x00007f81d4d356ef: movabs $0x7f81d3f9df18,%rdi ; {metadata(method data for {method} {0x00007f81d3e413e0} 'putVal' '(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object;' in 'java/util/HashMap')}0x00007f81d4d356f9: addq $0x1,0x230(%rdi)0x00007f81d4d35701: movabs $0x7f81d3f9ed80,%rsi ; {metadata(method data for {method} {0x00007f81d3e43970} 'newNode' '(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)Ljava/util/HashMap$Node;' in 'java/util/HashMap')}0x00007f81d4d3570b: mov 0x13c(%rsi),%edi0x00007f81d4d35711: add $0x8,%edi0x00007f81d4d35714: mov %edi,0x13c(%rsi)0x00007f81d4d3571a: and $0x7ffff8,%edi0x00007f81d4d35720: cmp $0x0,%edi0x00007f81d4d35723: je 0x00007f81d4d364fe0x00007f81d4d35729: mov %rdx,%r110x00007f81d4d3572c: movabs $0x100020330,%rdx ; {metadata('java/util/HashMap$Node')}0x00007f81d4d35736: mov %rcx,%r130x00007f81d4d35739: mov 0x118(%r15),%rax0x00007f81d4d35740: lea 0x20(%rax),%rdi0x00007f81d4d35744: cmp 0x128(%r15),%rdi0x00007f81d4d3574b: ja 0x00007f81d4d3651f0x00007f81d4d35751: mov %rdi,0x118(%r15)0x00007f81d4d35758: mov 0xb8(%rdx),%rcx0x00007f81d4d3575f: mov %rcx,(%rax)0x00007f81d4d35762: mov %rdx,%rcx0x00007f81d4d35765: shr $0x3,%rcx0x00007f81d4d35769: mov %ecx,0x8(%rax)0x00007f81d4d3576c: xor %rcx,%rcx0x00007f81d4d3576f: mov %ecx,0xc(%rax)0x00007f81d4d35772: xor %rcx,%rcx0x00007f81d4d35775: mov %rcx,0x10(%rax)0x00007f81d4d35779: mov %rcx,0x18(%rax) ;*new {reexecute=0 rethrow=0 return_oop=0}; - java.util.HashMap::newNode@0 (line 1799); - java.util.HashMap::putVal@56 (line 631)0x00007f81d4d3577d: mov %rax,%rdx0x00007f81d4d35780: movabs $0x7f81d3f9ed80,%rsi ; {metadata(method data for {method} {0x00007f81d3e43970} 'newNode' '(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)Ljava/util/HashMap$Node;' in 'java/util/HashMap')}0x00007f81d4d3578a: addq $0x1,0x180(%rsi)0x00007f81d4d35792: movabs $0x7f81d3f9ef50,%rdx ; {metadata(method data for {method} {0x00007f81d3e710e8} '<init>' '(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)V' in 'java/util/HashMap$Node')}0x00007f81d4d3579c: mov 0x13c(%rdx),%esi0x00007f81d4d357a2: add $0x8,%esi0x00007f81d4d357a5: mov %esi,0x13c(%rdx)0x00007f81d4d357ab: and $0x7ffff8,%esi0x00007f81d4d357b1: cmp $0x0,%esi0x00007f81d4d357b4: je 0x00007f81d4d3652c0x00007f81d4d357ba: mov %rax,%rdx0x00007f81d4d357bd: movabs $0x7f81d3f9ef50,%rsi ; {metadata(method data for {method} {0x00007f81d3e710e8} '<init>' '(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)V' in 'java/util/HashMap$Node')}0x00007f81d4d357c7: addq $0x1,0x180(%rsi)0x00007f81d4d357cf: movabs $0x7f81d3f33388,%rdx ; {metadata(method data for {method} {0x00007f81d3cfe650} '<init>' '()V' in 'java/lang/Object')}0x00007f81d4d357d9: mov 0x13c(%rdx),%esi0x00007f81d4d357df: add $0x8,%esi0x00007f81d4d357e2: mov %esi,0x13c(%rdx)0x00007f81d4d357e8: and $0x7ffff8,%esi0x00007f81d4d357ee: cmp $0x0,%esi0x00007f81d4d357f1: je 0x00007f81d4d3654d0x00007f81d4d357f7: mov %r11d,0xc(%rax) ;*putfield hash {reexecute=0 rethrow=0 return_oop=0}; - java.util.HashMap$Node::<init>@6 (line 286); - java.util.HashMap::newNode@9 (line 1799); - java.util.HashMap::putVal@56 (line 631)0x00007f81d4d357fb: mov %r13,%r100x00007f81d4d357fe: mov %r10d,0x10(%rax)0x00007f81d4d35802: mov %rax,%rdx0x00007f81d4d35805: shr $0x9,%rdx0x00007f81d4d35809: movabs $0x7f81d3eb8000,%rsi0x00007f81d4d35813: movb $0x0,(%rdx,%rsi,1) ;*putfield key {reexecute=0 rethrow=0 return_oop=0}; - java.util.HashMap$Node::<init>@11 (line 287); - java.util.HashMap::newNode@9 (line 1799); - java.util.HashMap::putVal@56 (line 631)0x00007f81d4d35817: mov %r9,%r100x00007f81d4d3581a: mov %r10d,0x14(%rax)0x00007f81d4d3581e: mov %rax,%rdx0x00007f81d4d35821: shr $0x9,%rdx0x00007f81d4d35825: movb $0x0,(%rdx,%rsi,1) ;*putfield value {reexecute=0 rethrow=0 return_oop=0}; - java.util.HashMap$Node::<init>@16 (line 288); - java.util.HashMap::newNode@9 (line 1799); - java.util.HashMap::putVal@56 (line 631)0x00007f81d4d35829: cmp 0xc(%rbx),%r8d0x00007f81d4d3582d: jae 0x00007f81d4d3656e0x00007f81d4d35833: cmp $0x0,%rax0x00007f81d4d35837: jne 0x00007f81d4d3584f0x00007f81d4d35839: movabs $0x7f81d3f9df18,%rdi ; {metadata(method data for {method} {0x00007f81d3e413e0} 'putVal' '(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object;' in 'java/util/HashMap')}0x00007f81d4d35843: orb $0x1,0x249(%rdi)0x00007f81d4d3584a: jmpq 0x00007f81d4d359330x00007f81d4d3584f: mov 0x8(%rbx),%edx ; implicit exception: dispatches to 0x00007f81d4d3657c0x00007f81d4d35852: shl $0x3,%rdx0x00007f81d4d35856: mov 0x8(%rax),%edi0x00007f81d4d35859: shl $0x3,%rdi0x00007f81d4d3585d: mov 0xe8(%rdx),%rdx0x00007f81d4d35864: cmp %rdx,%rdi0x00007f81d4d35867: je 0x00007f81d4d358950x00007f81d4d3586d: mov 0x10(%rdx),%ecx0x00007f81d4d35870: cmp (%rdi,%rcx,1),%rdx0x00007f81d4d35874: je 0x00007f81d4d358950x00007f81d4d3587a: cmp $0x20,%ecx0x00007f81d4d3587d: jne 0x00007f81d4d3591c0x00007f81d4d35883: push %rdi0x00007f81d4d35884: push %rdx0x00007f81d4d35885: callq 0x00007f81d489b900 ; {runtime_call slow_subtype_check Runtime1 stub}0x00007f81d4d3588a: pop %rdi0x00007f81d4d3588b: pop %rdx0x00007f81d4d3588c: cmp $0x0,%edx0x00007f81d4d3588f: je 0x00007f81d4d3591c0x00007f81d4d35895: movabs $0x7f81d3f9df18,%rdi ; {metadata(method data for {method} {0x00007f81d3e413e0} 'putVal' '(ILjava/lang/Object;Ljava/lang/Object;ZZ)Ljava/lang/Object;' in 'java/util/HashMap')}0x00007f81d4d3589f: mov 0x8(%rax),%edx0x00007f81d4d358a2: shl $0x3,%rdx0x00007f81d4d358a6: cmp 0x260(%rdi),%rdx0x00007f81d4d358ad: jne 0x00007f81d4d358bc0x00007f81d4d358af: addq $0x1,0x268(%rdi)0x00007f81d4d358b7: jmpq 0x00007f81d4d359330x00007f81d4d358bc: cmp 0x270(%rdi),%rdx0x00007f81d4d358c3: jne 0x00007f81d4d358d20x00007f81d4d358c5: addq $0x1,0x278(%rdi)0x00007f81d4d358cd: jmpq 0x00007f81d4d359330x00007f81d4d358d2: cmpq $0x0,0x260(%rdi)0x00007f81d4d358dd: jne 0x00007f81d4d358f60x00007f81d4d358df: mov %rdx,0x260(%rdi)0x00007f81d4d358e6: movq $0x1,0x268(%rdi)0x00007f81d4d358f1: jmpq 0x00007f81d4d359330x00007f81d4d358f6: cmpq $0x0,0x270(%rdi)0x00007f81d4d35901: jne 0x00007f81d4d3591a0x00007f81d4d35903: mov %rdx,0x270(%rdi)0x00007f81d4d3590a: movq $0x1,0x278(%rdi)0x00007f81d4d35915: jmpq 0x00007f81d4d359330x00
synchronized.2相关推荐
- 【java线程】锁机制:synchronized、Lock、Condition
[Java线程]锁机制:synchronized.Lock.Condition 原创 2013年08月14日 17:15:55 标签:Java /多线程 74967 http://www.infoq. ...
- java static 可见性_Java多线程 synchronized与可见性的关系以及可见性问题总结
作者:七里香的编程之路 出自:OSCHINA 原文:my.oschina.net/u/4098550/blog/4548274 能保证可见性的措施 除了volatile 可以让变量保证可见性外.hap ...
- 你真的掌握了并发编程volatile synchronized么?
先看代码: import java.util.concurrent.atomic.AtomicInteger;/**** @author xialuomantian*/ public class Ne ...
- Java使用字节码和汇编语言同步分析volatile,synchronized的底层实现
关于怎么查看字节码的五种方法参考本人另一篇文章<Java以及IDEA下查看字节码的五种方法> 查看汇编语言汇编码 说要看汇编还是很有必要的,因为有些地方比如加锁其实还是通过汇编实现的,只看 ...
- java并发vol_java 并发中 volitile、synchronized和lock的比较(一)
1.volitile和(synchronnized.lock) 首先比较volitile和synchronnized,volitile线程不安全,但是synchronized则是线程安全的. voli ...
- synchronized底层原理_你用过synchronized吗?它的底层原理是什么?Java经典面试题来了...
并发编程已经成为程序员必备技能 作为Java程序员,不懂得并发编程显然已经不能满足市场需求了,尤其是在面试过程中将处于被动地位,也有可能面试将就此终结. 那么作为Java开发者的你,日常虽然可以基于J ...
- 面试题-自旋锁,以及jvm对synchronized的优化
背景 想要弄清楚这些问题,需要弄清楚其他的很多问题. 比如,对象,而对象本身又可以延伸出很多其他的问题. 我们平时不过只是在使用对象而已,怎么使用?就是new 对象.这只是语法层面的使用,相当于会了一 ...
- JAVA多线程之Synchronized、wait、notify实例讲解
一.Synchronized synchronized中文解释是同步,那么什么是同步呢,解释就是程序中用于控制不同线程间操作发生相对顺序的机制,通俗来讲就是2点,第一要有多线程,第二当多个线程同时竞争 ...
- ReentrantLock与synchronized
1.ReentrantLock 拥有Synchronized相同的并发性和内存语义,此外还多了 锁投票,定时锁等候和中断锁等候线程A和B都要获取对象O的锁定,假设A获取了对象O锁,B将等待A释放对O的 ...
- Java并发之synchronized
synchronized关键字最主要有以下3种应用方式 修饰实例方法,作用于当前实例加锁,进入同步代码前要获得当前实例的锁:实例锁,一个实例一把锁 修饰静态方法,作用于当前类对象加锁,进入同步代码前要 ...
最新文章
- micropython stm32f103_micropython
- HTTPS协议,SSL协议及完整交互过程
- JavaEE Servlet 并发问题
- 自动机器学习(AutoML)最新综述
- Tomcat系统架构
- P3806-【模板】点分治1
- Hadoop入门(十三)远程提交wordCout程序到hadoop集群
- 劳斯稳定方法-RouthMethod
- python json()是什么函数_python 处理 json 四个函数dumps、loads、dump、load的区别
- Lucene知识小总结8:索引查询
- Android实现组件之间同步的回调通信
- 类似平行宇宙的灵异事件,三个常见的解释
- Linux统计代码行数
- 计算机机房是gmp区域么,GMP对制药厂区域的划分要求
- mysql建库图解_数据库 MySQL安装图解
- 权限控制-@Secured注解
- Android 九宫格图片展示的实现
- 3.5计算机网络(无线局域网 PPP协议&HDLC协议 广域网 链路层设备)
- python画图软件是哪个_Python实现画图软件功能方法详解
- 【安装配置Git】最新版Git安装教程