Skip to content

Instantly share code, notes, and snippets.

@vyazelenko
Last active December 27, 2015 03:29
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save vyazelenko/7259542 to your computer and use it in GitHub Desktop.
Complete ASM code for TestConstructor case
Java HotSpot(TM) 64-Bit Server VM warning: PrintAssembly is enabled; turning on DebugNonSafepoints to gain additional output
Loaded disassembler from /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre/lib/hsdis-amd64.dylib
Decoding compiled method 0x000000010c060290:
Code:
[Disassembling for mach='i386:x86-64']
[Entry Point]
[Constants]
# {method} 'indexOf' '(II)I' in 'java/lang/String'
# this: rsi:rsi = 'java/lang/String'
# parm0: rdx = int
# parm1: rcx = int
# [sp+0x30] (sp of caller)
0x000000010c0603e0: mov 0x8(%rsi),%r10d
0x000000010c0603e4: shl $0x3,%r10
0x000000010c0603e8: cmp %r10,%rax
0x000000010c0603eb: jne 0x000000010c037960 ; {runtime_call}
0x000000010c0603f1: data32 xchg %ax,%ax
0x000000010c0603f4: nopl 0x0(%rax,%rax,1)
0x000000010c0603fc: data32 data32 xchg %ax,%ax
[Verified Entry Point]
0x000000010c060400: mov %eax,-0x14000(%rsp)
0x000000010c060407: push %rbp
0x000000010c060408: sub $0x20,%rsp ;*synchronization entry
; - java.lang.String::indexOf@-1 (line 1526)
0x000000010c06040c: mov 0xc(%rsi),%r8d ;*getfield value
; - java.lang.String::indexOf@1 (line 1526)
0x000000010c060410: mov 0xc(%r12,%r8,8),%ebp ;*arraylength
; - java.lang.String::indexOf@4 (line 1526)
; implicit exception: dispatches to 0x000000010c060526
0x000000010c060415: mov $0xffffffff,%eax
0x000000010c06041a: test %ecx,%ecx
0x000000010c06041c: jl 0x000000010c060515 ;*ifge
; - java.lang.String::indexOf@7 (line 1527)
0x000000010c060422: cmp %ebp,%ecx
0x000000010c060424: jge 0x000000010c0604dd ;*if_icmplt
; - java.lang.String::indexOf@17 (line 1529)
0x000000010c06042a: cmp $0x10000,%edx
0x000000010c060430: jge 0x000000010c06051c ;*if_icmpge
; - java.lang.String::indexOf@25 (line 1534)
0x000000010c060436: cmp %ebp,%ecx
0x000000010c060438: jge 0x000000010c0604dd ;*if_icmpge
; - java.lang.String::indexOf@40 (line 1538)
0x000000010c06043e: cmp %ebp,%ecx
0x000000010c060440: jae 0x000000010c0604f7
0x000000010c060446: mov %ebp,%r10d
0x000000010c060449: dec %r10d
0x000000010c06044c: cmp %ebp,%r10d
0x000000010c06044f: jae 0x000000010c0604f7
0x000000010c060455: lea (%r12,%r8,8),%r9
0x000000010c060459: mov %ecx,%r11d
0x000000010c06045c: inc %r11d ;*aload
; - java.lang.String::indexOf@43 (line 1539)
0x000000010c06045f: movzwl 0x10(%r9,%rcx,2),%r8d ;*caload
; - java.lang.String::indexOf@47 (line 1539)
0x000000010c060465: cmp %edx,%r8d
0x000000010c060468: je 0x000000010c0604f3 ;*if_icmpne
; - java.lang.String::indexOf@49 (line 1539)
0x000000010c06046e: inc %ecx ;*iinc
; - java.lang.String::indexOf@55 (line 1538)
0x000000010c060470: cmp %r11d,%ecx
0x000000010c060473: jl 0x000000010c06045f ;*if_icmpge
; - java.lang.String::indexOf@40 (line 1538)
0x000000010c060475: mov %ebp,%r11d
0x000000010c060478: add $0xfffffffffffffffd,%r11d
0x000000010c06047c: mov $0x80000000,%r8d
0x000000010c060482: cmp %r11d,%r10d
0x000000010c060485: cmovl %r8d,%r11d
0x000000010c060489: cmp %r11d,%ecx
0x000000010c06048c: jge 0x000000010c0604c5
0x000000010c06048e: xchg %ax,%ax ;*aload
; - java.lang.String::indexOf@43 (line 1539)
0x000000010c060490: movzwl 0x10(%r9,%rcx,2),%r10d ;*caload
; - java.lang.String::indexOf@47 (line 1539)
0x000000010c060496: cmp %edx,%r10d
0x000000010c060499: je 0x000000010c0604f3 ;*if_icmpne
; - java.lang.String::indexOf@49 (line 1539)
0x000000010c06049b: movslq %ecx,%r10
0x000000010c06049e: movzwl 0x12(%r9,%r10,2),%ebx ;*caload
; - java.lang.String::indexOf@47 (line 1539)
0x000000010c0604a4: cmp %edx,%ebx
0x000000010c0604a6: je 0x000000010c0604ec ;*if_icmpne
; - java.lang.String::indexOf@49 (line 1539)
0x000000010c0604a8: movzwl 0x14(%r9,%r10,2),%ebx ;*caload
; - java.lang.String::indexOf@47 (line 1539)
0x000000010c0604ae: cmp %edx,%ebx
0x000000010c0604b0: je 0x000000010c0604f0 ;*if_icmpne
; - java.lang.String::indexOf@49 (line 1539)
0x000000010c0604b2: movzwl 0x16(%r9,%r10,2),%r8d ;*caload
; - java.lang.String::indexOf@47 (line 1539)
0x000000010c0604b8: cmp %edx,%r8d
0x000000010c0604bb: je 0x000000010c0604e9 ;*if_icmpne
; - java.lang.String::indexOf@49 (line 1539)
0x000000010c0604bd: add $0x4,%ecx ;*iinc
; - java.lang.String::indexOf@55 (line 1538)
0x000000010c0604c0: cmp %r11d,%ecx
0x000000010c0604c3: jl 0x000000010c060490 ;*if_icmpge
; - java.lang.String::indexOf@40 (line 1538)
0x000000010c0604c5: cmp %ebp,%ecx
0x000000010c0604c7: jge 0x000000010c0604dd
0x000000010c0604c9: data32 xchg %ax,%ax ;*aload
; - java.lang.String::indexOf@43 (line 1539)
0x000000010c0604cc: movzwl 0x10(%r9,%rcx,2),%r11d ;*caload
; - java.lang.String::indexOf@47 (line 1539)
0x000000010c0604d2: cmp %edx,%r11d
0x000000010c0604d5: je 0x000000010c0604f3 ;*if_icmpne
; - java.lang.String::indexOf@49 (line 1539)
0x000000010c0604d7: inc %ecx ;*iinc
; - java.lang.String::indexOf@55 (line 1538)
0x000000010c0604d9: cmp %ebp,%ecx
0x000000010c0604db: jl 0x000000010c0604cc ;*aload
; - java.lang.String::indexOf@43 (line 1539)
0x000000010c0604dd: add $0x20,%rsp
0x000000010c0604e1: pop %rbp
0x000000010c0604e2: test %eax,-0x10b04e8(%rip) # 0x000000010afb0000
; {poll_return}
0x000000010c0604e8: retq
0x000000010c0604e9: add $0x2,%ecx
0x000000010c0604ec: inc %ecx
0x000000010c0604ee: jmp 0x000000010c0604f3
0x000000010c0604f0: add $0x2,%ecx ;*iinc
; - java.lang.String::indexOf@55 (line 1538)
0x000000010c0604f3: mov %ecx,%eax
0x000000010c0604f5: jmp 0x000000010c0604dd
0x000000010c0604f7: mov $0xffffff86,%esi
0x000000010c0604fc: mov %edx,(%rsp)
0x000000010c0604ff: mov %ecx,0x4(%rsp)
0x000000010c060503: mov %r8d,0x8(%rsp)
0x000000010c060508: data32 xchg %ax,%ax
0x000000010c06050b: callq 0x000000010c038f20 ; OopMap{[8]=NarrowOop off=304}
;*aload
; - java.lang.String::indexOf@43 (line 1539)
; {runtime_call}
0x000000010c060510: callq 0x000000010a81d5de ;*aload
; - java.lang.String::indexOf@43 (line 1539)
; {runtime_call}
0x000000010c060515: xor %ecx,%ecx
0x000000010c060517: jmpq 0x000000010c06042a
0x000000010c06051c: data32 xchg %ax,%ax
0x000000010c06051f: callq 0x000000010c037b60 ; OopMap{off=324}
;*invokespecial indexOfSupplementary
; - java.lang.String::indexOf@66 (line 1545)
; {optimized virtual_call}
0x000000010c060524: jmp 0x000000010c0604dd
0x000000010c060526: mov $0xfffffff6,%esi
0x000000010c06052b: callq 0x000000010c038f20 ; OopMap{off=336}
;*arraylength
; - java.lang.String::indexOf@4 (line 1526)
; {runtime_call}
0x000000010c060530: callq 0x000000010a81d5de ;*invokespecial indexOfSupplementary
; - java.lang.String::indexOf@66 (line 1545)
; {runtime_call}
0x000000010c060535: mov %rax,%rsi
0x000000010c060538: add $0x20,%rsp
0x000000010c06053c: pop %rbp
0x000000010c06053d: jmpq 0x000000010c061e20 ;*iconst_m1
; - java.lang.String::indexOf@61 (line 1543)
; {runtime_call}
0x000000010c060542: hlt
0x000000010c060543: hlt
0x000000010c060544: hlt
0x000000010c060545: hlt
0x000000010c060546: hlt
0x000000010c060547: hlt
0x000000010c060548: hlt
0x000000010c060549: hlt
0x000000010c06054a: hlt
0x000000010c06054b: hlt
0x000000010c06054c: hlt
0x000000010c06054d: hlt
0x000000010c06054e: hlt
0x000000010c06054f: hlt
0x000000010c060550: hlt
0x000000010c060551: hlt
0x000000010c060552: hlt
0x000000010c060553: hlt
0x000000010c060554: hlt
0x000000010c060555: hlt
0x000000010c060556: hlt
0x000000010c060557: hlt
0x000000010c060558: hlt
0x000000010c060559: hlt
0x000000010c06055a: hlt
0x000000010c06055b: hlt
0x000000010c06055c: hlt
0x000000010c06055d: hlt
0x000000010c06055e: hlt
0x000000010c06055f: hlt
[Stub Code]
0x000000010c060560: movabs $0x0,%rbx ; {no_reloc}
0x000000010c06056a: jmpq 0x000000010c06056a ; {runtime_call}
[Exception Handler]
0x000000010c06056f: jmpq 0x000000010c05f0a0 ; {runtime_call}
[Deopt Handler Code]
0x000000010c060574: callq 0x000000010c060579
0x000000010c060579: subq $0x5,(%rsp)
0x000000010c06057e: jmpq 0x000000010c038b00 ; {runtime_call}
0x000000010c060583: hlt
0x000000010c060584: hlt
0x000000010c060585: hlt
0x000000010c060586: hlt
0x000000010c060587: hlt
Decoding compiled method 0x000000010c05fd50:
Code:
[Entry Point]
[Constants]
# {method} 'hashCode' '()I' in 'java/lang/String'
# [sp+0x30] (sp of caller)
0x000000010c05fea0: mov 0x8(%rsi),%r10d
0x000000010c05fea4: shl $0x3,%r10
0x000000010c05fea8: cmp %r10,%rax
0x000000010c05feab: jne 0x000000010c037960 ; {runtime_call}
0x000000010c05feb1: data32 xchg %ax,%ax
0x000000010c05feb4: nopl 0x0(%rax,%rax,1)
0x000000010c05febc: data32 data32 xchg %ax,%ax
[Verified Entry Point]
0x000000010c05fec0: mov %eax,-0x14000(%rsp)
0x000000010c05fec7: push %rbp
0x000000010c05fec8: sub $0x20,%rsp ;*synchronization entry
; - java.lang.String::hashCode@-1 (line 1446)
0x000000010c05fecc: mov %rsi,%r10
0x000000010c05fecf: mov 0x10(%rsi),%eax ;*getfield hash
; - java.lang.String::hashCode@1 (line 1446)
0x000000010c05fed2: test %eax,%eax
0x000000010c05fed4: jne 0x000000010c05ffc4 ;*ifne
; - java.lang.String::hashCode@6 (line 1447)
0x000000010c05feda: mov 0xc(%rsi),%ebp ;*getfield value
; - java.lang.String::hashCode@10 (line 1447)
0x000000010c05fedd: mov 0xc(%r12,%rbp,8),%r8d ;*arraylength
; - java.lang.String::hashCode@13 (line 1447)
; implicit exception: dispatches to 0x000000010c05ffe9
0x000000010c05fee2: xor %ecx,%ecx
0x000000010c05fee4: test %r8d,%r8d
0x000000010c05fee7: jle 0x000000010c05ffe5 ;*ifle
; - java.lang.String::hashCode@14 (line 1447)
0x000000010c05feed: test %r8d,%r8d
0x000000010c05fef0: jbe 0x000000010c05ffd0
0x000000010c05fef6: mov %r8d,%ebx
0x000000010c05fef9: dec %ebx
0x000000010c05fefb: cmp %r8d,%ebx
0x000000010c05fefe: jae 0x000000010c05ffd0
0x000000010c05ff04: lea (%r12,%rbp,8),%rdx
0x000000010c05ff08: xor %ebp,%ebp ;*imul
; - java.lang.String::hashCode@36 (line 1451)
0x000000010c05ff0a: movzwl 0x10(%rdx,%rcx,2),%r11d
0x000000010c05ff10: add %r11d,%ebp ;*iadd
; - java.lang.String::hashCode@40 (line 1451)
0x000000010c05ff13: mov %ebp,%r11d
0x000000010c05ff16: shl $0x5,%r11d
0x000000010c05ff1a: mov %r11d,%eax
0x000000010c05ff1d: sub %ebp,%eax ;*imul
; - java.lang.String::hashCode@36 (line 1451)
0x000000010c05ff1f: inc %ecx ;*iinc
; - java.lang.String::hashCode@42 (line 1450)
0x000000010c05ff21: cmp $0x1,%ecx
0x000000010c05ff24: jge 0x000000010c05ff2a ;*if_icmpge
; - java.lang.String::hashCode@30 (line 1450)
0x000000010c05ff26: mov %eax,%ebp
0x000000010c05ff28: jmp 0x000000010c05ff0a
0x000000010c05ff2a: mov %r8d,%edi
0x000000010c05ff2d: add $0xfffffffffffffffd,%edi
0x000000010c05ff30: mov $0x80000000,%r9d
0x000000010c05ff36: cmp %edi,%ebx
0x000000010c05ff38: cmovl %r9d,%edi
0x000000010c05ff3c: cmp %edi,%ecx
0x000000010c05ff3e: jl 0x000000010c05ff72
0x000000010c05ff40: mov %r11d,%eax
0x000000010c05ff43: jmp 0x000000010c05ffb9
0x000000010c05ff45: mov %eax,%r9d
0x000000010c05ff48: shl $0x5,%r9d ;*imul
; - java.lang.String::hashCode@36 (line 1451)
0x000000010c05ff4c: mov %eax,%ebp
0x000000010c05ff4e: mov %r9d,%eax ;*bipush
; - java.lang.String::hashCode@33 (line 1451)
0x000000010c05ff51: movzwl 0x10(%rdx,%rcx,2),%r11d
0x000000010c05ff57: sub %ebp,%eax
0x000000010c05ff59: add %r11d,%eax ;*iadd
; - java.lang.String::hashCode@40 (line 1451)
0x000000010c05ff5c: inc %ecx ;*iinc
; - java.lang.String::hashCode@42 (line 1450)
0x000000010c05ff5e: cmp %r8d,%ecx
0x000000010c05ff61: jl 0x000000010c05ff45 ;*if_icmpge
; - java.lang.String::hashCode@30 (line 1450)
0x000000010c05ff63: jmp 0x000000010c05ffc0
0x000000010c05ff65: data32 data32 nopw 0x0(%rax,%rax,1)
0x000000010c05ff70: sub %ebp,%eax ;*imul
; - java.lang.String::hashCode@36 (line 1451)
0x000000010c05ff72: movzwl 0x10(%rdx,%rcx,2),%r11d
0x000000010c05ff78: add %r11d,%eax
0x000000010c05ff7b: movslq %ecx,%r11
0x000000010c05ff7e: movzwl 0x12(%rdx,%r11,2),%esi
0x000000010c05ff84: movzwl 0x16(%rdx,%r11,2),%r9d
0x000000010c05ff8a: movzwl 0x14(%rdx,%r11,2),%r11d
0x000000010c05ff90: mov %eax,%ebx
0x000000010c05ff92: shl $0x5,%ebx
0x000000010c05ff95: sub %eax,%ebx
0x000000010c05ff97: add %esi,%ebx
0x000000010c05ff99: mov %ebx,%esi
0x000000010c05ff9b: shl $0x5,%esi
0x000000010c05ff9e: sub %ebx,%esi
0x000000010c05ffa0: add %r11d,%esi
0x000000010c05ffa3: mov %esi,%ebp
0x000000010c05ffa5: shl $0x5,%ebp
0x000000010c05ffa8: sub %esi,%ebp
0x000000010c05ffaa: add %r9d,%ebp ;*iadd
; - java.lang.String::hashCode@40 (line 1451)
0x000000010c05ffad: mov %ebp,%eax
0x000000010c05ffaf: shl $0x5,%eax ;*imul
; - java.lang.String::hashCode@36 (line 1451)
0x000000010c05ffb2: add $0x4,%ecx ;*iinc
; - java.lang.String::hashCode@42 (line 1450)
0x000000010c05ffb5: cmp %edi,%ecx
0x000000010c05ffb7: jl 0x000000010c05ff70 ;*if_icmpge
; - java.lang.String::hashCode@30 (line 1450)
0x000000010c05ffb9: cmp %r8d,%ecx
0x000000010c05ffbc: jl 0x000000010c05ff51
0x000000010c05ffbe: mov %ebp,%eax
0x000000010c05ffc0: mov %eax,0x10(%r10) ;*synchronization entry
; - java.lang.String::hashCode@-1 (line 1446)
0x000000010c05ffc4: add $0x20,%rsp
0x000000010c05ffc8: pop %rbp
0x000000010c05ffc9: test %eax,-0x10affcf(%rip) # 0x000000010afb0000
; {poll_return}
0x000000010c05ffcf: retq
0x000000010c05ffd0: mov $0xffffff86,%esi
0x000000010c05ffd5: mov %r10,(%rsp)
0x000000010c05ffd9: xchg %ax,%ax
0x000000010c05ffdb: callq 0x000000010c038f20 ; OopMap{rbp=NarrowOop [0]=Oop off=320}
;*bipush
; - java.lang.String::hashCode@33 (line 1451)
; {runtime_call}
0x000000010c05ffe0: callq 0x000000010a81d5de ;*bipush
; - java.lang.String::hashCode@33 (line 1451)
; {runtime_call}
0x000000010c05ffe5: xor %eax,%eax
0x000000010c05ffe7: jmp 0x000000010c05ffc4
0x000000010c05ffe9: mov $0xfffffff6,%esi
0x000000010c05ffee: nop
0x000000010c05ffef: callq 0x000000010c038f20 ; OopMap{off=340}
;*arraylength
; - java.lang.String::hashCode@13 (line 1447)
; {runtime_call}
0x000000010c05fff4: callq 0x000000010a81d5de ;*arraylength
; - java.lang.String::hashCode@13 (line 1447)
; {runtime_call}
0x000000010c05fff9: hlt
0x000000010c05fffa: hlt
0x000000010c05fffb: hlt
0x000000010c05fffc: hlt
0x000000010c05fffd: hlt
0x000000010c05fffe: hlt
0x000000010c05ffff: hlt
[Exception Handler]
[Stub Code]
0x000000010c060000: jmpq 0x000000010c05f0a0 ; {no_reloc}
[Deopt Handler Code]
0x000000010c060005: callq 0x000000010c06000a
0x000000010c06000a: subq $0x5,(%rsp)
0x000000010c06000f: jmpq 0x000000010c038b00 ; {runtime_call}
0x000000010c060014: hlt
0x000000010c060015: hlt
0x000000010c060016: hlt
0x000000010c060017: hlt
>>> In warmup
Decoding compiled method 0x000000010c062310:
Code:
[Entry Point]
[Constants]
# {method} 'encode' '([CII[B)I' in 'sun/nio/cs/UTF_8$Encoder'
# this: rsi:rsi = 'sun/nio/cs/UTF_8$Encoder'
# parm0: rdx:rdx = '[C'
# parm1: rcx = int
# parm2: r8 = int
# parm3: r9:r9 = '[B'
# [sp+0x80] (sp of caller)
0x000000010c0624a0: mov 0x8(%rsi),%r10d
0x000000010c0624a4: shl $0x3,%r10
0x000000010c0624a8: cmp %r10,%rax
0x000000010c0624ab: jne 0x000000010c037960 ; {runtime_call}
0x000000010c0624b1: data32 xchg %ax,%ax
0x000000010c0624b4: nopl 0x0(%rax,%rax,1)
0x000000010c0624bc: data32 data32 xchg %ax,%ax
[Verified Entry Point]
0x000000010c0624c0: mov %eax,-0x14000(%rsp)
0x000000010c0624c7: push %rbp
0x000000010c0624c8: sub $0x70,%rsp ;*synchronization entry
; - sun.nio.cs.UTF_8$Encoder::encode@-1 (line 627)
0x000000010c0624cc: mov %rsi,0x28(%rsp)
0x000000010c0624d1: mov 0xc(%r9),%r14d ;*arraylength
; - sun.nio.cs.UTF_8$Encoder::encode@13 (line 629)
; implicit exception: dispatches to 0x000000010c062b4d
0x000000010c0624d5: cmp %r14d,%r8d
0x000000010c0624d8: mov %r14d,%ebx
0x000000010c0624db: cmovl %r8d,%ebx ;*invokestatic min
; - sun.nio.cs.UTF_8$Encoder::encode@14 (line 629)
0x000000010c0624df: mov %ecx,%r11d
0x000000010c0624e2: add %r8d,%r11d ;*iadd
; - sun.nio.cs.UTF_8$Encoder::encode@2 (line 627)
0x000000010c0624e5: mov %r11d,0x24(%rsp)
0x000000010c0624ea: test %ebx,%ebx
0x000000010c0624ec: jle 0x000000010c062649 ;*if_icmpge
; - sun.nio.cs.UTF_8$Encoder::encode@24 (line 632)
0x000000010c0624f2: mov %rdx,%r10
0x000000010c0624f5: mov 0xc(%rdx),%r11d ;*caload
; - sun.nio.cs.UTF_8$Encoder::encode@29 (line 632)
; implicit exception: dispatches to 0x000000010c0626a9
0x000000010c0624f9: cmp %r11d,%ecx
0x000000010c0624fc: jae 0x000000010c0626a9
0x000000010c062502: mov %ecx,%r8d
0x000000010c062505: add %ebx,%r8d
0x000000010c062508: dec %r8d
0x000000010c06250b: cmp %r11d,%r8d
0x000000010c06250e: jae 0x000000010c0626a9
0x000000010c062514: mov $0x1,%r11d
0x000000010c06251a: cmp %r11d,%ebx
0x000000010c06251d: mov %ebx,%edi
0x000000010c06251f: cmovg %r11d,%edi
0x000000010c062523: xor %eax,%eax
0x000000010c062525: mov %eax,%r8d
0x000000010c062528: add %ecx,%r8d ;*aload_1
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632)
0x000000010c06252b: movzwl 0x10(%r10,%r8,2),%esi ;*caload
; - sun.nio.cs.UTF_8$Encoder::encode@48 (line 633)
0x000000010c062531: cmp $0x80,%esi
0x000000010c062537: jge 0x000000010c0626d1 ;*if_icmpge
; - sun.nio.cs.UTF_8$Encoder::encode@33 (line 632)
0x000000010c06253d: mov %eax,%edx
0x000000010c06253f: inc %edx ;*iinc
; - sun.nio.cs.UTF_8$Encoder::encode@40 (line 633)
0x000000010c062541: cmp %r14d,%eax
0x000000010c062544: jae 0x000000010c06266e
0x000000010c06254a: movslq %eax,%r11
0x000000010c06254d: mov %sil,0x10(%r9,%r11,1) ;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@50 (line 633)
0x000000010c062552: cmp %edi,%edx
0x000000010c062554: jge 0x000000010c06255a ;*if_icmpge
; - sun.nio.cs.UTF_8$Encoder::encode@24 (line 632)
0x000000010c062556: mov %edx,%eax
0x000000010c062558: jmp 0x000000010c062525
0x000000010c06255a: cmp %ebx,%r14d
0x000000010c06255d: mov %r14d,%r11d
0x000000010c062560: cmovg %ebx,%r11d
0x000000010c062564: mov %r11d,%eax
0x000000010c062567: add $0xfffffffffffffffd,%eax
0x000000010c06256a: mov $0x80000000,%esi
0x000000010c06256f: cmp %eax,%r11d
0x000000010c062572: cmovl %esi,%eax
0x000000010c062575: cmp %eax,%edx
0x000000010c062577: jge 0x000000010c0626c9
0x000000010c06257d: data32 xchg %ax,%ax
0x000000010c062580: mov %edx,%r8d
0x000000010c062583: add %ecx,%r8d ;*aload_1
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632)
0x000000010c062586: movzwl 0x10(%r10,%r8,2),%r11d ;*caload
; - sun.nio.cs.UTF_8$Encoder::encode@48 (line 633)
0x000000010c06258c: cmp $0x80,%r11d
0x000000010c062593: jge 0x000000010c062669 ;*if_icmpge
; - sun.nio.cs.UTF_8$Encoder::encode@33 (line 632)
0x000000010c062599: movslq %r8d,%rsi
0x000000010c06259c: movzwl 0x12(%r10,%rsi,2),%edi ;*caload
; - sun.nio.cs.UTF_8$Encoder::encode@48 (line 633)
0x000000010c0625a2: movslq %edx,%rbp
0x000000010c0625a5: mov %r11b,0x10(%r9,%rbp,1) ;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@50 (line 633)
0x000000010c0625aa: cmp $0x80,%edi
0x000000010c0625b0: jge 0x000000010c06265b ;*if_icmpge
; - sun.nio.cs.UTF_8$Encoder::encode@33 (line 632)
0x000000010c0625b6: movzwl 0x14(%r10,%rsi,2),%r11d ;*caload
; - sun.nio.cs.UTF_8$Encoder::encode@48 (line 633)
0x000000010c0625bc: movslq %edx,%rbp
0x000000010c0625bf: mov %dil,0x11(%r9,%rbp,1) ;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@50 (line 633)
0x000000010c0625c4: cmp $0x80,%r11d
0x000000010c0625cb: jge 0x000000010c062662 ;*if_icmpge
; - sun.nio.cs.UTF_8$Encoder::encode@33 (line 632)
0x000000010c0625d1: mov %r11b,0x12(%r9,%rbp,1) ;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@50 (line 633)
0x000000010c0625d6: movzwl 0x16(%r10,%rsi,2),%edi ;*caload
; - sun.nio.cs.UTF_8$Encoder::encode@48 (line 633)
0x000000010c0625dc: cmp $0x80,%edi
0x000000010c0625e2: jge 0x000000010c062654 ;*if_icmpge
; - sun.nio.cs.UTF_8$Encoder::encode@33 (line 632)
0x000000010c0625e4: mov %dil,0x13(%r9,%rbp,1) ;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@50 (line 633)
0x000000010c0625e9: add $0x4,%edx ;*iinc
; - sun.nio.cs.UTF_8$Encoder::encode@40 (line 633)
0x000000010c0625ec: cmp %eax,%edx
0x000000010c0625ee: jl 0x000000010c062580 ;*aload_1
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632)
0x000000010c0625f0: add $0x4,%r8d ;*iinc
; - sun.nio.cs.UTF_8$Encoder::encode@45 (line 633)
0x000000010c0625f4: cmp %ebx,%edx
0x000000010c0625f6: jl 0x000000010c062600
0x000000010c0625f8: mov %edx,%r11d
0x000000010c0625fb: jmp 0x000000010c06262f
0x000000010c0625fd: mov %r11d,%edx
0x000000010c062600: mov %edx,%r8d
0x000000010c062603: add %ecx,%r8d ;*aload_1
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632)
0x000000010c062606: movzwl 0x10(%r10,%r8,2),%esi ;*caload
; - sun.nio.cs.UTF_8$Encoder::encode@48 (line 633)
0x000000010c06260c: cmp $0x80,%esi
0x000000010c062612: jge 0x000000010c062669 ;*if_icmpge
; - sun.nio.cs.UTF_8$Encoder::encode@33 (line 632)
0x000000010c062614: mov %edx,%r11d
0x000000010c062617: inc %r11d ;*iinc
; - sun.nio.cs.UTF_8$Encoder::encode@40 (line 633)
0x000000010c06261a: cmp %r14d,%edx
0x000000010c06261d: jae 0x000000010c062678
0x000000010c06261f: movslq %edx,%rdi
0x000000010c062622: mov %sil,0x10(%r9,%rdi,1) ;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@50 (line 633)
0x000000010c062627: cmp %ebx,%r11d
0x000000010c06262a: jl 0x000000010c0625fd ;*aload_1
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632)
0x000000010c06262c: inc %r8d ;*if_icmpge
; - sun.nio.cs.UTF_8$Encoder::encode@33 (line 632)
0x000000010c06262f: cmp 0x24(%rsp),%r8d
0x000000010c062634: jl 0x000000010c0626d5
0x000000010c06263a: mov %r11d,%eax
0x000000010c06263d: add $0x70,%rsp
0x000000010c062641: pop %rbp
0x000000010c062642: test %eax,-0x10b2648(%rip) # 0x000000010afb0000
; {poll_return}
0x000000010c062648: retq
0x000000010c062649: mov %ecx,%r8d
0x000000010c06264c: xor %r11d,%r11d
0x000000010c06264f: mov %rdx,%r10
0x000000010c062652: jmp 0x000000010c06262f ;*aload_1
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632)
0x000000010c062654: add $0x2,%edx ;*iinc
; - sun.nio.cs.UTF_8$Encoder::encode@40 (line 633)
0x000000010c062657: add $0x2,%r8d ;*aload_1
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632)
0x000000010c06265b: inc %r8d ;*iinc
; - sun.nio.cs.UTF_8$Encoder::encode@45 (line 633)
0x000000010c06265e: inc %edx ;*iinc
; - sun.nio.cs.UTF_8$Encoder::encode@40 (line 633)
0x000000010c062660: jmp 0x000000010c062669
0x000000010c062662: add $0x2,%r8d ;*aload_1
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632)
0x000000010c062666: add $0x2,%edx ;*iinc
; - sun.nio.cs.UTF_8$Encoder::encode@40 (line 633)
0x000000010c062669: mov %edx,%r11d
0x000000010c06266c: jmp 0x000000010c06262f ;*aload_1
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632)
0x000000010c06266e: inc %r8d ;*iinc
; - sun.nio.cs.UTF_8$Encoder::encode@45 (line 633)
0x000000010c062671: mov %edx,(%rsp)
0x000000010c062674: mov %eax,%edx
0x000000010c062676: jmp 0x000000010c06267f ;*aload_1
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632)
0x000000010c062678: inc %r8d ;*iinc
; - sun.nio.cs.UTF_8$Encoder::encode@45 (line 633)
0x000000010c06267b: mov %r11d,(%rsp)
0x000000010c06267f: movsbl %sil,%ebp ;*i2b ; - sun.nio.cs.UTF_8$Encoder::encode@49 (line 633)
0x000000010c062683: mov $0xffffffe4,%esi
0x000000010c062688: mov %r10,0x8(%rsp)
0x000000010c06268d: mov %r8d,0x4(%rsp)
0x000000010c062692: mov %r9,0x18(%rsp)
0x000000010c062697: mov %edx,0x20(%rsp)
0x000000010c06269b: mov %ebx,0x30(%rsp)
0x000000010c06269f: callq 0x000000010c038f20 ; OopMap{[8]=Oop [24]=Oop [40]=Oop off=516}
;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@50 (line 633)
; {runtime_call}
0x000000010c0626a4: callq 0x000000010a81d5de ;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@50 (line 633)
; {runtime_call}
0x000000010c0626a9: mov $0xffffff86,%esi
0x000000010c0626ae: mov %rdx,%rbp
0x000000010c0626b1: mov %ecx,(%rsp)
0x000000010c0626b4: mov %r9,0x8(%rsp)
0x000000010c0626b9: mov %ebx,0x10(%rsp)
0x000000010c0626bd: xchg %ax,%ax
0x000000010c0626bf: callq 0x000000010c038f20 ; OopMap{rbp=Oop [8]=Oop [40]=Oop off=548}
;*aload_1
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632)
; {runtime_call}
0x000000010c0626c4: callq 0x000000010a81d5de ;*aload_1
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632)
; {runtime_call}
0x000000010c0626c9: inc %r8d ;*iinc
; - sun.nio.cs.UTF_8$Encoder::encode@45 (line 633)
0x000000010c0626cc: jmpq 0x000000010c0625f4 ;*aload_1
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632)
0x000000010c0626d1: mov %eax,%edx
0x000000010c0626d3: jmp 0x000000010c062669
0x000000010c0626d5: mov 0xc(%r10),%edx ;*caload
; - sun.nio.cs.UTF_8$Encoder::encode@65 (line 636)
; implicit exception: dispatches to 0x000000010c062b6f
0x000000010c0626d9: mov %r8d,%edi
0x000000010c0626dc: mov %r11d,0x50(%rsp) ;*aload_1
; - sun.nio.cs.UTF_8$Encoder::encode@60 (line 636)
0x000000010c0626e1: mov %edi,%ecx
0x000000010c0626e3: inc %ecx ;*iinc
; - sun.nio.cs.UTF_8$Encoder::encode@62 (line 636)
0x000000010c0626e5: mov %edi,%r8d
0x000000010c0626e8: cmp %edx,%edi
0x000000010c0626ea: jae 0x000000010c0629b7
0x000000010c0626f0: movzwl 0x10(%r10,%rdi,2),%ebx ;*caload
; - sun.nio.cs.UTF_8$Encoder::encode@65 (line 636)
0x000000010c0626f6: movslq 0x50(%rsp),%rsi ;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@86 (line 639)
0x000000010c0626fb: mov 0x50(%rsp),%r11d
0x000000010c062700: inc %r11d ;*iinc
; - sun.nio.cs.UTF_8$Encoder::encode@80 (line 639)
0x000000010c062703: cmp $0x80,%ebx
0x000000010c062709: jge 0x000000010c062741 ;*if_icmpge
; - sun.nio.cs.UTF_8$Encoder::encode@73 (line 637)
0x000000010c06270b: mov 0x50(%rsp),%r8d
0x000000010c062710: cmp %r14d,%r8d
0x000000010c062713: jae 0x000000010c0629d9
0x000000010c062719: mov %bl,0x10(%r9,%rsi,1) ;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@86 (line 639)
0x000000010c06271e: mov 0x28(%rsp),%r8 ; OopMap{r10=Oop r8=Oop r9=Oop off=643}
;*goto
; - sun.nio.cs.UTF_8$Encoder::encode@355 (line 665)
0x000000010c062723: test %eax,-0x10b2729(%rip) # 0x000000010afb0000
;*goto
; - sun.nio.cs.UTF_8$Encoder::encode@355 (line 665)
; {poll}
0x000000010c062729: cmp 0x24(%rsp),%ecx
0x000000010c06272d: jge 0x000000010c06263a ;*if_icmpge
; - sun.nio.cs.UTF_8$Encoder::encode@57 (line 635)
0x000000010c062733: mov %ecx,%edi
0x000000010c062735: mov %r11d,0x50(%rsp)
0x000000010c06273a: mov %r8,0x28(%rsp)
0x000000010c06273f: jmp 0x000000010c0626e1
0x000000010c062741: mov %ebx,%ebp
0x000000010c062743: and $0x3f,%ebp
0x000000010c062746: movslq 0x50(%rsp),%r13 ;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@291 (line 656)
0x000000010c06274b: or $0x80,%ebp ;*ior ; - sun.nio.cs.UTF_8$Encoder::encode@131 (line 643)
0x000000010c062751: mov 0x50(%rsp),%eax
0x000000010c062755: add $0x2,%eax ;*iinc
; - sun.nio.cs.UTF_8$Encoder::encode@120 (line 643)
0x000000010c062758: cmp $0x800,%ebx
0x000000010c06275e: jge 0x000000010c062798 ;*if_icmpge
; - sun.nio.cs.UTF_8$Encoder::encode@95 (line 640)
0x000000010c062760: mov %ebx,%r8d
0x000000010c062763: sar $0x6,%r8d
0x000000010c062767: or $0xc0,%r8d ;*ior ; - sun.nio.cs.UTF_8$Encoder::encode@113 (line 642)
0x000000010c06276e: mov 0x50(%rsp),%edi
0x000000010c062772: cmp %r14d,%edi
0x000000010c062775: jae 0x000000010c062a11
0x000000010c06277b: mov %r8b,0x10(%r9,%rsi,1) ;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@115 (line 642)
0x000000010c062780: cmp %r14d,%r11d
0x000000010c062783: jae 0x000000010c062a4d
0x000000010c062789: mov %bpl,0x11(%r9,%r13,1) ;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@133 (line 643)
0x000000010c06278e: mov 0x28(%rsp),%r8
0x000000010c062793: mov %eax,%r11d
0x000000010c062796: jmp 0x000000010c062723
0x000000010c062798: mov %eax,0x44(%rsp)
0x000000010c06279c: mov %r13,0x48(%rsp)
0x000000010c0627a1: mov %ebp,0x40(%rsp)
0x000000010c0627a5: mov %rsi,0x38(%rsp)
0x000000010c0627aa: mov %ebx,0x34(%rsp)
0x000000010c0627ae: mov %ecx,0x30(%rsp)
0x000000010c0627b2: mov %r8d,0x1c(%rsp)
0x000000010c0627b7: mov %edx,0x14(%rsp)
0x000000010c0627bb: mov %r11d,0x18(%rsp)
0x000000010c0627c0: mov %rax,-0x8(%rsp)
0x000000010c0627c5: mov 0x24(%rsp),%eax
0x000000010c0627c9: mov %eax,0x20(%rsp)
0x000000010c0627cd: mov -0x8(%rsp),%rax
0x000000010c0627d2: mov %r14d,0x10(%rsp)
0x000000010c0627d7: mov %r10,(%rsp)
0x000000010c0627db: mov %r9,0x8(%rsp) ;*if_icmpge
; - sun.nio.cs.UTF_8$Encoder::encode@95 (line 640)
0x000000010c0627e0: mov %ebx,%esi
0x000000010c0627e2: nop
0x000000010c0627e3: callq 0x000000010c037f60 ; OopMap{[0]=Oop [8]=Oop [40]=Oop off=840}
;*invokestatic isSurrogate
; - sun.nio.cs.UTF_8$Encoder::encode@139 (line 644)
; {static_call}
0x000000010c0627e8: mov 0x50(%rsp),%ebp
0x000000010c0627ec: add $0x3,%ebp ;*iinc
; - sun.nio.cs.UTF_8$Encoder::encode@257 (line 655)
0x000000010c0627ef: test %eax,%eax
0x000000010c0627f1: je 0x000000010c0628ed ;*ifeq
; - sun.nio.cs.UTF_8$Encoder::encode@142 (line 644)
0x000000010c0627f7: mov 0x28(%rsp),%r10
0x000000010c0627fc: mov 0x2c(%r10),%r11d ;*getfield sgp
; - sun.nio.cs.UTF_8$Encoder::encode@146 (line 645)
0x000000010c062800: test %r11d,%r11d
0x000000010c062803: je 0x000000010c062a89 ;*ifnonnull
; - sun.nio.cs.UTF_8$Encoder::encode@149 (line 645)
0x000000010c062809: lea (%r12,%r11,8),%rsi ;*getfield sgp
; - sun.nio.cs.UTF_8$Encoder::encode@146 (line 645)
0x000000010c06280d: mov 0x34(%rsp),%edx
0x000000010c062811: mov (%rsp),%rcx
0x000000010c062815: mov 0x1c(%rsp),%r8d
0x000000010c06281a: mov 0x24(%rsp),%r9d
0x000000010c06281f: callq 0x000000010c037b60 ; OopMap{[0]=Oop [8]=Oop [40]=Oop off=900}
;*invokevirtual parse
; - sun.nio.cs.UTF_8$Encoder::encode@175 (line 647)
; {optimized virtual_call}
0x000000010c062824: mov %eax,%ebx
0x000000010c062826: test %eax,%eax
0x000000010c062828: jge 0x000000010c06284b ;*ifge
; - sun.nio.cs.UTF_8$Encoder::encode@182 (line 648)
0x000000010c06282a: mov 0x28(%rsp),%r8
0x000000010c06282f: mov 0x20(%r8),%r11d
0x000000010c062833: cmp $0xf2aa24d3,%r11d ; {oop(a 'java/nio/charset/CodingErrorAction')}
0x000000010c06283a: je 0x000000010c062972 ;*if_acmpeq
; - sun.nio.cs.UTF_8$Encoder::encode@192 (line 649)
0x000000010c062840: mov $0xffffffff,%r11d
0x000000010c062846: jmpq 0x000000010c06263a
0x000000010c06284b: mov %eax,%r10d
0x000000010c06284e: sar $0x12,%r10d
0x000000010c062852: or $0xf0,%r10d ;*ior ; - sun.nio.cs.UTF_8$Encoder::encode@229 (line 653)
0x000000010c062859: mov 0x50(%rsp),%r8d
0x000000010c06285e: cmp 0x10(%rsp),%r8d
0x000000010c062863: jae 0x000000010c062aa5
0x000000010c062869: mov 0x8(%rsp),%r9
0x000000010c06286e: mov 0x38(%rsp),%r11
0x000000010c062873: mov %r10b,0x10(%r9,%r11,1) ;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@231 (line 653)
0x000000010c062878: mov %eax,%r11d
0x000000010c06287b: shr $0xc,%r11d
0x000000010c06287f: and $0x3f,%r11d
0x000000010c062883: or $0x80,%r11d ;*ior ; - sun.nio.cs.UTF_8$Encoder::encode@250 (line 654)
0x000000010c06288a: cmp 0x10(%rsp),%ebp
0x000000010c06288e: jae 0x000000010c062ac9
0x000000010c062894: mov 0x48(%rsp),%rdi
0x000000010c062899: mov %r11b,0x11(%r9,%rdi,1) ;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@252 (line 654)
0x000000010c06289e: mov 0x50(%rsp),%r11d
0x000000010c0628a3: add $0x4,%r11d ;*iinc
; - sun.nio.cs.UTF_8$Encoder::encode@278 (line 656)
0x000000010c0628a7: mov 0x1c(%rsp),%r8d
0x000000010c0628ac: mov %r8d,%ecx
0x000000010c0628af: add $0x2,%ecx ;*iinc
; - sun.nio.cs.UTF_8$Encoder::encode@292 (line 657)
0x000000010c0628b2: mov %eax,%r8d
0x000000010c0628b5: and $0x3f,%r8d
0x000000010c0628b9: shr $0x6,%ebx
0x000000010c0628bc: or $0x80,%r8d
0x000000010c0628c3: and $0x3f,%ebx
0x000000010c0628c6: or $0x80,%ebx
0x000000010c0628cc: mov %bl,0x12(%r9,%rdi,1) ;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@273 (line 655)
0x000000010c0628d1: mov %r8b,0x13(%r9,%rdi,1) ;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@291 (line 656)
0x000000010c0628d6: mov 0x28(%rsp),%r8 ;*goto
; - sun.nio.cs.UTF_8$Encoder::encode@295 (line 659)
0x000000010c0628db: mov (%rsp),%r10
0x000000010c0628df: mov 0x10(%rsp),%r14d
0x000000010c0628e4: mov 0x14(%rsp),%edx
0x000000010c0628e8: jmpq 0x000000010c062723
0x000000010c0628ed: mov 0x34(%rsp),%r8d
0x000000010c0628f2: sar $0xc,%r8d
0x000000010c0628f6: or $0xe0,%r8d ;*ior ; - sun.nio.cs.UTF_8$Encoder::encode@313 (line 661)
0x000000010c0628fd: mov 0x50(%rsp),%r11d
0x000000010c062902: cmp 0x10(%rsp),%r11d
0x000000010c062907: jae 0x000000010c062ae1
0x000000010c06290d: mov 0x8(%rsp),%r9
0x000000010c062912: mov 0x38(%rsp),%r10
0x000000010c062917: mov %r8b,0x10(%r9,%r10,1) ;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@315 (line 661)
0x000000010c06291c: mov 0x34(%rsp),%r8d
0x000000010c062921: shr $0x6,%r8d
0x000000010c062925: and $0x3f,%r8d
0x000000010c062929: or $0x80,%r8d ;*ior ; - sun.nio.cs.UTF_8$Encoder::encode@334 (line 662)
0x000000010c062930: mov 0x44(%rsp),%r10d
0x000000010c062935: cmp 0x10(%rsp),%r10d
0x000000010c06293a: jae 0x000000010c062b01
0x000000010c062940: mov 0x48(%rsp),%r10
0x000000010c062945: mov %r8b,0x11(%r9,%r10,1) ;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@336 (line 662)
0x000000010c06294a: mov 0x40(%rsp),%r8d
0x000000010c06294f: mov %r8b,0x12(%r9,%r10,1) ;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@354 (line 663)
0x000000010c062954: mov (%rsp),%r10
0x000000010c062958: mov 0x28(%rsp),%r8
0x000000010c06295d: mov 0x10(%rsp),%r14d
0x000000010c062962: mov %ebp,%r11d
0x000000010c062965: mov 0x14(%rsp),%edx
0x000000010c062969: mov 0x30(%rsp),%ecx
0x000000010c06296d: jmpq 0x000000010c062723
0x000000010c062972: mov 0x1c(%r8),%ebp ;*getfield replacement
; - java.nio.charset.CharsetEncoder::replacement@1 (line 247)
; - sun.nio.cs.UTF_8$Encoder::encode@205 (line 651)
0x000000010c062976: mov 0xc(%r12,%rbp,8),%r10d ; implicit exception: dispatches to 0x000000010c062b91
0x000000010c06297b: test %r10d,%r10d
0x000000010c06297e: jbe 0x000000010c062b31
0x000000010c062984: movsbl 0x10(%r12,%rbp,8),%ebp ;*baload
; - sun.nio.cs.UTF_8$Encoder::encode@209 (line 651)
0x000000010c06298a: mov 0x50(%rsp),%r10d
0x000000010c06298f: cmp 0x10(%rsp),%r10d
0x000000010c062994: jae 0x000000010c062b15
0x000000010c06299a: mov 0x8(%rsp),%r9
0x000000010c06299f: mov 0x38(%rsp),%r10
0x000000010c0629a4: mov %bpl,0x10(%r9,%r10,1) ;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@210 (line 651)
0x000000010c0629a9: mov 0x18(%rsp),%r11d
0x000000010c0629ae: mov 0x30(%rsp),%ecx
0x000000010c0629b2: jmpq 0x000000010c0628db
0x000000010c0629b7: mov $0xffffffe4,%esi
0x000000010c0629bc: mov %r9,(%rsp)
0x000000010c0629c0: mov %r10,0x8(%rsp)
0x000000010c0629c5: mov %ecx,0x10(%rsp)
0x000000010c0629c9: mov %edi,0x18(%rsp)
0x000000010c0629cd: xchg %ax,%ax
0x000000010c0629cf: callq 0x000000010c038f20 ; OopMap{[0]=Oop [8]=Oop [40]=Oop off=1332}
;*caload
; - sun.nio.cs.UTF_8$Encoder::encode@65 (line 636)
; {runtime_call}
0x000000010c0629d4: callq 0x000000010a81d5de ;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@86 (line 639)
; {runtime_call}
0x000000010c0629d9: movsbl %bl,%ebp ;*i2b ; - sun.nio.cs.UTF_8$Encoder::encode@85 (line 639)
0x000000010c0629dc: mov $0xffffffe4,%esi
0x000000010c0629e1: mov %r10,(%rsp)
0x000000010c0629e5: mov %r11d,0x10(%rsp)
0x000000010c0629ea: mov %r9,0x18(%rsp)
0x000000010c0629ef: mov %ecx,0x14(%rsp)
0x000000010c0629f3: mov %rax,-0x8(%rsp)
0x000000010c0629f8: mov 0x24(%rsp),%eax
0x000000010c0629fc: mov %eax,0x20(%rsp)
0x000000010c062a00: mov -0x8(%rsp),%rax
0x000000010c062a05: xchg %ax,%ax
0x000000010c062a07: callq 0x000000010c038f20 ; OopMap{[0]=Oop [24]=Oop [40]=Oop off=1388}
;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@86 (line 639)
; {runtime_call}
0x000000010c062a0c: callq 0x000000010a81d5de ;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@115 (line 642)
; {runtime_call}
0x000000010c062a11: movsbl %r8b,%ebp ;*i2b ; - sun.nio.cs.UTF_8$Encoder::encode@114 (line 642)
0x000000010c062a15: mov $0xffffffe4,%esi
0x000000010c062a1a: mov %r10,(%rsp)
0x000000010c062a1e: mov %r11d,0x10(%rsp)
0x000000010c062a23: mov %r9,0x18(%rsp)
0x000000010c062a28: mov %ecx,0x14(%rsp)
0x000000010c062a2c: mov %rax,-0x8(%rsp)
0x000000010c062a31: mov 0x24(%rsp),%eax
0x000000010c062a35: mov %eax,0x20(%rsp)
0x000000010c062a39: mov -0x8(%rsp),%rax
0x000000010c062a3e: mov %ebx,0x24(%rsp)
0x000000010c062a42: nop
0x000000010c062a43: callq 0x000000010c038f20 ; OopMap{[0]=Oop [24]=Oop [40]=Oop off=1448}
;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@115 (line 642)
; {runtime_call}
0x000000010c062a48: callq 0x000000010a81d5de ;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@133 (line 643)
; {runtime_call}
0x000000010c062a4d: movsbl %bpl,%ebp ;*i2b ; - sun.nio.cs.UTF_8$Encoder::encode@132 (line 643)
0x000000010c062a51: mov $0xffffffe4,%esi
0x000000010c062a56: mov %r10,(%rsp)
0x000000010c062a5a: mov %r9,0x10(%rsp)
0x000000010c062a5f: mov %r11d,0x18(%rsp)
0x000000010c062a64: mov %ecx,0x1c(%rsp)
0x000000010c062a68: mov %rax,-0x8(%rsp)
0x000000010c062a6d: mov 0x24(%rsp),%eax
0x000000010c062a71: mov %eax,0x20(%rsp)
0x000000010c062a75: mov -0x8(%rsp),%rax
0x000000010c062a7a: mov %eax,0x24(%rsp)
0x000000010c062a7e: nop
0x000000010c062a7f: callq 0x000000010c038f20 ; OopMap{[0]=Oop [16]=Oop [40]=Oop off=1508}
;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@133 (line 643)
; {runtime_call}
0x000000010c062a84: callq 0x000000010a81d5de ;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@133 (line 643)
; {runtime_call}
0x000000010c062a89: mov $0x15,%esi
0x000000010c062a8e: mov (%rsp),%rbp
0x000000010c062a92: mov 0x8(%rsp),%r11
0x000000010c062a97: mov %r11,(%rsp)
0x000000010c062a9b: callq 0x000000010c038f20 ; OopMap{rbp=Oop [0]=Oop [40]=Oop off=1536}
;*new ; - sun.nio.cs.UTF_8$Encoder::encode@153 (line 646)
; {runtime_call}
0x000000010c062aa0: callq 0x000000010a81d5de ;*new
; - sun.nio.cs.UTF_8$Encoder::encode@153 (line 646)
; {runtime_call}
0x000000010c062aa5: movsbl %r10b,%ebp ;*i2b ; - sun.nio.cs.UTF_8$Encoder::encode@230 (line 653)
0x000000010c062aa9: mov $0xffffffe4,%esi
0x000000010c062aae: mov 0x18(%rsp),%r11d
0x000000010c062ab3: mov %r11d,0x10(%rsp)
0x000000010c062ab8: mov %eax,0x14(%rsp)
0x000000010c062abc: data32 xchg %ax,%ax
0x000000010c062abf: callq 0x000000010c038f20 ; OopMap{[0]=Oop [8]=Oop [40]=Oop off=1572}
;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@231 (line 653)
; {runtime_call}
0x000000010c062ac4: callq 0x000000010a81d5de ;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@252 (line 654)
; {runtime_call}
0x000000010c062ac9: movsbl %r11b,%ebp ;*i2b ; - sun.nio.cs.UTF_8$Encoder::encode@251 (line 654)
0x000000010c062acd: mov $0xffffffe4,%esi
0x000000010c062ad2: mov %eax,0x1c(%rsp)
0x000000010c062ad6: nop
0x000000010c062ad7: callq 0x000000010c038f20 ; OopMap{[0]=Oop [8]=Oop [40]=Oop off=1596}
;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@252 (line 654)
; {runtime_call}
0x000000010c062adc: callq 0x000000010a81d5de ;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@252 (line 654)
; {runtime_call}
0x000000010c062ae1: movsbl %r8b,%ebp ;*i2b ; - sun.nio.cs.UTF_8$Encoder::encode@314 (line 661)
0x000000010c062ae5: mov $0xffffffe4,%esi
0x000000010c062aea: mov 0x18(%rsp),%r10d
0x000000010c062aef: mov %r10d,0x10(%rsp)
0x000000010c062af4: data32 xchg %ax,%ax
0x000000010c062af7: callq 0x000000010c038f20 ; OopMap{[0]=Oop [8]=Oop [40]=Oop off=1628}
;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@315 (line 661)
; {runtime_call}
0x000000010c062afc: callq 0x000000010a81d5de ;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@336 (line 662)
; {runtime_call}
0x000000010c062b01: movsbl %r8b,%ebp ;*i2b ; - sun.nio.cs.UTF_8$Encoder::encode@335 (line 662)
0x000000010c062b05: mov $0xffffffe4,%esi
0x000000010c062b0a: nop
0x000000010c062b0b: callq 0x000000010c038f20 ; OopMap{[0]=Oop [8]=Oop [40]=Oop off=1648}
;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@336 (line 662)
; {runtime_call}
0x000000010c062b10: callq 0x000000010a81d5de ;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@336 (line 662)
; {runtime_call}
0x000000010c062b15: mov $0xffffffe4,%esi
0x000000010c062b1a: mov 0x18(%rsp),%r9d
0x000000010c062b1f: mov %r9d,0x10(%rsp)
0x000000010c062b24: data32 xchg %ax,%ax
0x000000010c062b27: callq 0x000000010c038f20 ; OopMap{[0]=Oop [8]=Oop [40]=Oop off=1676}
;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@210 (line 651)
; {runtime_call}
0x000000010c062b2c: callq 0x000000010a81d5de ;*bastore
; - sun.nio.cs.UTF_8$Encoder::encode@210 (line 651)
; {runtime_call}
0x000000010c062b31: mov $0xffffffe4,%esi
0x000000010c062b36: mov 0x18(%rsp),%r10d
0x000000010c062b3b: mov %r10d,0x10(%rsp)
0x000000010c062b40: data32 xchg %ax,%ax
0x000000010c062b43: callq 0x000000010c038f20 ; OopMap{rbp=NarrowOop [0]=Oop [8]=Oop [40]=Oop off=1704}
;*baload
; - sun.nio.cs.UTF_8$Encoder::encode@209 (line 651)
; {runtime_call}
0x000000010c062b48: callq 0x000000010a81d5de ;*baload
; - sun.nio.cs.UTF_8$Encoder::encode@209 (line 651)
; {runtime_call}
0x000000010c062b4d: mov $0xfffffff6,%esi
0x000000010c062b52: nop
0x000000010c062b53: callq 0x000000010c038f20 ; OopMap{off=1720}
;*arraylength
; - sun.nio.cs.UTF_8$Encoder::encode@13 (line 629)
; {runtime_call}
0x000000010c062b58: callq 0x000000010a81d5de ;*invokestatic isSurrogate
; - sun.nio.cs.UTF_8$Encoder::encode@139 (line 644)
; {runtime_call}
0x000000010c062b5d: mov %rax,%rsi
0x000000010c062b60: jmp 0x000000010c062b65
0x000000010c062b62: mov %rax,%rsi ;*invokevirtual parse
; - sun.nio.cs.UTF_8$Encoder::encode@175 (line 647)
0x000000010c062b65: add $0x70,%rsp
0x000000010c062b69: pop %rbp
0x000000010c062b6a: jmpq 0x000000010c061e20 ; {runtime_call}
0x000000010c062b6f: mov $0xffffff86,%esi
0x000000010c062b74: mov %r10,%rbp
0x000000010c062b77: mov %r8d,(%rsp)
0x000000010c062b7b: mov %r9,0x8(%rsp)
0x000000010c062b80: mov %r11d,0x4(%rsp)
0x000000010c062b85: xchg %ax,%ax
0x000000010c062b87: callq 0x000000010c038f20 ; OopMap{rbp=Oop [8]=Oop [40]=Oop off=1772}
;*aload_1
; - sun.nio.cs.UTF_8$Encoder::encode@60 (line 636)
; {runtime_call}
0x000000010c062b8c: callq 0x000000010a81d5de ;*aload_1
; - sun.nio.cs.UTF_8$Encoder::encode@60 (line 636)
; {runtime_call}
0x000000010c062b91: mov $0xfffffff6,%esi
0x000000010c062b96: nop
0x000000010c062b97: callq 0x000000010c038f20 ; OopMap{off=1788}
;*baload
; - sun.nio.cs.UTF_8$Encoder::encode@209 (line 651)
; {runtime_call}
0x000000010c062b9c: callq 0x000000010a81d5de ;*if_icmpge
; - sun.nio.cs.UTF_8$Encoder::encode@57 (line 635)
; {runtime_call}
0x000000010c062ba1: hlt
0x000000010c062ba2: hlt
0x000000010c062ba3: hlt
0x000000010c062ba4: hlt
0x000000010c062ba5: hlt
0x000000010c062ba6: hlt
0x000000010c062ba7: hlt
0x000000010c062ba8: hlt
0x000000010c062ba9: hlt
0x000000010c062baa: hlt
0x000000010c062bab: hlt
0x000000010c062bac: hlt
0x000000010c062bad: hlt
0x000000010c062bae: hlt
0x000000010c062baf: hlt
0x000000010c062bb0: hlt
0x000000010c062bb1: hlt
0x000000010c062bb2: hlt
0x000000010c062bb3: hlt
0x000000010c062bb4: hlt
0x000000010c062bb5: hlt
0x000000010c062bb6: hlt
0x000000010c062bb7: hlt
0x000000010c062bb8: hlt
0x000000010c062bb9: hlt
0x000000010c062bba: hlt
0x000000010c062bbb: hlt
0x000000010c062bbc: hlt
0x000000010c062bbd: hlt
0x000000010c062bbe: hlt
0x000000010c062bbf: hlt
[Stub Code]
0x000000010c062bc0: movabs $0x0,%rbx ; {no_reloc}
0x000000010c062bca: jmpq 0x000000010c062bca ; {runtime_call}
0x000000010c062bcf: movabs $0x0,%rbx ; {static_stub}
0x000000010c062bd9: jmpq 0x000000010c062bd9 ; {runtime_call}
[Exception Handler]
0x000000010c062bde: jmpq 0x000000010c05f0a0 ; {runtime_call}
[Deopt Handler Code]
0x000000010c062be3: callq 0x000000010c062be8
0x000000010c062be8: subq $0x5,(%rsp)
0x000000010c062bed: jmpq 0x000000010c038b00 ; {runtime_call}
0x000000010c062bf2: hlt
0x000000010c062bf3: hlt
0x000000010c062bf4: hlt
0x000000010c062bf5: hlt
0x000000010c062bf6: hlt
0x000000010c062bf7: hlt
Decoding compiled method 0x000000010c063dd0:
Code:
[Entry Point]
[Constants]
# {method} '<init>' '()V' in 'java/lang/Object'
# [sp+0x20] (sp of caller)
0x000000010c063f00: mov 0x8(%rsi),%r10d
0x000000010c063f04: shl $0x3,%r10
0x000000010c063f08: cmp %r10,%rax
0x000000010c063f0b: jne 0x000000010c037960 ; {runtime_call}
0x000000010c063f11: data32 xchg %ax,%ax
0x000000010c063f14: nopl 0x0(%rax,%rax,1)
0x000000010c063f1c: data32 data32 xchg %ax,%ax
[Verified Entry Point]
0x000000010c063f20: mov %eax,-0x14000(%rsp)
0x000000010c063f27: push %rbp
0x000000010c063f28: sub $0x10,%rsp ;*synchronization entry
; - java.lang.Object::<init>@-1 (line 37)
0x000000010c063f2c: mov 0x8(%rsi),%r10d
0x000000010c063f30: mov $0x40000000,%r8d
0x000000010c063f36: test %r8d,0x9c(%r12,%r10,8)
0x000000010c063f3e: je 0x000000010c063f48 ;*return
; - java.lang.Object::<init>@0 (line 37)
0x000000010c063f40: mov %rsi,%rbp
0x000000010c063f43: callq 0x000000010c062020 ; OopMap{rbp=Oop off=72}
;*return
; - java.lang.Object::<init>@0 (line 37)
; {runtime_call}
0x000000010c063f48: add $0x10,%rsp
0x000000010c063f4c: pop %rbp
0x000000010c063f4d: test %eax,-0x10b3f53(%rip) # 0x000000010afb0000
; {poll_return}
0x000000010c063f53: retq ;*return
; - java.lang.Object::<init>@0 (line 37)
0x000000010c063f54: mov %rax,%rsi
0x000000010c063f57: add $0x10,%rsp
0x000000010c063f5b: pop %rbp
0x000000010c063f5c: jmpq 0x000000010c061e20 ; {runtime_call}
0x000000010c063f61: hlt
0x000000010c063f62: hlt
0x000000010c063f63: hlt
0x000000010c063f64: hlt
0x000000010c063f65: hlt
0x000000010c063f66: hlt
0x000000010c063f67: hlt
0x000000010c063f68: hlt
0x000000010c063f69: hlt
0x000000010c063f6a: hlt
0x000000010c063f6b: hlt
0x000000010c063f6c: hlt
0x000000010c063f6d: hlt
0x000000010c063f6e: hlt
0x000000010c063f6f: hlt
0x000000010c063f70: hlt
0x000000010c063f71: hlt
0x000000010c063f72: hlt
0x000000010c063f73: hlt
0x000000010c063f74: hlt
0x000000010c063f75: hlt
0x000000010c063f76: hlt
0x000000010c063f77: hlt
0x000000010c063f78: hlt
0x000000010c063f79: hlt
0x000000010c063f7a: hlt
0x000000010c063f7b: hlt
0x000000010c063f7c: hlt
0x000000010c063f7d: hlt
0x000000010c063f7e: hlt
0x000000010c063f7f: hlt
[Exception Handler]
[Stub Code]
0x000000010c063f80: jmpq 0x000000010c05f0a0 ; {no_reloc}
[Deopt Handler Code]
0x000000010c063f85: callq 0x000000010c063f8a
0x000000010c063f8a: subq $0x5,(%rsp)
0x000000010c063f8f: jmpq 0x000000010c038b00 ; {runtime_call}
0x000000010c063f94: hlt
0x000000010c063f95: hlt
0x000000010c063f96: hlt
0x000000010c063f97: hlt
Decoding compiled method 0x000000010c063950:
Code:
[Entry Point]
[Constants]
# {method} 'ensureCapacityInternal' '(I)V' in 'java/util/ArrayList'
# this: rsi:rsi = 'java/util/ArrayList'
# parm0: rdx = int
# [sp+0x30] (sp of caller)
0x000000010c063aa0: mov 0x8(%rsi),%r10d
0x000000010c063aa4: shl $0x3,%r10
0x000000010c063aa8: cmp %r10,%rax
0x000000010c063aab: jne 0x000000010c037960 ; {runtime_call}
0x000000010c063ab1: data32 xchg %ax,%ax
0x000000010c063ab4: nopl 0x0(%rax,%rax,1)
0x000000010c063abc: data32 data32 xchg %ax,%ax
[Verified Entry Point]
0x000000010c063ac0: mov %eax,-0x14000(%rsp)
0x000000010c063ac7: push %rbp
0x000000010c063ac8: sub $0x20,%rsp ;*synchronization entry
; - java.util.ArrayList::ensureCapacityInternal@-1 (line 204)
0x000000010c063acc: mov 0x14(%rsi),%r10d ;*getfield elementData
; - java.util.ArrayList::ensureCapacityInternal@1 (line 204)
0x000000010c063ad0: cmp $0xf2aa202d,%r10d ; {oop(a 'java/lang/Object'[0] )}
0x000000010c063ad7: je 0x000000010c063af8 ;*if_acmpne
; - java.util.ArrayList::ensureCapacityInternal@7 (line 204)
0x000000010c063ad9: incl 0xc(%rsi) ;*putfield modCount
; - java.util.ArrayList::ensureExplicitCapacity@7 (line 212)
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208)
0x000000010c063adc: mov 0xc(%r12,%r10,8),%r11d ; implicit exception: dispatches to 0x000000010c063b1e
0x000000010c063ae1: mov %edx,%r10d
0x000000010c063ae4: sub %r11d,%r10d
0x000000010c063ae7: test %r10d,%r10d
0x000000010c063aea: jg 0x000000010c063b15 ;*synchronization entry
; - java.util.ArrayList::ensureCapacityInternal@-1 (line 204)
0x000000010c063aec: add $0x20,%rsp
0x000000010c063af0: pop %rbp
0x000000010c063af1: test %eax,-0x10b3af7(%rip) # 0x000000010afb0000
; {poll_return}
0x000000010c063af7: retq
0x000000010c063af8: mov %rsi,%rbp
0x000000010c063afb: mov %edx,(%rsp)
0x000000010c063afe: mov %r10d,0x4(%rsp)
0x000000010c063b03: mov $0xffffffad,%esi
0x000000010c063b08: data32 xchg %ax,%ax
0x000000010c063b0b: callq 0x000000010c038f20 ; OopMap{rbp=Oop [4]=NarrowOop off=112}
;*if_acmpne
; - java.util.ArrayList::ensureCapacityInternal@7 (line 204)
; {runtime_call}
0x000000010c063b10: callq 0x000000010a81d5de ;*synchronization entry
; - java.util.ArrayList::ensureExplicitCapacity@-1 (line 212)
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208)
; {runtime_call}
0x000000010c063b15: xchg %ax,%ax
0x000000010c063b17: callq 0x000000010c037b60 ; OopMap{off=124}
;*invokespecial grow
; - java.util.ArrayList::ensureExplicitCapacity@22 (line 216)
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208)
; {optimized virtual_call}
0x000000010c063b1c: jmp 0x000000010c063aec
0x000000010c063b1e: mov $0xfffffff6,%esi
0x000000010c063b23: callq 0x000000010c038f20 ; OopMap{off=136}
;*arraylength
; - java.util.ArrayList::ensureExplicitCapacity@15 (line 215)
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208)
; {runtime_call}
0x000000010c063b28: callq 0x000000010a81d5de ;*invokespecial grow
; - java.util.ArrayList::ensureExplicitCapacity@22 (line 216)
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208)
; {runtime_call}
0x000000010c063b2d: mov %rax,%rsi
0x000000010c063b30: add $0x20,%rsp
0x000000010c063b34: pop %rbp
0x000000010c063b35: jmpq 0x000000010c061e20 ; {runtime_call}
0x000000010c063b3a: hlt
0x000000010c063b3b: hlt
0x000000010c063b3c: hlt
0x000000010c063b3d: hlt
0x000000010c063b3e: hlt
0x000000010c063b3f: hlt
[Stub Code]
0x000000010c063b40: movabs $0x0,%rbx ; {no_reloc}
0x000000010c063b4a: jmpq 0x000000010c063b4a ; {runtime_call}
[Exception Handler]
0x000000010c063b4f: jmpq 0x000000010c05f0a0 ; {runtime_call}
[Deopt Handler Code]
0x000000010c063b54: callq 0x000000010c063b59
0x000000010c063b59: subq $0x5,(%rsp)
0x000000010c063b5e: jmpq 0x000000010c038b00 ; {runtime_call}
0x000000010c063b63: hlt
0x000000010c063b64: hlt
0x000000010c063b65: hlt
0x000000010c063b66: hlt
0x000000010c063b67: hlt
Decoding compiled method 0x000000010c05f4d0:
Code:
[Entry Point]
[Constants]
# {method} 'add' '(Ljava/lang/Object;)Z' in 'java/util/ArrayList'
# this: rsi:rsi = 'java/util/ArrayList'
# parm0: rdx:rdx = 'java/lang/Object'
# [sp+0x40] (sp of caller)
0x000000010c05f640: mov 0x8(%rsi),%r10d
0x000000010c05f644: shl $0x3,%r10
0x000000010c05f648: cmp %r10,%rax
0x000000010c05f64b: jne 0x000000010c037960 ; {runtime_call}
0x000000010c05f651: data32 xchg %ax,%ax
0x000000010c05f654: nopl 0x0(%rax,%rax,1)
0x000000010c05f65c: data32 data32 xchg %ax,%ax
[Verified Entry Point]
0x000000010c05f660: mov %eax,-0x14000(%rsp)
0x000000010c05f667: push %rbp
0x000000010c05f668: sub $0x30,%rsp ;*synchronization entry
; - java.util.ArrayList::add@-1 (line 440)
0x000000010c05f66c: mov %rdx,0x8(%rsp)
0x000000010c05f671: mov %rsi,%rbp
0x000000010c05f674: mov 0x10(%rsi),%r8d ;*getfield size
; - java.util.ArrayList::add@2 (line 440)
0x000000010c05f678: mov 0x14(%rsi),%r11d ;*getfield elementData
; - java.util.ArrayList::ensureCapacityInternal@1 (line 204)
; - java.util.ArrayList::add@7 (line 440)
0x000000010c05f67c: mov %r8d,%edx
0x000000010c05f67f: inc %edx ;*iadd
; - java.util.ArrayList::add@6 (line 440)
0x000000010c05f681: cmp $0xf2aa202d,%r11d ; {oop(a 'java/lang/Object'[0] )}
0x000000010c05f688: je 0x000000010c05f72d ;*if_acmpne
; - java.util.ArrayList::ensureCapacityInternal@7 (line 204)
; - java.util.ArrayList::add@7 (line 440)
0x000000010c05f68e: incl 0xc(%rsi) ;*putfield modCount
; - java.util.ArrayList::ensureExplicitCapacity@7 (line 212)
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208)
; - java.util.ArrayList::add@7 (line 440)
0x000000010c05f691: mov 0xc(%r12,%r11,8),%r10d ; implicit exception: dispatches to 0x000000010c05f785
0x000000010c05f696: mov %r8d,%ecx
0x000000010c05f699: sub %r10d,%ecx
0x000000010c05f69c: inc %ecx
0x000000010c05f69e: test %ecx,%ecx
0x000000010c05f6a0: jg 0x000000010c05f751 ;*ifle
; - java.util.ArrayList::ensureExplicitCapacity@17 (line 215)
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208)
; - java.util.ArrayList::add@7 (line 440)
0x000000010c05f6a6: mov %edx,0x10(%rsi) ;*return
; - java.util.ArrayList::ensureExplicitCapacity@25 (line 217)
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208)
; - java.util.ArrayList::add@7 (line 440)
0x000000010c05f6a9: mov 0xc(%r12,%r11,8),%r10d
0x000000010c05f6ae: cmp %r10d,%r8d
0x000000010c05f6b1: jae 0x000000010c05f6fc
0x000000010c05f6b3: mov 0x8(%r12,%r11,8),%r10d
0x000000010c05f6b8: cmp $0xd75d45e9,%r10d ; {oop('java/lang/Object'[])}
0x000000010c05f6bf: jne 0x000000010c05f715 ;*aastore
; - java.util.ArrayList::add@26 (line 441)
0x000000010c05f6c1: lea (%r12,%r11,8),%r10 ;*getfield elementData
; - java.util.ArrayList::add@11 (line 441)
0x000000010c05f6c5: lea 0x10(%r10,%r8,4),%r10
0x000000010c05f6ca: mov 0x8(%rsp),%r11
0x000000010c05f6cf: mov %r11,%r8
0x000000010c05f6d2: shr $0x3,%r8
0x000000010c05f6d6: mov %r8d,(%r10)
0x000000010c05f6d9: shr $0x9,%r10
0x000000010c05f6dd: mov $0x1,%eax
0x000000010c05f6e2: movabs $0x10bae9000,%r11
0x000000010c05f6ec: mov %r12b,(%r11,%r10,1) ;*synchronization entry
; - java.util.ArrayList::add@-1 (line 440)
0x000000010c05f6f0: add $0x30,%rsp
0x000000010c05f6f4: pop %rbp
0x000000010c05f6f5: test %eax,-0x10af6fb(%rip) # 0x000000010afb0000
; {poll_return}
0x000000010c05f6fb: retq ;*aastore
; - java.util.ArrayList::add@26 (line 441)
0x000000010c05f6fc: mov $0xffffffe4,%esi
0x000000010c05f701: mov %r11d,%ebp
0x000000010c05f704: mov %r8d,(%rsp)
0x000000010c05f708: data32 xchg %ax,%ax
0x000000010c05f70b: callq 0x000000010c038f20 ; OopMap{rbp=NarrowOop [8]=Oop off=208}
;*aastore
; - java.util.ArrayList::add@26 (line 441)
; {runtime_call}
0x000000010c05f710: callq 0x000000010a81d5de ;*aastore
; - java.util.ArrayList::add@26 (line 441)
; {runtime_call}
0x000000010c05f715: mov $0xffffffd6,%esi
0x000000010c05f71a: mov %r11d,%ebp
0x000000010c05f71d: mov %r8d,(%rsp)
0x000000010c05f721: xchg %ax,%ax
0x000000010c05f723: callq 0x000000010c038f20 ; OopMap{rbp=NarrowOop [8]=Oop off=232}
;*aastore
; - java.util.ArrayList::add@26 (line 441)
; {runtime_call}
0x000000010c05f728: callq 0x000000010a81d5de ;*aastore
; - java.util.ArrayList::add@26 (line 441)
; {runtime_call}
0x000000010c05f72d: mov $0xffffffad,%esi
0x000000010c05f732: rex.W pushq 0x8(%rsp)
0x000000010c05f737: rex.W popq (%rsp)
0x000000010c05f73b: mov %edx,0x10(%rsp)
0x000000010c05f73f: mov %r11d,0x14(%rsp)
0x000000010c05f744: data32 xchg %ax,%ax
0x000000010c05f747: callq 0x000000010c038f20 ; OopMap{rbp=Oop [0]=Oop [20]=NarrowOop off=268}
;*if_acmpne
; - java.util.ArrayList::ensureCapacityInternal@7 (line 204)
; - java.util.ArrayList::add@7 (line 440)
; {runtime_call}
0x000000010c05f74c: callq 0x000000010a81d5de ;*synchronization entry
; - java.util.ArrayList::ensureExplicitCapacity@-1 (line 212)
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208)
; - java.util.ArrayList::add@7 (line 440)
; {runtime_call}
0x000000010c05f751: xchg %ax,%ax
0x000000010c05f753: callq 0x000000010c037b60 ; OopMap{rbp=Oop [8]=Oop off=280}
;*invokespecial grow
; - java.util.ArrayList::ensureExplicitCapacity@22 (line 216)
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208)
; - java.util.ArrayList::add@7 (line 440)
; {optimized virtual_call}
0x000000010c05f758: mov 0x10(%rbp),%r8d ;*getfield size
; - java.util.ArrayList::add@16 (line 441)
0x000000010c05f75c: mov 0x14(%rbp),%r11d ;*getfield elementData
; - java.util.ArrayList::add@11 (line 441)
0x000000010c05f760: mov %r8d,%r9d
0x000000010c05f763: inc %r9d
0x000000010c05f766: mov %r9d,0x10(%rbp) ;*putfield size
; - java.util.ArrayList::add@22 (line 441)
0x000000010c05f76a: test %r11d,%r11d
0x000000010c05f76d: jne 0x000000010c05f6a9 ;*aastore
; - java.util.ArrayList::add@26 (line 441)
0x000000010c05f773: mov $0xfffffff6,%esi
0x000000010c05f778: mov %r8d,%ebp
0x000000010c05f77b: callq 0x000000010c038f20 ; OopMap{[8]=Oop off=320}
;*aastore
; - java.util.ArrayList::add@26 (line 441)
; {runtime_call}
0x000000010c05f780: callq 0x000000010a81d5de ; {runtime_call}
0x000000010c05f785: mov $0xfffffff6,%esi
0x000000010c05f78a: nop
0x000000010c05f78b: callq 0x000000010c038f20 ; OopMap{off=336}
;*arraylength
; - java.util.ArrayList::ensureExplicitCapacity@15 (line 215)
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208)
; - java.util.ArrayList::add@7 (line 440)
; {runtime_call}
0x000000010c05f790: callq 0x000000010a81d5de ;*invokespecial grow
; - java.util.ArrayList::ensureExplicitCapacity@22 (line 216)
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208)
; - java.util.ArrayList::add@7 (line 440)
; {runtime_call}
0x000000010c05f795: mov %rax,%rsi
0x000000010c05f798: add $0x30,%rsp
0x000000010c05f79c: pop %rbp
0x000000010c05f79d: jmpq 0x000000010c061e20 ; {runtime_call}
0x000000010c05f7a2: hlt
0x000000010c05f7a3: hlt
0x000000010c05f7a4: hlt
0x000000010c05f7a5: hlt
0x000000010c05f7a6: hlt
0x000000010c05f7a7: hlt
0x000000010c05f7a8: hlt
0x000000010c05f7a9: hlt
0x000000010c05f7aa: hlt
0x000000010c05f7ab: hlt
0x000000010c05f7ac: hlt
0x000000010c05f7ad: hlt
0x000000010c05f7ae: hlt
0x000000010c05f7af: hlt
0x000000010c05f7b0: hlt
0x000000010c05f7b1: hlt
0x000000010c05f7b2: hlt
0x000000010c05f7b3: hlt
0x000000010c05f7b4: hlt
0x000000010c05f7b5: hlt
0x000000010c05f7b6: hlt
0x000000010c05f7b7: hlt
0x000000010c05f7b8: hlt
0x000000010c05f7b9: hlt
0x000000010c05f7ba: hlt
0x000000010c05f7bb: hlt
0x000000010c05f7bc: hlt
0x000000010c05f7bd: hlt
0x000000010c05f7be: hlt
0x000000010c05f7bf: hlt
[Stub Code]
0x000000010c05f7c0: movabs $0x0,%rbx ; {no_reloc}
0x000000010c05f7ca: jmpq 0x000000010c05f7ca ; {runtime_call}
[Exception Handler]
0x000000010c05f7cf: jmpq 0x000000010c05f0a0 ; {runtime_call}
[Deopt Handler Code]
0x000000010c05f7d4: callq 0x000000010c05f7d9
0x000000010c05f7d9: subq $0x5,(%rsp)
0x000000010c05f7de: jmpq 0x000000010c038b00 ; {runtime_call}
0x000000010c05f7e3: hlt
0x000000010c05f7e4: hlt
0x000000010c05f7e5: hlt
0x000000010c05f7e6: hlt
0x000000010c05f7e7: hlt
Decoding compiled method 0x000000010c05f150:
Code:
[Entry Point]
[Constants]
# {method} 'ensureExplicitCapacity' '(I)V' in 'java/util/ArrayList'
# this: rsi:rsi = 'java/util/ArrayList'
# parm0: rdx = int
# [sp+0x20] (sp of caller)
0x000000010c05f2a0: mov 0x8(%rsi),%r10d
0x000000010c05f2a4: shl $0x3,%r10
0x000000010c05f2a8: cmp %r10,%rax
0x000000010c05f2ab: jne 0x000000010c037960 ; {runtime_call}
0x000000010c05f2b1: data32 xchg %ax,%ax
0x000000010c05f2b4: nopl 0x0(%rax,%rax,1)
0x000000010c05f2bc: data32 data32 xchg %ax,%ax
[Verified Entry Point]
0x000000010c05f2c0: mov %eax,-0x14000(%rsp)
0x000000010c05f2c7: push %rbp
0x000000010c05f2c8: sub $0x10,%rsp ;*synchronization entry
; - java.util.ArrayList::ensureExplicitCapacity@-1 (line 212)
0x000000010c05f2cc: incl 0xc(%rsi) ;*putfield modCount
; - java.util.ArrayList::ensureExplicitCapacity@7 (line 212)
0x000000010c05f2cf: mov 0x14(%rsi),%r11d ;*getfield elementData
; - java.util.ArrayList::ensureExplicitCapacity@12 (line 215)
0x000000010c05f2d3: mov 0xc(%r12,%r11,8),%r10d ; implicit exception: dispatches to 0x000000010c05f2f6
0x000000010c05f2d8: mov %edx,%r8d
0x000000010c05f2db: sub %r10d,%r8d
0x000000010c05f2de: test %r8d,%r8d
0x000000010c05f2e1: jg 0x000000010c05f2ef ;*putfield modCount
; - java.util.ArrayList::ensureExplicitCapacity@7 (line 212)
0x000000010c05f2e3: add $0x10,%rsp
0x000000010c05f2e7: pop %rbp
0x000000010c05f2e8: test %eax,-0x10af2ee(%rip) # 0x000000010afb0000
; {poll_return}
0x000000010c05f2ee: retq
0x000000010c05f2ef: callq 0x000000010c037b60 ; OopMap{off=84}
;*invokespecial grow
; - java.util.ArrayList::ensureExplicitCapacity@22 (line 216)
; {optimized virtual_call}
0x000000010c05f2f4: jmp 0x000000010c05f2e3
0x000000010c05f2f6: mov $0xfffffff6,%esi
0x000000010c05f2fb: callq 0x000000010c038f20 ; OopMap{off=96}
;*arraylength
; - java.util.ArrayList::ensureExplicitCapacity@15 (line 215)
; {runtime_call}
0x000000010c05f300: callq 0x000000010a81d5de ;*invokespecial grow
; - java.util.ArrayList::ensureExplicitCapacity@22 (line 216)
; {runtime_call}
0x000000010c05f305: mov %rax,%rsi
0x000000010c05f308: add $0x10,%rsp
0x000000010c05f30c: pop %rbp
0x000000010c05f30d: jmpq 0x000000010c061e20 ; {runtime_call}
0x000000010c05f312: hlt
0x000000010c05f313: hlt
0x000000010c05f314: hlt
0x000000010c05f315: hlt
0x000000010c05f316: hlt
0x000000010c05f317: hlt
0x000000010c05f318: hlt
0x000000010c05f319: hlt
0x000000010c05f31a: hlt
0x000000010c05f31b: hlt
0x000000010c05f31c: hlt
0x000000010c05f31d: hlt
0x000000010c05f31e: hlt
0x000000010c05f31f: hlt
[Stub Code]
0x000000010c05f320: movabs $0x0,%rbx ; {no_reloc}
0x000000010c05f32a: jmpq 0x000000010c05f32a ; {runtime_call}
[Exception Handler]
0x000000010c05f32f: jmpq 0x000000010c05f0a0 ; {runtime_call}
[Deopt Handler Code]
0x000000010c05f334: callq 0x000000010c05f339
0x000000010c05f339: subq $0x5,(%rsp)
0x000000010c05f33e: jmpq 0x000000010c038b00 ; {runtime_call}
0x000000010c05f343: hlt
0x000000010c05f344: hlt
0x000000010c05f345: hlt
0x000000010c05f346: hlt
0x000000010c05f347: hlt
Decoding compiled method 0x000000010c065150:
Code:
[Entry Point]
[Constants]
# {method} 'copy' '()Lcom/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy;' in 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy'
# [sp+0x20] (sp of caller)
0x000000010c0652a0: mov 0x8(%rsi),%r10d
0x000000010c0652a4: shl $0x3,%r10
0x000000010c0652a8: cmp %r10,%rax
0x000000010c0652ab: jne 0x000000010c037960 ; {runtime_call}
0x000000010c0652b1: data32 xchg %ax,%ax
0x000000010c0652b4: nopl 0x0(%rax,%rax,1)
0x000000010c0652bc: data32 data32 xchg %ax,%ax
[Verified Entry Point]
0x000000010c0652c0: mov %eax,-0x14000(%rsp)
0x000000010c0652c7: push %rbp
0x000000010c0652c8: sub $0x10,%rsp ;*synchronization entry
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@-1 (line 23)
0x000000010c0652cc: mov %rsi,%rbp
0x000000010c0652cf: mov 0x60(%r15),%r8
0x000000010c0652d3: mov %r8,%r10
0x000000010c0652d6: add $0x58,%r10
0x000000010c0652da: cmp 0x70(%r15),%r10
0x000000010c0652de: jae 0x000000010c0653fa
0x000000010c0652e4: mov %r10,0x60(%r15)
0x000000010c0652e8: prefetchnta 0xc0(%r10)
0x000000010c0652f0: mov %r8,%rdi
0x000000010c0652f3: add $0x10,%rdi
0x000000010c0652f7: mov $0xd7610e71,%r10d ; {oop('com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c0652fd: mov 0xb0(%r12,%r10,8),%r10
0x000000010c065305: mov %r10,(%r8)
0x000000010c065308: movl $0xd7610e71,0x8(%r8) ; {oop('com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c065310: mov %r12d,0xc(%r8)
0x000000010c065314: mov $0x9,%ecx
0x000000010c065319: xor %rax,%rax
0x000000010c06531c: shl $0x3,%rcx
0x000000010c065320: rep rex.W stos %al,%es:(%rdi) ;*new
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@0 (line 23)
0x000000010c065323: movzwl 0x54(%rbp),%r11d
0x000000010c065328: mov %r11w,0x54(%r8) ;*putfield x
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@114 (line 120)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
0x000000010c06532d: movswl 0x52(%rbp),%r10d
0x000000010c065332: mov %r10w,0x52(%r8) ;*putfield m10
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@106 (line 119)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
0x000000010c065337: movswl 0x50(%rbp),%r11d
0x000000010c06533c: mov %r11w,0x50(%r8) ;*putfield m9
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@98 (line 118)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
0x000000010c065341: movswl 0x4e(%rbp),%r10d
0x000000010c065346: mov %r10w,0x4e(%r8) ;*putfield m8
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@90 (line 117)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
0x000000010c06534b: movswl 0x4c(%rbp),%r11d
0x000000010c065350: mov %r11w,0x4c(%r8) ;*putfield m7
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@82 (line 116)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
0x000000010c065355: movswl 0x4a(%rbp),%r10d
0x000000010c06535a: mov %r10w,0x4a(%r8) ;*putfield m6
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@74 (line 115)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
0x000000010c06535f: movswl 0x48(%rbp),%r11d
0x000000010c065364: mov %r11w,0x48(%r8) ;*putfield m5
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@66 (line 114)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
0x000000010c065369: movswl 0x46(%rbp),%r10d
0x000000010c06536e: mov %r10w,0x46(%r8) ;*putfield m4
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@58 (line 113)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
0x000000010c065373: movswl 0x44(%rbp),%r11d
0x000000010c065378: mov %r11w,0x44(%r8) ;*putfield m3
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@50 (line 112)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
0x000000010c06537d: movswl 0x42(%rbp),%r10d
0x000000010c065382: mov %r10w,0x42(%r8) ;*putfield m2
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@42 (line 111)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
0x000000010c065387: movswl 0x40(%rbp),%r11d
0x000000010c06538c: mov %r11w,0x40(%r8) ;*putfield m1
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@34 (line 110)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
0x000000010c065391: mov 0x38(%rbp),%r10
0x000000010c065395: mov %r10,0x38(%r8) ;*putfield youCanSeeMe
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@26 (line 109)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
0x000000010c065399: vmovsd 0x30(%rbp),%xmm0
0x000000010c06539e: vmovsd %xmm0,0x30(%r8) ;*putfield anotherField
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@10 (line 107)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
0x000000010c0653a4: mov 0x2c(%rbp),%r10d
0x000000010c0653a8: mov %r10d,0x2c(%r8) ;*putfield field1
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@18 (line 108)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
0x000000010c0653ac: movsbl 0x2b(%rbp),%r11d
0x000000010c0653b1: mov %r11b,0x2b(%r8) ;*putfield abc
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@33 (line 32)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
0x000000010c0653b5: movzbl 0x2a(%rbp),%r10d
0x000000010c0653ba: mov %r10b,0x2a(%r8) ;*putfield field6
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@25 (line 31)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
0x000000010c0653be: movzwl 0x28(%rbp),%r11d
0x000000010c0653c3: mov %r11w,0x28(%r8) ;*putfield field2
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@17 (line 30)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
0x000000010c0653c8: vmovsd 0x20(%rbp),%xmm0
0x000000010c0653cd: vmovsd %xmm0,0x20(%r8) ;*putfield maxExponent
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@57 (line 35)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
0x000000010c0653d3: mov 0x18(%rbp),%r10
0x000000010c0653d7: mov %r10,0x18(%r8) ;*putfield max
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@49 (line 34)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
0x000000010c0653db: mov 0x10(%rbp),%r10
0x000000010c0653df: mov %r10,0x10(%r8) ;*putfield min
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@41 (line 33)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
0x000000010c0653e3: mov 0xc(%rbp),%r10d
0x000000010c0653e7: mov %r10d,0xc(%r8) ;*synchronization entry
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@-1 (line 23)
0x000000010c0653eb: mov %r8,%rax
0x000000010c0653ee: add $0x10,%rsp
0x000000010c0653f2: pop %rbp
0x000000010c0653f3: test %eax,-0x10b53f9(%rip) # 0x000000010afb0000
; {poll_return}
0x000000010c0653f9: retq
0x000000010c0653fa: movabs $0x6bb087388,%rsi ; {oop('com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c065404: data32 xchg %ax,%ax
0x000000010c065407: callq 0x000000010c05efe0 ; OopMap{rbp=Oop off=364}
;*new ; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@0 (line 23)
; {runtime_call}
0x000000010c06540c: mov %rax,%r8
0x000000010c06540f: jmpq 0x000000010c065323 ;*new
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@0 (line 23)
0x000000010c065414: mov %rax,%rsi
0x000000010c065417: add $0x10,%rsp
0x000000010c06541b: pop %rbp
0x000000010c06541c: jmpq 0x000000010c061e20 ; {runtime_call}
0x000000010c065421: hlt
0x000000010c065422: hlt
0x000000010c065423: hlt
0x000000010c065424: hlt
0x000000010c065425: hlt
0x000000010c065426: hlt
0x000000010c065427: hlt
0x000000010c065428: hlt
0x000000010c065429: hlt
0x000000010c06542a: hlt
0x000000010c06542b: hlt
0x000000010c06542c: hlt
0x000000010c06542d: hlt
0x000000010c06542e: hlt
0x000000010c06542f: hlt
0x000000010c065430: hlt
0x000000010c065431: hlt
0x000000010c065432: hlt
0x000000010c065433: hlt
0x000000010c065434: hlt
0x000000010c065435: hlt
0x000000010c065436: hlt
0x000000010c065437: hlt
0x000000010c065438: hlt
0x000000010c065439: hlt
0x000000010c06543a: hlt
0x000000010c06543b: hlt
0x000000010c06543c: hlt
0x000000010c06543d: hlt
0x000000010c06543e: hlt
0x000000010c06543f: hlt
[Exception Handler]
[Stub Code]
0x000000010c065440: jmpq 0x000000010c05f0a0 ; {no_reloc}
[Deopt Handler Code]
0x000000010c065445: callq 0x000000010c06544a
0x000000010c06544a: subq $0x5,(%rsp)
0x000000010c06544f: jmpq 0x000000010c038b00 ; {runtime_call}
0x000000010c065454: hlt
0x000000010c065455: hlt
0x000000010c065456: hlt
0x000000010c065457: hlt
Decoding compiled method 0x000000010c064b50:
Code:
[Entry Point]
[Verified Entry Point]
[Constants]
# {method} 'callCopy' '()Lcom/vyazelenko/blog/copyobject/Copyable;' in 'com/vyazelenko/blog/copyobject/TestConstructor'
# [sp+0x20] (sp of caller)
0x000000010c064ca0: mov %eax,-0x14000(%rsp)
0x000000010c064ca7: push %rbp
0x000000010c064ca8: sub $0x10,%rsp ;*synchronization entry
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@-1 (line 39)
0x000000010c064cac: mov 0x60(%r15),%r8
0x000000010c064cb0: mov %r8,%r10
0x000000010c064cb3: add $0x58,%r10
0x000000010c064cb7: cmp 0x70(%r15),%r10
0x000000010c064cbb: jae 0x000000010c064de3
0x000000010c064cc1: mov %r10,0x60(%r15)
0x000000010c064cc5: prefetchnta 0xc0(%r10)
0x000000010c064ccd: mov %r8,%rdi
0x000000010c064cd0: add $0x10,%rdi
0x000000010c064cd4: mov $0xd7610e71,%r10d ; {oop('com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c064cda: mov 0xb0(%r12,%r10,8),%r10
0x000000010c064ce2: mov %r10,(%r8)
0x000000010c064ce5: movl $0xd7610e71,0x8(%r8) ; {oop('com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c064ced: mov %r12d,0xc(%r8)
0x000000010c064cf1: mov $0x9,%ecx
0x000000010c064cf6: xor %rax,%rax
0x000000010c064cf9: shl $0x3,%rcx
0x000000010c064cfd: rep rex.W stos %al,%es:(%rdi) ;*new
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@0 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
0x000000010c064d00: mov %r8,%rax ;*areturn
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@6 (line 39)
0x000000010c064d03: movabs $0x7957aa098,%r9 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c064d0d: mov 0xc(%r9),%r11d
0x000000010c064d11: mov %r11d,0xc(%r8) ;*putfield field1
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@9 (line 29)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
0x000000010c064d15: movzwl 0x54(%r9),%r10d
0x000000010c064d1a: mov %r10w,0x54(%r8) ;*putfield x
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@114 (line 120)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
0x000000010c064d1f: movswl 0x52(%r9),%r11d
0x000000010c064d24: mov %r11w,0x52(%r8) ;*putfield m10
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@106 (line 119)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
0x000000010c064d29: movswl 0x50(%r9),%r10d
0x000000010c064d2e: mov %r10w,0x50(%r8) ;*putfield m9
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@98 (line 118)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
0x000000010c064d33: movswl 0x4e(%r9),%r11d
0x000000010c064d38: mov %r11w,0x4e(%r8) ;*putfield m8
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@90 (line 117)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
0x000000010c064d3d: movswl 0x4c(%r9),%r10d
0x000000010c064d42: mov %r10w,0x4c(%r8) ;*putfield m7
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@82 (line 116)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
0x000000010c064d47: movswl 0x4a(%r9),%r11d
0x000000010c064d4c: mov %r11w,0x4a(%r8) ;*putfield m6
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@74 (line 115)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
0x000000010c064d51: movswl 0x48(%r9),%r10d
0x000000010c064d56: mov %r10w,0x48(%r8) ;*putfield m5
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@66 (line 114)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
0x000000010c064d5b: movswl 0x46(%r9),%r11d
0x000000010c064d60: mov %r11w,0x46(%r8) ;*putfield m4
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@58 (line 113)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
0x000000010c064d65: movswl 0x44(%r9),%r10d
0x000000010c064d6a: mov %r10w,0x44(%r8) ;*putfield m3
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@50 (line 112)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
0x000000010c064d6f: movswl 0x42(%r9),%r11d
0x000000010c064d74: mov %r11w,0x42(%r8) ;*putfield m2
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@42 (line 111)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
0x000000010c064d79: movswl 0x40(%r9),%r10d
0x000000010c064d7e: mov %r10w,0x40(%r8) ;*putfield m1
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@34 (line 110)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
0x000000010c064d83: mov 0x38(%r9),%r10
0x000000010c064d87: mov %r10,0x38(%r8) ;*putfield youCanSeeMe
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@26 (line 109)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
0x000000010c064d8b: vmovsd 0x30(%r9),%xmm0
0x000000010c064d91: vmovsd %xmm0,0x30(%r8) ;*putfield anotherField
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@10 (line 107)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
0x000000010c064d97: mov 0x2c(%r9),%r11d
0x000000010c064d9b: mov %r11d,0x2c(%r8) ;*putfield field1
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@18 (line 108)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
0x000000010c064d9f: movsbl 0x2b(%r9),%r10d
0x000000010c064da4: mov %r10b,0x2b(%r8) ;*putfield abc
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@33 (line 32)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
0x000000010c064da8: movzbl 0x2a(%r9),%r11d
0x000000010c064dad: mov %r11b,0x2a(%r8) ;*putfield field6
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@25 (line 31)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
0x000000010c064db1: movzwl 0x28(%r9),%r10d
0x000000010c064db6: mov %r10w,0x28(%r8) ;*putfield field2
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@17 (line 30)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
0x000000010c064dbb: vmovsd 0x20(%r9),%xmm0
0x000000010c064dc1: vmovsd %xmm0,0x20(%r8) ;*putfield maxExponent
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@57 (line 35)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
0x000000010c064dc7: mov 0x18(%r9),%r10
0x000000010c064dcb: mov %r10,0x18(%r8) ;*putfield max
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@49 (line 34)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
0x000000010c064dcf: mov 0x10(%r9),%r10
0x000000010c064dd3: mov %r10,0x10(%r8) ;*putfield min
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@41 (line 33)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
0x000000010c064dd7: add $0x10,%rsp
0x000000010c064ddb: pop %rbp
0x000000010c064ddc: test %eax,-0x10b4de2(%rip) # 0x000000010afb0000
; {poll_return}
0x000000010c064de2: retq
0x000000010c064de3: movabs $0x6bb087388,%rsi ; {oop('com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c064ded: xchg %ax,%ax
0x000000010c064def: callq 0x000000010c05efe0 ; OopMap{off=340}
;*new ; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@0 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; {runtime_call}
0x000000010c064df4: mov %rax,%r8
0x000000010c064df7: jmpq 0x000000010c064d00 ;*new
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@0 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
0x000000010c064dfc: mov %rax,%rsi
0x000000010c064dff: add $0x10,%rsp
0x000000010c064e03: pop %rbp
0x000000010c064e04: jmpq 0x000000010c061e20 ; {runtime_call}
0x000000010c064e09: hlt
0x000000010c064e0a: hlt
0x000000010c064e0b: hlt
0x000000010c064e0c: hlt
0x000000010c064e0d: hlt
0x000000010c064e0e: hlt
0x000000010c064e0f: hlt
0x000000010c064e10: hlt
0x000000010c064e11: hlt
0x000000010c064e12: hlt
0x000000010c064e13: hlt
0x000000010c064e14: hlt
0x000000010c064e15: hlt
0x000000010c064e16: hlt
0x000000010c064e17: hlt
0x000000010c064e18: hlt
0x000000010c064e19: hlt
0x000000010c064e1a: hlt
0x000000010c064e1b: hlt
0x000000010c064e1c: hlt
0x000000010c064e1d: hlt
0x000000010c064e1e: hlt
0x000000010c064e1f: hlt
[Exception Handler]
[Stub Code]
0x000000010c064e20: jmpq 0x000000010c05f0a0 ; {no_reloc}
[Deopt Handler Code]
0x000000010c064e25: callq 0x000000010c064e2a
0x000000010c064e2a: subq $0x5,(%rsp)
0x000000010c064e2f: jmpq 0x000000010c038b00 ; {runtime_call}
0x000000010c064e34: hlt
0x000000010c064e35: hlt
0x000000010c064e36: hlt
0x000000010c064e37: hlt
Decoding compiled method 0x000000010c064650:
Code:
[Entry Point]
[Constants]
# {method} '<init>' '(Lcom/vyazelenko/blog/copyobject/primitives/BaseClass;)V' in 'com/vyazelenko/blog/copyobject/primitives/BaseClass'
# this: rsi:rsi = 'com/vyazelenko/blog/copyobject/primitives/BaseClass'
# parm0: rdx:rdx = 'com/vyazelenko/blog/copyobject/primitives/BaseClass'
# [sp+0x20] (sp of caller)
0x000000010c064780: mov 0x8(%rsi),%r10d
0x000000010c064784: shl $0x3,%r10
0x000000010c064788: cmp %r10,%rax
0x000000010c06478b: jne 0x000000010c037960 ; {runtime_call}
0x000000010c064791: data32 xchg %ax,%ax
0x000000010c064794: nopl 0x0(%rax,%rax,1)
0x000000010c06479c: data32 data32 xchg %ax,%ax
[Verified Entry Point]
0x000000010c0647a0: mov %eax,-0x14000(%rsp)
0x000000010c0647a7: push %rbp
0x000000010c0647a8: sub $0x10,%rsp ;*synchronization entry
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@-1 (line 106)
0x000000010c0647ac: mov 0xc(%rdx),%r11d ; implicit exception: dispatches to 0x000000010c06487e
0x000000010c0647b0: mov %r11d,0xc(%rsi) ;*putfield field1
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@9 (line 29)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
0x000000010c0647b4: movzwl 0x28(%rdx),%r10d
0x000000010c0647b9: mov %r10w,0x28(%rsi) ;*putfield field2
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@17 (line 30)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
0x000000010c0647be: movzbl 0x2a(%rdx),%r11d
0x000000010c0647c3: mov %r11b,0x2a(%rsi) ;*putfield field6
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@25 (line 31)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
0x000000010c0647c7: movsbl 0x2b(%rdx),%r10d
0x000000010c0647cc: mov %r10b,0x2b(%rsi) ;*putfield abc
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@33 (line 32)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
0x000000010c0647d0: mov 0x10(%rdx),%r10
0x000000010c0647d4: mov %r10,0x10(%rsi) ;*putfield min
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@41 (line 33)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
0x000000010c0647d8: mov 0x18(%rdx),%r10
0x000000010c0647dc: mov %r10,0x18(%rsi) ;*putfield max
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@49 (line 34)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
0x000000010c0647e0: vmovsd 0x20(%rdx),%xmm0
0x000000010c0647e5: vmovsd %xmm0,0x20(%rsi) ;*putfield maxExponent
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@57 (line 35)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
0x000000010c0647ea: vmovsd 0x30(%rdx),%xmm0
0x000000010c0647ef: vmovsd %xmm0,0x30(%rsi) ;*putfield anotherField
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@10 (line 107)
0x000000010c0647f4: mov 0x2c(%rdx),%r11d
0x000000010c0647f8: mov %r11d,0x2c(%rsi) ;*putfield field1
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@18 (line 108)
0x000000010c0647fc: mov 0x38(%rdx),%r10
0x000000010c064800: mov %r10,0x38(%rsi) ;*putfield youCanSeeMe
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@26 (line 109)
0x000000010c064804: movswl 0x40(%rdx),%r10d
0x000000010c064809: mov %r10w,0x40(%rsi) ;*putfield m1
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@34 (line 110)
0x000000010c06480e: movswl 0x42(%rdx),%r11d
0x000000010c064813: mov %r11w,0x42(%rsi) ;*putfield m2
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@42 (line 111)
0x000000010c064818: movswl 0x44(%rdx),%r10d
0x000000010c06481d: mov %r10w,0x44(%rsi) ;*putfield m3
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@50 (line 112)
0x000000010c064822: movswl 0x46(%rdx),%r11d
0x000000010c064827: mov %r11w,0x46(%rsi) ;*putfield m4
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@58 (line 113)
0x000000010c06482c: movswl 0x48(%rdx),%r10d
0x000000010c064831: mov %r10w,0x48(%rsi) ;*putfield m5
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@66 (line 114)
0x000000010c064836: movswl 0x4a(%rdx),%r11d
0x000000010c06483b: mov %r11w,0x4a(%rsi) ;*putfield m6
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@74 (line 115)
0x000000010c064840: movswl 0x4c(%rdx),%r10d
0x000000010c064845: mov %r10w,0x4c(%rsi) ;*putfield m7
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@82 (line 116)
0x000000010c06484a: movswl 0x4e(%rdx),%r11d
0x000000010c06484f: mov %r11w,0x4e(%rsi) ;*putfield m8
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@90 (line 117)
0x000000010c064854: movswl 0x50(%rdx),%r10d
0x000000010c064859: mov %r10w,0x50(%rsi) ;*putfield m9
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@98 (line 118)
0x000000010c06485e: movswl 0x52(%rdx),%r11d
0x000000010c064863: mov %r11w,0x52(%rsi) ;*putfield m10
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@106 (line 119)
0x000000010c064868: movzwl 0x54(%rdx),%r10d
0x000000010c06486d: mov %r10w,0x54(%rsi) ;*putfield x
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@114 (line 120)
0x000000010c064872: add $0x10,%rsp
0x000000010c064876: pop %rbp
0x000000010c064877: test %eax,-0x10b487d(%rip) # 0x000000010afb0000
; {poll_return}
0x000000010c06487d: retq
0x000000010c06487e: mov $0xfffffff6,%esi
0x000000010c064883: callq 0x000000010c038f20 ; OopMap{off=264}
;*getfield field1
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@6 (line 29)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; {runtime_call}
0x000000010c064888: callq 0x000000010a81d5de ;*getfield field1
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@6 (line 29)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; {runtime_call}
0x000000010c06488d: hlt
0x000000010c06488e: hlt
0x000000010c06488f: hlt
0x000000010c064890: hlt
0x000000010c064891: hlt
0x000000010c064892: hlt
0x000000010c064893: hlt
0x000000010c064894: hlt
0x000000010c064895: hlt
0x000000010c064896: hlt
0x000000010c064897: hlt
0x000000010c064898: hlt
0x000000010c064899: hlt
0x000000010c06489a: hlt
0x000000010c06489b: hlt
0x000000010c06489c: hlt
0x000000010c06489d: hlt
0x000000010c06489e: hlt
0x000000010c06489f: hlt
[Exception Handler]
[Stub Code]
0x000000010c0648a0: jmpq 0x000000010c05f0a0 ; {no_reloc}
[Deopt Handler Code]
0x000000010c0648a5: callq 0x000000010c0648aa
0x000000010c0648aa: subq $0x5,(%rsp)
0x000000010c0648af: jmpq 0x000000010c038b00 ; {runtime_call}
0x000000010c0648b4: hlt
0x000000010c0648b5: hlt
0x000000010c0648b6: hlt
0x000000010c0648b7: hlt
Decoding compiled method 0x000000010c064050:
Code:
[Entry Point]
[Constants]
# {method} '<init>' '(Lcom/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy;)V' in 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy'
# this: rsi:rsi = 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy'
# parm0: rdx:rdx = 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy'
# [sp+0x20] (sp of caller)
0x000000010c064180: mov 0x8(%rsi),%r10d
0x000000010c064184: shl $0x3,%r10
0x000000010c064188: cmp %r10,%rax
0x000000010c06418b: jne 0x000000010c037960 ; {runtime_call}
0x000000010c064191: data32 xchg %ax,%ax
0x000000010c064194: nopl 0x0(%rax,%rax,1)
0x000000010c06419c: data32 data32 xchg %ax,%ax
[Verified Entry Point]
0x000000010c0641a0: mov %eax,-0x14000(%rsp)
0x000000010c0641a7: push %rbp
0x000000010c0641a8: sub $0x10,%rsp ;*synchronization entry
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@-1 (line 18)
0x000000010c0641ac: mov 0xc(%rdx),%r11d ; implicit exception: dispatches to 0x000000010c06427e
0x000000010c0641b0: mov %r11d,0xc(%rsi) ;*putfield field1
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@9 (line 29)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
0x000000010c0641b4: movzwl 0x28(%rdx),%r10d
0x000000010c0641b9: mov %r10w,0x28(%rsi) ;*putfield field2
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@17 (line 30)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
0x000000010c0641be: movzbl 0x2a(%rdx),%r11d
0x000000010c0641c3: mov %r11b,0x2a(%rsi) ;*putfield field6
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@25 (line 31)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
0x000000010c0641c7: movsbl 0x2b(%rdx),%r10d
0x000000010c0641cc: mov %r10b,0x2b(%rsi) ;*putfield abc
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@33 (line 32)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
0x000000010c0641d0: mov 0x10(%rdx),%r10
0x000000010c0641d4: mov %r10,0x10(%rsi) ;*putfield min
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@41 (line 33)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
0x000000010c0641d8: mov 0x18(%rdx),%r10
0x000000010c0641dc: mov %r10,0x18(%rsi) ;*putfield max
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@49 (line 34)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
0x000000010c0641e0: vmovsd 0x20(%rdx),%xmm0
0x000000010c0641e5: vmovsd %xmm0,0x20(%rsi) ;*putfield maxExponent
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@57 (line 35)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
0x000000010c0641ea: vmovsd 0x30(%rdx),%xmm0
0x000000010c0641ef: vmovsd %xmm0,0x30(%rsi) ;*putfield anotherField
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@10 (line 107)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
0x000000010c0641f4: mov 0x2c(%rdx),%r11d
0x000000010c0641f8: mov %r11d,0x2c(%rsi) ;*putfield field1
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@18 (line 108)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
0x000000010c0641fc: mov 0x38(%rdx),%r10
0x000000010c064200: mov %r10,0x38(%rsi) ;*putfield youCanSeeMe
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@26 (line 109)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
0x000000010c064204: movswl 0x40(%rdx),%r10d
0x000000010c064209: mov %r10w,0x40(%rsi) ;*putfield m1
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@34 (line 110)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
0x000000010c06420e: movswl 0x42(%rdx),%r11d
0x000000010c064213: mov %r11w,0x42(%rsi) ;*putfield m2
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@42 (line 111)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
0x000000010c064218: movswl 0x44(%rdx),%r10d
0x000000010c06421d: mov %r10w,0x44(%rsi) ;*putfield m3
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@50 (line 112)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
0x000000010c064222: movswl 0x46(%rdx),%r11d
0x000000010c064227: mov %r11w,0x46(%rsi) ;*putfield m4
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@58 (line 113)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
0x000000010c06422c: movswl 0x48(%rdx),%r10d
0x000000010c064231: mov %r10w,0x48(%rsi) ;*putfield m5
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@66 (line 114)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
0x000000010c064236: movswl 0x4a(%rdx),%r11d
0x000000010c06423b: mov %r11w,0x4a(%rsi) ;*putfield m6
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@74 (line 115)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
0x000000010c064240: movswl 0x4c(%rdx),%r10d
0x000000010c064245: mov %r10w,0x4c(%rsi) ;*putfield m7
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@82 (line 116)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
0x000000010c06424a: movswl 0x4e(%rdx),%r11d
0x000000010c06424f: mov %r11w,0x4e(%rsi) ;*putfield m8
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@90 (line 117)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
0x000000010c064254: movswl 0x50(%rdx),%r10d
0x000000010c064259: mov %r10w,0x50(%rsi) ;*putfield m9
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@98 (line 118)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
0x000000010c06425e: movswl 0x52(%rdx),%r11d
0x000000010c064263: mov %r11w,0x52(%rsi) ;*putfield m10
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@106 (line 119)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
0x000000010c064268: movzwl 0x54(%rdx),%r10d
0x000000010c06426d: mov %r10w,0x54(%rsi) ;*putfield x
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@114 (line 120)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
0x000000010c064272: add $0x10,%rsp
0x000000010c064276: pop %rbp
0x000000010c064277: test %eax,-0x10b427d(%rip) # 0x000000010afb0000
; {poll_return}
0x000000010c06427d: retq
0x000000010c06427e: mov $0xfffffff6,%esi
0x000000010c064283: callq 0x000000010c038f20 ; OopMap{off=264}
;*getfield field1
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@6 (line 29)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; {runtime_call}
0x000000010c064288: callq 0x000000010a81d5de ;*getfield field1
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@6 (line 29)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; {runtime_call}
0x000000010c06428d: hlt
0x000000010c06428e: hlt
0x000000010c06428f: hlt
0x000000010c064290: hlt
0x000000010c064291: hlt
0x000000010c064292: hlt
0x000000010c064293: hlt
0x000000010c064294: hlt
0x000000010c064295: hlt
0x000000010c064296: hlt
0x000000010c064297: hlt
0x000000010c064298: hlt
0x000000010c064299: hlt
0x000000010c06429a: hlt
0x000000010c06429b: hlt
0x000000010c06429c: hlt
0x000000010c06429d: hlt
0x000000010c06429e: hlt
0x000000010c06429f: hlt
[Exception Handler]
[Stub Code]
0x000000010c0642a0: jmpq 0x000000010c05f0a0 ; {no_reloc}
[Deopt Handler Code]
0x000000010c0642a5: callq 0x000000010c0642aa
0x000000010c0642aa: subq $0x5,(%rsp)
0x000000010c0642af: jmpq 0x000000010c038b00 ; {runtime_call}
0x000000010c0642b4: hlt
0x000000010c0642b5: hlt
0x000000010c0642b6: hlt
0x000000010c0642b7: hlt
Decoding compiled method 0x000000010c068510:
Code:
[Entry Point]
[Constants]
# {method} '<init>' '(Lcom/vyazelenko/blog/copyobject/primitives/Root;)V' in 'com/vyazelenko/blog/copyobject/primitives/Root'
# this: rsi:rsi = 'com/vyazelenko/blog/copyobject/primitives/Root'
# parm0: rdx:rdx = 'com/vyazelenko/blog/copyobject/primitives/Root'
# [sp+0x20] (sp of caller)
0x000000010c068640: mov 0x8(%rsi),%r10d
0x000000010c068644: shl $0x3,%r10
0x000000010c068648: cmp %r10,%rax
0x000000010c06864b: jne 0x000000010c037960 ; {runtime_call}
0x000000010c068651: data32 xchg %ax,%ax
0x000000010c068654: nopl 0x0(%rax,%rax,1)
0x000000010c06865c: data32 data32 xchg %ax,%ax
[Verified Entry Point]
0x000000010c068660: mov %eax,-0x14000(%rsp)
0x000000010c068667: push %rbp
0x000000010c068668: sub $0x10,%rsp ;*synchronization entry
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@-1 (line 28)
0x000000010c06866c: mov 0xc(%rdx),%r11d ; implicit exception: dispatches to 0x000000010c0686b6
0x000000010c068670: mov %r11d,0xc(%rsi) ;*putfield field1
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@9 (line 29)
0x000000010c068674: movzwl 0x28(%rdx),%r10d
0x000000010c068679: mov %r10w,0x28(%rsi) ;*putfield field2
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@17 (line 30)
0x000000010c06867e: movzbl 0x2a(%rdx),%r11d
0x000000010c068683: mov %r11b,0x2a(%rsi) ;*putfield field6
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@25 (line 31)
0x000000010c068687: movsbl 0x2b(%rdx),%r10d
0x000000010c06868c: mov %r10b,0x2b(%rsi) ;*putfield abc
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@33 (line 32)
0x000000010c068690: mov 0x10(%rdx),%r10
0x000000010c068694: mov %r10,0x10(%rsi) ;*putfield min
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@41 (line 33)
0x000000010c068698: mov 0x18(%rdx),%r10
0x000000010c06869c: mov %r10,0x18(%rsi) ;*putfield max
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@49 (line 34)
0x000000010c0686a0: vmovsd 0x20(%rdx),%xmm0
0x000000010c0686a5: vmovsd %xmm0,0x20(%rsi) ;*putfield maxExponent
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@57 (line 35)
0x000000010c0686aa: add $0x10,%rsp
0x000000010c0686ae: pop %rbp
0x000000010c0686af: test %eax,-0x10b86b5(%rip) # 0x000000010afb0000
; {poll_return}
0x000000010c0686b5: retq
0x000000010c0686b6: mov $0xfffffff6,%esi
0x000000010c0686bb: callq 0x000000010c038f20 ; OopMap{off=128}
;*getfield field1
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@6 (line 29)
; {runtime_call}
0x000000010c0686c0: callq 0x000000010a81d5de ;*getfield field1
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@6 (line 29)
; {runtime_call}
0x000000010c0686c5: hlt
0x000000010c0686c6: hlt
0x000000010c0686c7: hlt
0x000000010c0686c8: hlt
0x000000010c0686c9: hlt
0x000000010c0686ca: hlt
0x000000010c0686cb: hlt
0x000000010c0686cc: hlt
0x000000010c0686cd: hlt
0x000000010c0686ce: hlt
0x000000010c0686cf: hlt
0x000000010c0686d0: hlt
0x000000010c0686d1: hlt
0x000000010c0686d2: hlt
0x000000010c0686d3: hlt
0x000000010c0686d4: hlt
0x000000010c0686d5: hlt
0x000000010c0686d6: hlt
0x000000010c0686d7: hlt
0x000000010c0686d8: hlt
0x000000010c0686d9: hlt
0x000000010c0686da: hlt
0x000000010c0686db: hlt
0x000000010c0686dc: hlt
0x000000010c0686dd: hlt
0x000000010c0686de: hlt
0x000000010c0686df: hlt
[Exception Handler]
[Stub Code]
0x000000010c0686e0: jmpq 0x000000010c05f0a0 ; {no_reloc}
[Deopt Handler Code]
0x000000010c0686e5: callq 0x000000010c0686ea
0x000000010c0686ea: subq $0x5,(%rsp)
0x000000010c0686ef: jmpq 0x000000010c038b00 ; {runtime_call}
0x000000010c0686f4: hlt
0x000000010c0686f5: hlt
0x000000010c0686f6: hlt
0x000000010c0686f7: hlt
Decoding compiled method 0x000000010c068ed0:
Code:
[Entry Point]
[Verified Entry Point]
[Constants]
# {method} 'doCopy' '(ILjava/lang/String;)V' in 'com/vyazelenko/blog/copyobject/TestConstructor'
0x000000010c0690a0: callq 0x000000010a81d5de ; {runtime_call}
0x000000010c0690a5: data32 data32 nopw 0x0(%rax,%rax,1)
0x000000010c0690b0: mov %eax,-0x14000(%rsp)
0x000000010c0690b7: push %rbp
0x000000010c0690b8: sub $0x40,%rsp
0x000000010c0690bc: mov (%rsi),%r14d
0x000000010c0690bf: mov 0x8(%rsi),%rbx
0x000000010c0690c3: mov 0x10(%rsi),%ebp
0x000000010c0690c6: mov %rsi,%rdi
0x000000010c0690c9: movabs $0x10a877568,%r10
0x000000010c0690d3: callq *%r10
0x000000010c0690d6: test %rbx,%rbx
0x000000010c0690d9: je 0x000000010c0695f3
0x000000010c0690df: mov 0x8(%rbx),%r10d
0x000000010c0690e3: cmp $0xd75c15c3,%r10d ; {oop('java/lang/String')}
0x000000010c0690ea: jne 0x000000010c069640 ;*iload_2
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@38 (line 28)
0x000000010c0690f0: jmpq 0x000000010c069343
0x000000010c0690f5: data32 data32 nopw 0x0(%rax,%rax,1)
0x000000010c069100: mov %r8d,0xc(%rsp)
0x000000010c069105: mov %rbx,(%rsp)
0x000000010c069109: mov %r14d,0x8(%rsp)
0x000000010c06910e: mov %r10,0x60(%r15)
0x000000010c069112: mov %r9,%rdi
0x000000010c069115: add $0x10,%rdi
0x000000010c069119: mov $0xd7610e71,%r8d ; {oop('com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c06911f: mov 0xb0(%r12,%r8,8),%r11
0x000000010c069127: mov %r11,(%r9)
0x000000010c06912a: prefetchnta 0xc0(%r10)
0x000000010c069132: movl $0xd7610e71,0x8(%r9) ; {oop('com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c06913a: mov %r12d,0xc(%r9)
0x000000010c06913e: mov $0x9,%ecx
0x000000010c069143: xor %rax,%rax
0x000000010c069146: shl $0x3,%rcx
0x000000010c06914a: rep rex.W stos %al,%es:(%rdi) ;*new
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@0 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c06914d: mov %r9,%r10 ;*areturn
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@6 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c069150: movabs $0x7957aa098,%r11 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c06915a: movzwl 0x54(%r11),%r8d
0x000000010c06915f: mov %r8w,0x54(%r9) ;*putfield x
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@114 (line 120)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c069164: movswl 0x52(%r11),%r11d
0x000000010c069169: mov %r11w,0x52(%r9) ;*putfield m10
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@106 (line 119)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c06916e: movabs $0x7957aa098,%r11 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c069178: movswl 0x50(%r11),%r8d
0x000000010c06917d: mov %r8w,0x50(%r9) ;*putfield m9
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@98 (line 118)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c069182: movswl 0x4e(%r11),%r11d
0x000000010c069187: mov %r11w,0x4e(%r9) ;*putfield m8
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@90 (line 117)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c06918c: movabs $0x7957aa098,%r11 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c069196: movswl 0x4c(%r11),%r8d
0x000000010c06919b: mov %r8w,0x4c(%r9) ;*putfield m7
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@82 (line 116)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c0691a0: movswl 0x4a(%r11),%r11d
0x000000010c0691a5: mov %r11w,0x4a(%r9) ;*putfield m6
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@74 (line 115)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c0691aa: movabs $0x7957aa098,%r11 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c0691b4: movswl 0x48(%r11),%r8d
0x000000010c0691b9: mov %r8w,0x48(%r9) ;*putfield m5
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@66 (line 114)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c0691be: movswl 0x46(%r11),%r11d
0x000000010c0691c3: mov %r11w,0x46(%r9) ;*putfield m4
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@58 (line 113)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c0691c8: movabs $0x7957aa098,%r11 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c0691d2: movswl 0x44(%r11),%r8d
0x000000010c0691d7: mov %r8w,0x44(%r9) ;*putfield m3
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@50 (line 112)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c0691dc: movswl 0x42(%r11),%r11d
0x000000010c0691e1: mov %r11w,0x42(%r9) ;*putfield m2
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@42 (line 111)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c0691e6: movabs $0x7957aa098,%r11 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c0691f0: movswl 0x40(%r11),%r8d
0x000000010c0691f5: mov %r8w,0x40(%r9) ;*putfield m1
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@34 (line 110)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c0691fa: mov 0x38(%r11),%r11
0x000000010c0691fe: mov %r11,0x38(%r9) ;*putfield youCanSeeMe
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@26 (line 109)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c069202: movabs $0x7957aa098,%r11 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c06920c: vmovsd 0x30(%r11),%xmm0
0x000000010c069212: vmovsd %xmm0,0x30(%r9) ;*putfield anotherField
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@10 (line 107)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c069218: mov 0x2c(%r11),%r11d
0x000000010c06921c: mov %r11d,0x2c(%r9) ;*putfield field1
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@18 (line 108)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c069220: movabs $0x7957aa098,%r11 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c06922a: movsbl 0x2b(%r11),%r8d
0x000000010c06922f: mov %r8b,0x2b(%r9) ;*putfield abc
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@33 (line 32)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c069233: movzbl 0x2a(%r11),%r11d
0x000000010c069238: mov %r11b,0x2a(%r9) ;*putfield field6
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@25 (line 31)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c06923c: movabs $0x7957aa098,%r11 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c069246: movzwl 0x28(%r11),%r8d
0x000000010c06924b: mov %r8w,0x28(%r9) ;*putfield field2
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@17 (line 30)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c069250: vmovsd 0x20(%r11),%xmm0
0x000000010c069256: vmovsd %xmm0,0x20(%r9) ;*putfield maxExponent
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@57 (line 35)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c06925c: mov 0x18(%r11),%r11
0x000000010c069260: mov %r11,0x18(%r9) ;*putfield max
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@49 (line 34)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c069264: movabs $0x7957aa098,%r11 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c06926e: mov 0x10(%r11),%r11
0x000000010c069272: mov %r11,0x10(%r9) ;*putfield min
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@41 (line 33)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c069276: movabs $0x7957aa098,%r11 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c069280: mov 0xc(%r11),%r11d
0x000000010c069284: mov %r11d,0xc(%r9) ;*putfield field1
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@9 (line 29)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c069288: mov 0xc(%rsp),%r11d
0x000000010c06928d: mov 0x8(%r12,%r11,8),%r8d ; implicit exception: dispatches to 0x000000010c069689
0x000000010c069292: cmp $0xd75de4cc,%r8d ; {oop('java/util/ArrayList')}
0x000000010c069299: jne 0x000000010c0693ad
0x000000010c06929f: lea (%r12,%r11,8),%r9 ;*invokeinterface add
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c0692a3: mov 0x10(%r9),%r11d ;*getfield size
; - java.util.ArrayList::add@2 (line 440)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c0692a7: mov 0x14(%r9),%r8d ;*getfield elementData
; - java.util.ArrayList::ensureCapacityInternal@1 (line 204)
; - java.util.ArrayList::add@7 (line 440)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c0692ab: mov %r11d,%edx
0x000000010c0692ae: inc %edx ;*iadd
; - java.util.ArrayList::add@6 (line 440)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c0692b0: cmp $0xf2aa202d,%r8d ; {oop(a 'java/lang/Object'[0] )}
0x000000010c0692b7: je 0x000000010c0695ac ;*if_acmpne
; - java.util.ArrayList::ensureCapacityInternal@7 (line 204)
; - java.util.ArrayList::add@7 (line 440)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c0692bd: mov %r10,0x18(%rsp)
0x000000010c0692c2: incl 0xc(%r9) ;*putfield modCount
; - java.util.ArrayList::ensureExplicitCapacity@7 (line 212)
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208)
; - java.util.ArrayList::add@7 (line 440)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c0692c6: mov %r9,0x10(%rsp)
0x000000010c0692cb: mov 0xc(%r12,%r8,8),%r10d ;*arraylength
; - java.util.ArrayList::ensureExplicitCapacity@15 (line 215)
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208)
; - java.util.ArrayList::add@7 (line 440)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
; implicit exception: dispatches to 0x000000010c06969d
0x000000010c0692d0: mov %r11d,%ecx
0x000000010c0692d3: sub %r10d,%ecx
0x000000010c0692d6: inc %ecx
0x000000010c0692d8: test %ecx,%ecx
0x000000010c0692da: jg 0x000000010c0695d1 ;*ifle
; - java.util.ArrayList::ensureExplicitCapacity@17 (line 215)
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208)
; - java.util.ArrayList::add@7 (line 440)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c0692e0: mov %r9,%r10 ;*return
; - java.util.ArrayList::ensureExplicitCapacity@25 (line 217)
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208)
; - java.util.ArrayList::add@7 (line 440)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c0692e3: mov %edx,0x10(%r10) ;*putfield size
; - java.util.ArrayList::add@22 (line 441)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c0692e7: mov 0xc(%r12,%r8,8),%r10d ; implicit exception: dispatches to 0x000000010c0696ad
0x000000010c0692ec: cmp %r10d,%r11d
0x000000010c0692ef: jae 0x000000010c069394
0x000000010c0692f5: mov 0x8(%r12,%r8,8),%r10d
0x000000010c0692fa: cmp $0xd75d45e9,%r10d ; {oop('java/lang/Object'[])}
0x000000010c069301: jne 0x000000010c0693c1 ;*aastore
; - java.util.ArrayList::add@26 (line 441)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c069307: lea (%r12,%r8,8),%r10 ;*getfield elementData
; - java.util.ArrayList::add@11 (line 441)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c06930b: lea 0x10(%r10,%r11,4),%r10 ;*aastore
; - java.util.ArrayList::add@26 (line 441)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c069310: mov 0x8(%rsp),%r14d
0x000000010c069315: inc %r14d ;*iinc
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@55 (line 28)
0x000000010c069318: mov %r10,%r11
0x000000010c06931b: mov 0x18(%rsp),%r8
0x000000010c069320: shr $0x3,%r8
0x000000010c069324: mov %r8d,(%r10) ;*goto
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@58 (line 28)
0x000000010c069327: shr $0x9,%r11
0x000000010c06932b: movabs $0x10bae9000,%r10
0x000000010c069335: mov %r12b,(%r10,%r11,1) ; OopMap{[0]=Oop off=665}
;*goto
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@58 (line 28)
0x000000010c069339: test %eax,-0x10b933f(%rip) # 0x000000010afb0000
;*goto
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@58 (line 28)
; {poll}
0x000000010c06933f: mov (%rsp),%rbx ;*iload_2
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@38 (line 28)
0x000000010c069343: cmp %ebp,%r14d
0x000000010c069346: jge 0x000000010c0693dd ;*if_icmpge
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@40 (line 28)
0x000000010c06934c: mov 0x60(%r15),%r9
0x000000010c069350: movabs $0x7955afd68,%r10 ; {oop(a 'java/lang/Class' = 'com/vyazelenko/blog/copyobject/TestConstructor')}
0x000000010c06935a: mov 0x70(%r10),%r8d ;*getstatic results
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@43 (line 29)
0x000000010c06935e: mov %r9,%r10
0x000000010c069361: add $0x58,%r10
0x000000010c069365: cmp 0x70(%r15),%r10
0x000000010c069369: jb 0x000000010c069100
0x000000010c06936f: mov %r8d,0xc(%rsp)
0x000000010c069374: mov %rbx,(%rsp)
0x000000010c069378: mov %r14d,0x8(%rsp) ;*synchronization entry
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@-1 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c06937d: movabs $0x6bb087388,%rsi ; {oop('com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c069387: callq 0x000000010c05efe0 ; OopMap{[0]=Oop [12]=NarrowOop off=748}
;*new ; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@0 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
; {runtime_call}
0x000000010c06938c: mov %rax,%r9
0x000000010c06938f: jmpq 0x000000010c06914d ;*aastore
; - java.util.ArrayList::add@26 (line 441)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c069394: mov $0xffffffe4,%esi
0x000000010c069399: mov %r8d,0xc(%rsp)
0x000000010c06939e: mov %r11d,0x10(%rsp)
0x000000010c0693a3: callq 0x000000010c038f20 ; OopMap{[0]=Oop [12]=NarrowOop [24]=Oop off=776}
;*aastore
; - java.util.ArrayList::add@26 (line 441)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
; {runtime_call}
0x000000010c0693a8: callq 0x000000010a81d5de ; {runtime_call}
0x000000010c0693ad: mov $0xffffffde,%esi
0x000000010c0693b2: mov %r10,0x10(%rsp)
0x000000010c0693b7: callq 0x000000010c038f20 ; OopMap{[0]=Oop [12]=NarrowOop [16]=Oop off=796}
;*invokeinterface add
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
; {runtime_call}
0x000000010c0693bc: callq 0x000000010a81d5de ;*aastore
; - java.util.ArrayList::add@26 (line 441)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
; {runtime_call}
0x000000010c0693c1: mov $0xffffffd6,%esi
0x000000010c0693c6: mov %r8d,0xc(%rsp)
0x000000010c0693cb: mov %r11d,0x10(%rsp)
0x000000010c0693d0: data32 xchg %ax,%ax
0x000000010c0693d3: callq 0x000000010c038f20 ; OopMap{[0]=Oop [12]=NarrowOop [24]=Oop off=824}
;*aastore
; - java.util.ArrayList::add@26 (line 441)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
; {runtime_call}
0x000000010c0693d8: callq 0x000000010a81d5de ;*aastore
; - java.util.ArrayList::add@26 (line 441)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
; {runtime_call}
0x000000010c0693dd: test %rbx,%rbx
0x000000010c0693e0: jne 0x000000010c069681
0x000000010c0693e6: movabs $0x795503338,%r9 ; {oop("null")}
0x000000010c0693f0: mov 0xc(%r9),%r10d
0x000000010c0693f4: mov 0xc(%r12,%r10,8),%r10d
0x000000010c0693f9: mov %r10d,%r8d
0x000000010c0693fc: add $0x4,%r8d
0x000000010c069400: movabs $0x795500d10,%r11 ; {oop(a 'java/lang/Class' = 'java/lang/System')}
0x000000010c06940a: mov 0x74(%r11),%ecx ;*getstatic out
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@61 (line 31)
0x000000010c06940e: mov %ecx,0x18(%rsp)
0x000000010c069412: test %r8d,%r8d
0x000000010c069415: jl 0x000000010c06966d
0x000000010c06941b: mov %r10d,%edx
0x000000010c06941e: add $0xe,%edx
0x000000010c069421: test %edx,%edx
0x000000010c069423: jl 0x000000010c06966d
0x000000010c069429: movabs $0x795881158,%rbp ; {oop([C)}
0x000000010c069433: movabs $0x795881158,%rcx ; {oop([C)}
0x000000010c06943d: add $0x10,%rcx
0x000000010c069441: cmp $0x80000,%edx
0x000000010c069447: ja 0x000000010c069618
0x000000010c06944d: mov 0x60(%r15),%r11
0x000000010c069451: movslq %r10d,%r10
0x000000010c069454: shl %r10
0x000000010c069457: add $0x33,%r10
0x000000010c06945b: and $0xfffffffffffffff8,%r10
0x000000010c06945f: mov %r11,%r8
0x000000010c069462: add %r10,%r8
0x000000010c069465: cmp 0x70(%r15),%r8
0x000000010c069469: jae 0x000000010c069618
0x000000010c06946f: mov %r8,0x60(%r15)
0x000000010c069473: prefetchnta 0xc0(%r8)
0x000000010c06947b: movq $0x1,(%r11)
0x000000010c069482: prefetchnta 0x100(%r8)
0x000000010c06948a: movl $0xd75c00c5,0x8(%r11) ; {oop({type array char})}
0x000000010c069492: mov %edx,0xc(%r11)
0x000000010c069496: prefetchnta 0x140(%r8)
0x000000010c06949e: prefetchnta 0x180(%r8)
0x000000010c0694a6: mov %rbx,(%rsp)
0x000000010c0694aa: mov %r9,0x8(%rsp)
0x000000010c0694af: mov %rcx,0x10(%rsp)
0x000000010c0694b4: mov $0x3c,%r8d
0x000000010c0694ba: mov %r8w,0x10(%r11)
0x000000010c0694bf: mov $0x3c,%r10d
0x000000010c0694c5: mov %r10w,0x12(%r11)
0x000000010c0694ca: mov %r8w,0x14(%r11)
0x000000010c0694cf: mov $0x20,%r10d
0x000000010c0694d5: mov %r10w,0x16(%r11)
0x000000010c0694da: mov 0x8(%rsp),%r10
0x000000010c0694df: mov 0xc(%r10),%r10d
0x000000010c0694e3: mov %r11,%rsi
0x000000010c0694e6: add $0x18,%rsi
0x000000010c0694ea: mov %r11,0x8(%rsp)
0x000000010c0694ef: mov 0xc(%r12,%r10,8),%r8d
0x000000010c0694f4: lea (%r12,%r10,8),%r11
0x000000010c0694f8: lea 0x10(%r12,%r10,8),%rdi
0x000000010c0694fd: movslq %r8d,%r10
0x000000010c069500: mov %r10,%rbx
0x000000010c069503: mov %r10,%rdx
0x000000010c069506: movabs $0x10c041e00,%r10
0x000000010c069510: callq *%r10
0x000000010c069513: mov 0x8(%rsp),%r10
0x000000010c069518: lea 0x18(%r10,%rbx,2),%rsi
0x000000010c06951d: mov 0x10(%rsp),%rdi
0x000000010c069522: mov $0xa,%edx
0x000000010c069527: movabs $0x10c041e00,%r10
0x000000010c069531: callq *%r10
0x000000010c069534: mov 0x60(%r15),%r10
0x000000010c069538: mov %r10,%r11
0x000000010c06953b: add $0x18,%r11
0x000000010c06953f: cmp 0x70(%r15),%r11
0x000000010c069543: jae 0x000000010c0695fa
0x000000010c069549: mov %r11,0x60(%r15)
0x000000010c06954d: prefetchnta 0xc0(%r11)
0x000000010c069555: mov $0xd75c15c3,%r11d ; {oop('java/lang/String')}
0x000000010c06955b: mov 0xb0(%r12,%r11,8),%r11
0x000000010c069563: mov %r11,(%r10)
0x000000010c069566: movl $0xd75c15c3,0x8(%r10) ; {oop('java/lang/String')}
0x000000010c06956e: mov %r12d,0xc(%r10)
0x000000010c069572: mov %r12,0x10(%r10)
0x000000010c069576: mov 0x8(%rsp),%r11
0x000000010c06957b: shr $0x3,%r11
0x000000010c06957f: mov %r11d,0xc(%r10)
0x000000010c069583: mov 0x18(%rsp),%r8d
0x000000010c069588: test %r8d,%r8d
0x000000010c06958b: je 0x000000010c069659 ;*invokevirtual println
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@88 (line 31)
0x000000010c069591: lea (%r12,%r8,8),%rsi ;*getstatic out
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@61 (line 31)
0x000000010c069595: mov %r10,%rdx
0x000000010c069598: data32 xchg %ax,%ax
0x000000010c06959b: callq 0x000000010c037b60 ; OopMap{off=1280}
;*invokevirtual println
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@88 (line 31)
; {optimized virtual_call}
0x000000010c0695a0: add $0x40,%rsp
0x000000010c0695a4: pop %rbp
0x000000010c0695a5: test %eax,-0x10b95ab(%rip) # 0x000000010afb0000
; {poll_return}
0x000000010c0695ab: retq ;*synchronization entry
; - java.util.ArrayList::ensureCapacityInternal@-1 (line 204)
; - java.util.ArrayList::add@7 (line 440)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c0695ac: mov $0xffffffad,%esi
0x000000010c0695b1: mov %r10,0x18(%rsp)
0x000000010c0695b6: mov %r9,0x20(%rsp)
0x000000010c0695bb: mov %edx,0xc(%rsp)
0x000000010c0695bf: mov %r8d,0x28(%rsp)
0x000000010c0695c4: data32 xchg %ax,%ax
0x000000010c0695c7: callq 0x000000010c038f20 ; OopMap{[0]=Oop [24]=Oop [32]=Oop [40]=NarrowOop off=1324}
;*if_acmpne
; - java.util.ArrayList::ensureCapacityInternal@7 (line 204)
; - java.util.ArrayList::add@7 (line 440)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
; {runtime_call}
0x000000010c0695cc: callq 0x000000010a81d5de ;*synchronization entry
; - java.util.ArrayList::ensureExplicitCapacity@-1 (line 212)
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208)
; - java.util.ArrayList::add@7 (line 440)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
; {runtime_call}
0x000000010c0695d1: mov %r9,%rsi
0x000000010c0695d4: data32 xchg %ax,%ax
0x000000010c0695d7: callq 0x000000010c037b60 ; OopMap{[0]=Oop [16]=Oop [24]=Oop off=1340}
;*invokespecial grow
; - java.util.ArrayList::ensureExplicitCapacity@22 (line 216)
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208)
; - java.util.ArrayList::add@7 (line 440)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
; {optimized virtual_call}
0x000000010c0695dc: mov 0x10(%rsp),%r10
0x000000010c0695e1: mov 0x10(%r10),%r11d ;*getfield size
; - java.util.ArrayList::add@16 (line 441)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c0695e5: mov 0x14(%r10),%r8d ;*getfield elementData
; - java.util.ArrayList::add@11 (line 441)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c0695e9: mov %r11d,%edx
0x000000010c0695ec: inc %edx ;*iadd
; - java.util.ArrayList::add@21 (line 441)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c0695ee: jmpq 0x000000010c0692e3
0x000000010c0695f3: xor %ebx,%ebx
0x000000010c0695f5: jmpq 0x000000010c069343
0x000000010c0695fa: movabs $0x6bae0ae18,%rsi ; {oop('java/lang/String')}
0x000000010c069604: mov (%rsp),%rbp
0x000000010c069608: data32 xchg %ax,%ax
0x000000010c06960b: callq 0x000000010c05efe0 ; OopMap{rbp=Oop [8]=Oop [24]=NarrowOop off=1392}
;*new ; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@64 (line 31)
; {runtime_call}
0x000000010c069610: mov %rax,%r10
0x000000010c069613: jmpq 0x000000010c069576
0x000000010c069618: mov %rcx,0x10(%rsp)
0x000000010c06961d: mov %r9,0x8(%rsp)
0x000000010c069622: mov %rbx,(%rsp)
0x000000010c069626: movabs $0x6bae00628,%rsi ; {oop({type array char})}
0x000000010c069630: data32 xchg %ax,%ax
0x000000010c069633: callq 0x000000010c05ef20 ; OopMap{rbp=Oop [0]=Oop [8]=Oop [16]=Derived_oop_rbp [24]=NarrowOop off=1432}
;*new ; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@64 (line 31)
; {runtime_call}
0x000000010c069638: mov %rax,%r11
0x000000010c06963b: jmpq 0x000000010c0694b4
0x000000010c069640: mov $0xffffff9d,%esi
0x000000010c069645: mov %rbx,(%rsp)
0x000000010c069649: mov %r14d,0x8(%rsp)
0x000000010c06964e: nop
0x000000010c06964f: callq 0x000000010c038f20 ; OopMap{[0]=Oop off=1460}
;*iload_2
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@38 (line 28)
; {runtime_call}
0x000000010c069654: callq 0x000000010a81d5de ;*iload_2
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@38 (line 28)
; {runtime_call}
0x000000010c069659: mov $0xfffffff6,%esi
0x000000010c06965e: mov %r10,%rbp
0x000000010c069661: xchg %ax,%ax
0x000000010c069663: callq 0x000000010c038f20 ; OopMap{rbp=Oop off=1480}
;*invokevirtual println
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@88 (line 31)
; {runtime_call}
0x000000010c069668: callq 0x000000010a81d5de ;*invokevirtual println
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@88 (line 31)
; {runtime_call}
0x000000010c06966d: mov $0xffffffcc,%esi
0x000000010c069672: mov %rbx,%rbp
0x000000010c069675: xchg %ax,%ax
0x000000010c069677: callq 0x000000010c038f20 ; OopMap{rbp=Oop [24]=NarrowOop off=1500}
;*new ; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@64 (line 31)
; {runtime_call}
0x000000010c06967c: callq 0x000000010a81d5de ; {runtime_call}
0x000000010c069681: mov %rbx,%r9
0x000000010c069684: jmpq 0x000000010c0693f0
0x000000010c069689: mov $0xfffffff6,%esi
0x000000010c06968e: mov %r10,%rbp
0x000000010c069691: xchg %ax,%ax
0x000000010c069693: callq 0x000000010c038f20 ; OopMap{rbp=Oop off=1528}
;*invokeinterface add
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
; {runtime_call}
0x000000010c069698: callq 0x000000010a81d5de ; {runtime_call}
0x000000010c06969d: mov $0xfffffff6,%esi
0x000000010c0696a2: nop
0x000000010c0696a3: callq 0x000000010c038f20 ; OopMap{off=1544}
;*arraylength
; - java.util.ArrayList::ensureExplicitCapacity@15 (line 215)
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208)
; - java.util.ArrayList::add@7 (line 440)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
; {runtime_call}
0x000000010c0696a8: callq 0x000000010a81d5de ;*aastore
; - java.util.ArrayList::add@26 (line 441)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
; {runtime_call}
0x000000010c0696ad: mov $0xfffffff6,%esi
0x000000010c0696b2: mov %r11d,%ebp
0x000000010c0696b5: xchg %ax,%ax
0x000000010c0696b7: callq 0x000000010c038f20 ; OopMap{[24]=Oop off=1564}
;*aastore
; - java.util.ArrayList::add@26 (line 441)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
; {runtime_call}
0x000000010c0696bc: callq 0x000000010a81d5de ;*aastore
; - java.util.ArrayList::add@26 (line 441)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
; {runtime_call}
0x000000010c0696c1: jmp 0x000000010c0696c3
0x000000010c0696c3: mov %rax,%rsi
0x000000010c0696c6: jmp 0x000000010c0696d5 ;*invokespecial grow
; - java.util.ArrayList::ensureExplicitCapacity@22 (line 216)
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208)
; - java.util.ArrayList::add@7 (line 440)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c0696c8: mov %rax,%rsi
0x000000010c0696cb: jmp 0x000000010c0696d5 ;*invokevirtual println
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@88 (line 31)
0x000000010c0696cd: mov %rax,%rsi
0x000000010c0696d0: jmp 0x000000010c0696d5
0x000000010c0696d2: mov %rax,%rsi ;*new ; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@0 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c0696d5: add $0x40,%rsp
0x000000010c0696d9: pop %rbp
0x000000010c0696da: jmpq 0x000000010c061e20 ;*iload_2
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@38 (line 28)
; {runtime_call}
0x000000010c0696df: hlt
[Stub Code]
0x000000010c0696e0: movabs $0x0,%rbx ; {no_reloc}
0x000000010c0696ea: jmpq 0x000000010c0696ea ; {runtime_call}
0x000000010c0696ef: movabs $0x0,%rbx ; {static_stub}
0x000000010c0696f9: jmpq 0x000000010c0696f9 ; {runtime_call}
[Exception Handler]
0x000000010c0696fe: jmpq 0x000000010c05f0a0 ; {runtime_call}
[Deopt Handler Code]
0x000000010c069703: callq 0x000000010c069708
0x000000010c069708: subq $0x5,(%rsp)
0x000000010c06970d: jmpq 0x000000010c038b00 ; {runtime_call}
0x000000010c069712: hlt
0x000000010c069713: hlt
0x000000010c069714: hlt
0x000000010c069715: hlt
0x000000010c069716: hlt
0x000000010c069717: hlt
<<< warmup completed
Decoding compiled method 0x000000010c06a010:
Code:
[Entry Point]
[Verified Entry Point]
[Constants]
# {method} 'doCopy' '(ILjava/lang/String;)V' in 'com/vyazelenko/blog/copyobject/TestConstructor'
# parm0: rsi = int
# parm1: rdx:rdx = 'java/lang/String'
# [sp+0x50] (sp of caller)
0x000000010c06a220: mov %eax,-0x14000(%rsp)
0x000000010c06a227: push %rbp
0x000000010c06a228: sub $0x40,%rsp ;*synchronization entry
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@-1 (line 26)
0x000000010c06a22c: mov %rdx,0x8(%rsp)
0x000000010c06a231: mov %esi,(%rsp)
0x000000010c06a234: mov 0x60(%r15),%rbp
0x000000010c06a238: mov %rbp,%r10
0x000000010c06a23b: add $0x18,%r10
0x000000010c06a23f: cmp 0x70(%r15),%r10
0x000000010c06a243: jae 0x000000010c06a9dc
0x000000010c06a249: mov %r10,0x60(%r15)
0x000000010c06a24d: prefetchnta 0xc0(%r10)
0x000000010c06a255: mov $0xd75de4cc,%r11d ; {oop('java/util/ArrayList')}
0x000000010c06a25b: mov 0xb0(%r12,%r11,8),%r10
0x000000010c06a263: mov %r10,0x0(%rbp)
0x000000010c06a267: movl $0xd75de4cc,0x8(%rbp) ; {oop('java/util/ArrayList')}
0x000000010c06a26e: mov %r12d,0xc(%rbp)
0x000000010c06a272: mov %r12,0x10(%rbp) ;*new ; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@0 (line 26)
0x000000010c06a276: mov (%rsp),%r10d
0x000000010c06a27a: test %r10d,%r10d
0x000000010c06a27d: jl 0x000000010c06aaa1 ;*ifge
; - java.util.ArrayList::<init>@5 (line 141)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@5 (line 26)
0x000000010c06a283: cmp $0x40000,%r10d
0x000000010c06a28a: ja 0x000000010c06a9f4
0x000000010c06a290: mov 0x60(%r15),%r8
0x000000010c06a294: movslq %r10d,%rcx
0x000000010c06a297: shl $0x2,%rcx
0x000000010c06a29b: add $0x17,%rcx
0x000000010c06a29f: mov %rcx,%r10
0x000000010c06a2a2: and $0xfffffffffffffff8,%r10
0x000000010c06a2a6: mov %r8,%r11
0x000000010c06a2a9: add %r10,%r11
0x000000010c06a2ac: cmp 0x70(%r15),%r11
0x000000010c06a2b0: jae 0x000000010c06a9f4
0x000000010c06a2b6: mov %r11,0x60(%r15)
0x000000010c06a2ba: prefetchnta 0xc0(%r11)
0x000000010c06a2c2: movq $0x1,(%r8)
0x000000010c06a2c9: prefetchnta 0x100(%r11)
0x000000010c06a2d1: movl $0xd75d45e9,0x8(%r8) ; {oop('java/lang/Object'[])}
0x000000010c06a2d9: mov (%rsp),%r10d
0x000000010c06a2dd: mov %r10d,0xc(%r8)
0x000000010c06a2e1: prefetchnta 0x140(%r11)
0x000000010c06a2e9: mov %r8,%rdi
0x000000010c06a2ec: add $0x10,%rdi
0x000000010c06a2f0: prefetchnta 0x180(%r11)
0x000000010c06a2f8: shr $0x3,%rcx
0x000000010c06a2fc: add $0xfffffffffffffffe,%rcx
0x000000010c06a300: xor %rax,%rax
0x000000010c06a303: shl $0x3,%rcx
0x000000010c06a307: rep rex.W stos %al,%es:(%rdi) ;*anewarray
; - java.util.ArrayList::<init>@37 (line 144)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@5 (line 26)
0x000000010c06a30a: mov 0x8(%rsp),%rcx
0x000000010c06a30f: test %rcx,%rcx
0x000000010c06a312: jne 0x000000010c06aac1
0x000000010c06a318: movabs $0x795503338,%rbx ; {oop("null")}
0x000000010c06a322: mov 0xc(%rbx),%r11d
0x000000010c06a326: mov 0xc(%r12,%r11,8),%r9d
0x000000010c06a32b: mov %rbp,%r10
0x000000010c06a32e: mov %r9d,%edx
0x000000010c06a331: add $0x9,%edx
0x000000010c06a334: shr $0x9,%r10
0x000000010c06a338: mov %r8,%r11
0x000000010c06a33b: shr $0x3,%r11
0x000000010c06a33f: mov %r11d,0x14(%rbp) ;*putfield elementData
; - java.util.ArrayList::<init>@40 (line 144)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@5 (line 26)
0x000000010c06a343: mov %rbp,%r11
0x000000010c06a346: shr $0x3,%r11 ;*putstatic results
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@8 (line 26)
0x000000010c06a34a: movabs $0x10bae9000,%r8
0x000000010c06a354: mov %r12b,(%r8,%r10,1) ;*putfield elementData
; - java.util.ArrayList::<init>@40 (line 144)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@5 (line 26)
0x000000010c06a358: movabs $0x795500d10,%r10 ; {oop(a 'java/lang/Class' = 'java/lang/System')}
0x000000010c06a362: mov 0x74(%r10),%ebp ;*getstatic out
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@11 (line 27)
0x000000010c06a366: movabs $0x7955afd68,%r10 ; {oop(a 'java/lang/Class' = 'com/vyazelenko/blog/copyobject/TestConstructor')}
0x000000010c06a370: mov %r11d,0x70(%r10)
0x000000010c06a374: shr $0x9,%r10
0x000000010c06a378: movabs $0x10bae9000,%r11
0x000000010c06a382: mov %r12b,(%r11,%r10,1) ;*putstatic results
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@8 (line 26)
0x000000010c06a386: test %edx,%edx
0x000000010c06a388: jl 0x000000010c06aab1
0x000000010c06a38e: cmp $0x80000,%edx
0x000000010c06a394: ja 0x000000010c06aa28
0x000000010c06a39a: mov 0x60(%r15),%r8
0x000000010c06a39e: movslq %r9d,%r10
0x000000010c06a3a1: shl %r10
0x000000010c06a3a4: add $0x29,%r10
0x000000010c06a3a8: and $0xfffffffffffffff8,%r10
0x000000010c06a3ac: mov %r8,%r11
0x000000010c06a3af: add %r10,%r11
0x000000010c06a3b2: cmp 0x70(%r15),%r11
0x000000010c06a3b6: jae 0x000000010c06aa28
0x000000010c06a3bc: mov %r11,0x60(%r15)
0x000000010c06a3c0: prefetchnta 0xc0(%r11)
0x000000010c06a3c8: movq $0x1,(%r8)
0x000000010c06a3cf: prefetchnta 0x100(%r11)
0x000000010c06a3d7: movl $0xd75c00c5,0x8(%r8) ; {oop({type array char})}
0x000000010c06a3df: mov %edx,0xc(%r8)
0x000000010c06a3e3: prefetchnta 0x140(%r11)
0x000000010c06a3eb: prefetchnta 0x180(%r11)
0x000000010c06a3f3: mov %rcx,0x20(%rsp)
0x000000010c06a3f8: mov %rbx,0x8(%rsp)
0x000000010c06a3fd: mov %r8,%rbx
0x000000010c06a400: add $0x22,%rbx
0x000000010c06a404: mov %r8,%rsi
0x000000010c06a407: add $0x10,%rsi
0x000000010c06a40b: mov %r8,0x10(%rsp)
0x000000010c06a410: movabs $0x79579c500,%rdi ; {oop([C)}
0x000000010c06a41a: add $0x10,%rdi
0x000000010c06a41e: mov $0x9,%edx
0x000000010c06a423: movabs $0x10c041e00,%r10
0x000000010c06a42d: callq *%r10
0x000000010c06a430: mov 0x8(%rsp),%r10
0x000000010c06a435: mov 0xc(%r10),%r10d
0x000000010c06a439: mov 0xc(%r12,%r10,8),%r8d
0x000000010c06a43e: lea (%r12,%r10,8),%r11
0x000000010c06a442: lea 0x10(%r12,%r10,8),%rdi
0x000000010c06a447: movslq %r8d,%rdx
0x000000010c06a44a: mov %rbx,%rsi
0x000000010c06a44d: movabs $0x10c041e00,%r10
0x000000010c06a457: callq *%r10
0x000000010c06a45a: mov 0x60(%r15),%rdx
0x000000010c06a45e: mov %rdx,%r10
0x000000010c06a461: add $0x18,%r10
0x000000010c06a465: cmp 0x70(%r15),%r10
0x000000010c06a469: jae 0x000000010c06aa10
0x000000010c06a46f: mov %r10,0x60(%r15)
0x000000010c06a473: prefetchnta 0xc0(%r10)
0x000000010c06a47b: mov $0xd75c15c3,%r10d ; {oop('java/lang/String')}
0x000000010c06a481: mov 0xb0(%r12,%r10,8),%r10
0x000000010c06a489: mov %r10,(%rdx)
0x000000010c06a48c: movl $0xd75c15c3,0x8(%rdx) ; {oop('java/lang/String')}
0x000000010c06a493: mov %r12d,0xc(%rdx)
0x000000010c06a497: mov %r12,0x10(%rdx)
0x000000010c06a49b: mov 0x10(%rsp),%r10
0x000000010c06a4a0: mov %r10,%r11
0x000000010c06a4a3: shr $0x3,%r11
0x000000010c06a4a7: mov %r11d,0xc(%rdx)
0x000000010c06a4ab: test %ebp,%ebp
0x000000010c06a4ad: je 0x000000010c06aa8c ;*invokevirtual println
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@33 (line 27)
0x000000010c06a4b3: lea (%r12,%rbp,8),%rsi
0x000000010c06a4b7: callq 0x000000010c037b60 ; OopMap{[32]=Oop off=668}
;*invokevirtual println
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@33 (line 27)
; {optimized virtual_call}
0x000000010c06a4bc: mov (%rsp),%r9d
0x000000010c06a4c0: test %r9d,%r9d
0x000000010c06a4c3: jle 0x000000010c06aac9 ;*if_icmpge
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@40 (line 28)
0x000000010c06a4c9: movabs $0x795503338,%rbx ; {oop("null")}
0x000000010c06a4d3: xor %r11d,%r11d
0x000000010c06a4d6: jmpq 0x000000010c06a72b
0x000000010c06a4db: nopl 0x0(%rax,%rax,1)
0x000000010c06a4e0: mov %r10d,0x10(%rsp)
0x000000010c06a4e5: mov %r11d,0x4(%rsp)
0x000000010c06a4ea: mov %rbx,0x8(%rsp)
0x000000010c06a4ef: mov %r9d,(%rsp)
0x000000010c06a4f3: mov %rcx,0x60(%r15)
0x000000010c06a4f7: mov %r8,%rdi
0x000000010c06a4fa: add $0x10,%rdi
0x000000010c06a4fe: mov $0xd7610e71,%r10d ; {oop('com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c06a504: mov 0xb0(%r12,%r10,8),%r10
0x000000010c06a50c: mov %r10,(%r8)
0x000000010c06a50f: prefetchnta 0xc0(%rcx)
0x000000010c06a516: movl $0xd7610e71,0x8(%r8) ; {oop('com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c06a51e: mov %r12d,0xc(%r8)
0x000000010c06a522: mov $0x9,%ecx
0x000000010c06a527: xor %rax,%rax
0x000000010c06a52a: shl $0x3,%rcx
0x000000010c06a52e: rep rex.W stos %al,%es:(%rdi) ;*new
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@0 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c06a531: mov %r8,%rbp ;*areturn
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@6 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c06a534: movabs $0x7957aa098,%r10 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c06a53e: movzwl 0x54(%r10),%r11d
0x000000010c06a543: mov %r11w,0x54(%r8) ;*putfield x
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@114 (line 120)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c06a548: movswl 0x52(%r10),%r10d
0x000000010c06a54d: mov %r10w,0x52(%r8) ;*putfield m10
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@106 (line 119)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c06a552: movabs $0x7957aa098,%r10 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c06a55c: movswl 0x50(%r10),%r11d
0x000000010c06a561: mov %r11w,0x50(%r8) ;*putfield m9
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@98 (line 118)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c06a566: movswl 0x4e(%r10),%r10d
0x000000010c06a56b: mov %r10w,0x4e(%r8) ;*putfield m8
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@90 (line 117)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c06a570: movabs $0x7957aa098,%r10 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c06a57a: movswl 0x4c(%r10),%r11d
0x000000010c06a57f: mov %r11w,0x4c(%r8) ;*putfield m7
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@82 (line 116)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c06a584: movswl 0x4a(%r10),%r10d
0x000000010c06a589: mov %r10w,0x4a(%r8) ;*putfield m6
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@74 (line 115)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c06a58e: movabs $0x7957aa098,%r10 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c06a598: movswl 0x48(%r10),%r11d
0x000000010c06a59d: mov %r11w,0x48(%r8) ;*putfield m5
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@66 (line 114)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c06a5a2: movswl 0x46(%r10),%r10d
0x000000010c06a5a7: mov %r10w,0x46(%r8) ;*putfield m4
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@58 (line 113)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c06a5ac: movabs $0x7957aa098,%r10 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c06a5b6: movswl 0x44(%r10),%r11d
0x000000010c06a5bb: mov %r11w,0x44(%r8) ;*putfield m3
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@50 (line 112)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c06a5c0: movswl 0x42(%r10),%r10d
0x000000010c06a5c5: mov %r10w,0x42(%r8) ;*putfield m2
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@42 (line 111)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c06a5ca: movabs $0x7957aa098,%r10 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c06a5d4: movswl 0x40(%r10),%r11d
0x000000010c06a5d9: mov %r11w,0x40(%r8) ;*putfield m1
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@34 (line 110)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c06a5de: mov 0x38(%r10),%r10
0x000000010c06a5e2: mov %r10,0x38(%r8) ;*putfield youCanSeeMe
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@26 (line 109)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c06a5e6: movabs $0x7957aa098,%r10 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c06a5f0: vmovsd 0x30(%r10),%xmm0
0x000000010c06a5f6: vmovsd %xmm0,0x30(%r8) ;*putfield anotherField
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@10 (line 107)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c06a5fc: mov 0x2c(%r10),%r10d
0x000000010c06a600: mov %r10d,0x2c(%r8) ;*putfield field1
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@18 (line 108)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c06a604: movabs $0x7957aa098,%r10 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c06a60e: movsbl 0x2b(%r10),%r11d
0x000000010c06a613: mov %r11b,0x2b(%r8) ;*putfield abc
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@33 (line 32)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c06a617: movzbl 0x2a(%r10),%r10d
0x000000010c06a61c: mov %r10b,0x2a(%r8) ;*putfield field6
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@25 (line 31)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c06a620: movabs $0x7957aa098,%r10 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c06a62a: movzwl 0x28(%r10),%r11d
0x000000010c06a62f: mov %r11w,0x28(%r8) ;*putfield field2
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@17 (line 30)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c06a634: vmovsd 0x20(%r10),%xmm0
0x000000010c06a63a: vmovsd %xmm0,0x20(%r8) ;*putfield maxExponent
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@57 (line 35)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c06a640: mov 0x18(%r10),%r10
0x000000010c06a644: mov %r10,0x18(%r8) ;*putfield max
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@49 (line 34)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c06a648: movabs $0x7957aa098,%r10 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c06a652: mov 0x10(%r10),%r10
0x000000010c06a656: mov %r10,0x10(%r8) ;*putfield min
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@41 (line 33)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c06a65a: movabs $0x7957aa098,%r10 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c06a664: mov 0xc(%r10),%r10d
0x000000010c06a668: mov %r10d,0xc(%r8) ;*putfield field1
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@9 (line 29)
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18)
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c06a66c: mov 0x10(%rsp),%r10d
0x000000010c06a671: mov 0x8(%r12,%r10,8),%r11d ; implicit exception: dispatches to 0x000000010c06ab07
0x000000010c06a676: cmp $0xd75de4cc,%r11d ; {oop('java/util/ArrayList')}
0x000000010c06a67d: jne 0x000000010c06a791
0x000000010c06a683: shl $0x3,%r10 ;*invokeinterface add
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c06a687: mov 0x14(%r10),%r8d ;*getfield elementData
; - java.util.ArrayList::ensureCapacityInternal@1 (line 204)
; - java.util.ArrayList::add@7 (line 440)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c06a68b: mov 0x10(%r10),%r11d ;*getfield size
; - java.util.ArrayList::add@2 (line 440)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c06a68f: mov %r11d,%edx
0x000000010c06a692: inc %edx ;*iadd
; - java.util.ArrayList::add@6 (line 440)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c06a694: cmp $0xf2aa202d,%r8d ; {oop(a 'java/lang/Object'[0] )}
0x000000010c06a69b: je 0x000000010c06a7bd ;*if_acmpne
; - java.util.ArrayList::ensureCapacityInternal@7 (line 204)
; - java.util.ArrayList::add@7 (line 440)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c06a6a1: incl 0xc(%r10) ;*putfield modCount
; - java.util.ArrayList::ensureExplicitCapacity@7 (line 212)
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208)
; - java.util.ArrayList::add@7 (line 440)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c06a6a5: mov %r10,0x10(%rsp)
0x000000010c06a6aa: mov 0xc(%r12,%r8,8),%r10d ;*arraylength
; - java.util.ArrayList::ensureExplicitCapacity@15 (line 215)
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208)
; - java.util.ArrayList::add@7 (line 440)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
; implicit exception: dispatches to 0x000000010c06ab19
0x000000010c06a6af: mov %r11d,%ecx
0x000000010c06a6b2: sub %r10d,%ecx
0x000000010c06a6b5: inc %ecx
0x000000010c06a6b7: test %ecx,%ecx
0x000000010c06a6b9: jg 0x000000010c06a7dd ;*ifle
; - java.util.ArrayList::ensureExplicitCapacity@17 (line 215)
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208)
; - java.util.ArrayList::add@7 (line 440)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c06a6bf: mov 0x10(%rsp),%r10
0x000000010c06a6c4: mov %edx,0x10(%r10) ;*return
; - java.util.ArrayList::ensureExplicitCapacity@25 (line 217)
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208)
; - java.util.ArrayList::add@7 (line 440)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c06a6c8: mov 0xc(%r12,%r8,8),%r10d
0x000000010c06a6cd: cmp %r10d,%r11d
0x000000010c06a6d0: jae 0x000000010c06a778
0x000000010c06a6d6: mov 0x8(%r12,%r8,8),%r10d
0x000000010c06a6db: cmp $0xd75d45e9,%r10d ; {oop('java/lang/Object'[])}
0x000000010c06a6e2: jne 0x000000010c06a7a1
0x000000010c06a6e8: mov %rbp,%r10
0x000000010c06a6eb: shr $0x3,%r10 ;*aastore
; - java.util.ArrayList::add@26 (line 441)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c06a6ef: shl $0x3,%r8 ;*getfield elementData
; - java.util.ArrayList::add@11 (line 441)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c06a6f3: lea 0x10(%r8,%r11,4),%r11
0x000000010c06a6f8: mov %r10d,(%r11)
0x000000010c06a6fb: mov %r11,%r10
0x000000010c06a6fe: shr $0x9,%r10
0x000000010c06a702: movabs $0x10bae9000,%r11
0x000000010c06a70c: mov %r12b,(%r11,%r10,1) ;*aastore
; - java.util.ArrayList::add@26 (line 441)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c06a710: mov 0x4(%rsp),%r11d
0x000000010c06a715: inc %r11d ;*iinc
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@55 (line 28)
0x000000010c06a718: cmp (%rsp),%r11d
0x000000010c06a71c: jge 0x000000010c06a81d
0x000000010c06a722: mov (%rsp),%r9d
0x000000010c06a726: mov 0x8(%rsp),%rbx
0x000000010c06a72b: mov 0x60(%r15),%r8
0x000000010c06a72f: movabs $0x7955afd68,%r10 ; {oop(a 'java/lang/Class' = 'com/vyazelenko/blog/copyobject/TestConstructor')}
0x000000010c06a739: mov 0x70(%r10),%r10d ;*getstatic results
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@43 (line 29)
0x000000010c06a73d: mov %r8,%rcx
0x000000010c06a740: add $0x58,%rcx
0x000000010c06a744: cmp 0x70(%r15),%rcx
0x000000010c06a748: jb 0x000000010c06a4e0
0x000000010c06a74e: mov %r10d,0x10(%rsp)
0x000000010c06a753: mov %r11d,0x4(%rsp)
0x000000010c06a758: mov %rbx,0x8(%rsp)
0x000000010c06a75d: mov %r9d,(%rsp)
0x000000010c06a761: movabs $0x6bb087388,%rsi ; {oop('com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')}
0x000000010c06a76b: callq 0x000000010c05efe0 ; OopMap{[8]=Oop [16]=NarrowOop [32]=Oop off=1360}
;*new ; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@0 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
; {runtime_call}
0x000000010c06a770: mov %rax,%r8
0x000000010c06a773: jmpq 0x000000010c06a531 ;*aastore
; - java.util.ArrayList::add@26 (line 441)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c06a778: mov $0xffffffe4,%esi
0x000000010c06a77d: mov %r8d,0x8(%rsp)
0x000000010c06a782: mov %r11d,0xc(%rsp)
0x000000010c06a787: callq 0x000000010c038f20 ; OopMap{rbp=Oop [8]=NarrowOop [32]=Oop off=1388}
;*aastore
; - java.util.ArrayList::add@26 (line 441)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
; {runtime_call}
0x000000010c06a78c: callq 0x000000010a81d5de ; {runtime_call}
0x000000010c06a791: mov $0xffffffde,%esi
0x000000010c06a796: nop
0x000000010c06a797: callq 0x000000010c038f20 ; OopMap{rbp=Oop [16]=NarrowOop [32]=Oop off=1404}
;*invokeinterface add
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
; {runtime_call}
0x000000010c06a79c: callq 0x000000010a81d5de ;*aastore
; - java.util.ArrayList::add@26 (line 441)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
; {runtime_call}
0x000000010c06a7a1: mov $0xffffffd6,%esi
0x000000010c06a7a6: mov %r8d,0x8(%rsp)
0x000000010c06a7ab: mov %r11d,0xc(%rsp)
0x000000010c06a7b0: data32 xchg %ax,%ax
0x000000010c06a7b3: callq 0x000000010c038f20 ; OopMap{rbp=Oop [8]=NarrowOop [32]=Oop off=1432}
;*aastore
; - java.util.ArrayList::add@26 (line 441)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
; {runtime_call}
0x000000010c06a7b8: callq 0x000000010a81d5de ;*synchronization entry
; - java.util.ArrayList::ensureCapacityInternal@-1 (line 204)
; - java.util.ArrayList::add@7 (line 440)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
; {runtime_call}
0x000000010c06a7bd: mov $0xffffffad,%esi
0x000000010c06a7c2: mov %r10,0x10(%rsp)
0x000000010c06a7c7: mov %edx,0x18(%rsp)
0x000000010c06a7cb: mov %r8d,0x1c(%rsp)
0x000000010c06a7d0: data32 xchg %ax,%ax
0x000000010c06a7d3: callq 0x000000010c038f20 ; OopMap{rbp=Oop [16]=Oop [28]=NarrowOop [32]=Oop off=1464}
;*if_acmpne
; - java.util.ArrayList::ensureCapacityInternal@7 (line 204)
; - java.util.ArrayList::add@7 (line 440)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
; {runtime_call}
0x000000010c06a7d8: callq 0x000000010a81d5de ;*synchronization entry
; - java.util.ArrayList::ensureExplicitCapacity@-1 (line 212)
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208)
; - java.util.ArrayList::add@7 (line 440)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
; {runtime_call}
0x000000010c06a7dd: mov 0x10(%rsp),%rsi
0x000000010c06a7e2: nop
0x000000010c06a7e3: callq 0x000000010c037b60 ; OopMap{rbp=Oop [8]=Oop [16]=Oop [32]=Oop off=1480}
;*invokespecial grow
; - java.util.ArrayList::ensureExplicitCapacity@22 (line 216)
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208)
; - java.util.ArrayList::add@7 (line 440)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
; {optimized virtual_call}
0x000000010c06a7e8: mov 0x10(%rsp),%r10
0x000000010c06a7ed: mov 0x10(%r10),%r11d ;*getfield size
; - java.util.ArrayList::add@16 (line 441)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c06a7f1: mov 0x14(%r10),%r8d ;*getfield elementData
; - java.util.ArrayList::add@11 (line 441)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c06a7f5: mov %r11d,%r9d
0x000000010c06a7f8: inc %r9d
0x000000010c06a7fb: mov %r9d,0x10(%r10) ;*putfield size
; - java.util.ArrayList::add@22 (line 441)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c06a7ff: test %r8d,%r8d
0x000000010c06a802: jne 0x000000010c06a6c8 ;*aastore
; - java.util.ArrayList::add@26 (line 441)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c06a808: mov $0xfffffff6,%esi
0x000000010c06a80d: mov %r11d,(%rsp)
0x000000010c06a811: xchg %ax,%ax
0x000000010c06a813: callq 0x000000010c038f20 ; OopMap{rbp=Oop off=1528}
;*aastore
; - java.util.ArrayList::add@26 (line 441)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
; {runtime_call}
0x000000010c06a818: callq 0x000000010a81d5de ;*aastore
; - java.util.ArrayList::add@26 (line 441)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
; {runtime_call}
0x000000010c06a81d: mov 0x8(%rsp),%r9 ;*if_icmpge
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@40 (line 28)
0x000000010c06a822: mov 0x20(%rsp),%r8
0x000000010c06a827: test %r8,%r8
0x000000010c06a82a: jne 0x000000010c06aafd
0x000000010c06a830: movabs $0x795500d10,%r10 ; {oop(a 'java/lang/Class' = 'java/lang/System')}
0x000000010c06a83a: mov 0x74(%r10),%ebp ;*getstatic out
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@61 (line 31)
0x000000010c06a83e: mov 0xc(%r9),%r11d
0x000000010c06a842: mov 0xc(%r12,%r11,8),%r11d
0x000000010c06a847: mov %r11d,%r10d
0x000000010c06a84a: add $0x4,%r10d
0x000000010c06a84e: test %r10d,%r10d
0x000000010c06a851: jl 0x000000010c06aaed
0x000000010c06a857: mov %r11d,%edx
0x000000010c06a85a: add $0xe,%edx
0x000000010c06a85d: test %edx,%edx
0x000000010c06a85f: jl 0x000000010c06aaed
0x000000010c06a865: cmp $0x80000,%edx
0x000000010c06a86b: ja 0x000000010c06aa64
0x000000010c06a871: mov 0x60(%r15),%rcx
0x000000010c06a875: movslq %r11d,%r10
0x000000010c06a878: shl %r10
0x000000010c06a87b: add $0x33,%r10
0x000000010c06a87f: and $0xfffffffffffffff8,%r10
0x000000010c06a883: mov %rcx,%r11
0x000000010c06a886: add %r10,%r11
0x000000010c06a889: cmp 0x70(%r15),%r11
0x000000010c06a88d: jae 0x000000010c06aa64
0x000000010c06a893: mov %r11,0x60(%r15)
0x000000010c06a897: prefetchnta 0xc0(%r11)
0x000000010c06a89f: movq $0x1,(%rcx)
0x000000010c06a8a6: prefetchnta 0x100(%r11)
0x000000010c06a8ae: movl $0xd75c00c5,0x8(%rcx) ; {oop({type array char})}
0x000000010c06a8b5: mov %edx,0xc(%rcx)
0x000000010c06a8b8: prefetchnta 0x140(%r11)
0x000000010c06a8c0: prefetchnta 0x180(%r11)
0x000000010c06a8c8: rex.W pushq 0x20(%rsp)
0x000000010c06a8cd: rex.W popq (%rsp)
0x000000010c06a8d1: mov %r9,0x8(%rsp)
0x000000010c06a8d6: mov 0x8(%rsp),%r10
0x000000010c06a8db: mov 0xc(%r10),%r11d
0x000000010c06a8df: mov %rcx,%r10
0x000000010c06a8e2: add $0x18,%r10
0x000000010c06a8e6: mov 0xc(%r12,%r11,8),%ebx
0x000000010c06a8eb: lea (%r12,%r11,8),%r8
0x000000010c06a8ef: lea 0x10(%r12,%r11,8),%r11
0x000000010c06a8f4: movslq %ebx,%rdx
0x000000010c06a8f7: lea 0x18(%rcx,%rdx,2),%r8
0x000000010c06a8fc: mov %r8,%rbx
0x000000010c06a8ff: mov $0x20,%r9d
0x000000010c06a905: movabs $0x795881158,%r8 ; {oop([C)}
0x000000010c06a90f: movabs $0x795881158,%rdi ; {oop([C)}
0x000000010c06a919: add $0x10,%rdi
0x000000010c06a91d: mov %rdi,%r13
0x000000010c06a920: mov $0x3c,%r8d
0x000000010c06a926: mov %r8w,0x10(%rcx)
0x000000010c06a92b: mov %r8w,0x12(%rcx)
0x000000010c06a930: mov %r8w,0x14(%rcx)
0x000000010c06a935: mov %r9w,0x16(%rcx)
0x000000010c06a93a: mov %rcx,0x8(%rsp)
0x000000010c06a93f: mov %r11,%rdi
0x000000010c06a942: mov %r10,%rsi
0x000000010c06a945: movabs $0x10c041e00,%r10
0x000000010c06a94f: callq *%r10
0x000000010c06a952: mov %r13,%rdi
0x000000010c06a955: mov %rbx,%rsi
0x000000010c06a958: mov $0xa,%edx
0x000000010c06a95d: movabs $0x10c041e00,%r10
0x000000010c06a967: callq *%r10
0x000000010c06a96a: mov 0x60(%r15),%r10
0x000000010c06a96e: mov %r10,%r11
0x000000010c06a971: add $0x18,%r11
0x000000010c06a975: cmp 0x70(%r15),%r11
0x000000010c06a979: jae 0x000000010c06aa4c
0x000000010c06a97f: mov %r11,0x60(%r15)
0x000000010c06a983: prefetchnta 0xc0(%r11)
0x000000010c06a98b: mov $0xd75c15c3,%r11d ; {oop('java/lang/String')}
0x000000010c06a991: mov 0xb0(%r12,%r11,8),%r11
0x000000010c06a999: mov %r10,%r8
0x000000010c06a99c: mov %r11,(%r8)
0x000000010c06a99f: movl $0xd75c15c3,0x8(%r8) ; {oop('java/lang/String')}
0x000000010c06a9a7: mov %r12d,0xc(%r8)
0x000000010c06a9ab: mov %r12,0x10(%r8)
0x000000010c06a9af: mov 0x8(%rsp),%r10
0x000000010c06a9b4: shr $0x3,%r10
0x000000010c06a9b8: mov %r10d,0xc(%r8)
0x000000010c06a9bc: test %ebp,%ebp
0x000000010c06a9be: je 0x000000010c06aad8 ;*invokevirtual println
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@88 (line 31)
0x000000010c06a9c4: lea (%r12,%rbp,8),%rsi ;*getstatic out
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@61 (line 31)
0x000000010c06a9c8: mov %r8,%rdx
0x000000010c06a9cb: callq 0x000000010c037b60 ; OopMap{off=1968}
;*invokevirtual println
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@88 (line 31)
; {optimized virtual_call}
0x000000010c06a9d0: add $0x40,%rsp
0x000000010c06a9d4: pop %rbp
0x000000010c06a9d5: test %eax,-0x10ba9db(%rip) # 0x000000010afb0000
; {poll_return}
0x000000010c06a9db: retq
0x000000010c06a9dc: movabs $0x6baef2660,%rsi ; {oop('java/util/ArrayList')}
0x000000010c06a9e6: nop
0x000000010c06a9e7: callq 0x000000010c05efe0 ; OopMap{[8]=Oop off=1996}
;*new ; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@0 (line 26)
; {runtime_call}
0x000000010c06a9ec: mov %rax,%rbp
0x000000010c06a9ef: jmpq 0x000000010c06a276 ;*ifge
; - java.util.ArrayList::<init>@5 (line 141)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@5 (line 26)
0x000000010c06a9f4: movabs $0x6baea2f48,%rsi ; {oop('java/lang/Object'[])}
0x000000010c06a9fe: mov (%rsp),%edx
0x000000010c06aa01: xchg %ax,%ax
0x000000010c06aa03: callq 0x000000010c05ef20 ; OopMap{rbp=Oop [8]=Oop off=2024}
;*anewarray
; - java.util.ArrayList::<init>@37 (line 144)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@5 (line 26)
; {runtime_call}
0x000000010c06aa08: mov %rax,%r8
0x000000010c06aa0b: jmpq 0x000000010c06a30a
0x000000010c06aa10: movabs $0x6bae0ae18,%rsi ; {oop('java/lang/String')}
0x000000010c06aa1a: nop
0x000000010c06aa1b: callq 0x000000010c05efe0 ; OopMap{rbp=NarrowOop [16]=Oop [32]=Oop off=2048}
;*new ; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@14 (line 27)
; {runtime_call}
0x000000010c06aa20: mov %rax,%rdx
0x000000010c06aa23: jmpq 0x000000010c06a49b
0x000000010c06aa28: mov %rbx,0x8(%rsp)
0x000000010c06aa2d: mov %rcx,0x20(%rsp)
0x000000010c06aa32: movabs $0x6bae00628,%rsi ; {oop({type array char})}
0x000000010c06aa3c: data32 xchg %ax,%ax
0x000000010c06aa3f: callq 0x000000010c05ef20 ; OopMap{rbp=NarrowOop [8]=Oop [32]=Oop off=2084}
;*new ; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@14 (line 27)
; {runtime_call}
0x000000010c06aa44: mov %rax,%r8
0x000000010c06aa47: jmpq 0x000000010c06a3fd
0x000000010c06aa4c: movabs $0x6bae0ae18,%rsi ; {oop('java/lang/String')}
0x000000010c06aa56: nop
0x000000010c06aa57: callq 0x000000010c05efe0 ; OopMap{rbp=NarrowOop [0]=Oop [8]=Oop off=2108}
;*new ; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@64 (line 31)
; {runtime_call}
0x000000010c06aa5c: mov %rax,%r8
0x000000010c06aa5f: jmpq 0x000000010c06a9af
0x000000010c06aa64: mov %r9,0x8(%rsp)
0x000000010c06aa69: rex.W pushq 0x20(%rsp)
0x000000010c06aa6e: rex.W popq (%rsp)
0x000000010c06aa72: movabs $0x6bae00628,%rsi ; {oop({type array char})}
0x000000010c06aa7c: data32 xchg %ax,%ax
0x000000010c06aa7f: callq 0x000000010c05ef20 ; OopMap{rbp=NarrowOop [0]=Oop [8]=Oop [32]=Oop off=2148}
;*new ; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@64 (line 31)
; {runtime_call}
0x000000010c06aa84: mov %rax,%rcx
0x000000010c06aa87: jmpq 0x000000010c06a8d6
0x000000010c06aa8c: mov $0xfffffff6,%esi
0x000000010c06aa91: mov %rdx,%rbp
0x000000010c06aa94: data32 xchg %ax,%ax
0x000000010c06aa97: callq 0x000000010c038f20 ; OopMap{rbp=Oop off=2172}
;*invokevirtual println
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@33 (line 27)
; {runtime_call}
0x000000010c06aa9c: callq 0x000000010a81d5de ;*invokespecial <init>
; - java.util.ArrayList::<init>@1 (line 140)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@5 (line 26)
; {runtime_call}
0x000000010c06aaa1: mov $0x4,%esi
0x000000010c06aaa6: nop
0x000000010c06aaa7: callq 0x000000010c038f20 ; OopMap{rbp=Oop [8]=Oop off=2188}
;*new ; - java.util.ArrayList::<init>@8 (line 142)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@5 (line 26)
; {runtime_call}
0x000000010c06aaac: callq 0x000000010a81d5de ;*new
; - java.util.ArrayList::<init>@8 (line 142)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@5 (line 26)
; {runtime_call}
0x000000010c06aab1: mov $0xffffffcc,%esi
0x000000010c06aab6: nop
0x000000010c06aab7: callq 0x000000010c038f20 ; OopMap{rbp=NarrowOop [8]=Oop off=2204}
;*new ; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@14 (line 27)
; {runtime_call}
0x000000010c06aabc: callq 0x000000010a81d5de ; {runtime_call}
0x000000010c06aac1: mov %rcx,%rbx
0x000000010c06aac4: jmpq 0x000000010c06a322
0x000000010c06aac9: movabs $0x795503338,%r9 ; {oop("null")}
0x000000010c06aad3: jmpq 0x000000010c06a822
0x000000010c06aad8: mov $0xfffffff6,%esi
0x000000010c06aadd: mov %r8,%rbp
0x000000010c06aae0: data32 xchg %ax,%ax
0x000000010c06aae3: callq 0x000000010c038f20 ; OopMap{rbp=Oop off=2248}
;*invokevirtual println
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@88 (line 31)
; {runtime_call}
0x000000010c06aae8: callq 0x000000010a81d5de ;*invokevirtual println
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@88 (line 31)
; {runtime_call}
0x000000010c06aaed: mov $0xffffffcc,%esi
0x000000010c06aaf2: nop
0x000000010c06aaf3: callq 0x000000010c038f20 ; OopMap{rbp=NarrowOop [32]=Oop off=2264}
;*new ; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@64 (line 31)
; {runtime_call}
0x000000010c06aaf8: callq 0x000000010a81d5de ; {runtime_call}
0x000000010c06aafd: mov 0x20(%rsp),%r9
0x000000010c06ab02: jmpq 0x000000010c06a830
0x000000010c06ab07: mov $0xfffffff6,%esi
0x000000010c06ab0c: data32 xchg %ax,%ax
0x000000010c06ab0f: callq 0x000000010c038f20 ; OopMap{rbp=Oop off=2292}
;*invokeinterface add
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
; {runtime_call}
0x000000010c06ab14: callq 0x000000010a81d5de ; {runtime_call}
0x000000010c06ab19: mov $0xfffffff6,%esi
0x000000010c06ab1e: nop
0x000000010c06ab1f: callq 0x000000010c038f20 ; OopMap{off=2308}
;*arraylength
; - java.util.ArrayList::ensureExplicitCapacity@15 (line 215)
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208)
; - java.util.ArrayList::add@7 (line 440)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
; {runtime_call}
0x000000010c06ab24: callq 0x000000010a81d5de ;*arraylength
; - java.util.ArrayList::ensureExplicitCapacity@15 (line 215)
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208)
; - java.util.ArrayList::add@7 (line 440)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
; {runtime_call}
0x000000010c06ab29: jmp 0x000000010c06ab2b
0x000000010c06ab2b: mov %rax,%rsi
0x000000010c06ab2e: jmp 0x000000010c06ab53 ;*new
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@0 (line 26)
0x000000010c06ab30: mov %rax,%rsi
0x000000010c06ab33: jmp 0x000000010c06ab53 ;*anewarray
; - java.util.ArrayList::<init>@37 (line 144)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@5 (line 26)
0x000000010c06ab35: mov %rax,%rsi
0x000000010c06ab38: jmp 0x000000010c06ab53
0x000000010c06ab3a: jmp 0x000000010c06ab3c
0x000000010c06ab3c: mov %rax,%rsi
0x000000010c06ab3f: jmp 0x000000010c06ab53 ;*invokespecial grow
; - java.util.ArrayList::ensureExplicitCapacity@22 (line 216)
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208)
; - java.util.ArrayList::add@7 (line 440)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29)
0x000000010c06ab41: mov %rax,%rsi
0x000000010c06ab44: jmp 0x000000010c06ab53 ;*invokevirtual println
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@88 (line 31)
0x000000010c06ab46: mov %rax,%rsi
0x000000010c06ab49: jmp 0x000000010c06ab53 ;*invokevirtual println
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@33 (line 27)
0x000000010c06ab4b: mov %rax,%rsi
0x000000010c06ab4e: jmp 0x000000010c06ab53 ;*new
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@0 (line 23)
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39)
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29)
0x000000010c06ab50: mov %rax,%rsi ;*new ; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@0 (line 26)
0x000000010c06ab53: add $0x40,%rsp
0x000000010c06ab57: pop %rbp
0x000000010c06ab58: jmpq 0x000000010c061e20 ; {runtime_call}
0x000000010c06ab5d: hlt
0x000000010c06ab5e: hlt
0x000000010c06ab5f: hlt
[Stub Code]
0x000000010c06ab60: movabs $0x0,%rbx ; {no_reloc}
0x000000010c06ab6a: jmpq 0x000000010c06ab6a ; {runtime_call}
0x000000010c06ab6f: movabs $0x0,%rbx ; {static_stub}
0x000000010c06ab79: jmpq 0x000000010c06ab79 ; {runtime_call}
0x000000010c06ab7e: movabs $0x0,%rbx ; {static_stub}
0x000000010c06ab88: jmpq 0x000000010c06ab88 ; {runtime_call}
[Exception Handler]
0x000000010c06ab8d: jmpq 0x000000010c05f0a0 ; {runtime_call}
[Deopt Handler Code]
0x000000010c06ab92: callq 0x000000010c06ab97
0x000000010c06ab97: subq $0x5,(%rsp)
0x000000010c06ab9c: jmpq 0x000000010c038b00 ; {runtime_call}
0x000000010c06aba1: hlt
0x000000010c06aba2: hlt
0x000000010c06aba3: hlt
0x000000010c06aba4: hlt
0x000000010c06aba5: hlt
0x000000010c06aba6: hlt
0x000000010c06aba7: hlt
>>> In test
<<< test completed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment