Skip to content

Instantly share code, notes, and snippets.

@the8472
Created December 31, 2012 16:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save the8472/4420897 to your computer and use it in GitHub Desktop.
Save the8472/4420897 to your computer and use it in GitHub Desktop.
opto test volatile field access
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}
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}
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}
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