Created
December 31, 2012 16:02
-
-
Save the8472/4420897 to your computer and use it in GitHub Desktop.
opto test volatile field access
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Compiled method (c2) 593 8 Test2::test1 (46 bytes) | |
total in heap [0x029af8c8,0x029b0184] = 2236 | |
relocation [0x029af99c,0x029af9b8] = 28 | |
main code [0x029af9c0,0x029afd00] = 832 | |
stub code [0x029afd00,0x029afd10] = 16 | |
oops [0x029afd10,0x029afd14] = 4 | |
metadata [0x029afd14,0x029afd18] = 4 | |
scopes data [0x029afd18,0x029afddc] = 196 | |
scopes pcs [0x029afddc,0x029b013c] = 864 | |
dependencies [0x029b013c,0x029b0140] = 4 | |
nul chk table [0x029b0140,0x029b0184] = 68 | |
Decoding compiled method 0x029af8c8: | |
Code: | |
[Entry Point] | |
[Constants] | |
# {method} | |
{0x026608ac} 'test1' '()V' in 'Test2' | |
# [sp+0x30] (sp of caller) | |
0x029af9c0: cmp 0x4(%ecx),%eax | |
0x029af9c3: jne 0x0298d000 ; {runtime_call} | |
0x029af9c9: xchg %ax,%ax | |
[Verified Entry Point] | |
0x029af9cc: mov %eax,0xffffc000(%esp) | |
0x029af9d3: push %ebp | |
0x029af9d4: sub $0x28,%esp ;*synchronization entry | |
; - Test2::test1@-1 (line 69) | |
0x029af9d7: movd %ecx,%xmm1 | |
0x029af9db: xor %eax,%eax | |
0x029af9dd: xor %edx,%edx | |
0x029af9df: xor %ecx,%ecx ;*lload_1 | |
; - Test2::test1@7 (line 74) | |
0x029af9e1: movd %xmm1,%ebp | |
0x029af9e5: mov 0x8(%ebp),%ebp | |
0x029af9e8: mov %ebp,0x8(%esp) ;*getfield var1a | |
; - Test2::test1@9 (line 74) | |
0x029af9ec: mov 0x8(%ebp),%ebx ; implicit exception: dispatches to 0x029afcc7 | |
0x029af9ef: test %ebx,%ebx | |
0x029af9f1: jbe 0x029afc9d | |
0x029af9f7: mov %ebp,%esi | |
0x029af9f9: mov 0x10(%esi),%ebp | |
0x029af9fc: mov 0x14(%esi),%edi ;*laload | |
; - Test2::test1@14 (line 74) | |
0x029af9ff: mov %ebp,0x18(%esp) | |
0x029afa03: mov %edi,0x1c(%esp) | |
0x029afa07: movd %xmm1,%ebp | |
0x029afa0b: mov 0xc(%ebp),%esi ;*getfield var1b | |
; - Test2::test1@16 (line 74) | |
0x029afa0e: mov 0x8(%esi),%ebp ; implicit exception: dispatches to 0x029afcd5 | |
0x029afa11: cmp $0xd,%ebp | |
0x029afa14: jbe 0x029afca6 | |
0x029afa1a: mov 0x78(%esi),%ebp | |
0x029afa1d: mov 0x7c(%esi),%edi ;*laload | |
; - Test2::test1@22 (line 74) | |
0x029afa20: mov %ebp,0x10(%esp) | |
0x029afa24: mov %edi,0x14(%esp) | |
0x029afa28: mov 0x18(%esp),%ebp | |
0x029afa2c: mov 0x1c(%esp),%edi | |
0x029afa30: add 0x10(%esp),%ebp | |
0x029afa34: adc 0x14(%esp),%edi ;*ladd | |
; - Test2::test1@27 (line 74) | |
0x029afa38: mov %ebp,0x18(%esp) | |
0x029afa3c: mov %edi,0x1c(%esp) | |
0x029afa40: add %ebp,%eax | |
0x029afa42: adc %edi,%edx ;*ladd | |
; - Test2::test1@30 (line 74) | |
0x029afa44: mov %eax,(%esp) | |
0x029afa47: mov %edx,0x4(%esp) | |
0x029afa4b: mov 0x10(%esp),%ebp | |
0x029afa4f: mov 0x14(%esp),%edi | |
0x029afa53: add $0x1,%ebp | |
0x029afa56: adc $0x0,%edi | |
0x029afa59: mov %ebp,0x78(%esi) | |
0x029afa5c: mov %edi,0x7c(%esi) ;*lastore | |
; - Test2::test1@26 (line 74) | |
0x029afa5f: mov 0x8(%esp),%ebx | |
0x029afa63: mov 0x18(%esp),%ebp | |
0x029afa67: mov 0x1c(%esp),%edi | |
0x029afa6b: mov %ebp,0x10(%ebx) | |
0x029afa6e: mov %edi,0x14(%ebx) ;*if_icmplt | |
; - Test2::test1@38 (line 72) | |
0x029afa71: inc %ecx ;*iinc | |
; - Test2::test1@32 (line 72) | |
0x029afa72: cmp $0x1,%ecx | |
0x029afa75: jl 0x029af9e1 ;*if_icmplt | |
; - Test2::test1@38 (line 72) | |
0x029afa7b: cmp $0x55d4a7f,%ecx | |
0x029afa81: jge 0x029afb7b | |
0x029afa87: nopw 0x0(%eax,%eax,1) ;*lload_1 | |
; - Test2::test1@7 (line 74) | |
0x029afa90: movd %xmm1,%ebx | |
0x029afa94: mov 0x8(%ebx),%ebx ;*getfield var1a | |
; - Test2::test1@9 (line 74) | |
0x029afa97: mov 0x8(%ebx),%edi ; implicit exception: dispatches to 0x029afcc7 | |
0x029afa9a: test %edi,%edi | |
0x029afa9c: jbe 0x029afc4a | |
0x029afaa2: mov %ebx,%esi | |
0x029afaa4: mov 0x10(%esi),%ebp | |
0x029afaa7: mov 0x14(%esi),%edi ;*laload | |
; - Test2::test1@14 (line 74) | |
0x029afaaa: mov %ebp,0x10(%esp) | |
0x029afaae: mov %edi,0x14(%esp) | |
0x029afab2: movd %xmm1,%edi | |
0x029afab6: mov 0xc(%edi),%esi ;*getfield var1b | |
; - Test2::test1@16 (line 74) | |
0x029afab9: mov 0x8(%esi),%ebp ; implicit exception: dispatches to 0x029afcd5 | |
0x029afabc: cmp $0xd,%ebp | |
0x029afabf: jbe 0x029afc65 | |
0x029afac5: mov 0x78(%esi),%ebp | |
0x029afac8: mov 0x7c(%esi),%edi ;*laload | |
; - Test2::test1@22 (line 74) | |
0x029afacb: movd %xmm1,%eax | |
0x029afacf: mov 0x8(%eax),%eax ;*getfield var1a | |
; - Test2::test1@9 (line 74) | |
0x029afad2: mov %eax,0x8(%esp) | |
0x029afad6: mov 0x10(%esp),%eax | |
0x029afada: mov 0x14(%esp),%edx | |
0x029afade: add %ebp,%eax | |
0x029afae0: adc %edi,%edx ;*ladd | |
; - Test2::test1@27 (line 74) | |
0x029afae2: add $0x1,%ebp | |
0x029afae5: adc $0x0,%edi | |
0x029afae8: mov %ebp,0x78(%esi) | |
0x029afaeb: mov %edi,0x7c(%esi) ;*lastore | |
; - Test2::test1@26 (line 74) | |
0x029afaee: mov %eax,0x10(%ebx) | |
0x029afaf1: mov %edx,0x14(%ebx) ;*getfield var1a | |
; - Test2::test1@9 (line 74) | |
0x029afaf4: mov 0x8(%esp),%ebp | |
0x029afaf8: mov 0x8(%ebp),%ebx ; implicit exception: dispatches to 0x029afcc7 | |
0x029afafb: mov %eax,%ebp | |
0x029afafd: mov %edx,%edi | |
0x029afaff: add (%esp),%ebp | |
0x029afb02: adc 0x4(%esp),%edi ;*ladd | |
; - Test2::test1@30 (line 74) | |
0x029afb06: mov %ebp,(%esp) | |
0x029afb09: mov %edi,0x4(%esp) | |
0x029afb0d: test %ebx,%ebx | |
0x029afb0f: jbe 0x029afc50 | |
0x029afb15: movd %ecx,%xmm0 | |
0x029afb19: mov 0x8(%esp),%esi | |
0x029afb1d: mov 0x10(%esi),%eax | |
0x029afb20: mov 0x14(%esi),%edx ;*laload | |
; - Test2::test1@14 (line 74) | |
0x029afb23: movd %xmm1,%ebx | |
0x029afb27: mov 0xc(%ebx),%esi ;*getfield var1b | |
; - Test2::test1@16 (line 74) | |
0x029afb2a: mov 0x8(%esi),%ecx ; implicit exception: dispatches to 0x029afcd5 | |
0x029afb2d: cmp $0xd,%ecx | |
0x029afb30: jbe 0x029afc77 | |
0x029afb36: mov 0x78(%esi),%ecx | |
0x029afb39: mov 0x7c(%esi),%ebx ;*laload | |
; - Test2::test1@22 (line 74) | |
0x029afb3c: add %ecx,%eax | |
0x029afb3e: adc %ebx,%edx ;*ladd | |
; - Test2::test1@27 (line 74) | |
0x029afb40: mov %eax,%ebp | |
0x029afb42: mov %edx,%edi | |
0x029afb44: add (%esp),%ebp | |
0x029afb47: adc 0x4(%esp),%edi ;*ladd | |
; - Test2::test1@30 (line 74) | |
0x029afb4b: mov %ebp,(%esp) | |
0x029afb4e: mov %edi,0x4(%esp) | |
0x029afb52: add $0x1,%ecx | |
0x029afb55: adc $0x0,%ebx | |
0x029afb58: mov %ecx,0x78(%esi) | |
0x029afb5b: mov %ebx,0x7c(%esi) ;*lastore | |
; - Test2::test1@26 (line 74) | |
0x029afb5e: mov 0x8(%esp),%ebx | |
0x029afb62: mov %eax,0x10(%ebx) | |
0x029afb65: mov %edx,0x14(%ebx) ;*if_icmplt | |
; - Test2::test1@38 (line 72) | |
0x029afb68: movd %xmm0,%ecx | |
0x029afb6c: add $0x2,%ecx ;*iinc | |
; - Test2::test1@32 (line 72) | |
0x029afb6f: cmp $0x55d4a7f,%ecx | |
0x029afb75: jl 0x029afa90 ;*if_icmplt | |
; - Test2::test1@38 (line 72) | |
0x029afb7b: cmp $0x55d4a80,%ecx | |
0x029afb81: jge 0x029afc14 | |
0x029afb87: nop ;*lload_1 | |
; - Test2::test1@7 (line 74) | |
0x029afb88: movd %xmm1,%ebx | |
0x029afb8c: mov 0x8(%ebx),%ebx ;*getfield var1a | |
; - Test2::test1@9 (line 74) | |
0x029afb8f: mov 0x8(%ebx),%ebp ; implicit exception: dispatches to 0x029afcc7 | |
0x029afb92: test %ebp,%ebp | |
0x029afb94: jbe 0x029afcb7 | |
0x029afb9a: mov %ebx,%esi | |
0x029afb9c: mov 0x10(%esi),%ebp | |
0x029afb9f: mov 0x14(%esi),%edi ;*laload | |
; - Test2::test1@14 (line 74) | |
0x029afba2: mov %ebp,0x10(%esp) | |
0x029afba6: mov %edi,0x14(%esp) | |
0x029afbaa: movd %xmm1,%edi | |
0x029afbae: mov 0xc(%edi),%esi ;*getfield var1b | |
; - Test2::test1@16 (line 74) | |
0x029afbb1: mov 0x8(%esi),%ebp ; implicit exception: dispatches to 0x029afcd5 | |
0x029afbb4: cmp $0xd,%ebp | |
0x029afbb7: jbe 0x029afcbd | |
0x029afbbd: mov 0x78(%esi),%eax | |
0x029afbc0: mov 0x7c(%esi),%edx ;*laload | |
; - Test2::test1@22 (line 74) | |
0x029afbc3: mov 0x10(%esp),%ebp | |
0x029afbc7: mov 0x14(%esp),%edi | |
0x029afbcb: add %eax,%ebp | |
0x029afbcd: adc %edx,%edi ;*ladd | |
; - Test2::test1@27 (line 74) | |
0x029afbcf: mov %ebp,0x8(%esp) | |
0x029afbd3: mov %edi,0xc(%esp) | |
0x029afbd7: mov (%esp),%ebp | |
0x029afbda: mov 0x4(%esp),%edi | |
0x029afbde: add 0x8(%esp),%ebp | |
0x029afbe2: adc 0xc(%esp),%edi ;*ladd | |
; - Test2::test1@30 (line 74) | |
0x029afbe6: mov %ebp,(%esp) | |
0x029afbe9: mov %edi,0x4(%esp) | |
0x029afbed: add $0x1,%eax | |
0x029afbf0: adc $0x0,%edx | |
0x029afbf3: mov %eax,0x78(%esi) | |
0x029afbf6: mov %edx,0x7c(%esi) ;*lastore | |
; - Test2::test1@26 (line 74) | |
0x029afbf9: mov 0x8(%esp),%ebp | |
0x029afbfd: mov 0xc(%esp),%edi | |
0x029afc01: mov %ebp,0x10(%ebx) | |
0x029afc04: mov %edi,0x14(%ebx) ;*lastore | |
; - Test2::test1@29 (line 74) | |
0x029afc07: inc %ecx ;*iinc | |
; - Test2::test1@32 (line 72) | |
0x029afc08: cmp $0x55d4a80,%ecx | |
0x029afc0e: jl 0x029afb88 | |
0x029afc14: mov $0x88,%ecx | |
0x029afc19: mov (%esp),%ebp | |
0x029afc1c: mov 0x4(%esp),%edi | |
0x029afc20: cmp 0x306c6280(%ecx),%eax ; {oop(a 'java/lang/Class' = 'Test2')} | |
0x029afc26: movd %ebp,%xmm0 | |
0x029afc2a: movd %edi,%xmm1 | |
0x029afc2e: punpckldq %xmm1,%xmm0 | |
0x029afc32: movsd %xmm0,0x306c6280(%ecx) ; {oop(a 'java/lang/Class' = 'Test2')} | |
0x029afc3a: lock addl $0x0,(%esp) ;*if_icmplt | |
; - Test2::test1@38 (line 72) | |
0x029afc3f: add $0x28,%esp | |
0x029afc42: pop %ebp | |
0x029afc43: test %eax,0x1a0000 ; {poll_return} | |
0x029afc49: ret | |
0x029afc4a: mov %ebx,0x8(%esp) | |
0x029afc4e: jmp 0x029afc51 | |
0x029afc50: inc %ecx ;*iinc | |
; - Test2::test1@32 (line 72) | |
0x029afc51: movd %xmm1,%ebp | |
0x029afc55: mov %ecx,0xc(%esp) | |
0x029afc59: mov $0xffffffe4,%ecx | |
0x029afc5e: nop | |
0x029afc5f: call 0x0298cac0 ; OopMap{ebp=Oop [8]=Oop off=676} | |
;*laload | |
; - Test2::test1@14 (line 74) | |
; {runtime_call} | |
0x029afc64: int3 ;*laload | |
; - Test2::test1@14 (line 74) | |
0x029afc65: mov 0x10(%esp),%ebp | |
0x029afc69: mov 0x14(%esp),%edi | |
0x029afc6d: mov %ebx,0x8(%esp) | |
0x029afc71: mov %ebp,%eax | |
0x029afc73: mov %edi,%edx | |
0x029afc75: jmp 0x029afc7e | |
0x029afc77: movd %xmm0,%ebx | |
0x029afc7b: inc %ebx ;*iinc | |
; - Test2::test1@32 (line 72) | |
0x029afc7c: mov %ebx,%ecx | |
0x029afc7e: mov %esi,0xc(%esp) | |
0x029afc82: mov %eax,0x10(%esp) | |
0x029afc86: mov %edx,0x14(%esp) | |
0x029afc8a: movd %xmm1,%ebp | |
0x029afc8e: mov %ecx,0x18(%esp) | |
0x029afc92: mov $0xffffffe4,%ecx | |
0x029afc97: call 0x0298cac0 ; OopMap{ebp=Oop [8]=Oop [12]=Oop off=732} | |
;*laload | |
; - Test2::test1@22 (line 74) | |
; {runtime_call} | |
0x029afc9c: int3 ;*laload | |
; - Test2::test1@22 (line 74) | |
0x029afc9d: mov %eax,(%esp) | |
0x029afca0: mov %edx,0x4(%esp) | |
0x029afca4: jmp 0x029afc51 | |
0x029afca6: mov %eax,(%esp) | |
0x029afca9: mov %edx,0x4(%esp) | |
0x029afcad: mov 0x18(%esp),%eax | |
0x029afcb1: mov 0x1c(%esp),%edx | |
0x029afcb5: jmp 0x029afc7e | |
0x029afcb7: mov %ebx,0x8(%esp) | |
0x029afcbb: jmp 0x029afc51 | |
0x029afcbd: mov %esi,0xc(%esp) | |
0x029afcc1: mov %ebx,0x8(%esp) | |
0x029afcc5: jmp 0x029afc8a | |
0x029afcc7: mov $0xfffffff6,%ecx | |
0x029afccc: xchg %ax,%ax | |
0x029afccf: call 0x0298cac0 ; OopMap{off=788} | |
;*laload | |
; - Test2::test1@14 (line 74) | |
; {runtime_call} | |
0x029afcd4: int3 ;*laload | |
; - Test2::test1@14 (line 74) | |
0x029afcd5: mov $0xfffffff6,%ecx | |
0x029afcda: nop | |
0x029afcdb: call 0x0298cac0 ; OopMap{off=800} | |
;*laload | |
; - Test2::test1@22 (line 74) | |
; {runtime_call} | |
0x029afce0: int3 ;*if_icmplt | |
; - Test2::test1@38 (line 72) | |
0x029afce1: hlt | |
0x029afce2: hlt | |
0x029afce3: hlt | |
0x029afce4: hlt | |
0x029afce5: hlt | |
0x029afce6: hlt | |
0x029afce7: hlt | |
0x029afce8: hlt | |
0x029afce9: hlt | |
0x029afcea: hlt | |
0x029afceb: hlt | |
0x029afcec: hlt | |
0x029afced: hlt | |
0x029afcee: hlt | |
0x029afcef: hlt | |
0x029afcf0: hlt | |
0x029afcf1: hlt | |
0x029afcf2: hlt | |
0x029afcf3: hlt | |
0x029afcf4: hlt | |
0x029afcf5: hlt | |
0x029afcf6: hlt | |
0x029afcf7: hlt | |
0x029afcf8: hlt | |
0x029afcf9: hlt | |
0x029afcfa: hlt | |
0x029afcfb: hlt | |
0x029afcfc: hlt | |
0x029afcfd: hlt | |
0x029afcfe: hlt | |
0x029afcff: hlt | |
[Exception Handler] | |
[Stub Code] | |
0x029afd00: jmp 0x029a77c0 ; {no_reloc} | |
[Deopt Handler Code] | |
0x029afd05: push $0x29afd05 ; {section_word} | |
0x029afd0a: jmp 0x0298dd40 ; {runtime_call} | |
0x029afd0f: hlt | |
OopMapSet contains 4 OopMaps | |
#0 | |
OopMap{ebp=Oop [8]=Oop off=676} | |
#1 | |
OopMap{ebp=Oop [8]=Oop [12]=Oop off=732} | |
#2 | |
OopMap{off=788} | |
#3 | |
OopMap{off=800} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Compiled method (c2) 5122 12 Test2::test2 (46 bytes) | |
total in heap [0x029b02c8,0x029b0b80] = 2232 | |
relocation [0x029b039c,0x029b03b4] = 24 | |
main code [0x029b03c0,0x029b07c0] = 1024 | |
stub code [0x029b07c0,0x029b07d0] = 16 | |
oops [0x029b07d0,0x029b07d4] = 4 | |
metadata [0x029b07d4,0x029b07d8] = 4 | |
scopes data [0x029b07d8,0x029b0838] = 96 | |
scopes pcs [0x029b0838,0x029b0b68] = 816 | |
dependencies [0x029b0b68,0x029b0b6c] = 4 | |
nul chk table [0x029b0b6c,0x029b0b80] = 20 | |
Decoding compiled method 0x029b02c8: | |
Code: | |
[Entry Point] | |
[Constants] | |
# {method} | |
{0x02660994} 'test2' '()V' in 'Test2' | |
# [sp+0x80] (sp of caller) | |
0x029b03c0: cmp 0x4(%ecx),%eax | |
0x029b03c3: jne 0x0298d000 ; {runtime_call} | |
0x029b03c9: xchg %ax,%ax | |
[Verified Entry Point] | |
0x029b03cc: mov %eax,0xffffc000(%esp) | |
0x029b03d3: push %ebp | |
0x029b03d4: sub $0x78,%esp ;*synchronization entry | |
; - Test2::test2@-1 (line 85) | |
0x029b03d7: mov %ecx,%edi | |
0x029b03d9: mov 0x10(%ecx),%eax ;*getfield var2a | |
; - Test2::test2@9 (line 90) | |
0x029b03dc: mov 0x8(%eax),%ebx ; implicit exception: dispatches to 0x029b079d | |
0x029b03df: test %ebx,%ebx | |
0x029b03e1: jbe 0x029b079d ;*lload_1 | |
; - Test2::test2@7 (line 90) | |
0x029b03e7: mov 0x14(%ecx),%esi ;*getfield var2b | |
; - Test2::test2@16 (line 90) | |
0x029b03ea: mov 0x8(%esi),%ebx ; implicit exception: dispatches to 0x029b079d | |
0x029b03ed: cmp $0xd,%ebx | |
0x029b03f0: jbe 0x029b079d ;*lload_1 | |
; - Test2::test2@7 (line 90) | |
0x029b03f6: movd %esi,%xmm2 | |
0x029b03fa: mov 0x78(%esi),%ecx | |
0x029b03fd: mov 0x7c(%esi),%ebx ;*laload | |
; - Test2::test2@22 (line 90) | |
0x029b0400: mov %ecx,%ebp | |
0x029b0402: mov %ebx,%edi | |
0x029b0404: mov %eax,%esi | |
0x029b0406: add 0x10(%esi),%ebp | |
0x029b0409: adc 0x14(%esi),%edi ;*ladd | |
; - Test2::test2@27 (line 90) | |
0x029b040c: mov %ebp,(%esp) | |
0x029b040f: mov %edi,0x4(%esp) | |
0x029b0413: add $0x1,%ecx | |
0x029b0416: adc $0x0,%ebx | |
0x029b0419: movd %xmm2,%edi | |
0x029b041d: mov %ecx,0x78(%edi) | |
0x029b0420: mov %ebx,0x7c(%edi) ;*lastore | |
; - Test2::test2@26 (line 90) | |
0x029b0423: mov (%esp),%ecx | |
0x029b0426: mov 0x4(%esp),%ebx | |
0x029b042a: mov %ecx,0x10(%eax) | |
0x029b042d: mov %ebx,0x14(%eax) ;*lastore | |
; - Test2::test2@29 (line 90) | |
0x029b0430: mov %ecx,0x60(%esp) | |
0x029b0434: mov %ebx,0x64(%esp) | |
0x029b0438: movd %eax,%xmm0 | |
0x029b043c: mov $0x1,%ebx | |
0x029b0441: movd %ebx,%xmm1 | |
0x029b0445: nopw 0x0(%eax,%eax,1) ;*lload_1 | |
; - Test2::test2@7 (line 90) | |
0x029b0450: movd %xmm2,%esi | |
0x029b0454: mov 0x78(%esi),%eax | |
0x029b0457: mov 0x7c(%esi),%edx ;*laload | |
; - Test2::test2@22 (line 90) | |
0x029b045a: mov (%esp),%ecx | |
0x029b045d: mov 0x4(%esp),%ebx | |
0x029b0461: add %eax,%ecx | |
0x029b0463: adc %edx,%ebx ;*ladd | |
; - Test2::test2@27 (line 90) | |
0x029b0465: mov %ecx,(%esp) | |
0x029b0468: mov %ebx,0x4(%esp) | |
0x029b046c: mov 0x60(%esp),%ebp | |
0x029b0470: mov 0x64(%esp),%edi | |
0x029b0474: add %ecx,%ebp | |
0x029b0476: adc %ebx,%edi | |
0x029b0478: add %eax,%ecx | |
0x029b047a: adc %edx,%ebx | |
0x029b047c: mov %ecx,0x8(%esp) | |
0x029b0480: mov %ebx,0xc(%esp) | |
0x029b0484: add %ecx,%ebp | |
0x029b0486: adc %ebx,%edi | |
0x029b0488: add %eax,%ecx | |
0x029b048a: adc %edx,%ebx ;*ladd | |
; - Test2::test2@25 (line 90) | |
0x029b048c: mov %ecx,0x10(%esp) | |
0x029b0490: mov %ebx,0x14(%esp) | |
0x029b0494: add %ecx,%ebp | |
0x029b0496: adc %ebx,%edi | |
0x029b0498: add %eax,%ecx | |
0x029b049a: adc %edx,%ebx ;*ladd | |
; - Test2::test2@27 (line 90) | |
0x029b049c: mov %ecx,0x18(%esp) | |
0x029b04a0: mov %ebx,0x1c(%esp) | |
0x029b04a4: add %ecx,%ebp | |
0x029b04a6: adc %ebx,%edi | |
0x029b04a8: add %eax,%ecx | |
0x029b04aa: adc %edx,%ebx ;*ladd | |
; - Test2::test2@25 (line 90) | |
0x029b04ac: mov %ecx,0x20(%esp) | |
0x029b04b0: mov %ebx,0x24(%esp) | |
0x029b04b4: add %ecx,%ebp | |
0x029b04b6: adc %ebx,%edi | |
0x029b04b8: add %eax,%ecx | |
0x029b04ba: adc %edx,%ebx ;*ladd | |
; - Test2::test2@27 (line 90) | |
0x029b04bc: mov %ecx,0x28(%esp) | |
0x029b04c0: mov %ebx,0x2c(%esp) | |
0x029b04c4: add %ecx,%ebp | |
0x029b04c6: adc %ebx,%edi | |
0x029b04c8: add %eax,%ecx | |
0x029b04ca: adc %edx,%ebx ;*ladd | |
; - Test2::test2@25 (line 90) | |
0x029b04cc: mov %ecx,0x30(%esp) | |
0x029b04d0: mov %ebx,0x34(%esp) | |
0x029b04d4: add %ecx,%ebp | |
0x029b04d6: adc %ebx,%edi | |
0x029b04d8: add %eax,%ecx | |
0x029b04da: adc %edx,%ebx ;*ladd | |
; - Test2::test2@27 (line 90) | |
0x029b04dc: mov %ecx,0x38(%esp) | |
0x029b04e0: mov %ebx,0x3c(%esp) | |
0x029b04e4: add %ecx,%ebp | |
0x029b04e6: adc %ebx,%edi | |
0x029b04e8: mov %ebp,0x40(%esp) | |
0x029b04ec: mov %edi,0x44(%esp) | |
0x029b04f0: mov %eax,%ebp | |
0x029b04f2: mov %edx,%edi | |
0x029b04f4: add $0x1,%ebp | |
0x029b04f7: adc $0x0,%edi | |
0x029b04fa: mov %ebp,0x78(%esi) | |
0x029b04fd: mov %edi,0x7c(%esi) ;*lastore | |
; - Test2::test2@26 (line 90) | |
0x029b0500: movd %xmm0,%ebp | |
0x029b0504: mov (%esp),%ecx | |
0x029b0507: mov 0x4(%esp),%ebx | |
0x029b050b: mov %ecx,0x10(%ebp) | |
0x029b050e: mov %ebx,0x14(%ebp) ;*lastore | |
; - Test2::test2@29 (line 90) | |
0x029b0511: mov 0x40(%esp),%ecx | |
0x029b0515: mov 0x44(%esp),%ebx | |
0x029b0519: add $0x54,%ecx | |
0x029b051c: adc $0x0,%ebx ;*ladd | |
; - Test2::test2@30 (line 90) | |
0x029b051f: mov %ecx,0x60(%esp) | |
0x029b0523: mov %ebx,0x64(%esp) | |
0x029b0527: mov 0x38(%esp),%ecx | |
0x029b052b: mov 0x3c(%esp),%ebx | |
0x029b052f: add $0x1c,%ecx | |
0x029b0532: adc $0x0,%ebx ;*ladd | |
; - Test2::test2@27 (line 90) | |
0x029b0535: mov %ecx,(%esp) | |
0x029b0538: mov %ebx,0x4(%esp) | |
0x029b053c: mov 0x30(%esp),%ecx | |
0x029b0540: mov 0x34(%esp),%ebx | |
0x029b0544: add $0x15,%ecx | |
0x029b0547: adc $0x0,%ebx | |
0x029b054a: mov %ecx,0x30(%esp) | |
0x029b054e: mov %ebx,0x34(%esp) | |
0x029b0552: mov 0x28(%esp),%ecx | |
0x029b0556: mov 0x2c(%esp),%ebx | |
0x029b055a: add $0xf,%ecx | |
0x029b055d: adc $0x0,%ebx | |
0x029b0560: mov %ecx,0x28(%esp) | |
0x029b0564: mov %ebx,0x2c(%esp) | |
0x029b0568: mov 0x20(%esp),%ecx | |
0x029b056c: mov 0x24(%esp),%ebx | |
0x029b0570: add $0xa,%ecx | |
0x029b0573: adc $0x0,%ebx | |
0x029b0576: mov %ecx,0x20(%esp) | |
0x029b057a: mov %ebx,0x24(%esp) | |
0x029b057e: mov 0x18(%esp),%ecx | |
0x029b0582: mov 0x1c(%esp),%ebx | |
0x029b0586: add $0x6,%ecx | |
0x029b0589: adc $0x0,%ebx | |
0x029b058c: mov %ecx,0x18(%esp) | |
0x029b0590: mov %ebx,0x1c(%esp) | |
0x029b0594: mov 0x10(%esp),%ecx | |
0x029b0598: mov 0x14(%esp),%ebx | |
0x029b059c: add $0x3,%ecx | |
0x029b059f: adc $0x0,%ebx | |
0x029b05a2: mov %ecx,0x10(%esp) | |
0x029b05a6: mov %ebx,0x14(%esp) | |
0x029b05aa: mov 0x8(%esp),%ecx | |
0x029b05ae: mov 0xc(%esp),%ebx | |
0x029b05b2: add $0x1,%ecx | |
0x029b05b5: adc $0x0,%ebx | |
0x029b05b8: mov %ecx,0x8(%esp) | |
0x029b05bc: mov %ebx,0xc(%esp) | |
0x029b05c0: mov %eax,%ecx | |
0x029b05c2: mov %edx,%ebx | |
0x029b05c4: add $0x7,%ecx | |
0x029b05c7: adc $0x0,%ebx | |
0x029b05ca: mov %ecx,0x38(%esp) | |
0x029b05ce: mov %ebx,0x3c(%esp) | |
0x029b05d2: mov %eax,%ecx | |
0x029b05d4: mov %edx,%ebx | |
0x029b05d6: add $0x6,%ecx | |
0x029b05d9: adc $0x0,%ebx | |
0x029b05dc: mov %ecx,0x40(%esp) | |
0x029b05e0: mov %ebx,0x44(%esp) | |
0x029b05e4: mov %eax,%ecx | |
0x029b05e6: mov %edx,%ebx | |
0x029b05e8: add $0x5,%ecx | |
0x029b05eb: adc $0x0,%ebx | |
0x029b05ee: mov %ecx,0x48(%esp) | |
0x029b05f2: mov %ebx,0x4c(%esp) | |
0x029b05f6: mov %eax,%ecx | |
0x029b05f8: mov %edx,%ebx | |
0x029b05fa: add $0x4,%ecx | |
0x029b05fd: adc $0x0,%ebx | |
0x029b0600: mov %ecx,0x50(%esp) | |
0x029b0604: mov %ebx,0x54(%esp) | |
0x029b0608: mov %eax,%ecx | |
0x029b060a: mov %edx,%ebx | |
0x029b060c: add $0x3,%ecx | |
0x029b060f: adc $0x0,%ebx | |
0x029b0612: mov %ecx,0x58(%esp) | |
0x029b0616: mov %ebx,0x5c(%esp) | |
0x029b061a: mov %eax,%ecx | |
0x029b061c: mov %edx,%ebx | |
0x029b061e: add $0x2,%ecx | |
0x029b0621: adc $0x0,%ebx | |
0x029b0624: mov %ecx,0x78(%esi) | |
0x029b0627: mov %ebx,0x7c(%esi) ;*lastore | |
; - Test2::test2@26 (line 90) | |
0x029b062a: mov 0x8(%esp),%ecx | |
0x029b062e: mov 0xc(%esp),%ebx | |
0x029b0632: mov %ecx,0x10(%ebp) | |
0x029b0635: mov %ebx,0x14(%ebp) ;*lastore | |
; - Test2::test2@29 (line 90) | |
0x029b0638: mov 0x58(%esp),%ecx | |
0x029b063c: mov 0x5c(%esp),%ebx | |
0x029b0640: mov %ecx,0x78(%esi) | |
0x029b0643: mov %ebx,0x7c(%esi) ;*lastore | |
; - Test2::test2@26 (line 90) | |
0x029b0646: mov 0x10(%esp),%ecx | |
0x029b064a: mov 0x14(%esp),%ebx | |
0x029b064e: mov %ecx,0x10(%ebp) | |
0x029b0651: mov %ebx,0x14(%ebp) ;*lastore | |
; - Test2::test2@29 (line 90) | |
0x029b0654: mov 0x50(%esp),%ecx | |
0x029b0658: mov 0x54(%esp),%ebx | |
0x029b065c: mov %ecx,0x78(%esi) | |
0x029b065f: mov %ebx,0x7c(%esi) ;*lastore | |
; - Test2::test2@26 (line 90) | |
0x029b0662: mov 0x18(%esp),%ecx | |
0x029b0666: mov 0x1c(%esp),%ebx | |
0x029b066a: mov %ecx,0x10(%ebp) | |
0x029b066d: mov %ebx,0x14(%ebp) ;*lastore | |
; - Test2::test2@29 (line 90) | |
0x029b0670: mov 0x48(%esp),%ecx | |
0x029b0674: mov 0x4c(%esp),%ebx | |
0x029b0678: mov %ecx,0x78(%esi) | |
0x029b067b: mov %ebx,0x7c(%esi) ;*lastore | |
; - Test2::test2@26 (line 90) | |
0x029b067e: mov 0x20(%esp),%ecx | |
0x029b0682: mov 0x24(%esp),%ebx | |
0x029b0686: mov %ecx,0x10(%ebp) | |
0x029b0689: mov %ebx,0x14(%ebp) ;*lastore | |
; - Test2::test2@29 (line 90) | |
0x029b068c: mov 0x40(%esp),%ecx | |
0x029b0690: mov 0x44(%esp),%ebx | |
0x029b0694: mov %ecx,0x78(%esi) | |
0x029b0697: mov %ebx,0x7c(%esi) ;*lastore | |
; - Test2::test2@26 (line 90) | |
0x029b069a: mov 0x28(%esp),%ecx | |
0x029b069e: mov 0x2c(%esp),%ebx | |
0x029b06a2: mov %ecx,0x10(%ebp) | |
0x029b06a5: mov %ebx,0x14(%ebp) ;*lastore | |
; - Test2::test2@29 (line 90) | |
0x029b06a8: mov 0x38(%esp),%ecx | |
0x029b06ac: mov 0x3c(%esp),%ebx | |
0x029b06b0: mov %ecx,0x78(%esi) | |
0x029b06b3: mov %ebx,0x7c(%esi) ;*lastore | |
; - Test2::test2@26 (line 90) | |
0x029b06b6: mov 0x30(%esp),%ecx | |
0x029b06ba: mov 0x34(%esp),%ebx | |
0x029b06be: mov %ecx,0x10(%ebp) | |
0x029b06c1: mov %ebx,0x14(%ebp) ;*lastore | |
; - Test2::test2@29 (line 90) | |
0x029b06c4: add $0x8,%eax | |
0x029b06c7: adc $0x0,%edx | |
0x029b06ca: mov %eax,0x78(%esi) | |
0x029b06cd: mov %edx,0x7c(%esi) ;*lastore | |
; - Test2::test2@26 (line 90) | |
0x029b06d0: mov (%esp),%ecx | |
0x029b06d3: mov 0x4(%esp),%ebx | |
0x029b06d7: mov %ecx,0x10(%ebp) | |
0x029b06da: mov %ebx,0x14(%ebp) ;*lastore | |
; - Test2::test2@29 (line 90) | |
0x029b06dd: movd %xmm1,%ebx | |
0x029b06e1: add $0x8,%ebx ;*iinc | |
; - Test2::test2@32 (line 88) | |
0x029b06e4: movd %ebx,%xmm1 | |
0x029b06e8: cmp $0x55d4a79,%ebx | |
0x029b06ee: jl 0x029b0450 ;*if_icmplt | |
; - Test2::test2@38 (line 88) | |
0x029b06f4: cmp $0x55d4a80,%ebx | |
0x029b06fa: jge 0x029b0793 | |
0x029b0700: movd %ebx,%xmm3 ;*lload_1 | |
; - Test2::test2@7 (line 90) | |
0x029b0704: movd %xmm2,%esi | |
0x029b0708: mov 0x78(%esi),%eax | |
0x029b070b: mov 0x7c(%esi),%edx ;*laload | |
; - Test2::test2@22 (line 90) | |
0x029b070e: mov (%esp),%ecx | |
0x029b0711: mov 0x4(%esp),%ebx | |
0x029b0715: add %eax,%ecx | |
0x029b0717: adc %edx,%ebx ;*ladd | |
; - Test2::test2@27 (line 90) | |
0x029b0719: mov %ecx,(%esp) | |
0x029b071c: mov %ebx,0x4(%esp) | |
0x029b0720: mov 0x60(%esp),%ebp | |
0x029b0724: mov 0x64(%esp),%edi | |
0x029b0728: add %ecx,%ebp | |
0x029b072a: adc %ebx,%edi ;*ladd | |
; - Test2::test2@30 (line 90) | |
0x029b072c: add $0x1,%eax | |
0x029b072f: adc $0x0,%edx | |
0x029b0732: mov %eax,0x78(%esi) | |
0x029b0735: mov %edx,0x7c(%esi) ;*lastore | |
; - Test2::test2@26 (line 90) | |
0x029b0738: movd %xmm0,%ecx | |
0x029b073c: mov (%esp),%eax | |
0x029b073f: mov 0x4(%esp),%edx | |
0x029b0743: mov %eax,0x10(%ecx) | |
0x029b0746: mov %edx,0x14(%ecx) ;*lastore | |
; - Test2::test2@29 (line 90) | |
0x029b0749: movd %xmm3,%ebx | |
0x029b074d: inc %ebx ;*iinc | |
; - Test2::test2@32 (line 88) | |
0x029b074e: movd %ebx,%xmm3 | |
0x029b0752: cmp $0x55d4a80,%ebx | |
0x029b0758: jge 0x029b0764 ;*if_icmplt | |
; - Test2::test2@38 (line 88) | |
0x029b075a: mov %ebp,0x60(%esp) | |
0x029b075e: mov %edi,0x64(%esp) | |
0x029b0762: jmp 0x029b0704 | |
0x029b0764: mov $0x88,%ebx | |
0x029b0769: cmp 0x306c6280(%ebx),%eax ; {oop(a 'java/lang/Class' = 'Test2')} | |
0x029b076f: movd %ebp,%xmm0 | |
0x029b0773: movd %edi,%xmm1 | |
0x029b0777: punpckldq %xmm1,%xmm0 | |
0x029b077b: movsd %xmm0,0x306c6280(%ebx) ; {oop(a 'java/lang/Class' = 'Test2')} | |
0x029b0783: lock addl $0x0,(%esp) ;*putstatic escapeHatch | |
; - Test2::test2@42 (line 96) | |
0x029b0788: add $0x78,%esp | |
0x029b078b: pop %ebp | |
0x029b078c: test %eax,0x1a0000 ; {poll_return} | |
0x029b0792: ret | |
0x029b0793: mov 0x60(%esp),%ebp | |
0x029b0797: mov 0x64(%esp),%edi | |
0x029b079b: jmp 0x029b0764 | |
0x029b079d: mov $0xffffff86,%ecx | |
0x029b07a2: mov %edi,%ebp | |
0x029b07a4: xchg %ax,%ax | |
0x029b07a7: call 0x0298cac0 ; OopMap{ebp=Oop off=1004} | |
;*lload_1 | |
; - Test2::test2@7 (line 90) | |
; {runtime_call} | |
0x029b07ac: int3 ;*lload_1 | |
; - Test2::test2@7 (line 90) | |
0x029b07ad: hlt | |
0x029b07ae: hlt | |
0x029b07af: hlt | |
0x029b07b0: hlt | |
0x029b07b1: hlt | |
0x029b07b2: hlt | |
0x029b07b3: hlt | |
0x029b07b4: hlt | |
0x029b07b5: hlt | |
0x029b07b6: hlt | |
0x029b07b7: hlt | |
0x029b07b8: hlt | |
0x029b07b9: hlt | |
0x029b07ba: hlt | |
0x029b07bb: hlt | |
0x029b07bc: hlt | |
0x029b07bd: hlt | |
0x029b07be: hlt | |
0x029b07bf: hlt | |
[Exception Handler] | |
[Stub Code] | |
0x029b07c0: jmp 0x029a77c0 ; {no_reloc} | |
[Deopt Handler Code] | |
0x029b07c5: push $0x29b07c5 ; {section_word} | |
0x029b07ca: jmp 0x0298dd40 ; {runtime_call} | |
0x029b07cf: hlt | |
OopMapSet contains 1 OopMaps | |
#0 | |
OopMap{ebp=Oop off=1004} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Compiled method (c2) 8830 17 Test2::test3 (64 bytes) | |
total in heap [0x029b7908,0x029b81a4] = 2204 | |
relocation [0x029b79dc,0x029b79f8] = 28 | |
main code [0x029b7a00,0x029b7d00] = 768 | |
stub code [0x029b7d00,0x029b7d10] = 16 | |
oops [0x029b7d10,0x029b7d14] = 4 | |
metadata [0x029b7d14,0x029b7d18] = 4 | |
scopes data [0x029b7d18,0x029b7ddc] = 196 | |
scopes pcs [0x029b7ddc,0x029b815c] = 896 | |
dependencies [0x029b815c,0x029b8160] = 4 | |
nul chk table [0x029b8160,0x029b81a4] = 68 | |
Decoding compiled method 0x029b7908: | |
Code: | |
[Entry Point] | |
[Constants] | |
# {method} | |
{0x02660a8c} 'test3' '()V' in 'Test2' | |
# [sp+0x30] (sp of caller) | |
0x029b7a00: cmp 0x4(%ecx),%eax | |
0x029b7a03: jne 0x0298d000 ; {runtime_call} | |
0x029b7a09: xchg %ax,%ax | |
[Verified Entry Point] | |
0x029b7a0c: mov %eax,0xffffc000(%esp) | |
0x029b7a13: push %ebp | |
0x029b7a14: sub $0x28,%esp ;*synchronization entry | |
; - Test2::test3@-1 (line 103) | |
0x029b7a17: mov 0x8(%ecx),%ebp ;*invokevirtual getObject | |
; - Test2::test3@15 (line 108) | |
0x029b7a1a: mov 0x8(%ebp),%edi ; implicit exception: dispatches to 0x029b7cd3 | |
0x029b7a1d: xor %ebx,%ebx | |
0x029b7a1f: test %edi,%edi | |
0x029b7a21: jbe 0x029b7cad ;*laload | |
; - Test2::test3@23 (line 108) | |
0x029b7a27: mov %ebp,0x8(%esp) | |
0x029b7a2b: mov 0xc(%ecx),%edi ;*invokevirtual getObject | |
; - Test2::test3@31 (line 108) | |
0x029b7a2e: mov %edi,0xc(%esp) | |
0x029b7a32: mov 0x8(%edi),%eax ; implicit exception: dispatches to 0x029b7ce1 | |
0x029b7a35: mov %ebp,%esi | |
0x029b7a37: mov 0x10(%esi),%ebp | |
0x029b7a3a: mov 0x14(%esi),%edi ;*laload | |
; - Test2::test3@23 (line 108) | |
0x029b7a3d: cmp $0xd,%eax | |
0x029b7a40: jbe 0x029b7cb3 | |
0x029b7a46: mov 0xc(%esp),%esi | |
0x029b7a4a: mov 0x78(%esi),%eax | |
0x029b7a4d: mov 0x7c(%esi),%edx ;*laload | |
; - Test2::test3@40 (line 108) | |
0x029b7a50: mov %eax,0x10(%esp) | |
0x029b7a54: mov %edx,0x14(%esp) | |
0x029b7a58: add %ebp,%eax | |
0x029b7a5a: adc %edi,%edx ;*ladd | |
; - Test2::test3@45 (line 108) | |
0x029b7a5c: mov %eax,(%esp) | |
0x029b7a5f: mov %edx,0x4(%esp) | |
0x029b7a63: mov 0x10(%esp),%ebp | |
0x029b7a67: mov 0x14(%esp),%edi | |
0x029b7a6b: add $0x1,%ebp | |
0x029b7a6e: adc $0x0,%edi | |
0x029b7a71: mov %ebp,0x78(%esi) | |
0x029b7a74: mov %edi,0x7c(%esi) ;*lastore | |
; - Test2::test3@44 (line 108) | |
0x029b7a77: mov 0x8(%esp),%ebp | |
0x029b7a7b: mov %eax,0x10(%ebp) | |
0x029b7a7e: mov %edx,0x14(%ebp) ;*lastore | |
; - Test2::test3@47 (line 108) | |
0x029b7a81: mov $0x1,%ebx | |
0x029b7a86: jmp 0x029b7a94 | |
0x029b7a88: nopl 0x0(%eax,%eax,1) | |
0x029b7a90: movd %xmm0,%ecx ;*lload_1 | |
; - Test2::test3@7 (line 108) | |
0x029b7a94: mov 0x8(%ecx),%ebp ;*invokevirtual getObject | |
; - Test2::test3@15 (line 108) | |
0x029b7a97: mov 0x8(%ebp),%edi ; implicit exception: dispatches to 0x029b7cd3 | |
0x029b7a9a: test %edi,%edi | |
0x029b7a9c: jbe 0x029b7c4a ;*laload | |
; - Test2::test3@23 (line 108) | |
0x029b7aa2: movd %ebp,%xmm1 | |
0x029b7aa6: mov 0xc(%ecx),%edi ;*invokevirtual getObject | |
; - Test2::test3@31 (line 108) | |
0x029b7aa9: mov %edi,0xc(%esp) | |
0x029b7aad: mov 0x8(%edi),%eax ; implicit exception: dispatches to 0x029b7ce1 | |
0x029b7ab0: movd %xmm1,%esi | |
0x029b7ab4: mov 0x10(%esi),%ebp | |
0x029b7ab7: mov 0x14(%esi),%edi ;*laload | |
; - Test2::test3@23 (line 108) | |
0x029b7aba: cmp $0xd,%eax | |
0x029b7abd: jbe 0x029b7c79 ;*laload | |
; - Test2::test3@40 (line 108) | |
0x029b7ac3: movd %ebx,%xmm2 | |
0x029b7ac7: movd %ecx,%xmm0 | |
0x029b7acb: mov 0x8(%ecx),%ebx ;*invokevirtual getObject | |
; - Test2::test3@15 (line 108) | |
0x029b7ace: mov %ebx,0x8(%esp) | |
0x029b7ad2: mov 0xc(%esp),%esi | |
0x029b7ad6: mov 0x78(%esi),%ecx | |
0x029b7ad9: mov 0x7c(%esi),%ebx ;*laload | |
; - Test2::test3@40 (line 108) | |
0x029b7adc: mov %ecx,%eax | |
0x029b7ade: mov %ebx,%edx | |
0x029b7ae0: add %ebp,%eax | |
0x029b7ae2: adc %edi,%edx ;*ladd | |
; - Test2::test3@45 (line 108) | |
0x029b7ae4: add $0x1,%ecx | |
0x029b7ae7: adc $0x0,%ebx | |
0x029b7aea: mov %esi,%edi | |
0x029b7aec: mov %ecx,0x78(%edi) | |
0x029b7aef: mov %ebx,0x7c(%edi) ;*lastore | |
; - Test2::test3@44 (line 108) | |
0x029b7af2: movd %xmm1,%ebx | |
0x029b7af6: mov %eax,0x10(%ebx) | |
0x029b7af9: mov %edx,0x14(%ebx) ;*lastore | |
; - Test2::test3@47 (line 108) | |
0x029b7afc: mov 0x8(%esp),%ebx | |
0x029b7b00: mov 0x8(%ebx),%ecx ; implicit exception: dispatches to 0x029b7cd3 | |
0x029b7b03: add (%esp),%eax | |
0x029b7b06: adc 0x4(%esp),%edx ;*ladd | |
; - Test2::test3@48 (line 108) | |
0x029b7b0a: movd %xmm2,%ebx | |
0x029b7b0e: inc %ebx ;*iinc | |
; - Test2::test3@50 (line 106) | |
0x029b7b0f: test %ecx,%ecx | |
0x029b7b11: jbe 0x029b7c57 ;*laload | |
; - Test2::test3@23 (line 108) | |
0x029b7b17: movd %xmm0,%edi | |
0x029b7b1b: mov 0xc(%edi),%ecx ;*invokevirtual getObject | |
; - Test2::test3@31 (line 108) | |
0x029b7b1e: mov %ecx,0xc(%esp) | |
0x029b7b22: mov 0x8(%ecx),%ecx ; implicit exception: dispatches to 0x029b7ce1 | |
0x029b7b25: movd %edi,%xmm1 | |
0x029b7b29: mov 0x8(%esp),%esi | |
0x029b7b2d: mov 0x10(%esi),%ebp | |
0x029b7b30: mov 0x14(%esi),%edi ;*laload | |
; - Test2::test3@23 (line 108) | |
0x029b7b33: cmp $0xd,%ecx | |
0x029b7b36: jbe 0x029b7c86 | |
0x029b7b3c: mov %eax,(%esp) | |
0x029b7b3f: mov %edx,0x4(%esp) | |
0x029b7b43: mov 0xc(%esp),%esi | |
0x029b7b47: mov 0x78(%esi),%eax | |
0x029b7b4a: mov 0x7c(%esi),%edx ;*laload | |
; - Test2::test3@40 (line 108) | |
0x029b7b4d: add %eax,%ebp | |
0x029b7b4f: adc %edx,%edi ;*ladd | |
; - Test2::test3@45 (line 108) | |
0x029b7b51: mov %ebp,%ecx | |
0x029b7b53: mov %edi,%ebx | |
0x029b7b55: add (%esp),%ecx | |
0x029b7b58: adc 0x4(%esp),%ebx ;*ladd | |
; - Test2::test3@48 (line 108) | |
0x029b7b5c: mov %ecx,(%esp) | |
0x029b7b5f: mov %ebx,0x4(%esp) | |
0x029b7b63: add $0x1,%eax | |
0x029b7b66: adc $0x0,%edx | |
0x029b7b69: mov %esi,%ecx | |
0x029b7b6b: mov %eax,0x78(%ecx) | |
0x029b7b6e: mov %edx,0x7c(%ecx) ;*lastore | |
; - Test2::test3@44 (line 108) | |
0x029b7b71: mov 0x8(%esp),%ebx | |
0x029b7b75: mov %ebp,0x10(%ebx) | |
0x029b7b78: mov %edi,0x14(%ebx) ;*lastore | |
; - Test2::test3@47 (line 108) | |
0x029b7b7b: movd %xmm2,%ebx | |
0x029b7b7f: add $0x2,%ebx ;*iinc | |
; - Test2::test3@50 (line 106) | |
0x029b7b82: cmp $0x55d4a7f,%ebx | |
0x029b7b88: jl 0x029b7a90 ;*if_icmplt | |
; - Test2::test3@56 (line 106) | |
0x029b7b8e: mov %ebx,%edi | |
0x029b7b90: cmp $0x55d4a80,%ebx | |
0x029b7b96: jl 0x029b7b9e | |
0x029b7b98: jmp 0x029b7c14 | |
0x029b7b9a: xchg %ax,%ax | |
0x029b7b9c: mov %ecx,%edi ;*lload_1 | |
; - Test2::test3@7 (line 108) | |
0x029b7b9e: movd %xmm1,%ecx | |
0x029b7ba2: mov 0x8(%ecx),%eax ;*invokevirtual getObject | |
; - Test2::test3@15 (line 108) | |
0x029b7ba5: mov 0x8(%eax),%ebx ; implicit exception: dispatches to 0x029b7cd3 | |
0x029b7ba8: test %ebx,%ebx | |
0x029b7baa: jbe 0x029b7cb9 ;*laload | |
; - Test2::test3@23 (line 108) | |
0x029b7bb0: movd %eax,%xmm0 | |
0x029b7bb4: mov 0xc(%ecx),%ebx ;*invokevirtual getObject | |
; - Test2::test3@31 (line 108) | |
0x029b7bb7: mov 0x8(%ebx),%ebp ; implicit exception: dispatches to 0x029b7ce1 | |
0x029b7bba: movd %edi,%xmm3 | |
0x029b7bbe: mov %eax,%esi | |
0x029b7bc0: mov 0x10(%esi),%eax | |
0x029b7bc3: mov 0x14(%esi),%edx ;*laload | |
; - Test2::test3@23 (line 108) | |
0x029b7bc6: cmp $0xd,%ebp | |
0x029b7bc9: jbe 0x029b7cbf | |
0x029b7bcf: mov %ebx,%esi | |
0x029b7bd1: mov 0x78(%esi),%ecx | |
0x029b7bd4: mov 0x7c(%esi),%ebx ;*laload | |
; - Test2::test3@40 (line 108) | |
0x029b7bd7: mov %ecx,%ebp | |
0x029b7bd9: mov %ebx,%edi | |
0x029b7bdb: add %eax,%ebp | |
0x029b7bdd: adc %edx,%edi ;*ladd | |
; - Test2::test3@45 (line 108) | |
0x029b7bdf: mov (%esp),%eax | |
0x029b7be2: mov 0x4(%esp),%edx | |
0x029b7be6: add %ebp,%eax | |
0x029b7be8: adc %edi,%edx ;*ladd | |
; - Test2::test3@48 (line 108) | |
0x029b7bea: mov %eax,(%esp) | |
0x029b7bed: mov %edx,0x4(%esp) | |
0x029b7bf1: add $0x1,%ecx | |
0x029b7bf4: adc $0x0,%ebx | |
0x029b7bf7: mov %ecx,0x78(%esi) | |
0x029b7bfa: mov %ebx,0x7c(%esi) ;*lastore | |
; - Test2::test3@44 (line 108) | |
0x029b7bfd: movd %xmm0,%ebx | |
0x029b7c01: mov %ebp,0x10(%ebx) | |
0x029b7c04: mov %edi,0x14(%ebx) ;*lastore | |
; - Test2::test3@47 (line 108) | |
0x029b7c07: movd %xmm3,%ecx | |
0x029b7c0b: inc %ecx ;*iinc | |
; - Test2::test3@50 (line 106) | |
0x029b7c0c: cmp $0x55d4a80,%ecx | |
0x029b7c12: jl 0x029b7b9c | |
0x029b7c14: mov $0x88,%ecx | |
0x029b7c19: mov (%esp),%ebp | |
0x029b7c1c: mov 0x4(%esp),%edi | |
0x029b7c20: cmp 0x306c6280(%ecx),%eax ; {oop(a 'java/lang/Class' = 'Test2')} | |
0x029b7c26: movd %ebp,%xmm0 | |
0x029b7c2a: movd %edi,%xmm1 | |
0x029b7c2e: punpckldq %xmm1,%xmm0 | |
0x029b7c32: movsd %xmm0,0x306c6280(%ecx) ; {oop(a 'java/lang/Class' = 'Test2')} | |
0x029b7c3a: lock addl $0x0,(%esp) ;*if_icmplt | |
; - Test2::test3@56 (line 106) | |
0x029b7c3f: add $0x28,%esp | |
0x029b7c42: pop %ebp | |
0x029b7c43: test %eax,0x1a0000 ; {poll_return} | |
0x029b7c49: ret | |
0x029b7c4a: mov %ebp,0x8(%esp) | |
0x029b7c4e: mov (%esp),%eax | |
0x029b7c51: mov 0x4(%esp),%edx | |
0x029b7c55: jmp 0x029b7c5b ;*lload_1 | |
; - Test2::test3@7 (line 108) | |
0x029b7c57: movd %xmm0,%ecx | |
0x029b7c5b: mov 0x8(%esp),%ebp | |
0x029b7c5f: mov %eax,(%esp) | |
0x029b7c62: mov %edx,0x4(%esp) | |
0x029b7c66: mov %ecx,0x8(%esp) | |
0x029b7c6a: mov %ebx,0xc(%esp) | |
0x029b7c6e: mov $0xffffffe4,%ecx | |
0x029b7c73: call 0x0298cac0 ; OopMap{ebp=Oop [8]=Oop off=632} | |
;*laload | |
; - Test2::test3@23 (line 108) | |
; {runtime_call} | |
0x029b7c78: int3 | |
0x029b7c79: mov %esi,0x8(%esp) | |
0x029b7c7d: mov (%esp),%eax | |
0x029b7c80: mov 0x4(%esp),%edx | |
0x029b7c84: jmp 0x029b7c8a ;*lload_1 | |
; - Test2::test3@7 (line 108) | |
0x029b7c86: movd %xmm0,%ecx | |
0x029b7c8a: mov %ebp,0x10(%esp) | |
0x029b7c8e: mov %edi,0x14(%esp) | |
0x029b7c92: mov %eax,(%esp) | |
0x029b7c95: mov %edx,0x4(%esp) | |
0x029b7c99: mov %ecx,%ebp | |
0x029b7c9b: mov %ebx,0x18(%esp) | |
0x029b7c9f: mov $0xffffffe4,%ecx | |
0x029b7ca4: xchg %ax,%ax | |
0x029b7ca7: call 0x0298cac0 ; OopMap{ebp=Oop [8]=Oop [12]=Oop off=684} | |
;*laload | |
; - Test2::test3@40 (line 108) | |
; {runtime_call} | |
0x029b7cac: int3 ;*laload | |
; - Test2::test3@40 (line 108) | |
0x029b7cad: xor %eax,%eax | |
0x029b7caf: xor %edx,%edx | |
0x029b7cb1: jmp 0x029b7c5f | |
0x029b7cb3: xor %eax,%eax | |
0x029b7cb5: xor %edx,%edx | |
0x029b7cb7: jmp 0x029b7c8a | |
0x029b7cb9: mov %eax,%ebp | |
0x029b7cbb: mov %edi,%ebx | |
0x029b7cbd: jmp 0x029b7c66 ;*lload_1 | |
; - Test2::test3@7 (line 108) | |
0x029b7cbf: mov %ebx,0xc(%esp) | |
0x029b7cc3: mov %eax,0x10(%esp) | |
0x029b7cc7: mov %edx,0x14(%esp) | |
0x029b7ccb: mov %esi,0x8(%esp) | |
0x029b7ccf: mov %edi,%ebx | |
0x029b7cd1: jmp 0x029b7c99 | |
0x029b7cd3: mov $0xfffffff6,%ecx | |
0x029b7cd8: xchg %ax,%ax | |
0x029b7cdb: call 0x0298cac0 ; OopMap{off=736} | |
;*laload | |
; - Test2::test3@23 (line 108) | |
; {runtime_call} | |
0x029b7ce0: int3 ;*laload | |
; - Test2::test3@23 (line 108) | |
0x029b7ce1: mov $0xfffffff6,%ecx | |
0x029b7ce6: nop | |
0x029b7ce7: call 0x0298cac0 ; OopMap{off=748} | |
;*laload | |
; - Test2::test3@40 (line 108) | |
; {runtime_call} | |
0x029b7cec: int3 ;*lload_1 | |
; - Test2::test3@7 (line 108) | |
0x029b7ced: hlt | |
0x029b7cee: hlt | |
0x029b7cef: hlt | |
0x029b7cf0: hlt | |
0x029b7cf1: hlt | |
0x029b7cf2: hlt | |
0x029b7cf3: hlt | |
0x029b7cf4: hlt | |
0x029b7cf5: hlt | |
0x029b7cf6: hlt | |
0x029b7cf7: hlt | |
0x029b7cf8: hlt | |
0x029b7cf9: hlt | |
0x029b7cfa: hlt | |
0x029b7cfb: hlt | |
0x029b7cfc: hlt | |
0x029b7cfd: hlt | |
0x029b7cfe: hlt | |
0x029b7cff: hlt | |
[Exception Handler] | |
[Stub Code] | |
0x029b7d00: jmp 0x029a77c0 ; {no_reloc} | |
[Deopt Handler Code] | |
0x029b7d05: push $0x29b7d05 ; {section_word} | |
0x029b7d0a: jmp 0x0298dd40 ; {runtime_call} | |
0x029b7d0f: hlt | |
OopMapSet contains 4 OopMaps | |
#0 | |
OopMap{ebp=Oop [8]=Oop off=632} | |
#1 | |
OopMap{ebp=Oop [8]=Oop [12]=Oop off=684} | |
#2 | |
OopMap{off=736} | |
#3 | |
OopMap{off=748} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
volatile long[] var1a = new long[40]; // accessible via offsetA | |
volatile long[] var1b = new long[40]; // accessible via offsetB | |
final long[] var2a = new long[40]; | |
final long[] var2b = new long[40]; | |
void test1() { | |
long counter = 0; | |
for(int i=0;i<iterations;i++) | |
counter += var1a[0]+= var1b[13]++; | |
escapeHatch = counter; | |
} | |
void test2() { | |
long counter = 0; | |
for(int i=0;i<iterations;i++) | |
counter += var2a[0]+= var2b[13]++; | |
escapeHatch = counter; | |
} | |
void test3() { | |
long counter = 0; | |
for(int i=0;i<iterations;i++) | |
counter += ((long[])unsafe.getObject(this, offsetA))[0]+= ((long[])unsafe.getObject(this, offsetB))[13]++; | |
escapeHatch = counter; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment