Instantly share code, notes, and snippets.

Embed
What would you like to do?
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>