|
OpenJDK 64-Bit Server VM warning: PrintAssembly is enabled; turning on DebugNonSafepoints to gain additional output |
|
VM option '-UseFastAccessorMethods' |
|
VM option '+TraceICs' |
|
VM option '+TraceCompiledIC' |
|
VM option '+TraceInlineCacheClearing' |
|
VM option '+TraceICBuffer' |
|
VM option '+PrintAssembly' |
|
Loaded disassembler from /home/sajia/jdk/6u25_x64/jre/lib/amd64/server/hsdis-amd64.so |
|
Decoding compiled method 0x00002aaaab118e90: |
|
Code: |
|
[Disassembling for mach='i386:x86-64'] |
|
[Entry Point] |
|
[Constants] |
|
# {method} 'foo' '()I' in 'A' |
|
# [sp+0x20] (sp of caller) |
|
;; N16: # B1 <- BLOCK HEAD IS JUNK Freq: 1 |
|
|
|
0x00002aaaab118fc0: mov 0x8(%rsi),%r10d |
|
0x00002aaaab118fc4: cmp %r10,%rax |
|
0x00002aaaab118fc7: jne 0x00002aaaab0f2920 ; {runtime_call} |
|
0x00002aaaab118fcd: nop |
|
0x00002aaaab118fce: nop |
|
0x00002aaaab118fcf: nop |
|
[Verified Entry Point] |
|
;; B1: # N16 <- BLOCK HEAD IS JUNK Freq: 1 |
|
|
|
0x00002aaaab118fd0: push %rbp |
|
0x00002aaaab118fd1: sub $0x10,%rsp |
|
0x00002aaaab118fd5: nop ;*synchronization entry |
|
; - A::foo@-1 (line 35) |
|
0x00002aaaab118fd6: mov 0xc(%rsi),%eax ;*getfield a |
|
; - A::foo@1 (line 35) |
|
0x00002aaaab118fd9: add $0x10,%rsp |
|
0x00002aaaab118fdd: pop %rbp |
|
0x00002aaaab118fde: test %eax,-0x420fe4(%rip) # 0x00002aaaaacf8000 |
|
; {poll_return} |
|
0x00002aaaab118fe4: retq |
|
0x00002aaaab118fe5: hlt |
|
0x00002aaaab118fe6: hlt |
|
0x00002aaaab118fe7: hlt |
|
0x00002aaaab118fe8: hlt |
|
0x00002aaaab118fe9: hlt |
|
0x00002aaaab118fea: hlt |
|
0x00002aaaab118feb: hlt |
|
0x00002aaaab118fec: hlt |
|
0x00002aaaab118fed: hlt |
|
0x00002aaaab118fee: hlt |
|
0x00002aaaab118fef: hlt |
|
0x00002aaaab118ff0: hlt |
|
0x00002aaaab118ff1: hlt |
|
0x00002aaaab118ff2: hlt |
|
0x00002aaaab118ff3: hlt |
|
0x00002aaaab118ff4: hlt |
|
0x00002aaaab118ff5: hlt |
|
0x00002aaaab118ff6: hlt |
|
0x00002aaaab118ff7: hlt |
|
0x00002aaaab118ff8: hlt |
|
0x00002aaaab118ff9: hlt |
|
0x00002aaaab118ffa: hlt |
|
0x00002aaaab118ffb: hlt |
|
0x00002aaaab118ffc: hlt |
|
0x00002aaaab118ffd: hlt |
|
0x00002aaaab118ffe: hlt |
|
0x00002aaaab118fff: hlt |
|
[Exception Handler] |
|
[Stub Code] |
|
0x00002aaaab119000: jmpq 0x00002aaaab101c20 ; {no_reloc} |
|
[Deopt Handler Code] |
|
0x00002aaaab119005: callq 0x00002aaaab11900a |
|
0x00002aaaab11900a: subq $0x5,(%rsp) |
|
0x00002aaaab11900f: jmpq 0x00002aaaab0f3ae0 ; {runtime_call} |
|
0x00002aaaab119014: int3 |
|
0x00002aaaab119015: int3 |
|
0x00002aaaab119016: int3 |
|
0x00002aaaab119017: int3 |
|
Decoding compiled method 0x00002aaaab118c90: |
|
Code: |
|
[Entry Point] |
|
[Constants] |
|
# {method} 'foo' '()I' in 'B' |
|
# [sp+0x20] (sp of caller) |
|
;; N16: # B1 <- BLOCK HEAD IS JUNK Freq: 1 |
|
|
|
0x00002aaaab118dc0: mov 0x8(%rsi),%r10d |
|
0x00002aaaab118dc4: cmp %r10,%rax |
|
0x00002aaaab118dc7: jne 0x00002aaaab0f2920 ; {runtime_call} |
|
0x00002aaaab118dcd: nop |
|
0x00002aaaab118dce: nop |
|
0x00002aaaab118dcf: nop |
|
[Verified Entry Point] |
|
;; B1: # N16 <- BLOCK HEAD IS JUNK Freq: 1 |
|
|
|
0x00002aaaab118dd0: push %rbp |
|
0x00002aaaab118dd1: sub $0x10,%rsp |
|
0x00002aaaab118dd5: nop ;*synchronization entry |
|
; - B::foo@-1 (line 44) |
|
0x00002aaaab118dd6: mov 0xc(%rsi),%eax ;*getfield b |
|
; - B::foo@1 (line 44) |
|
0x00002aaaab118dd9: add $0x10,%rsp |
|
0x00002aaaab118ddd: pop %rbp |
|
0x00002aaaab118dde: test %eax,-0x420de4(%rip) # 0x00002aaaaacf8000 |
|
; {poll_return} |
|
0x00002aaaab118de4: retq |
|
0x00002aaaab118de5: hlt |
|
0x00002aaaab118de6: hlt |
|
0x00002aaaab118de7: hlt |
|
0x00002aaaab118de8: hlt |
|
0x00002aaaab118de9: hlt |
|
0x00002aaaab118dea: hlt |
|
0x00002aaaab118deb: hlt |
|
0x00002aaaab118dec: hlt |
|
0x00002aaaab118ded: hlt |
|
0x00002aaaab118dee: hlt |
|
0x00002aaaab118def: hlt |
|
0x00002aaaab118df0: hlt |
|
0x00002aaaab118df1: hlt |
|
0x00002aaaab118df2: hlt |
|
0x00002aaaab118df3: hlt |
|
0x00002aaaab118df4: hlt |
|
0x00002aaaab118df5: hlt |
|
0x00002aaaab118df6: hlt |
|
0x00002aaaab118df7: hlt |
|
0x00002aaaab118df8: hlt |
|
0x00002aaaab118df9: hlt |
|
0x00002aaaab118dfa: hlt |
|
0x00002aaaab118dfb: hlt |
|
0x00002aaaab118dfc: hlt |
|
0x00002aaaab118dfd: hlt |
|
0x00002aaaab118dfe: hlt |
|
0x00002aaaab118dff: hlt |
|
[Exception Handler] |
|
[Stub Code] |
|
0x00002aaaab118e00: jmpq 0x00002aaaab101c20 ; {no_reloc} |
|
[Deopt Handler Code] |
|
0x00002aaaab118e05: callq 0x00002aaaab118e0a |
|
0x00002aaaab118e0a: subq $0x5,(%rsp) |
|
0x00002aaaab118e0f: jmpq 0x00002aaaab0f3ae0 ; {runtime_call} |
|
0x00002aaaab118e14: int3 |
|
0x00002aaaab118e15: int3 |
|
0x00002aaaab118e16: int3 |
|
0x00002aaaab118e17: int3 |
|
Decoding compiled method 0x00002aaaab118a90: |
|
Code: |
|
[Entry Point] |
|
[Constants] |
|
# {method} 'foo' '()I' in 'C' |
|
# [sp+0x20] (sp of caller) |
|
;; N16: # B1 <- BLOCK HEAD IS JUNK Freq: 1 |
|
|
|
0x00002aaaab118bc0: mov 0x8(%rsi),%r10d |
|
0x00002aaaab118bc4: cmp %r10,%rax |
|
0x00002aaaab118bc7: jne 0x00002aaaab0f2920 ; {runtime_call} |
|
0x00002aaaab118bcd: nop |
|
0x00002aaaab118bce: nop |
|
0x00002aaaab118bcf: nop |
|
[Verified Entry Point] |
|
;; B1: # N16 <- BLOCK HEAD IS JUNK Freq: 1 |
|
|
|
0x00002aaaab118bd0: push %rbp |
|
0x00002aaaab118bd1: sub $0x10,%rsp |
|
0x00002aaaab118bd5: nop ;*synchronization entry |
|
; - C::foo@-1 (line 53) |
|
0x00002aaaab118bd6: mov 0xc(%rsi),%eax ;*getfield c |
|
; - C::foo@1 (line 53) |
|
0x00002aaaab118bd9: add $0x10,%rsp |
|
0x00002aaaab118bdd: pop %rbp |
|
0x00002aaaab118bde: test %eax,-0x420be4(%rip) # 0x00002aaaaacf8000 |
|
; {poll_return} |
|
0x00002aaaab118be4: retq |
|
0x00002aaaab118be5: hlt |
|
0x00002aaaab118be6: hlt |
|
0x00002aaaab118be7: hlt |
|
0x00002aaaab118be8: hlt |
|
0x00002aaaab118be9: hlt |
|
0x00002aaaab118bea: hlt |
|
0x00002aaaab118beb: hlt |
|
0x00002aaaab118bec: hlt |
|
0x00002aaaab118bed: hlt |
|
0x00002aaaab118bee: hlt |
|
0x00002aaaab118bef: hlt |
|
0x00002aaaab118bf0: hlt |
|
0x00002aaaab118bf1: hlt |
|
0x00002aaaab118bf2: hlt |
|
0x00002aaaab118bf3: hlt |
|
0x00002aaaab118bf4: hlt |
|
0x00002aaaab118bf5: hlt |
|
0x00002aaaab118bf6: hlt |
|
0x00002aaaab118bf7: hlt |
|
0x00002aaaab118bf8: hlt |
|
0x00002aaaab118bf9: hlt |
|
0x00002aaaab118bfa: hlt |
|
0x00002aaaab118bfb: hlt |
|
0x00002aaaab118bfc: hlt |
|
0x00002aaaab118bfd: hlt |
|
0x00002aaaab118bfe: hlt |
|
0x00002aaaab118bff: hlt |
|
[Exception Handler] |
|
[Stub Code] |
|
0x00002aaaab118c00: jmpq 0x00002aaaab101c20 ; {no_reloc} |
|
[Deopt Handler Code] |
|
0x00002aaaab118c05: callq 0x00002aaaab118c0a |
|
0x00002aaaab118c0a: subq $0x5,(%rsp) |
|
0x00002aaaab118c0f: jmpq 0x00002aaaab0f3ae0 ; {runtime_call} |
|
0x00002aaaab118c14: int3 |
|
0x00002aaaab118c15: int3 |
|
0x00002aaaab118c16: int3 |
|
0x00002aaaab118c17: int3 |
|
Decoding compiled method 0x00002aaaab118890: |
|
Code: |
|
[Entry Point] |
|
[Constants] |
|
# {method} 'foo' '()I' in 'D' |
|
# [sp+0x20] (sp of caller) |
|
;; N16: # B1 <- BLOCK HEAD IS JUNK Freq: 1 |
|
|
|
0x00002aaaab1189c0: mov 0x8(%rsi),%r10d |
|
0x00002aaaab1189c4: cmp %r10,%rax |
|
0x00002aaaab1189c7: jne 0x00002aaaab0f2920 ; {runtime_call} |
|
0x00002aaaab1189cd: nop |
|
0x00002aaaab1189ce: nop |
|
0x00002aaaab1189cf: nop |
|
[Verified Entry Point] |
|
;; B1: # N16 <- BLOCK HEAD IS JUNK Freq: 1 |
|
|
|
0x00002aaaab1189d0: push %rbp |
|
0x00002aaaab1189d1: sub $0x10,%rsp |
|
0x00002aaaab1189d5: nop ;*synchronization entry |
|
; - D::foo@-1 (line 62) |
|
0x00002aaaab1189d6: mov 0xc(%rsi),%eax ;*getfield d |
|
; - D::foo@1 (line 62) |
|
0x00002aaaab1189d9: add $0x10,%rsp |
|
0x00002aaaab1189dd: pop %rbp |
|
0x00002aaaab1189de: test %eax,-0x4209e4(%rip) # 0x00002aaaaacf8000 |
|
; {poll_return} |
|
0x00002aaaab1189e4: retq |
|
0x00002aaaab1189e5: hlt |
|
0x00002aaaab1189e6: hlt |
|
0x00002aaaab1189e7: hlt |
|
0x00002aaaab1189e8: hlt |
|
0x00002aaaab1189e9: hlt |
|
0x00002aaaab1189ea: hlt |
|
0x00002aaaab1189eb: hlt |
|
0x00002aaaab1189ec: hlt |
|
0x00002aaaab1189ed: hlt |
|
0x00002aaaab1189ee: hlt |
|
0x00002aaaab1189ef: hlt |
|
0x00002aaaab1189f0: hlt |
|
0x00002aaaab1189f1: hlt |
|
0x00002aaaab1189f2: hlt |
|
0x00002aaaab1189f3: hlt |
|
0x00002aaaab1189f4: hlt |
|
0x00002aaaab1189f5: hlt |
|
0x00002aaaab1189f6: hlt |
|
0x00002aaaab1189f7: hlt |
|
0x00002aaaab1189f8: hlt |
|
0x00002aaaab1189f9: hlt |
|
0x00002aaaab1189fa: hlt |
|
0x00002aaaab1189fb: hlt |
|
0x00002aaaab1189fc: hlt |
|
0x00002aaaab1189fd: hlt |
|
0x00002aaaab1189fe: hlt |
|
0x00002aaaab1189ff: hlt |
|
[Exception Handler] |
|
[Stub Code] |
|
0x00002aaaab118a00: jmpq 0x00002aaaab101c20 ; {no_reloc} |
|
[Deopt Handler Code] |
|
0x00002aaaab118a05: callq 0x00002aaaab118a0a |
|
0x00002aaaab118a0a: subq $0x5,(%rsp) |
|
0x00002aaaab118a0f: jmpq 0x00002aaaab0f3ae0 ; {runtime_call} |
|
0x00002aaaab118a14: int3 |
|
0x00002aaaab118a15: int3 |
|
0x00002aaaab118a16: int3 |
|
0x00002aaaab118a17: int3 |
|
Decoding compiled method 0x00002aaaab118250: |
|
Code: |
|
[Entry Point] |
|
[Verified Entry Point] |
|
[Constants] |
|
# {method} 'test' '([LFoo;)J' in 'TestUseFastAccessorMethods' |
|
;; N193: # B1 <- BLOCK HEAD IS JUNK Freq: 1 |
|
|
|
0x00002aaaab1183c0: mov $0x2b6f247e0620,%r10 ; {runtime_call} |
|
0x00002aaaab1183ca: rex.WB callq *%r10 |
|
0x00002aaaab1183cd: nop |
|
0x00002aaaab1183ce: nop |
|
0x00002aaaab1183cf: nop |
|
;; B1: # B15 B2 <- BLOCK HEAD IS JUNK Freq: 1 |
|
|
|
0x00002aaaab1183d0: mov %eax,-0x8000(%rsp) |
|
0x00002aaaab1183d7: push %rbp |
|
0x00002aaaab1183d8: sub $0x30,%rsp |
|
0x00002aaaab1183dc: mov 0x8(%rsi),%r13d |
|
0x00002aaaab1183e0: mov 0x28(%rsi),%rbp |
|
0x00002aaaab1183e4: mov 0x18(%rsi),%r14 |
|
0x00002aaaab1183e8: mov 0x10(%rsi),%ebx |
|
0x00002aaaab1183eb: mov %rsi,%rdi |
|
0x00002aaaab1183ee: mov $0x2b6f248dbd40,%r10 |
|
0x00002aaaab1183f8: callq *%r10 |
|
0x00002aaaab1183fb: test %rbp,%rbp |
|
0x00002aaaab1183fe: je 0x00002aaaab1185a9 |
|
;; B2: # B17 B3 <- B1 Freq: 0.999 |
|
|
|
0x00002aaaab118404: mov 0x8(%rbp),%r10d |
|
0x00002aaaab118408: mov 0x48(%r10),%r10 |
|
0x00002aaaab11840c: mov $0xc44168e8,%r11 ; {oop('Foo'[])} |
|
0x00002aaaab118416: cmp %r11,%r10 |
|
0x00002aaaab118419: jne 0x00002aaaab1185d5 ;*iload |
|
; - TestUseFastAccessorMethods::test@9 (line 7) |
|
;; B3: # B4 <- B2 Freq: 0.998999 |
|
|
|
;; B4: # B13 B5 <- B3 B15 Freq: 0.999999 |
|
|
|
0x00002aaaab11841f: cmp $0x3938700,%r13d |
|
0x00002aaaab118426: jge 0x00002aaaab118547 ;*if_icmpge |
|
; - TestUseFastAccessorMethods::test@13 (line 7) |
|
;; B5: # B16 B6 <- B4 Freq: 0.999999 |
|
|
|
0x00002aaaab11842c: mov 0xc(%rbp),%r10d ;*arraylength |
|
; - TestUseFastAccessorMethods::test@21 (line 8) |
|
; implicit exception: dispatches to 0x00002aaaab1185b0 |
|
;; B6: # B16 B7 <- B5 Freq: 0.999997 |
|
|
|
0x00002aaaab118430: test %r10d,%r10d |
|
0x00002aaaab118433: je 0x00002aaaab1185b0 |
|
;; B7: # B9 <- B6 Freq: 0.999996 |
|
|
|
0x00002aaaab118439: mov %r13d,0x10(%rsp) |
|
0x00002aaaab11843e: jmp 0x00002aaaab11844e |
|
;; B8: # B9 <- B11 top-of-loop Freq: 87029.3 |
|
|
|
0x00002aaaab118440: mov %r11d,0x10(%rsp) |
|
0x00002aaaab118445: mov (%rsp),%r14 |
|
0x00002aaaab118449: mov 0xc(%rsp),%r10d ;*iload_3 |
|
; - TestUseFastAccessorMethods::test@16 (line 8) |
|
;; B9: # B14 B10 <- B7 B8 Loop: B9-B8 inner Freq: 87031.2 |
|
|
|
0x00002aaaab11844e: mov 0x10(%rsp),%eax |
|
0x00002aaaab118452: cmp $0x80000000,%eax |
|
0x00002aaaab118457: jne 0x00002aaaab118461 |
|
0x00002aaaab118459: xor %edx,%edx |
|
0x00002aaaab11845b: cmp $0xffffffffffffffff,%r10d |
|
0x00002aaaab11845f: je 0x00002aaaab118465 |
|
0x00002aaaab118461: cltd |
|
0x00002aaaab118462: idiv %r10d ;*irem |
|
; - TestUseFastAccessorMethods::test@22 (line 8) |
|
0x00002aaaab118465: cmp %r10d,%edx |
|
0x00002aaaab118468: jae 0x00002aaaab118571 ;*aaload |
|
; - TestUseFastAccessorMethods::test@23 (line 8) |
|
;; B10: # B18 B11 <- B9 Freq: 87031.1 |
|
|
|
0x00002aaaab11846e: mov %r10d,0xc(%rsp) |
|
0x00002aaaab118473: mov %ebx,0x8(%rsp) |
|
0x00002aaaab118477: mov %r14,(%rsp) |
|
0x00002aaaab11847b: mov 0x10(%rbp,%rdx,4),%r11d ;*iload_3 |
|
; - TestUseFastAccessorMethods::test@16 (line 8) |
|
0x00002aaaab118480: mov %r11,%rsi |
|
0x00002aaaab118483: push %r10 |
|
0x00002aaaab118485: mov $0x2b6f24f80700,%r10 ; {external_word} |
|
0x00002aaaab11848f: cmp (%r10),%r12 |
|
0x00002aaaab118492: je 0x00002aaaab118517 |
|
0x00002aaaab118498: mov %rsp,-0x28(%rsp) |
|
0x00002aaaab11849d: sub $0x80,%rsp |
|
0x00002aaaab1184a4: mov %rax,0x78(%rsp) |
|
0x00002aaaab1184a9: mov %rcx,0x70(%rsp) |
|
0x00002aaaab1184ae: mov %rdx,0x68(%rsp) |
|
0x00002aaaab1184b3: mov %rbx,0x60(%rsp) |
|
0x00002aaaab1184b8: mov %rbp,0x50(%rsp) |
|
0x00002aaaab1184bd: mov %rsi,0x48(%rsp) |
|
0x00002aaaab1184c2: mov %rdi,0x40(%rsp) |
|
0x00002aaaab1184c7: mov %r8,0x38(%rsp) |
|
0x00002aaaab1184cc: mov %r9,0x30(%rsp) |
|
0x00002aaaab1184d1: mov %r10,0x28(%rsp) |
|
0x00002aaaab1184d6: mov %r11,0x20(%rsp) |
|
0x00002aaaab1184db: mov %r12,0x18(%rsp) |
|
0x00002aaaab1184e0: mov %r13,0x10(%rsp) |
|
0x00002aaaab1184e5: mov %r14,0x8(%rsp) |
|
0x00002aaaab1184ea: mov %r15,(%rsp) |
|
0x00002aaaab1184ee: mov $0x2b6f24a6c228,%rdi ; {external_word} |
|
0x00002aaaab1184f8: mov $0x2aaaab118498,%rsi ; {internal_word} |
|
0x00002aaaab118502: mov %rsp,%rdx |
|
0x00002aaaab118505: and $0xfffffffffffffff0,%rsp |
|
0x00002aaaab118509: mov $0x2b6f23fe3860,%r10 ; {runtime_call} |
|
0x00002aaaab118513: rex.WB callq *%r10 |
|
0x00002aaaab118516: hlt |
|
0x00002aaaab118517: pop %r10 |
|
0x00002aaaab118519: mov $0xffffffffffffffff,%rax ; {oop(NULL)} |
|
0x00002aaaab118523: callq 0x00002aaaab0f2d20 ; OopMap{rbp=Oop off=360} |
|
;*invokevirtual foo |
|
; - TestUseFastAccessorMethods::test@24 (line 8) |
|
; {virtual_call} |
|
;; B11: # B8 B12 <- B10 Freq: 87029.3 |
|
|
|
0x00002aaaab118528: mov 0x8(%rsp),%ebx |
|
0x00002aaaab11852c: add %eax,%ebx ;*iadd |
|
; - TestUseFastAccessorMethods::test@27 (line 8) |
|
0x00002aaaab11852e: mov 0x10(%rsp),%r11d |
|
0x00002aaaab118533: inc %r11d ;*iinc |
|
; - TestUseFastAccessorMethods::test@29 (line 7) |
|
0x00002aaaab118536: cmp $0x3938700,%r11d |
|
0x00002aaaab11853d: jl 0x00002aaaab118440 |
|
;; B12: # B13 <- B11 Freq: 0.0414988 |
|
|
|
0x00002aaaab118543: mov (%rsp),%r14 ;*if_icmpge |
|
; - TestUseFastAccessorMethods::test@13 (line 7) |
|
;; B13: # N193 <- B12 B4 Freq: 0.0414993 |
|
|
|
0x00002aaaab118547: mov $0x2b6f247e1060,%r10 |
|
0x00002aaaab118551: callq *%r10 ;*invokestatic currentTimeMillis |
|
; - TestUseFastAccessorMethods::test@35 (line 10) |
|
0x00002aaaab118554: sub %r14,%rax ;*lsub |
|
; - TestUseFastAccessorMethods::test@47 (line 12) |
|
0x00002aaaab118557: mov $0xedc4abe0,%r10 ; {oop(a 'java/lang/Class' = 'TestUseFastAccessorMethods')} |
|
0x00002aaaab118561: mov %ebx,0x70(%r10) ;*putstatic dummy |
|
; - TestUseFastAccessorMethods::test@41 (line 11) |
|
0x00002aaaab118565: add $0x30,%rsp |
|
0x00002aaaab118569: pop %rbp |
|
0x00002aaaab11856a: test %eax,-0x420570(%rip) # 0x00002aaaaacf8000 |
|
; {poll_return} |
|
0x00002aaaab118570: retq |
|
;; B14: # N193 <- B9 Freq: 0.0881869 |
|
|
|
0x00002aaaab118571: mov $0xffffffe4,%esi |
|
0x00002aaaab118576: mov %r14,(%rsp) |
|
0x00002aaaab11857a: mov %rax,-0x8(%rsp) |
|
0x00002aaaab11857f: mov 0x10(%rsp),%eax |
|
0x00002aaaab118583: mov %eax,0x8(%rsp) |
|
0x00002aaaab118587: mov -0x8(%rsp),%rax |
|
0x00002aaaab11858c: mov %ebx,0xc(%rsp) |
|
0x00002aaaab118590: mov %edx,0x18(%rsp) |
|
0x00002aaaab118594: nop |
|
0x00002aaaab118595: nop |
|
0x00002aaaab118596: nop |
|
0x00002aaaab118597: callq 0x00002aaaab0f3fa0 ; OopMap{rbp=Oop off=476} |
|
;*aaload |
|
; - TestUseFastAccessorMethods::test@23 (line 8) |
|
; {runtime_call} |
|
0x00002aaaab11859c: mov $0x2b6f247e0620,%r10 ; {runtime_call} |
|
0x00002aaaab1185a6: rex.WB callq *%r10 ;*aaload |
|
; - TestUseFastAccessorMethods::test@23 (line 8) |
|
;; B15: # B4 <- B1 Freq: 0.000999987 |
|
|
|
0x00002aaaab1185a9: xor %ebp,%ebp |
|
0x00002aaaab1185ab: jmpq 0x00002aaaab11841f |
|
;; B16: # N193 <- B6 B5 Freq: 2.02655e-06 |
|
|
|
0x00002aaaab1185b0: mov $0xffffff86,%esi |
|
0x00002aaaab1185b5: mov %r14,(%rsp) |
|
0x00002aaaab1185b9: mov %ebx,0x8(%rsp) |
|
0x00002aaaab1185bd: mov %r13d,0xc(%rsp) |
|
0x00002aaaab1185c2: nop |
|
0x00002aaaab1185c3: callq 0x00002aaaab0f3fa0 ; OopMap{rbp=Oop off=520} |
|
;*iload_3 |
|
; - TestUseFastAccessorMethods::test@16 (line 8) |
|
; {runtime_call} |
|
0x00002aaaab1185c8: mov $0x2b6f247e0620,%r10 ; {runtime_call} |
|
0x00002aaaab1185d2: rex.WB callq *%r10 |
|
;; B17: # N193 <- B2 Freq: 9.99e-07 |
|
|
|
0x00002aaaab1185d5: mov $0xffffffad,%esi |
|
0x00002aaaab1185da: mov %r14,(%rsp) |
|
0x00002aaaab1185de: mov %ebx,0x8(%rsp) |
|
0x00002aaaab1185e2: mov %r13d,0xc(%rsp) |
|
0x00002aaaab1185e7: callq 0x00002aaaab0f3fa0 ; OopMap{rbp=Oop off=556} |
|
;*iload |
|
; - TestUseFastAccessorMethods::test@9 (line 7) |
|
; {runtime_call} |
|
0x00002aaaab1185ec: mov $0x2b6f247e0620,%r10 ; {runtime_call} |
|
0x00002aaaab1185f6: rex.WB callq *%r10 ;*invokevirtual foo |
|
; - TestUseFastAccessorMethods::test@24 (line 8) |
|
;; B18: # N193 <- B10 Freq: 0.870311 |
|
|
|
0x00002aaaab1185f9: mov %rax,%rsi |
|
0x00002aaaab1185fc: add $0x30,%rsp |
|
0x00002aaaab118600: pop %rbp |
|
0x00002aaaab118601: jmpq 0x00002aaaab117360 ; {runtime_call} |
|
0x00002aaaab118606: hlt |
|
0x00002aaaab118607: hlt |
|
0x00002aaaab118608: hlt |
|
0x00002aaaab118609: hlt |
|
0x00002aaaab11860a: hlt |
|
0x00002aaaab11860b: hlt |
|
0x00002aaaab11860c: hlt |
|
0x00002aaaab11860d: hlt |
|
0x00002aaaab11860e: hlt |
|
0x00002aaaab11860f: hlt |
|
0x00002aaaab118610: hlt |
|
0x00002aaaab118611: hlt |
|
0x00002aaaab118612: hlt |
|
0x00002aaaab118613: hlt |
|
0x00002aaaab118614: hlt |
|
0x00002aaaab118615: hlt |
|
0x00002aaaab118616: hlt |
|
0x00002aaaab118617: hlt |
|
0x00002aaaab118618: hlt |
|
0x00002aaaab118619: hlt |
|
0x00002aaaab11861a: hlt |
|
0x00002aaaab11861b: hlt |
|
0x00002aaaab11861c: hlt |
|
0x00002aaaab11861d: hlt |
|
0x00002aaaab11861e: hlt |
|
0x00002aaaab11861f: hlt |
|
[Exception Handler] |
|
[Stub Code] |
|
0x00002aaaab118620: jmpq 0x00002aaaab101c20 ; {no_reloc} |
|
[Deopt Handler Code] |
|
0x00002aaaab118625: callq 0x00002aaaab11862a |
|
0x00002aaaab11862a: subq $0x5,(%rsp) |
|
0x00002aaaab11862f: jmpq 0x00002aaaab0f3ae0 ; {runtime_call} |
|
0x00002aaaab118634: int3 |
|
0x00002aaaab118635: int3 |
|
0x00002aaaab118636: int3 |
|
0x00002aaaab118637: int3 |
|
Inline cache at 0x00002aaaab118523, calling 0x00002aaaab0f2d20 changing destination to 0x00002aaaab1189c0 |
|
Inline cache at 0x00002aaaab118523, calling 0x00002aaaab1189c0 changing oop to 0x00000000c4417f90 |
|
IC@0x00002aaaab118523: monomorphic to compiled (rcvr klass) 'D': |
|
create transition stub for 0x00002aaaab118523 |
|
Inline cache at 0x00002aaaab118523, calling 0x00002aaaab1189c0 changing destination to 0x00002aaaab0f4180 |
|
IC@0x00002aaaab118523: to megamorphic {method} 'foo' '()I' in 'A' entry: 0x00002aaaab11a1f0 |
|
[updating inline caches with 2 stubs] |
|
Inline cache at 0x00002aaaab118523, calling 0x00002aaaab11a1f0 changing oop to 0x00000000c4416da0 |
|
Inline cache at 0x00002aaaab118523, calling 0x00002aaaab11a1f0 changing destination to 0x00002aaaab11a1f0 |
|
Decoding compiled method 0x00002aaaab117c90: |
|
Code: |
|
[Entry Point] |
|
[Verified Entry Point] |
|
[Constants] |
|
# {method} 'test' '([LFoo;)J' in 'TestUseFastAccessorMethods' |
|
# parm0: rsi:rsi = '[LFoo;' |
|
# [sp+0x40] (sp of caller) |
|
;; N1: # B1 <- B8 B7 B9 Freq: 1 |
|
|
|
;; B1: # B8 B2 <- BLOCK HEAD IS JUNK Freq: 1 |
|
|
|
0x00002aaaab117de0: mov %eax,-0x8000(%rsp) |
|
0x00002aaaab117de7: push %rbp |
|
0x00002aaaab117de8: sub $0x30,%rsp ;*synchronization entry |
|
; - TestUseFastAccessorMethods::test@-1 (line 5) |
|
0x00002aaaab117dec: mov %rsi,%rbx |
|
0x00002aaaab117def: mov $0x2b6f247e1060,%r10 |
|
0x00002aaaab117df9: callq *%r10 ;*invokestatic currentTimeMillis |
|
; - TestUseFastAccessorMethods::test@0 (line 5) |
|
0x00002aaaab117dfc: mov %rax,(%rsp) |
|
0x00002aaaab117e00: mov %rbx,%r10 |
|
0x00002aaaab117e03: mov 0xc(%r10),%r8d ;*arraylength |
|
; - TestUseFastAccessorMethods::test@21 (line 8) |
|
; implicit exception: dispatches to 0x00002aaaab117f3e |
|
;; B2: # B8 B3 <- B1 Freq: 0.999999 |
|
|
|
0x00002aaaab117e07: test %r8d,%r8d |
|
0x00002aaaab117e0a: je 0x00002aaaab117f3e ;*iload_3 |
|
; - TestUseFastAccessorMethods::test@16 (line 8) |
|
;; B3: # B5 <- B2 Freq: 0.999998 |
|
|
|
0x00002aaaab117e10: xor %edx,%edx |
|
0x00002aaaab117e12: xor %r11d,%r11d |
|
0x00002aaaab117e15: xor %ebp,%ebp |
|
0x00002aaaab117e17: mov %r8d,0x14(%rsp) |
|
0x00002aaaab117e1c: mov %r11d,0x10(%rsp) |
|
0x00002aaaab117e21: jmp 0x00002aaaab117e48 |
|
;; B4: # B5 <- B6 top-of-loop Freq: 95446.6 |
|
|
|
0x00002aaaab117e23: mov %r10d,%eax |
|
0x00002aaaab117e26: mov 0x14(%rsp),%r11d |
|
0x00002aaaab117e2b: cmp $0x80000000,%eax |
|
0x00002aaaab117e30: jne 0x00002aaaab117e3a |
|
0x00002aaaab117e32: xor %edx,%edx |
|
0x00002aaaab117e34: cmp $0xffffffffffffffff,%r11d |
|
0x00002aaaab117e38: je 0x00002aaaab117e3e |
|
0x00002aaaab117e3a: cltd |
|
0x00002aaaab117e3b: idiv %r11d ;*irem |
|
; - TestUseFastAccessorMethods::test@22 (line 8) |
|
0x00002aaaab117e3e: mov %r10d,0x10(%rsp) |
|
0x00002aaaab117e43: mov 0x8(%rsp),%r10 ;*iload_3 |
|
; - TestUseFastAccessorMethods::test@16 (line 8) |
|
;; B5: # B9 B6 <- B3 B4 Loop: B5-B4 inner Freq: 95448.5 |
|
|
|
0x00002aaaab117e48: mov 0x10(%r10,%rdx,4),%r11d |
|
0x00002aaaab117e4d: mov %r10,0x8(%rsp) |
|
0x00002aaaab117e52: mov %r11,%rsi |
|
0x00002aaaab117e55: push %r10 |
|
0x00002aaaab117e57: mov $0x2b6f24f80700,%r10 ; {external_word} |
|
0x00002aaaab117e61: cmp (%r10),%r12 |
|
0x00002aaaab117e64: je 0x00002aaaab117ee9 |
|
0x00002aaaab117e6a: mov %rsp,-0x28(%rsp) |
|
0x00002aaaab117e6f: sub $0x80,%rsp |
|
0x00002aaaab117e76: mov %rax,0x78(%rsp) |
|
0x00002aaaab117e7b: mov %rcx,0x70(%rsp) |
|
0x00002aaaab117e80: mov %rdx,0x68(%rsp) |
|
0x00002aaaab117e85: mov %rbx,0x60(%rsp) |
|
0x00002aaaab117e8a: mov %rbp,0x50(%rsp) |
|
0x00002aaaab117e8f: mov %rsi,0x48(%rsp) |
|
0x00002aaaab117e94: mov %rdi,0x40(%rsp) |
|
0x00002aaaab117e99: mov %r8,0x38(%rsp) |
|
0x00002aaaab117e9e: mov %r9,0x30(%rsp) |
|
0x00002aaaab117ea3: mov %r10,0x28(%rsp) |
|
0x00002aaaab117ea8: mov %r11,0x20(%rsp) |
|
0x00002aaaab117ead: mov %r12,0x18(%rsp) |
|
0x00002aaaab117eb2: mov %r13,0x10(%rsp) |
|
0x00002aaaab117eb7: mov %r14,0x8(%rsp) |
|
0x00002aaaab117ebc: mov %r15,(%rsp) |
|
0x00002aaaab117ec0: mov $0x2b6f24a6c228,%rdi ; {external_word} |
|
0x00002aaaab117eca: mov $0x2aaaab117e6a,%rsi ; {internal_word} |
|
0x00002aaaab117ed4: mov %rsp,%rdx |
|
0x00002aaaab117ed7: and $0xfffffffffffffff0,%rsp |
|
0x00002aaaab117edb: mov $0x2b6f23fe3860,%r10 ; {runtime_call} |
|
0x00002aaaab117ee5: rex.WB callq *%r10 |
|
0x00002aaaab117ee8: hlt |
|
0x00002aaaab117ee9: pop %r10 ;*aaload |
|
; - TestUseFastAccessorMethods::test@23 (line 8) |
|
0x00002aaaab117eeb: nop |
|
0x00002aaaab117eec: nop |
|
0x00002aaaab117eed: mov $0xffffffffffffffff,%rax ; {oop(NULL)} Universe::non_oop_word() |
|
0x00002aaaab117ef7: callq 0x00002aaaab0f2d20 ; OopMap{[8]=Oop off=284} |
|
;*invokevirtual foo |
|
; - TestUseFastAccessorMethods::test@24 (line 8) |
|
; {virtual_call} |
|
;; B6: # B4 B7 <- B5 Freq: 95446.6 |
|
|
|
0x00002aaaab117efc: add %eax,%ebp ;*iadd |
|
; - TestUseFastAccessorMethods::test@27 (line 8) |
|
0x00002aaaab117efe: mov 0x10(%rsp),%r10d |
|
0x00002aaaab117f03: inc %r10d ;*iinc |
|
; - TestUseFastAccessorMethods::test@29 (line 7) |
|
0x00002aaaab117f06: cmp $0x3938700,%r10d |
|
0x00002aaaab117f0d: jl 0x00002aaaab117e23 ;*if_icmpge |
|
; - TestUseFastAccessorMethods::test@13 (line 7) |
|
;; B7: # N1 <- B6 Freq: 0.0455125 |
|
|
|
0x00002aaaab117f13: mov $0x2b6f247e1060,%r10 |
|
0x00002aaaab117f1d: callq *%r10 ;*invokestatic currentTimeMillis |
|
; - TestUseFastAccessorMethods::test@35 (line 10) |
|
0x00002aaaab117f20: sub (%rsp),%rax ;*lsub |
|
; - TestUseFastAccessorMethods::test@47 (line 12) |
|
0x00002aaaab117f24: mov $0xedc4abe0,%r10 ; {oop(a 'java/lang/Class' = 'TestUseFastAccessorMethods')} |
|
0x00002aaaab117f2e: mov %ebp,0x70(%r10) ;*invokestatic currentTimeMillis |
|
; - TestUseFastAccessorMethods::test@0 (line 5) |
|
0x00002aaaab117f32: add $0x30,%rsp |
|
0x00002aaaab117f36: pop %rbp |
|
0x00002aaaab117f37: test %eax,-0x41ff3d(%rip) # 0x00002aaaaacf8000 |
|
; {poll_return} |
|
0x00002aaaab117f3d: retq |
|
;; B8: # N1 <- B2 B1 Freq: 2.02656e-06 |
|
|
|
0x00002aaaab117f3e: mov $0xffffff86,%esi |
|
0x00002aaaab117f43: mov %r10,%rbp |
|
0x00002aaaab117f46: nop |
|
0x00002aaaab117f47: callq 0x00002aaaab0f3fa0 ; OopMap{rbp=Oop off=364} |
|
;*iload_3 |
|
; - TestUseFastAccessorMethods::test@16 (line 8) |
|
; {runtime_call} |
|
0x00002aaaab117f4c: mov $0x2b6f247e0620,%r10 ; {runtime_call} |
|
0x00002aaaab117f56: rex.WB callq *%r10 ;*invokevirtual foo |
|
; - TestUseFastAccessorMethods::test@24 (line 8) |
|
;; B9: # N1 <- B5 Freq: 0.954485 |
|
|
|
0x00002aaaab117f59: mov %rax,%rsi |
|
0x00002aaaab117f5c: add $0x30,%rsp |
|
0x00002aaaab117f60: pop %rbp |
|
0x00002aaaab117f61: jmpq 0x00002aaaab117360 ; {runtime_call} |
|
0x00002aaaab117f66: hlt |
|
0x00002aaaab117f67: hlt |
|
0x00002aaaab117f68: hlt |
|
0x00002aaaab117f69: hlt |
|
0x00002aaaab117f6a: hlt |
|
0x00002aaaab117f6b: hlt |
|
0x00002aaaab117f6c: hlt |
|
0x00002aaaab117f6d: hlt |
|
0x00002aaaab117f6e: hlt |
|
0x00002aaaab117f6f: hlt |
|
0x00002aaaab117f70: hlt |
|
0x00002aaaab117f71: hlt |
|
0x00002aaaab117f72: hlt |
|
0x00002aaaab117f73: hlt |
|
0x00002aaaab117f74: hlt |
|
0x00002aaaab117f75: hlt |
|
0x00002aaaab117f76: hlt |
|
0x00002aaaab117f77: hlt |
|
0x00002aaaab117f78: hlt |
|
0x00002aaaab117f79: hlt |
|
0x00002aaaab117f7a: hlt |
|
0x00002aaaab117f7b: hlt |
|
0x00002aaaab117f7c: hlt |
|
0x00002aaaab117f7d: hlt |
|
0x00002aaaab117f7e: hlt |
|
0x00002aaaab117f7f: hlt |
|
[Exception Handler] |
|
[Stub Code] |
|
0x00002aaaab117f80: jmpq 0x00002aaaab101c20 ; {no_reloc} |
|
[Deopt Handler Code] |
|
0x00002aaaab117f85: callq 0x00002aaaab117f8a |
|
0x00002aaaab117f8a: subq $0x5,(%rsp) |
|
0x00002aaaab117f8f: jmpq 0x00002aaaab0f3ae0 ; {runtime_call} |
|
0x00002aaaab117f94: int3 |
|
0x00002aaaab117f95: int3 |
|
0x00002aaaab117f96: int3 |
|
0x00002aaaab117f97: int3 |
|
Inline cache at 0x00002aaaab117ef7, calling 0x00002aaaab0f2d20 changing destination to 0x00002aaaab118fc0 |
|
Inline cache at 0x00002aaaab117ef7, calling 0x00002aaaab118fc0 changing oop to 0x00000000c4416e28 |
|
IC@0x00002aaaab117ef7: monomorphic to compiled (rcvr klass) 'A': |
|
create transition stub for 0x00002aaaab117ef7 |
|
Inline cache at 0x00002aaaab117ef7, calling 0x00002aaaab118fc0 changing destination to 0x00002aaaab0f4180 |
|
IC@0x00002aaaab117ef7: to megamorphic {method} 'foo' '()I' in 'B' entry: 0x00002aaaab11a1f0 |
|
[updating inline caches with 2 stubs] |
|
Inline cache at 0x00002aaaab117ef7, calling 0x00002aaaab11a1f0 changing oop to 0x00000000c4417398 |
|
Inline cache at 0x00002aaaab117ef7, calling 0x00002aaaab11a1f0 changing destination to 0x00002aaaab11a1f0 |
|
2641 |
|
2639 |
|
2640 |