Complete ASM code for TestConstructor case
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Java HotSpot(TM) 64-Bit Server VM warning: PrintAssembly is enabled; turning on DebugNonSafepoints to gain additional output | |
Loaded disassembler from /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre/lib/hsdis-amd64.dylib | |
Decoding compiled method 0x000000010c060290: | |
Code: | |
[Disassembling for mach='i386:x86-64'] | |
[Entry Point] | |
[Constants] | |
# {method} 'indexOf' '(II)I' in 'java/lang/String' | |
# this: rsi:rsi = 'java/lang/String' | |
# parm0: rdx = int | |
# parm1: rcx = int | |
# [sp+0x30] (sp of caller) | |
0x000000010c0603e0: mov 0x8(%rsi),%r10d | |
0x000000010c0603e4: shl $0x3,%r10 | |
0x000000010c0603e8: cmp %r10,%rax | |
0x000000010c0603eb: jne 0x000000010c037960 ; {runtime_call} | |
0x000000010c0603f1: data32 xchg %ax,%ax | |
0x000000010c0603f4: nopl 0x0(%rax,%rax,1) | |
0x000000010c0603fc: data32 data32 xchg %ax,%ax | |
[Verified Entry Point] | |
0x000000010c060400: mov %eax,-0x14000(%rsp) | |
0x000000010c060407: push %rbp | |
0x000000010c060408: sub $0x20,%rsp ;*synchronization entry | |
; - java.lang.String::indexOf@-1 (line 1526) | |
0x000000010c06040c: mov 0xc(%rsi),%r8d ;*getfield value | |
; - java.lang.String::indexOf@1 (line 1526) | |
0x000000010c060410: mov 0xc(%r12,%r8,8),%ebp ;*arraylength | |
; - java.lang.String::indexOf@4 (line 1526) | |
; implicit exception: dispatches to 0x000000010c060526 | |
0x000000010c060415: mov $0xffffffff,%eax | |
0x000000010c06041a: test %ecx,%ecx | |
0x000000010c06041c: jl 0x000000010c060515 ;*ifge | |
; - java.lang.String::indexOf@7 (line 1527) | |
0x000000010c060422: cmp %ebp,%ecx | |
0x000000010c060424: jge 0x000000010c0604dd ;*if_icmplt | |
; - java.lang.String::indexOf@17 (line 1529) | |
0x000000010c06042a: cmp $0x10000,%edx | |
0x000000010c060430: jge 0x000000010c06051c ;*if_icmpge | |
; - java.lang.String::indexOf@25 (line 1534) | |
0x000000010c060436: cmp %ebp,%ecx | |
0x000000010c060438: jge 0x000000010c0604dd ;*if_icmpge | |
; - java.lang.String::indexOf@40 (line 1538) | |
0x000000010c06043e: cmp %ebp,%ecx | |
0x000000010c060440: jae 0x000000010c0604f7 | |
0x000000010c060446: mov %ebp,%r10d | |
0x000000010c060449: dec %r10d | |
0x000000010c06044c: cmp %ebp,%r10d | |
0x000000010c06044f: jae 0x000000010c0604f7 | |
0x000000010c060455: lea (%r12,%r8,8),%r9 | |
0x000000010c060459: mov %ecx,%r11d | |
0x000000010c06045c: inc %r11d ;*aload | |
; - java.lang.String::indexOf@43 (line 1539) | |
0x000000010c06045f: movzwl 0x10(%r9,%rcx,2),%r8d ;*caload | |
; - java.lang.String::indexOf@47 (line 1539) | |
0x000000010c060465: cmp %edx,%r8d | |
0x000000010c060468: je 0x000000010c0604f3 ;*if_icmpne | |
; - java.lang.String::indexOf@49 (line 1539) | |
0x000000010c06046e: inc %ecx ;*iinc | |
; - java.lang.String::indexOf@55 (line 1538) | |
0x000000010c060470: cmp %r11d,%ecx | |
0x000000010c060473: jl 0x000000010c06045f ;*if_icmpge | |
; - java.lang.String::indexOf@40 (line 1538) | |
0x000000010c060475: mov %ebp,%r11d | |
0x000000010c060478: add $0xfffffffffffffffd,%r11d | |
0x000000010c06047c: mov $0x80000000,%r8d | |
0x000000010c060482: cmp %r11d,%r10d | |
0x000000010c060485: cmovl %r8d,%r11d | |
0x000000010c060489: cmp %r11d,%ecx | |
0x000000010c06048c: jge 0x000000010c0604c5 | |
0x000000010c06048e: xchg %ax,%ax ;*aload | |
; - java.lang.String::indexOf@43 (line 1539) | |
0x000000010c060490: movzwl 0x10(%r9,%rcx,2),%r10d ;*caload | |
; - java.lang.String::indexOf@47 (line 1539) | |
0x000000010c060496: cmp %edx,%r10d | |
0x000000010c060499: je 0x000000010c0604f3 ;*if_icmpne | |
; - java.lang.String::indexOf@49 (line 1539) | |
0x000000010c06049b: movslq %ecx,%r10 | |
0x000000010c06049e: movzwl 0x12(%r9,%r10,2),%ebx ;*caload | |
; - java.lang.String::indexOf@47 (line 1539) | |
0x000000010c0604a4: cmp %edx,%ebx | |
0x000000010c0604a6: je 0x000000010c0604ec ;*if_icmpne | |
; - java.lang.String::indexOf@49 (line 1539) | |
0x000000010c0604a8: movzwl 0x14(%r9,%r10,2),%ebx ;*caload | |
; - java.lang.String::indexOf@47 (line 1539) | |
0x000000010c0604ae: cmp %edx,%ebx | |
0x000000010c0604b0: je 0x000000010c0604f0 ;*if_icmpne | |
; - java.lang.String::indexOf@49 (line 1539) | |
0x000000010c0604b2: movzwl 0x16(%r9,%r10,2),%r8d ;*caload | |
; - java.lang.String::indexOf@47 (line 1539) | |
0x000000010c0604b8: cmp %edx,%r8d | |
0x000000010c0604bb: je 0x000000010c0604e9 ;*if_icmpne | |
; - java.lang.String::indexOf@49 (line 1539) | |
0x000000010c0604bd: add $0x4,%ecx ;*iinc | |
; - java.lang.String::indexOf@55 (line 1538) | |
0x000000010c0604c0: cmp %r11d,%ecx | |
0x000000010c0604c3: jl 0x000000010c060490 ;*if_icmpge | |
; - java.lang.String::indexOf@40 (line 1538) | |
0x000000010c0604c5: cmp %ebp,%ecx | |
0x000000010c0604c7: jge 0x000000010c0604dd | |
0x000000010c0604c9: data32 xchg %ax,%ax ;*aload | |
; - java.lang.String::indexOf@43 (line 1539) | |
0x000000010c0604cc: movzwl 0x10(%r9,%rcx,2),%r11d ;*caload | |
; - java.lang.String::indexOf@47 (line 1539) | |
0x000000010c0604d2: cmp %edx,%r11d | |
0x000000010c0604d5: je 0x000000010c0604f3 ;*if_icmpne | |
; - java.lang.String::indexOf@49 (line 1539) | |
0x000000010c0604d7: inc %ecx ;*iinc | |
; - java.lang.String::indexOf@55 (line 1538) | |
0x000000010c0604d9: cmp %ebp,%ecx | |
0x000000010c0604db: jl 0x000000010c0604cc ;*aload | |
; - java.lang.String::indexOf@43 (line 1539) | |
0x000000010c0604dd: add $0x20,%rsp | |
0x000000010c0604e1: pop %rbp | |
0x000000010c0604e2: test %eax,-0x10b04e8(%rip) # 0x000000010afb0000 | |
; {poll_return} | |
0x000000010c0604e8: retq | |
0x000000010c0604e9: add $0x2,%ecx | |
0x000000010c0604ec: inc %ecx | |
0x000000010c0604ee: jmp 0x000000010c0604f3 | |
0x000000010c0604f0: add $0x2,%ecx ;*iinc | |
; - java.lang.String::indexOf@55 (line 1538) | |
0x000000010c0604f3: mov %ecx,%eax | |
0x000000010c0604f5: jmp 0x000000010c0604dd | |
0x000000010c0604f7: mov $0xffffff86,%esi | |
0x000000010c0604fc: mov %edx,(%rsp) | |
0x000000010c0604ff: mov %ecx,0x4(%rsp) | |
0x000000010c060503: mov %r8d,0x8(%rsp) | |
0x000000010c060508: data32 xchg %ax,%ax | |
0x000000010c06050b: callq 0x000000010c038f20 ; OopMap{[8]=NarrowOop off=304} | |
;*aload | |
; - java.lang.String::indexOf@43 (line 1539) | |
; {runtime_call} | |
0x000000010c060510: callq 0x000000010a81d5de ;*aload | |
; - java.lang.String::indexOf@43 (line 1539) | |
; {runtime_call} | |
0x000000010c060515: xor %ecx,%ecx | |
0x000000010c060517: jmpq 0x000000010c06042a | |
0x000000010c06051c: data32 xchg %ax,%ax | |
0x000000010c06051f: callq 0x000000010c037b60 ; OopMap{off=324} | |
;*invokespecial indexOfSupplementary | |
; - java.lang.String::indexOf@66 (line 1545) | |
; {optimized virtual_call} | |
0x000000010c060524: jmp 0x000000010c0604dd | |
0x000000010c060526: mov $0xfffffff6,%esi | |
0x000000010c06052b: callq 0x000000010c038f20 ; OopMap{off=336} | |
;*arraylength | |
; - java.lang.String::indexOf@4 (line 1526) | |
; {runtime_call} | |
0x000000010c060530: callq 0x000000010a81d5de ;*invokespecial indexOfSupplementary | |
; - java.lang.String::indexOf@66 (line 1545) | |
; {runtime_call} | |
0x000000010c060535: mov %rax,%rsi | |
0x000000010c060538: add $0x20,%rsp | |
0x000000010c06053c: pop %rbp | |
0x000000010c06053d: jmpq 0x000000010c061e20 ;*iconst_m1 | |
; - java.lang.String::indexOf@61 (line 1543) | |
; {runtime_call} | |
0x000000010c060542: hlt | |
0x000000010c060543: hlt | |
0x000000010c060544: hlt | |
0x000000010c060545: hlt | |
0x000000010c060546: hlt | |
0x000000010c060547: hlt | |
0x000000010c060548: hlt | |
0x000000010c060549: hlt | |
0x000000010c06054a: hlt | |
0x000000010c06054b: hlt | |
0x000000010c06054c: hlt | |
0x000000010c06054d: hlt | |
0x000000010c06054e: hlt | |
0x000000010c06054f: hlt | |
0x000000010c060550: hlt | |
0x000000010c060551: hlt | |
0x000000010c060552: hlt | |
0x000000010c060553: hlt | |
0x000000010c060554: hlt | |
0x000000010c060555: hlt | |
0x000000010c060556: hlt | |
0x000000010c060557: hlt | |
0x000000010c060558: hlt | |
0x000000010c060559: hlt | |
0x000000010c06055a: hlt | |
0x000000010c06055b: hlt | |
0x000000010c06055c: hlt | |
0x000000010c06055d: hlt | |
0x000000010c06055e: hlt | |
0x000000010c06055f: hlt | |
[Stub Code] | |
0x000000010c060560: movabs $0x0,%rbx ; {no_reloc} | |
0x000000010c06056a: jmpq 0x000000010c06056a ; {runtime_call} | |
[Exception Handler] | |
0x000000010c06056f: jmpq 0x000000010c05f0a0 ; {runtime_call} | |
[Deopt Handler Code] | |
0x000000010c060574: callq 0x000000010c060579 | |
0x000000010c060579: subq $0x5,(%rsp) | |
0x000000010c06057e: jmpq 0x000000010c038b00 ; {runtime_call} | |
0x000000010c060583: hlt | |
0x000000010c060584: hlt | |
0x000000010c060585: hlt | |
0x000000010c060586: hlt | |
0x000000010c060587: hlt | |
Decoding compiled method 0x000000010c05fd50: | |
Code: | |
[Entry Point] | |
[Constants] | |
# {method} 'hashCode' '()I' in 'java/lang/String' | |
# [sp+0x30] (sp of caller) | |
0x000000010c05fea0: mov 0x8(%rsi),%r10d | |
0x000000010c05fea4: shl $0x3,%r10 | |
0x000000010c05fea8: cmp %r10,%rax | |
0x000000010c05feab: jne 0x000000010c037960 ; {runtime_call} | |
0x000000010c05feb1: data32 xchg %ax,%ax | |
0x000000010c05feb4: nopl 0x0(%rax,%rax,1) | |
0x000000010c05febc: data32 data32 xchg %ax,%ax | |
[Verified Entry Point] | |
0x000000010c05fec0: mov %eax,-0x14000(%rsp) | |
0x000000010c05fec7: push %rbp | |
0x000000010c05fec8: sub $0x20,%rsp ;*synchronization entry | |
; - java.lang.String::hashCode@-1 (line 1446) | |
0x000000010c05fecc: mov %rsi,%r10 | |
0x000000010c05fecf: mov 0x10(%rsi),%eax ;*getfield hash | |
; - java.lang.String::hashCode@1 (line 1446) | |
0x000000010c05fed2: test %eax,%eax | |
0x000000010c05fed4: jne 0x000000010c05ffc4 ;*ifne | |
; - java.lang.String::hashCode@6 (line 1447) | |
0x000000010c05feda: mov 0xc(%rsi),%ebp ;*getfield value | |
; - java.lang.String::hashCode@10 (line 1447) | |
0x000000010c05fedd: mov 0xc(%r12,%rbp,8),%r8d ;*arraylength | |
; - java.lang.String::hashCode@13 (line 1447) | |
; implicit exception: dispatches to 0x000000010c05ffe9 | |
0x000000010c05fee2: xor %ecx,%ecx | |
0x000000010c05fee4: test %r8d,%r8d | |
0x000000010c05fee7: jle 0x000000010c05ffe5 ;*ifle | |
; - java.lang.String::hashCode@14 (line 1447) | |
0x000000010c05feed: test %r8d,%r8d | |
0x000000010c05fef0: jbe 0x000000010c05ffd0 | |
0x000000010c05fef6: mov %r8d,%ebx | |
0x000000010c05fef9: dec %ebx | |
0x000000010c05fefb: cmp %r8d,%ebx | |
0x000000010c05fefe: jae 0x000000010c05ffd0 | |
0x000000010c05ff04: lea (%r12,%rbp,8),%rdx | |
0x000000010c05ff08: xor %ebp,%ebp ;*imul | |
; - java.lang.String::hashCode@36 (line 1451) | |
0x000000010c05ff0a: movzwl 0x10(%rdx,%rcx,2),%r11d | |
0x000000010c05ff10: add %r11d,%ebp ;*iadd | |
; - java.lang.String::hashCode@40 (line 1451) | |
0x000000010c05ff13: mov %ebp,%r11d | |
0x000000010c05ff16: shl $0x5,%r11d | |
0x000000010c05ff1a: mov %r11d,%eax | |
0x000000010c05ff1d: sub %ebp,%eax ;*imul | |
; - java.lang.String::hashCode@36 (line 1451) | |
0x000000010c05ff1f: inc %ecx ;*iinc | |
; - java.lang.String::hashCode@42 (line 1450) | |
0x000000010c05ff21: cmp $0x1,%ecx | |
0x000000010c05ff24: jge 0x000000010c05ff2a ;*if_icmpge | |
; - java.lang.String::hashCode@30 (line 1450) | |
0x000000010c05ff26: mov %eax,%ebp | |
0x000000010c05ff28: jmp 0x000000010c05ff0a | |
0x000000010c05ff2a: mov %r8d,%edi | |
0x000000010c05ff2d: add $0xfffffffffffffffd,%edi | |
0x000000010c05ff30: mov $0x80000000,%r9d | |
0x000000010c05ff36: cmp %edi,%ebx | |
0x000000010c05ff38: cmovl %r9d,%edi | |
0x000000010c05ff3c: cmp %edi,%ecx | |
0x000000010c05ff3e: jl 0x000000010c05ff72 | |
0x000000010c05ff40: mov %r11d,%eax | |
0x000000010c05ff43: jmp 0x000000010c05ffb9 | |
0x000000010c05ff45: mov %eax,%r9d | |
0x000000010c05ff48: shl $0x5,%r9d ;*imul | |
; - java.lang.String::hashCode@36 (line 1451) | |
0x000000010c05ff4c: mov %eax,%ebp | |
0x000000010c05ff4e: mov %r9d,%eax ;*bipush | |
; - java.lang.String::hashCode@33 (line 1451) | |
0x000000010c05ff51: movzwl 0x10(%rdx,%rcx,2),%r11d | |
0x000000010c05ff57: sub %ebp,%eax | |
0x000000010c05ff59: add %r11d,%eax ;*iadd | |
; - java.lang.String::hashCode@40 (line 1451) | |
0x000000010c05ff5c: inc %ecx ;*iinc | |
; - java.lang.String::hashCode@42 (line 1450) | |
0x000000010c05ff5e: cmp %r8d,%ecx | |
0x000000010c05ff61: jl 0x000000010c05ff45 ;*if_icmpge | |
; - java.lang.String::hashCode@30 (line 1450) | |
0x000000010c05ff63: jmp 0x000000010c05ffc0 | |
0x000000010c05ff65: data32 data32 nopw 0x0(%rax,%rax,1) | |
0x000000010c05ff70: sub %ebp,%eax ;*imul | |
; - java.lang.String::hashCode@36 (line 1451) | |
0x000000010c05ff72: movzwl 0x10(%rdx,%rcx,2),%r11d | |
0x000000010c05ff78: add %r11d,%eax | |
0x000000010c05ff7b: movslq %ecx,%r11 | |
0x000000010c05ff7e: movzwl 0x12(%rdx,%r11,2),%esi | |
0x000000010c05ff84: movzwl 0x16(%rdx,%r11,2),%r9d | |
0x000000010c05ff8a: movzwl 0x14(%rdx,%r11,2),%r11d | |
0x000000010c05ff90: mov %eax,%ebx | |
0x000000010c05ff92: shl $0x5,%ebx | |
0x000000010c05ff95: sub %eax,%ebx | |
0x000000010c05ff97: add %esi,%ebx | |
0x000000010c05ff99: mov %ebx,%esi | |
0x000000010c05ff9b: shl $0x5,%esi | |
0x000000010c05ff9e: sub %ebx,%esi | |
0x000000010c05ffa0: add %r11d,%esi | |
0x000000010c05ffa3: mov %esi,%ebp | |
0x000000010c05ffa5: shl $0x5,%ebp | |
0x000000010c05ffa8: sub %esi,%ebp | |
0x000000010c05ffaa: add %r9d,%ebp ;*iadd | |
; - java.lang.String::hashCode@40 (line 1451) | |
0x000000010c05ffad: mov %ebp,%eax | |
0x000000010c05ffaf: shl $0x5,%eax ;*imul | |
; - java.lang.String::hashCode@36 (line 1451) | |
0x000000010c05ffb2: add $0x4,%ecx ;*iinc | |
; - java.lang.String::hashCode@42 (line 1450) | |
0x000000010c05ffb5: cmp %edi,%ecx | |
0x000000010c05ffb7: jl 0x000000010c05ff70 ;*if_icmpge | |
; - java.lang.String::hashCode@30 (line 1450) | |
0x000000010c05ffb9: cmp %r8d,%ecx | |
0x000000010c05ffbc: jl 0x000000010c05ff51 | |
0x000000010c05ffbe: mov %ebp,%eax | |
0x000000010c05ffc0: mov %eax,0x10(%r10) ;*synchronization entry | |
; - java.lang.String::hashCode@-1 (line 1446) | |
0x000000010c05ffc4: add $0x20,%rsp | |
0x000000010c05ffc8: pop %rbp | |
0x000000010c05ffc9: test %eax,-0x10affcf(%rip) # 0x000000010afb0000 | |
; {poll_return} | |
0x000000010c05ffcf: retq | |
0x000000010c05ffd0: mov $0xffffff86,%esi | |
0x000000010c05ffd5: mov %r10,(%rsp) | |
0x000000010c05ffd9: xchg %ax,%ax | |
0x000000010c05ffdb: callq 0x000000010c038f20 ; OopMap{rbp=NarrowOop [0]=Oop off=320} | |
;*bipush | |
; - java.lang.String::hashCode@33 (line 1451) | |
; {runtime_call} | |
0x000000010c05ffe0: callq 0x000000010a81d5de ;*bipush | |
; - java.lang.String::hashCode@33 (line 1451) | |
; {runtime_call} | |
0x000000010c05ffe5: xor %eax,%eax | |
0x000000010c05ffe7: jmp 0x000000010c05ffc4 | |
0x000000010c05ffe9: mov $0xfffffff6,%esi | |
0x000000010c05ffee: nop | |
0x000000010c05ffef: callq 0x000000010c038f20 ; OopMap{off=340} | |
;*arraylength | |
; - java.lang.String::hashCode@13 (line 1447) | |
; {runtime_call} | |
0x000000010c05fff4: callq 0x000000010a81d5de ;*arraylength | |
; - java.lang.String::hashCode@13 (line 1447) | |
; {runtime_call} | |
0x000000010c05fff9: hlt | |
0x000000010c05fffa: hlt | |
0x000000010c05fffb: hlt | |
0x000000010c05fffc: hlt | |
0x000000010c05fffd: hlt | |
0x000000010c05fffe: hlt | |
0x000000010c05ffff: hlt | |
[Exception Handler] | |
[Stub Code] | |
0x000000010c060000: jmpq 0x000000010c05f0a0 ; {no_reloc} | |
[Deopt Handler Code] | |
0x000000010c060005: callq 0x000000010c06000a | |
0x000000010c06000a: subq $0x5,(%rsp) | |
0x000000010c06000f: jmpq 0x000000010c038b00 ; {runtime_call} | |
0x000000010c060014: hlt | |
0x000000010c060015: hlt | |
0x000000010c060016: hlt | |
0x000000010c060017: hlt | |
>>> In warmup | |
Decoding compiled method 0x000000010c062310: | |
Code: | |
[Entry Point] | |
[Constants] | |
# {method} 'encode' '([CII[B)I' in 'sun/nio/cs/UTF_8$Encoder' | |
# this: rsi:rsi = 'sun/nio/cs/UTF_8$Encoder' | |
# parm0: rdx:rdx = '[C' | |
# parm1: rcx = int | |
# parm2: r8 = int | |
# parm3: r9:r9 = '[B' | |
# [sp+0x80] (sp of caller) | |
0x000000010c0624a0: mov 0x8(%rsi),%r10d | |
0x000000010c0624a4: shl $0x3,%r10 | |
0x000000010c0624a8: cmp %r10,%rax | |
0x000000010c0624ab: jne 0x000000010c037960 ; {runtime_call} | |
0x000000010c0624b1: data32 xchg %ax,%ax | |
0x000000010c0624b4: nopl 0x0(%rax,%rax,1) | |
0x000000010c0624bc: data32 data32 xchg %ax,%ax | |
[Verified Entry Point] | |
0x000000010c0624c0: mov %eax,-0x14000(%rsp) | |
0x000000010c0624c7: push %rbp | |
0x000000010c0624c8: sub $0x70,%rsp ;*synchronization entry | |
; - sun.nio.cs.UTF_8$Encoder::encode@-1 (line 627) | |
0x000000010c0624cc: mov %rsi,0x28(%rsp) | |
0x000000010c0624d1: mov 0xc(%r9),%r14d ;*arraylength | |
; - sun.nio.cs.UTF_8$Encoder::encode@13 (line 629) | |
; implicit exception: dispatches to 0x000000010c062b4d | |
0x000000010c0624d5: cmp %r14d,%r8d | |
0x000000010c0624d8: mov %r14d,%ebx | |
0x000000010c0624db: cmovl %r8d,%ebx ;*invokestatic min | |
; - sun.nio.cs.UTF_8$Encoder::encode@14 (line 629) | |
0x000000010c0624df: mov %ecx,%r11d | |
0x000000010c0624e2: add %r8d,%r11d ;*iadd | |
; - sun.nio.cs.UTF_8$Encoder::encode@2 (line 627) | |
0x000000010c0624e5: mov %r11d,0x24(%rsp) | |
0x000000010c0624ea: test %ebx,%ebx | |
0x000000010c0624ec: jle 0x000000010c062649 ;*if_icmpge | |
; - sun.nio.cs.UTF_8$Encoder::encode@24 (line 632) | |
0x000000010c0624f2: mov %rdx,%r10 | |
0x000000010c0624f5: mov 0xc(%rdx),%r11d ;*caload | |
; - sun.nio.cs.UTF_8$Encoder::encode@29 (line 632) | |
; implicit exception: dispatches to 0x000000010c0626a9 | |
0x000000010c0624f9: cmp %r11d,%ecx | |
0x000000010c0624fc: jae 0x000000010c0626a9 | |
0x000000010c062502: mov %ecx,%r8d | |
0x000000010c062505: add %ebx,%r8d | |
0x000000010c062508: dec %r8d | |
0x000000010c06250b: cmp %r11d,%r8d | |
0x000000010c06250e: jae 0x000000010c0626a9 | |
0x000000010c062514: mov $0x1,%r11d | |
0x000000010c06251a: cmp %r11d,%ebx | |
0x000000010c06251d: mov %ebx,%edi | |
0x000000010c06251f: cmovg %r11d,%edi | |
0x000000010c062523: xor %eax,%eax | |
0x000000010c062525: mov %eax,%r8d | |
0x000000010c062528: add %ecx,%r8d ;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632) | |
0x000000010c06252b: movzwl 0x10(%r10,%r8,2),%esi ;*caload | |
; - sun.nio.cs.UTF_8$Encoder::encode@48 (line 633) | |
0x000000010c062531: cmp $0x80,%esi | |
0x000000010c062537: jge 0x000000010c0626d1 ;*if_icmpge | |
; - sun.nio.cs.UTF_8$Encoder::encode@33 (line 632) | |
0x000000010c06253d: mov %eax,%edx | |
0x000000010c06253f: inc %edx ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@40 (line 633) | |
0x000000010c062541: cmp %r14d,%eax | |
0x000000010c062544: jae 0x000000010c06266e | |
0x000000010c06254a: movslq %eax,%r11 | |
0x000000010c06254d: mov %sil,0x10(%r9,%r11,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@50 (line 633) | |
0x000000010c062552: cmp %edi,%edx | |
0x000000010c062554: jge 0x000000010c06255a ;*if_icmpge | |
; - sun.nio.cs.UTF_8$Encoder::encode@24 (line 632) | |
0x000000010c062556: mov %edx,%eax | |
0x000000010c062558: jmp 0x000000010c062525 | |
0x000000010c06255a: cmp %ebx,%r14d | |
0x000000010c06255d: mov %r14d,%r11d | |
0x000000010c062560: cmovg %ebx,%r11d | |
0x000000010c062564: mov %r11d,%eax | |
0x000000010c062567: add $0xfffffffffffffffd,%eax | |
0x000000010c06256a: mov $0x80000000,%esi | |
0x000000010c06256f: cmp %eax,%r11d | |
0x000000010c062572: cmovl %esi,%eax | |
0x000000010c062575: cmp %eax,%edx | |
0x000000010c062577: jge 0x000000010c0626c9 | |
0x000000010c06257d: data32 xchg %ax,%ax | |
0x000000010c062580: mov %edx,%r8d | |
0x000000010c062583: add %ecx,%r8d ;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632) | |
0x000000010c062586: movzwl 0x10(%r10,%r8,2),%r11d ;*caload | |
; - sun.nio.cs.UTF_8$Encoder::encode@48 (line 633) | |
0x000000010c06258c: cmp $0x80,%r11d | |
0x000000010c062593: jge 0x000000010c062669 ;*if_icmpge | |
; - sun.nio.cs.UTF_8$Encoder::encode@33 (line 632) | |
0x000000010c062599: movslq %r8d,%rsi | |
0x000000010c06259c: movzwl 0x12(%r10,%rsi,2),%edi ;*caload | |
; - sun.nio.cs.UTF_8$Encoder::encode@48 (line 633) | |
0x000000010c0625a2: movslq %edx,%rbp | |
0x000000010c0625a5: mov %r11b,0x10(%r9,%rbp,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@50 (line 633) | |
0x000000010c0625aa: cmp $0x80,%edi | |
0x000000010c0625b0: jge 0x000000010c06265b ;*if_icmpge | |
; - sun.nio.cs.UTF_8$Encoder::encode@33 (line 632) | |
0x000000010c0625b6: movzwl 0x14(%r10,%rsi,2),%r11d ;*caload | |
; - sun.nio.cs.UTF_8$Encoder::encode@48 (line 633) | |
0x000000010c0625bc: movslq %edx,%rbp | |
0x000000010c0625bf: mov %dil,0x11(%r9,%rbp,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@50 (line 633) | |
0x000000010c0625c4: cmp $0x80,%r11d | |
0x000000010c0625cb: jge 0x000000010c062662 ;*if_icmpge | |
; - sun.nio.cs.UTF_8$Encoder::encode@33 (line 632) | |
0x000000010c0625d1: mov %r11b,0x12(%r9,%rbp,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@50 (line 633) | |
0x000000010c0625d6: movzwl 0x16(%r10,%rsi,2),%edi ;*caload | |
; - sun.nio.cs.UTF_8$Encoder::encode@48 (line 633) | |
0x000000010c0625dc: cmp $0x80,%edi | |
0x000000010c0625e2: jge 0x000000010c062654 ;*if_icmpge | |
; - sun.nio.cs.UTF_8$Encoder::encode@33 (line 632) | |
0x000000010c0625e4: mov %dil,0x13(%r9,%rbp,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@50 (line 633) | |
0x000000010c0625e9: add $0x4,%edx ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@40 (line 633) | |
0x000000010c0625ec: cmp %eax,%edx | |
0x000000010c0625ee: jl 0x000000010c062580 ;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632) | |
0x000000010c0625f0: add $0x4,%r8d ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@45 (line 633) | |
0x000000010c0625f4: cmp %ebx,%edx | |
0x000000010c0625f6: jl 0x000000010c062600 | |
0x000000010c0625f8: mov %edx,%r11d | |
0x000000010c0625fb: jmp 0x000000010c06262f | |
0x000000010c0625fd: mov %r11d,%edx | |
0x000000010c062600: mov %edx,%r8d | |
0x000000010c062603: add %ecx,%r8d ;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632) | |
0x000000010c062606: movzwl 0x10(%r10,%r8,2),%esi ;*caload | |
; - sun.nio.cs.UTF_8$Encoder::encode@48 (line 633) | |
0x000000010c06260c: cmp $0x80,%esi | |
0x000000010c062612: jge 0x000000010c062669 ;*if_icmpge | |
; - sun.nio.cs.UTF_8$Encoder::encode@33 (line 632) | |
0x000000010c062614: mov %edx,%r11d | |
0x000000010c062617: inc %r11d ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@40 (line 633) | |
0x000000010c06261a: cmp %r14d,%edx | |
0x000000010c06261d: jae 0x000000010c062678 | |
0x000000010c06261f: movslq %edx,%rdi | |
0x000000010c062622: mov %sil,0x10(%r9,%rdi,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@50 (line 633) | |
0x000000010c062627: cmp %ebx,%r11d | |
0x000000010c06262a: jl 0x000000010c0625fd ;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632) | |
0x000000010c06262c: inc %r8d ;*if_icmpge | |
; - sun.nio.cs.UTF_8$Encoder::encode@33 (line 632) | |
0x000000010c06262f: cmp 0x24(%rsp),%r8d | |
0x000000010c062634: jl 0x000000010c0626d5 | |
0x000000010c06263a: mov %r11d,%eax | |
0x000000010c06263d: add $0x70,%rsp | |
0x000000010c062641: pop %rbp | |
0x000000010c062642: test %eax,-0x10b2648(%rip) # 0x000000010afb0000 | |
; {poll_return} | |
0x000000010c062648: retq | |
0x000000010c062649: mov %ecx,%r8d | |
0x000000010c06264c: xor %r11d,%r11d | |
0x000000010c06264f: mov %rdx,%r10 | |
0x000000010c062652: jmp 0x000000010c06262f ;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632) | |
0x000000010c062654: add $0x2,%edx ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@40 (line 633) | |
0x000000010c062657: add $0x2,%r8d ;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632) | |
0x000000010c06265b: inc %r8d ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@45 (line 633) | |
0x000000010c06265e: inc %edx ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@40 (line 633) | |
0x000000010c062660: jmp 0x000000010c062669 | |
0x000000010c062662: add $0x2,%r8d ;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632) | |
0x000000010c062666: add $0x2,%edx ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@40 (line 633) | |
0x000000010c062669: mov %edx,%r11d | |
0x000000010c06266c: jmp 0x000000010c06262f ;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632) | |
0x000000010c06266e: inc %r8d ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@45 (line 633) | |
0x000000010c062671: mov %edx,(%rsp) | |
0x000000010c062674: mov %eax,%edx | |
0x000000010c062676: jmp 0x000000010c06267f ;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632) | |
0x000000010c062678: inc %r8d ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@45 (line 633) | |
0x000000010c06267b: mov %r11d,(%rsp) | |
0x000000010c06267f: movsbl %sil,%ebp ;*i2b ; - sun.nio.cs.UTF_8$Encoder::encode@49 (line 633) | |
0x000000010c062683: mov $0xffffffe4,%esi | |
0x000000010c062688: mov %r10,0x8(%rsp) | |
0x000000010c06268d: mov %r8d,0x4(%rsp) | |
0x000000010c062692: mov %r9,0x18(%rsp) | |
0x000000010c062697: mov %edx,0x20(%rsp) | |
0x000000010c06269b: mov %ebx,0x30(%rsp) | |
0x000000010c06269f: callq 0x000000010c038f20 ; OopMap{[8]=Oop [24]=Oop [40]=Oop off=516} | |
;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@50 (line 633) | |
; {runtime_call} | |
0x000000010c0626a4: callq 0x000000010a81d5de ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@50 (line 633) | |
; {runtime_call} | |
0x000000010c0626a9: mov $0xffffff86,%esi | |
0x000000010c0626ae: mov %rdx,%rbp | |
0x000000010c0626b1: mov %ecx,(%rsp) | |
0x000000010c0626b4: mov %r9,0x8(%rsp) | |
0x000000010c0626b9: mov %ebx,0x10(%rsp) | |
0x000000010c0626bd: xchg %ax,%ax | |
0x000000010c0626bf: callq 0x000000010c038f20 ; OopMap{rbp=Oop [8]=Oop [40]=Oop off=548} | |
;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632) | |
; {runtime_call} | |
0x000000010c0626c4: callq 0x000000010a81d5de ;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632) | |
; {runtime_call} | |
0x000000010c0626c9: inc %r8d ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@45 (line 633) | |
0x000000010c0626cc: jmpq 0x000000010c0625f4 ;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632) | |
0x000000010c0626d1: mov %eax,%edx | |
0x000000010c0626d3: jmp 0x000000010c062669 | |
0x000000010c0626d5: mov 0xc(%r10),%edx ;*caload | |
; - sun.nio.cs.UTF_8$Encoder::encode@65 (line 636) | |
; implicit exception: dispatches to 0x000000010c062b6f | |
0x000000010c0626d9: mov %r8d,%edi | |
0x000000010c0626dc: mov %r11d,0x50(%rsp) ;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@60 (line 636) | |
0x000000010c0626e1: mov %edi,%ecx | |
0x000000010c0626e3: inc %ecx ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@62 (line 636) | |
0x000000010c0626e5: mov %edi,%r8d | |
0x000000010c0626e8: cmp %edx,%edi | |
0x000000010c0626ea: jae 0x000000010c0629b7 | |
0x000000010c0626f0: movzwl 0x10(%r10,%rdi,2),%ebx ;*caload | |
; - sun.nio.cs.UTF_8$Encoder::encode@65 (line 636) | |
0x000000010c0626f6: movslq 0x50(%rsp),%rsi ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@86 (line 639) | |
0x000000010c0626fb: mov 0x50(%rsp),%r11d | |
0x000000010c062700: inc %r11d ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@80 (line 639) | |
0x000000010c062703: cmp $0x80,%ebx | |
0x000000010c062709: jge 0x000000010c062741 ;*if_icmpge | |
; - sun.nio.cs.UTF_8$Encoder::encode@73 (line 637) | |
0x000000010c06270b: mov 0x50(%rsp),%r8d | |
0x000000010c062710: cmp %r14d,%r8d | |
0x000000010c062713: jae 0x000000010c0629d9 | |
0x000000010c062719: mov %bl,0x10(%r9,%rsi,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@86 (line 639) | |
0x000000010c06271e: mov 0x28(%rsp),%r8 ; OopMap{r10=Oop r8=Oop r9=Oop off=643} | |
;*goto | |
; - sun.nio.cs.UTF_8$Encoder::encode@355 (line 665) | |
0x000000010c062723: test %eax,-0x10b2729(%rip) # 0x000000010afb0000 | |
;*goto | |
; - sun.nio.cs.UTF_8$Encoder::encode@355 (line 665) | |
; {poll} | |
0x000000010c062729: cmp 0x24(%rsp),%ecx | |
0x000000010c06272d: jge 0x000000010c06263a ;*if_icmpge | |
; - sun.nio.cs.UTF_8$Encoder::encode@57 (line 635) | |
0x000000010c062733: mov %ecx,%edi | |
0x000000010c062735: mov %r11d,0x50(%rsp) | |
0x000000010c06273a: mov %r8,0x28(%rsp) | |
0x000000010c06273f: jmp 0x000000010c0626e1 | |
0x000000010c062741: mov %ebx,%ebp | |
0x000000010c062743: and $0x3f,%ebp | |
0x000000010c062746: movslq 0x50(%rsp),%r13 ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@291 (line 656) | |
0x000000010c06274b: or $0x80,%ebp ;*ior ; - sun.nio.cs.UTF_8$Encoder::encode@131 (line 643) | |
0x000000010c062751: mov 0x50(%rsp),%eax | |
0x000000010c062755: add $0x2,%eax ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@120 (line 643) | |
0x000000010c062758: cmp $0x800,%ebx | |
0x000000010c06275e: jge 0x000000010c062798 ;*if_icmpge | |
; - sun.nio.cs.UTF_8$Encoder::encode@95 (line 640) | |
0x000000010c062760: mov %ebx,%r8d | |
0x000000010c062763: sar $0x6,%r8d | |
0x000000010c062767: or $0xc0,%r8d ;*ior ; - sun.nio.cs.UTF_8$Encoder::encode@113 (line 642) | |
0x000000010c06276e: mov 0x50(%rsp),%edi | |
0x000000010c062772: cmp %r14d,%edi | |
0x000000010c062775: jae 0x000000010c062a11 | |
0x000000010c06277b: mov %r8b,0x10(%r9,%rsi,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@115 (line 642) | |
0x000000010c062780: cmp %r14d,%r11d | |
0x000000010c062783: jae 0x000000010c062a4d | |
0x000000010c062789: mov %bpl,0x11(%r9,%r13,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@133 (line 643) | |
0x000000010c06278e: mov 0x28(%rsp),%r8 | |
0x000000010c062793: mov %eax,%r11d | |
0x000000010c062796: jmp 0x000000010c062723 | |
0x000000010c062798: mov %eax,0x44(%rsp) | |
0x000000010c06279c: mov %r13,0x48(%rsp) | |
0x000000010c0627a1: mov %ebp,0x40(%rsp) | |
0x000000010c0627a5: mov %rsi,0x38(%rsp) | |
0x000000010c0627aa: mov %ebx,0x34(%rsp) | |
0x000000010c0627ae: mov %ecx,0x30(%rsp) | |
0x000000010c0627b2: mov %r8d,0x1c(%rsp) | |
0x000000010c0627b7: mov %edx,0x14(%rsp) | |
0x000000010c0627bb: mov %r11d,0x18(%rsp) | |
0x000000010c0627c0: mov %rax,-0x8(%rsp) | |
0x000000010c0627c5: mov 0x24(%rsp),%eax | |
0x000000010c0627c9: mov %eax,0x20(%rsp) | |
0x000000010c0627cd: mov -0x8(%rsp),%rax | |
0x000000010c0627d2: mov %r14d,0x10(%rsp) | |
0x000000010c0627d7: mov %r10,(%rsp) | |
0x000000010c0627db: mov %r9,0x8(%rsp) ;*if_icmpge | |
; - sun.nio.cs.UTF_8$Encoder::encode@95 (line 640) | |
0x000000010c0627e0: mov %ebx,%esi | |
0x000000010c0627e2: nop | |
0x000000010c0627e3: callq 0x000000010c037f60 ; OopMap{[0]=Oop [8]=Oop [40]=Oop off=840} | |
;*invokestatic isSurrogate | |
; - sun.nio.cs.UTF_8$Encoder::encode@139 (line 644) | |
; {static_call} | |
0x000000010c0627e8: mov 0x50(%rsp),%ebp | |
0x000000010c0627ec: add $0x3,%ebp ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@257 (line 655) | |
0x000000010c0627ef: test %eax,%eax | |
0x000000010c0627f1: je 0x000000010c0628ed ;*ifeq | |
; - sun.nio.cs.UTF_8$Encoder::encode@142 (line 644) | |
0x000000010c0627f7: mov 0x28(%rsp),%r10 | |
0x000000010c0627fc: mov 0x2c(%r10),%r11d ;*getfield sgp | |
; - sun.nio.cs.UTF_8$Encoder::encode@146 (line 645) | |
0x000000010c062800: test %r11d,%r11d | |
0x000000010c062803: je 0x000000010c062a89 ;*ifnonnull | |
; - sun.nio.cs.UTF_8$Encoder::encode@149 (line 645) | |
0x000000010c062809: lea (%r12,%r11,8),%rsi ;*getfield sgp | |
; - sun.nio.cs.UTF_8$Encoder::encode@146 (line 645) | |
0x000000010c06280d: mov 0x34(%rsp),%edx | |
0x000000010c062811: mov (%rsp),%rcx | |
0x000000010c062815: mov 0x1c(%rsp),%r8d | |
0x000000010c06281a: mov 0x24(%rsp),%r9d | |
0x000000010c06281f: callq 0x000000010c037b60 ; OopMap{[0]=Oop [8]=Oop [40]=Oop off=900} | |
;*invokevirtual parse | |
; - sun.nio.cs.UTF_8$Encoder::encode@175 (line 647) | |
; {optimized virtual_call} | |
0x000000010c062824: mov %eax,%ebx | |
0x000000010c062826: test %eax,%eax | |
0x000000010c062828: jge 0x000000010c06284b ;*ifge | |
; - sun.nio.cs.UTF_8$Encoder::encode@182 (line 648) | |
0x000000010c06282a: mov 0x28(%rsp),%r8 | |
0x000000010c06282f: mov 0x20(%r8),%r11d | |
0x000000010c062833: cmp $0xf2aa24d3,%r11d ; {oop(a 'java/nio/charset/CodingErrorAction')} | |
0x000000010c06283a: je 0x000000010c062972 ;*if_acmpeq | |
; - sun.nio.cs.UTF_8$Encoder::encode@192 (line 649) | |
0x000000010c062840: mov $0xffffffff,%r11d | |
0x000000010c062846: jmpq 0x000000010c06263a | |
0x000000010c06284b: mov %eax,%r10d | |
0x000000010c06284e: sar $0x12,%r10d | |
0x000000010c062852: or $0xf0,%r10d ;*ior ; - sun.nio.cs.UTF_8$Encoder::encode@229 (line 653) | |
0x000000010c062859: mov 0x50(%rsp),%r8d | |
0x000000010c06285e: cmp 0x10(%rsp),%r8d | |
0x000000010c062863: jae 0x000000010c062aa5 | |
0x000000010c062869: mov 0x8(%rsp),%r9 | |
0x000000010c06286e: mov 0x38(%rsp),%r11 | |
0x000000010c062873: mov %r10b,0x10(%r9,%r11,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@231 (line 653) | |
0x000000010c062878: mov %eax,%r11d | |
0x000000010c06287b: shr $0xc,%r11d | |
0x000000010c06287f: and $0x3f,%r11d | |
0x000000010c062883: or $0x80,%r11d ;*ior ; - sun.nio.cs.UTF_8$Encoder::encode@250 (line 654) | |
0x000000010c06288a: cmp 0x10(%rsp),%ebp | |
0x000000010c06288e: jae 0x000000010c062ac9 | |
0x000000010c062894: mov 0x48(%rsp),%rdi | |
0x000000010c062899: mov %r11b,0x11(%r9,%rdi,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@252 (line 654) | |
0x000000010c06289e: mov 0x50(%rsp),%r11d | |
0x000000010c0628a3: add $0x4,%r11d ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@278 (line 656) | |
0x000000010c0628a7: mov 0x1c(%rsp),%r8d | |
0x000000010c0628ac: mov %r8d,%ecx | |
0x000000010c0628af: add $0x2,%ecx ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@292 (line 657) | |
0x000000010c0628b2: mov %eax,%r8d | |
0x000000010c0628b5: and $0x3f,%r8d | |
0x000000010c0628b9: shr $0x6,%ebx | |
0x000000010c0628bc: or $0x80,%r8d | |
0x000000010c0628c3: and $0x3f,%ebx | |
0x000000010c0628c6: or $0x80,%ebx | |
0x000000010c0628cc: mov %bl,0x12(%r9,%rdi,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@273 (line 655) | |
0x000000010c0628d1: mov %r8b,0x13(%r9,%rdi,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@291 (line 656) | |
0x000000010c0628d6: mov 0x28(%rsp),%r8 ;*goto | |
; - sun.nio.cs.UTF_8$Encoder::encode@295 (line 659) | |
0x000000010c0628db: mov (%rsp),%r10 | |
0x000000010c0628df: mov 0x10(%rsp),%r14d | |
0x000000010c0628e4: mov 0x14(%rsp),%edx | |
0x000000010c0628e8: jmpq 0x000000010c062723 | |
0x000000010c0628ed: mov 0x34(%rsp),%r8d | |
0x000000010c0628f2: sar $0xc,%r8d | |
0x000000010c0628f6: or $0xe0,%r8d ;*ior ; - sun.nio.cs.UTF_8$Encoder::encode@313 (line 661) | |
0x000000010c0628fd: mov 0x50(%rsp),%r11d | |
0x000000010c062902: cmp 0x10(%rsp),%r11d | |
0x000000010c062907: jae 0x000000010c062ae1 | |
0x000000010c06290d: mov 0x8(%rsp),%r9 | |
0x000000010c062912: mov 0x38(%rsp),%r10 | |
0x000000010c062917: mov %r8b,0x10(%r9,%r10,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@315 (line 661) | |
0x000000010c06291c: mov 0x34(%rsp),%r8d | |
0x000000010c062921: shr $0x6,%r8d | |
0x000000010c062925: and $0x3f,%r8d | |
0x000000010c062929: or $0x80,%r8d ;*ior ; - sun.nio.cs.UTF_8$Encoder::encode@334 (line 662) | |
0x000000010c062930: mov 0x44(%rsp),%r10d | |
0x000000010c062935: cmp 0x10(%rsp),%r10d | |
0x000000010c06293a: jae 0x000000010c062b01 | |
0x000000010c062940: mov 0x48(%rsp),%r10 | |
0x000000010c062945: mov %r8b,0x11(%r9,%r10,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@336 (line 662) | |
0x000000010c06294a: mov 0x40(%rsp),%r8d | |
0x000000010c06294f: mov %r8b,0x12(%r9,%r10,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@354 (line 663) | |
0x000000010c062954: mov (%rsp),%r10 | |
0x000000010c062958: mov 0x28(%rsp),%r8 | |
0x000000010c06295d: mov 0x10(%rsp),%r14d | |
0x000000010c062962: mov %ebp,%r11d | |
0x000000010c062965: mov 0x14(%rsp),%edx | |
0x000000010c062969: mov 0x30(%rsp),%ecx | |
0x000000010c06296d: jmpq 0x000000010c062723 | |
0x000000010c062972: mov 0x1c(%r8),%ebp ;*getfield replacement | |
; - java.nio.charset.CharsetEncoder::replacement@1 (line 247) | |
; - sun.nio.cs.UTF_8$Encoder::encode@205 (line 651) | |
0x000000010c062976: mov 0xc(%r12,%rbp,8),%r10d ; implicit exception: dispatches to 0x000000010c062b91 | |
0x000000010c06297b: test %r10d,%r10d | |
0x000000010c06297e: jbe 0x000000010c062b31 | |
0x000000010c062984: movsbl 0x10(%r12,%rbp,8),%ebp ;*baload | |
; - sun.nio.cs.UTF_8$Encoder::encode@209 (line 651) | |
0x000000010c06298a: mov 0x50(%rsp),%r10d | |
0x000000010c06298f: cmp 0x10(%rsp),%r10d | |
0x000000010c062994: jae 0x000000010c062b15 | |
0x000000010c06299a: mov 0x8(%rsp),%r9 | |
0x000000010c06299f: mov 0x38(%rsp),%r10 | |
0x000000010c0629a4: mov %bpl,0x10(%r9,%r10,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@210 (line 651) | |
0x000000010c0629a9: mov 0x18(%rsp),%r11d | |
0x000000010c0629ae: mov 0x30(%rsp),%ecx | |
0x000000010c0629b2: jmpq 0x000000010c0628db | |
0x000000010c0629b7: mov $0xffffffe4,%esi | |
0x000000010c0629bc: mov %r9,(%rsp) | |
0x000000010c0629c0: mov %r10,0x8(%rsp) | |
0x000000010c0629c5: mov %ecx,0x10(%rsp) | |
0x000000010c0629c9: mov %edi,0x18(%rsp) | |
0x000000010c0629cd: xchg %ax,%ax | |
0x000000010c0629cf: callq 0x000000010c038f20 ; OopMap{[0]=Oop [8]=Oop [40]=Oop off=1332} | |
;*caload | |
; - sun.nio.cs.UTF_8$Encoder::encode@65 (line 636) | |
; {runtime_call} | |
0x000000010c0629d4: callq 0x000000010a81d5de ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@86 (line 639) | |
; {runtime_call} | |
0x000000010c0629d9: movsbl %bl,%ebp ;*i2b ; - sun.nio.cs.UTF_8$Encoder::encode@85 (line 639) | |
0x000000010c0629dc: mov $0xffffffe4,%esi | |
0x000000010c0629e1: mov %r10,(%rsp) | |
0x000000010c0629e5: mov %r11d,0x10(%rsp) | |
0x000000010c0629ea: mov %r9,0x18(%rsp) | |
0x000000010c0629ef: mov %ecx,0x14(%rsp) | |
0x000000010c0629f3: mov %rax,-0x8(%rsp) | |
0x000000010c0629f8: mov 0x24(%rsp),%eax | |
0x000000010c0629fc: mov %eax,0x20(%rsp) | |
0x000000010c062a00: mov -0x8(%rsp),%rax | |
0x000000010c062a05: xchg %ax,%ax | |
0x000000010c062a07: callq 0x000000010c038f20 ; OopMap{[0]=Oop [24]=Oop [40]=Oop off=1388} | |
;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@86 (line 639) | |
; {runtime_call} | |
0x000000010c062a0c: callq 0x000000010a81d5de ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@115 (line 642) | |
; {runtime_call} | |
0x000000010c062a11: movsbl %r8b,%ebp ;*i2b ; - sun.nio.cs.UTF_8$Encoder::encode@114 (line 642) | |
0x000000010c062a15: mov $0xffffffe4,%esi | |
0x000000010c062a1a: mov %r10,(%rsp) | |
0x000000010c062a1e: mov %r11d,0x10(%rsp) | |
0x000000010c062a23: mov %r9,0x18(%rsp) | |
0x000000010c062a28: mov %ecx,0x14(%rsp) | |
0x000000010c062a2c: mov %rax,-0x8(%rsp) | |
0x000000010c062a31: mov 0x24(%rsp),%eax | |
0x000000010c062a35: mov %eax,0x20(%rsp) | |
0x000000010c062a39: mov -0x8(%rsp),%rax | |
0x000000010c062a3e: mov %ebx,0x24(%rsp) | |
0x000000010c062a42: nop | |
0x000000010c062a43: callq 0x000000010c038f20 ; OopMap{[0]=Oop [24]=Oop [40]=Oop off=1448} | |
;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@115 (line 642) | |
; {runtime_call} | |
0x000000010c062a48: callq 0x000000010a81d5de ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@133 (line 643) | |
; {runtime_call} | |
0x000000010c062a4d: movsbl %bpl,%ebp ;*i2b ; - sun.nio.cs.UTF_8$Encoder::encode@132 (line 643) | |
0x000000010c062a51: mov $0xffffffe4,%esi | |
0x000000010c062a56: mov %r10,(%rsp) | |
0x000000010c062a5a: mov %r9,0x10(%rsp) | |
0x000000010c062a5f: mov %r11d,0x18(%rsp) | |
0x000000010c062a64: mov %ecx,0x1c(%rsp) | |
0x000000010c062a68: mov %rax,-0x8(%rsp) | |
0x000000010c062a6d: mov 0x24(%rsp),%eax | |
0x000000010c062a71: mov %eax,0x20(%rsp) | |
0x000000010c062a75: mov -0x8(%rsp),%rax | |
0x000000010c062a7a: mov %eax,0x24(%rsp) | |
0x000000010c062a7e: nop | |
0x000000010c062a7f: callq 0x000000010c038f20 ; OopMap{[0]=Oop [16]=Oop [40]=Oop off=1508} | |
;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@133 (line 643) | |
; {runtime_call} | |
0x000000010c062a84: callq 0x000000010a81d5de ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@133 (line 643) | |
; {runtime_call} | |
0x000000010c062a89: mov $0x15,%esi | |
0x000000010c062a8e: mov (%rsp),%rbp | |
0x000000010c062a92: mov 0x8(%rsp),%r11 | |
0x000000010c062a97: mov %r11,(%rsp) | |
0x000000010c062a9b: callq 0x000000010c038f20 ; OopMap{rbp=Oop [0]=Oop [40]=Oop off=1536} | |
;*new ; - sun.nio.cs.UTF_8$Encoder::encode@153 (line 646) | |
; {runtime_call} | |
0x000000010c062aa0: callq 0x000000010a81d5de ;*new | |
; - sun.nio.cs.UTF_8$Encoder::encode@153 (line 646) | |
; {runtime_call} | |
0x000000010c062aa5: movsbl %r10b,%ebp ;*i2b ; - sun.nio.cs.UTF_8$Encoder::encode@230 (line 653) | |
0x000000010c062aa9: mov $0xffffffe4,%esi | |
0x000000010c062aae: mov 0x18(%rsp),%r11d | |
0x000000010c062ab3: mov %r11d,0x10(%rsp) | |
0x000000010c062ab8: mov %eax,0x14(%rsp) | |
0x000000010c062abc: data32 xchg %ax,%ax | |
0x000000010c062abf: callq 0x000000010c038f20 ; OopMap{[0]=Oop [8]=Oop [40]=Oop off=1572} | |
;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@231 (line 653) | |
; {runtime_call} | |
0x000000010c062ac4: callq 0x000000010a81d5de ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@252 (line 654) | |
; {runtime_call} | |
0x000000010c062ac9: movsbl %r11b,%ebp ;*i2b ; - sun.nio.cs.UTF_8$Encoder::encode@251 (line 654) | |
0x000000010c062acd: mov $0xffffffe4,%esi | |
0x000000010c062ad2: mov %eax,0x1c(%rsp) | |
0x000000010c062ad6: nop | |
0x000000010c062ad7: callq 0x000000010c038f20 ; OopMap{[0]=Oop [8]=Oop [40]=Oop off=1596} | |
;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@252 (line 654) | |
; {runtime_call} | |
0x000000010c062adc: callq 0x000000010a81d5de ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@252 (line 654) | |
; {runtime_call} | |
0x000000010c062ae1: movsbl %r8b,%ebp ;*i2b ; - sun.nio.cs.UTF_8$Encoder::encode@314 (line 661) | |
0x000000010c062ae5: mov $0xffffffe4,%esi | |
0x000000010c062aea: mov 0x18(%rsp),%r10d | |
0x000000010c062aef: mov %r10d,0x10(%rsp) | |
0x000000010c062af4: data32 xchg %ax,%ax | |
0x000000010c062af7: callq 0x000000010c038f20 ; OopMap{[0]=Oop [8]=Oop [40]=Oop off=1628} | |
;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@315 (line 661) | |
; {runtime_call} | |
0x000000010c062afc: callq 0x000000010a81d5de ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@336 (line 662) | |
; {runtime_call} | |
0x000000010c062b01: movsbl %r8b,%ebp ;*i2b ; - sun.nio.cs.UTF_8$Encoder::encode@335 (line 662) | |
0x000000010c062b05: mov $0xffffffe4,%esi | |
0x000000010c062b0a: nop | |
0x000000010c062b0b: callq 0x000000010c038f20 ; OopMap{[0]=Oop [8]=Oop [40]=Oop off=1648} | |
;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@336 (line 662) | |
; {runtime_call} | |
0x000000010c062b10: callq 0x000000010a81d5de ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@336 (line 662) | |
; {runtime_call} | |
0x000000010c062b15: mov $0xffffffe4,%esi | |
0x000000010c062b1a: mov 0x18(%rsp),%r9d | |
0x000000010c062b1f: mov %r9d,0x10(%rsp) | |
0x000000010c062b24: data32 xchg %ax,%ax | |
0x000000010c062b27: callq 0x000000010c038f20 ; OopMap{[0]=Oop [8]=Oop [40]=Oop off=1676} | |
;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@210 (line 651) | |
; {runtime_call} | |
0x000000010c062b2c: callq 0x000000010a81d5de ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@210 (line 651) | |
; {runtime_call} | |
0x000000010c062b31: mov $0xffffffe4,%esi | |
0x000000010c062b36: mov 0x18(%rsp),%r10d | |
0x000000010c062b3b: mov %r10d,0x10(%rsp) | |
0x000000010c062b40: data32 xchg %ax,%ax | |
0x000000010c062b43: callq 0x000000010c038f20 ; OopMap{rbp=NarrowOop [0]=Oop [8]=Oop [40]=Oop off=1704} | |
;*baload | |
; - sun.nio.cs.UTF_8$Encoder::encode@209 (line 651) | |
; {runtime_call} | |
0x000000010c062b48: callq 0x000000010a81d5de ;*baload | |
; - sun.nio.cs.UTF_8$Encoder::encode@209 (line 651) | |
; {runtime_call} | |
0x000000010c062b4d: mov $0xfffffff6,%esi | |
0x000000010c062b52: nop | |
0x000000010c062b53: callq 0x000000010c038f20 ; OopMap{off=1720} | |
;*arraylength | |
; - sun.nio.cs.UTF_8$Encoder::encode@13 (line 629) | |
; {runtime_call} | |
0x000000010c062b58: callq 0x000000010a81d5de ;*invokestatic isSurrogate | |
; - sun.nio.cs.UTF_8$Encoder::encode@139 (line 644) | |
; {runtime_call} | |
0x000000010c062b5d: mov %rax,%rsi | |
0x000000010c062b60: jmp 0x000000010c062b65 | |
0x000000010c062b62: mov %rax,%rsi ;*invokevirtual parse | |
; - sun.nio.cs.UTF_8$Encoder::encode@175 (line 647) | |
0x000000010c062b65: add $0x70,%rsp | |
0x000000010c062b69: pop %rbp | |
0x000000010c062b6a: jmpq 0x000000010c061e20 ; {runtime_call} | |
0x000000010c062b6f: mov $0xffffff86,%esi | |
0x000000010c062b74: mov %r10,%rbp | |
0x000000010c062b77: mov %r8d,(%rsp) | |
0x000000010c062b7b: mov %r9,0x8(%rsp) | |
0x000000010c062b80: mov %r11d,0x4(%rsp) | |
0x000000010c062b85: xchg %ax,%ax | |
0x000000010c062b87: callq 0x000000010c038f20 ; OopMap{rbp=Oop [8]=Oop [40]=Oop off=1772} | |
;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@60 (line 636) | |
; {runtime_call} | |
0x000000010c062b8c: callq 0x000000010a81d5de ;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@60 (line 636) | |
; {runtime_call} | |
0x000000010c062b91: mov $0xfffffff6,%esi | |
0x000000010c062b96: nop | |
0x000000010c062b97: callq 0x000000010c038f20 ; OopMap{off=1788} | |
;*baload | |
; - sun.nio.cs.UTF_8$Encoder::encode@209 (line 651) | |
; {runtime_call} | |
0x000000010c062b9c: callq 0x000000010a81d5de ;*if_icmpge | |
; - sun.nio.cs.UTF_8$Encoder::encode@57 (line 635) | |
; {runtime_call} | |
0x000000010c062ba1: hlt | |
0x000000010c062ba2: hlt | |
0x000000010c062ba3: hlt | |
0x000000010c062ba4: hlt | |
0x000000010c062ba5: hlt | |
0x000000010c062ba6: hlt | |
0x000000010c062ba7: hlt | |
0x000000010c062ba8: hlt | |
0x000000010c062ba9: hlt | |
0x000000010c062baa: hlt | |
0x000000010c062bab: hlt | |
0x000000010c062bac: hlt | |
0x000000010c062bad: hlt | |
0x000000010c062bae: hlt | |
0x000000010c062baf: hlt | |
0x000000010c062bb0: hlt | |
0x000000010c062bb1: hlt | |
0x000000010c062bb2: hlt | |
0x000000010c062bb3: hlt | |
0x000000010c062bb4: hlt | |
0x000000010c062bb5: hlt | |
0x000000010c062bb6: hlt | |
0x000000010c062bb7: hlt | |
0x000000010c062bb8: hlt | |
0x000000010c062bb9: hlt | |
0x000000010c062bba: hlt | |
0x000000010c062bbb: hlt | |
0x000000010c062bbc: hlt | |
0x000000010c062bbd: hlt | |
0x000000010c062bbe: hlt | |
0x000000010c062bbf: hlt | |
[Stub Code] | |
0x000000010c062bc0: movabs $0x0,%rbx ; {no_reloc} | |
0x000000010c062bca: jmpq 0x000000010c062bca ; {runtime_call} | |
0x000000010c062bcf: movabs $0x0,%rbx ; {static_stub} | |
0x000000010c062bd9: jmpq 0x000000010c062bd9 ; {runtime_call} | |
[Exception Handler] | |
0x000000010c062bde: jmpq 0x000000010c05f0a0 ; {runtime_call} | |
[Deopt Handler Code] | |
0x000000010c062be3: callq 0x000000010c062be8 | |
0x000000010c062be8: subq $0x5,(%rsp) | |
0x000000010c062bed: jmpq 0x000000010c038b00 ; {runtime_call} | |
0x000000010c062bf2: hlt | |
0x000000010c062bf3: hlt | |
0x000000010c062bf4: hlt | |
0x000000010c062bf5: hlt | |
0x000000010c062bf6: hlt | |
0x000000010c062bf7: hlt | |
Decoding compiled method 0x000000010c063dd0: | |
Code: | |
[Entry Point] | |
[Constants] | |
# {method} '<init>' '()V' in 'java/lang/Object' | |
# [sp+0x20] (sp of caller) | |
0x000000010c063f00: mov 0x8(%rsi),%r10d | |
0x000000010c063f04: shl $0x3,%r10 | |
0x000000010c063f08: cmp %r10,%rax | |
0x000000010c063f0b: jne 0x000000010c037960 ; {runtime_call} | |
0x000000010c063f11: data32 xchg %ax,%ax | |
0x000000010c063f14: nopl 0x0(%rax,%rax,1) | |
0x000000010c063f1c: data32 data32 xchg %ax,%ax | |
[Verified Entry Point] | |
0x000000010c063f20: mov %eax,-0x14000(%rsp) | |
0x000000010c063f27: push %rbp | |
0x000000010c063f28: sub $0x10,%rsp ;*synchronization entry | |
; - java.lang.Object::<init>@-1 (line 37) | |
0x000000010c063f2c: mov 0x8(%rsi),%r10d | |
0x000000010c063f30: mov $0x40000000,%r8d | |
0x000000010c063f36: test %r8d,0x9c(%r12,%r10,8) | |
0x000000010c063f3e: je 0x000000010c063f48 ;*return | |
; - java.lang.Object::<init>@0 (line 37) | |
0x000000010c063f40: mov %rsi,%rbp | |
0x000000010c063f43: callq 0x000000010c062020 ; OopMap{rbp=Oop off=72} | |
;*return | |
; - java.lang.Object::<init>@0 (line 37) | |
; {runtime_call} | |
0x000000010c063f48: add $0x10,%rsp | |
0x000000010c063f4c: pop %rbp | |
0x000000010c063f4d: test %eax,-0x10b3f53(%rip) # 0x000000010afb0000 | |
; {poll_return} | |
0x000000010c063f53: retq ;*return | |
; - java.lang.Object::<init>@0 (line 37) | |
0x000000010c063f54: mov %rax,%rsi | |
0x000000010c063f57: add $0x10,%rsp | |
0x000000010c063f5b: pop %rbp | |
0x000000010c063f5c: jmpq 0x000000010c061e20 ; {runtime_call} | |
0x000000010c063f61: hlt | |
0x000000010c063f62: hlt | |
0x000000010c063f63: hlt | |
0x000000010c063f64: hlt | |
0x000000010c063f65: hlt | |
0x000000010c063f66: hlt | |
0x000000010c063f67: hlt | |
0x000000010c063f68: hlt | |
0x000000010c063f69: hlt | |
0x000000010c063f6a: hlt | |
0x000000010c063f6b: hlt | |
0x000000010c063f6c: hlt | |
0x000000010c063f6d: hlt | |
0x000000010c063f6e: hlt | |
0x000000010c063f6f: hlt | |
0x000000010c063f70: hlt | |
0x000000010c063f71: hlt | |
0x000000010c063f72: hlt | |
0x000000010c063f73: hlt | |
0x000000010c063f74: hlt | |
0x000000010c063f75: hlt | |
0x000000010c063f76: hlt | |
0x000000010c063f77: hlt | |
0x000000010c063f78: hlt | |
0x000000010c063f79: hlt | |
0x000000010c063f7a: hlt | |
0x000000010c063f7b: hlt | |
0x000000010c063f7c: hlt | |
0x000000010c063f7d: hlt | |
0x000000010c063f7e: hlt | |
0x000000010c063f7f: hlt | |
[Exception Handler] | |
[Stub Code] | |
0x000000010c063f80: jmpq 0x000000010c05f0a0 ; {no_reloc} | |
[Deopt Handler Code] | |
0x000000010c063f85: callq 0x000000010c063f8a | |
0x000000010c063f8a: subq $0x5,(%rsp) | |
0x000000010c063f8f: jmpq 0x000000010c038b00 ; {runtime_call} | |
0x000000010c063f94: hlt | |
0x000000010c063f95: hlt | |
0x000000010c063f96: hlt | |
0x000000010c063f97: hlt | |
Decoding compiled method 0x000000010c063950: | |
Code: | |
[Entry Point] | |
[Constants] | |
# {method} 'ensureCapacityInternal' '(I)V' in 'java/util/ArrayList' | |
# this: rsi:rsi = 'java/util/ArrayList' | |
# parm0: rdx = int | |
# [sp+0x30] (sp of caller) | |
0x000000010c063aa0: mov 0x8(%rsi),%r10d | |
0x000000010c063aa4: shl $0x3,%r10 | |
0x000000010c063aa8: cmp %r10,%rax | |
0x000000010c063aab: jne 0x000000010c037960 ; {runtime_call} | |
0x000000010c063ab1: data32 xchg %ax,%ax | |
0x000000010c063ab4: nopl 0x0(%rax,%rax,1) | |
0x000000010c063abc: data32 data32 xchg %ax,%ax | |
[Verified Entry Point] | |
0x000000010c063ac0: mov %eax,-0x14000(%rsp) | |
0x000000010c063ac7: push %rbp | |
0x000000010c063ac8: sub $0x20,%rsp ;*synchronization entry | |
; - java.util.ArrayList::ensureCapacityInternal@-1 (line 204) | |
0x000000010c063acc: mov 0x14(%rsi),%r10d ;*getfield elementData | |
; - java.util.ArrayList::ensureCapacityInternal@1 (line 204) | |
0x000000010c063ad0: cmp $0xf2aa202d,%r10d ; {oop(a 'java/lang/Object'[0] )} | |
0x000000010c063ad7: je 0x000000010c063af8 ;*if_acmpne | |
; - java.util.ArrayList::ensureCapacityInternal@7 (line 204) | |
0x000000010c063ad9: incl 0xc(%rsi) ;*putfield modCount | |
; - java.util.ArrayList::ensureExplicitCapacity@7 (line 212) | |
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208) | |
0x000000010c063adc: mov 0xc(%r12,%r10,8),%r11d ; implicit exception: dispatches to 0x000000010c063b1e | |
0x000000010c063ae1: mov %edx,%r10d | |
0x000000010c063ae4: sub %r11d,%r10d | |
0x000000010c063ae7: test %r10d,%r10d | |
0x000000010c063aea: jg 0x000000010c063b15 ;*synchronization entry | |
; - java.util.ArrayList::ensureCapacityInternal@-1 (line 204) | |
0x000000010c063aec: add $0x20,%rsp | |
0x000000010c063af0: pop %rbp | |
0x000000010c063af1: test %eax,-0x10b3af7(%rip) # 0x000000010afb0000 | |
; {poll_return} | |
0x000000010c063af7: retq | |
0x000000010c063af8: mov %rsi,%rbp | |
0x000000010c063afb: mov %edx,(%rsp) | |
0x000000010c063afe: mov %r10d,0x4(%rsp) | |
0x000000010c063b03: mov $0xffffffad,%esi | |
0x000000010c063b08: data32 xchg %ax,%ax | |
0x000000010c063b0b: callq 0x000000010c038f20 ; OopMap{rbp=Oop [4]=NarrowOop off=112} | |
;*if_acmpne | |
; - java.util.ArrayList::ensureCapacityInternal@7 (line 204) | |
; {runtime_call} | |
0x000000010c063b10: callq 0x000000010a81d5de ;*synchronization entry | |
; - java.util.ArrayList::ensureExplicitCapacity@-1 (line 212) | |
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208) | |
; {runtime_call} | |
0x000000010c063b15: xchg %ax,%ax | |
0x000000010c063b17: callq 0x000000010c037b60 ; OopMap{off=124} | |
;*invokespecial grow | |
; - java.util.ArrayList::ensureExplicitCapacity@22 (line 216) | |
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208) | |
; {optimized virtual_call} | |
0x000000010c063b1c: jmp 0x000000010c063aec | |
0x000000010c063b1e: mov $0xfffffff6,%esi | |
0x000000010c063b23: callq 0x000000010c038f20 ; OopMap{off=136} | |
;*arraylength | |
; - java.util.ArrayList::ensureExplicitCapacity@15 (line 215) | |
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208) | |
; {runtime_call} | |
0x000000010c063b28: callq 0x000000010a81d5de ;*invokespecial grow | |
; - java.util.ArrayList::ensureExplicitCapacity@22 (line 216) | |
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208) | |
; {runtime_call} | |
0x000000010c063b2d: mov %rax,%rsi | |
0x000000010c063b30: add $0x20,%rsp | |
0x000000010c063b34: pop %rbp | |
0x000000010c063b35: jmpq 0x000000010c061e20 ; {runtime_call} | |
0x000000010c063b3a: hlt | |
0x000000010c063b3b: hlt | |
0x000000010c063b3c: hlt | |
0x000000010c063b3d: hlt | |
0x000000010c063b3e: hlt | |
0x000000010c063b3f: hlt | |
[Stub Code] | |
0x000000010c063b40: movabs $0x0,%rbx ; {no_reloc} | |
0x000000010c063b4a: jmpq 0x000000010c063b4a ; {runtime_call} | |
[Exception Handler] | |
0x000000010c063b4f: jmpq 0x000000010c05f0a0 ; {runtime_call} | |
[Deopt Handler Code] | |
0x000000010c063b54: callq 0x000000010c063b59 | |
0x000000010c063b59: subq $0x5,(%rsp) | |
0x000000010c063b5e: jmpq 0x000000010c038b00 ; {runtime_call} | |
0x000000010c063b63: hlt | |
0x000000010c063b64: hlt | |
0x000000010c063b65: hlt | |
0x000000010c063b66: hlt | |
0x000000010c063b67: hlt | |
Decoding compiled method 0x000000010c05f4d0: | |
Code: | |
[Entry Point] | |
[Constants] | |
# {method} 'add' '(Ljava/lang/Object;)Z' in 'java/util/ArrayList' | |
# this: rsi:rsi = 'java/util/ArrayList' | |
# parm0: rdx:rdx = 'java/lang/Object' | |
# [sp+0x40] (sp of caller) | |
0x000000010c05f640: mov 0x8(%rsi),%r10d | |
0x000000010c05f644: shl $0x3,%r10 | |
0x000000010c05f648: cmp %r10,%rax | |
0x000000010c05f64b: jne 0x000000010c037960 ; {runtime_call} | |
0x000000010c05f651: data32 xchg %ax,%ax | |
0x000000010c05f654: nopl 0x0(%rax,%rax,1) | |
0x000000010c05f65c: data32 data32 xchg %ax,%ax | |
[Verified Entry Point] | |
0x000000010c05f660: mov %eax,-0x14000(%rsp) | |
0x000000010c05f667: push %rbp | |
0x000000010c05f668: sub $0x30,%rsp ;*synchronization entry | |
; - java.util.ArrayList::add@-1 (line 440) | |
0x000000010c05f66c: mov %rdx,0x8(%rsp) | |
0x000000010c05f671: mov %rsi,%rbp | |
0x000000010c05f674: mov 0x10(%rsi),%r8d ;*getfield size | |
; - java.util.ArrayList::add@2 (line 440) | |
0x000000010c05f678: mov 0x14(%rsi),%r11d ;*getfield elementData | |
; - java.util.ArrayList::ensureCapacityInternal@1 (line 204) | |
; - java.util.ArrayList::add@7 (line 440) | |
0x000000010c05f67c: mov %r8d,%edx | |
0x000000010c05f67f: inc %edx ;*iadd | |
; - java.util.ArrayList::add@6 (line 440) | |
0x000000010c05f681: cmp $0xf2aa202d,%r11d ; {oop(a 'java/lang/Object'[0] )} | |
0x000000010c05f688: je 0x000000010c05f72d ;*if_acmpne | |
; - java.util.ArrayList::ensureCapacityInternal@7 (line 204) | |
; - java.util.ArrayList::add@7 (line 440) | |
0x000000010c05f68e: incl 0xc(%rsi) ;*putfield modCount | |
; - java.util.ArrayList::ensureExplicitCapacity@7 (line 212) | |
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208) | |
; - java.util.ArrayList::add@7 (line 440) | |
0x000000010c05f691: mov 0xc(%r12,%r11,8),%r10d ; implicit exception: dispatches to 0x000000010c05f785 | |
0x000000010c05f696: mov %r8d,%ecx | |
0x000000010c05f699: sub %r10d,%ecx | |
0x000000010c05f69c: inc %ecx | |
0x000000010c05f69e: test %ecx,%ecx | |
0x000000010c05f6a0: jg 0x000000010c05f751 ;*ifle | |
; - java.util.ArrayList::ensureExplicitCapacity@17 (line 215) | |
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208) | |
; - java.util.ArrayList::add@7 (line 440) | |
0x000000010c05f6a6: mov %edx,0x10(%rsi) ;*return | |
; - java.util.ArrayList::ensureExplicitCapacity@25 (line 217) | |
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208) | |
; - java.util.ArrayList::add@7 (line 440) | |
0x000000010c05f6a9: mov 0xc(%r12,%r11,8),%r10d | |
0x000000010c05f6ae: cmp %r10d,%r8d | |
0x000000010c05f6b1: jae 0x000000010c05f6fc | |
0x000000010c05f6b3: mov 0x8(%r12,%r11,8),%r10d | |
0x000000010c05f6b8: cmp $0xd75d45e9,%r10d ; {oop('java/lang/Object'[])} | |
0x000000010c05f6bf: jne 0x000000010c05f715 ;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
0x000000010c05f6c1: lea (%r12,%r11,8),%r10 ;*getfield elementData | |
; - java.util.ArrayList::add@11 (line 441) | |
0x000000010c05f6c5: lea 0x10(%r10,%r8,4),%r10 | |
0x000000010c05f6ca: mov 0x8(%rsp),%r11 | |
0x000000010c05f6cf: mov %r11,%r8 | |
0x000000010c05f6d2: shr $0x3,%r8 | |
0x000000010c05f6d6: mov %r8d,(%r10) | |
0x000000010c05f6d9: shr $0x9,%r10 | |
0x000000010c05f6dd: mov $0x1,%eax | |
0x000000010c05f6e2: movabs $0x10bae9000,%r11 | |
0x000000010c05f6ec: mov %r12b,(%r11,%r10,1) ;*synchronization entry | |
; - java.util.ArrayList::add@-1 (line 440) | |
0x000000010c05f6f0: add $0x30,%rsp | |
0x000000010c05f6f4: pop %rbp | |
0x000000010c05f6f5: test %eax,-0x10af6fb(%rip) # 0x000000010afb0000 | |
; {poll_return} | |
0x000000010c05f6fb: retq ;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
0x000000010c05f6fc: mov $0xffffffe4,%esi | |
0x000000010c05f701: mov %r11d,%ebp | |
0x000000010c05f704: mov %r8d,(%rsp) | |
0x000000010c05f708: data32 xchg %ax,%ax | |
0x000000010c05f70b: callq 0x000000010c038f20 ; OopMap{rbp=NarrowOop [8]=Oop off=208} | |
;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; {runtime_call} | |
0x000000010c05f710: callq 0x000000010a81d5de ;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; {runtime_call} | |
0x000000010c05f715: mov $0xffffffd6,%esi | |
0x000000010c05f71a: mov %r11d,%ebp | |
0x000000010c05f71d: mov %r8d,(%rsp) | |
0x000000010c05f721: xchg %ax,%ax | |
0x000000010c05f723: callq 0x000000010c038f20 ; OopMap{rbp=NarrowOop [8]=Oop off=232} | |
;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; {runtime_call} | |
0x000000010c05f728: callq 0x000000010a81d5de ;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; {runtime_call} | |
0x000000010c05f72d: mov $0xffffffad,%esi | |
0x000000010c05f732: rex.W pushq 0x8(%rsp) | |
0x000000010c05f737: rex.W popq (%rsp) | |
0x000000010c05f73b: mov %edx,0x10(%rsp) | |
0x000000010c05f73f: mov %r11d,0x14(%rsp) | |
0x000000010c05f744: data32 xchg %ax,%ax | |
0x000000010c05f747: callq 0x000000010c038f20 ; OopMap{rbp=Oop [0]=Oop [20]=NarrowOop off=268} | |
;*if_acmpne | |
; - java.util.ArrayList::ensureCapacityInternal@7 (line 204) | |
; - java.util.ArrayList::add@7 (line 440) | |
; {runtime_call} | |
0x000000010c05f74c: callq 0x000000010a81d5de ;*synchronization entry | |
; - java.util.ArrayList::ensureExplicitCapacity@-1 (line 212) | |
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208) | |
; - java.util.ArrayList::add@7 (line 440) | |
; {runtime_call} | |
0x000000010c05f751: xchg %ax,%ax | |
0x000000010c05f753: callq 0x000000010c037b60 ; OopMap{rbp=Oop [8]=Oop off=280} | |
;*invokespecial grow | |
; - java.util.ArrayList::ensureExplicitCapacity@22 (line 216) | |
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208) | |
; - java.util.ArrayList::add@7 (line 440) | |
; {optimized virtual_call} | |
0x000000010c05f758: mov 0x10(%rbp),%r8d ;*getfield size | |
; - java.util.ArrayList::add@16 (line 441) | |
0x000000010c05f75c: mov 0x14(%rbp),%r11d ;*getfield elementData | |
; - java.util.ArrayList::add@11 (line 441) | |
0x000000010c05f760: mov %r8d,%r9d | |
0x000000010c05f763: inc %r9d | |
0x000000010c05f766: mov %r9d,0x10(%rbp) ;*putfield size | |
; - java.util.ArrayList::add@22 (line 441) | |
0x000000010c05f76a: test %r11d,%r11d | |
0x000000010c05f76d: jne 0x000000010c05f6a9 ;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
0x000000010c05f773: mov $0xfffffff6,%esi | |
0x000000010c05f778: mov %r8d,%ebp | |
0x000000010c05f77b: callq 0x000000010c038f20 ; OopMap{[8]=Oop off=320} | |
;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; {runtime_call} | |
0x000000010c05f780: callq 0x000000010a81d5de ; {runtime_call} | |
0x000000010c05f785: mov $0xfffffff6,%esi | |
0x000000010c05f78a: nop | |
0x000000010c05f78b: callq 0x000000010c038f20 ; OopMap{off=336} | |
;*arraylength | |
; - java.util.ArrayList::ensureExplicitCapacity@15 (line 215) | |
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208) | |
; - java.util.ArrayList::add@7 (line 440) | |
; {runtime_call} | |
0x000000010c05f790: callq 0x000000010a81d5de ;*invokespecial grow | |
; - java.util.ArrayList::ensureExplicitCapacity@22 (line 216) | |
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208) | |
; - java.util.ArrayList::add@7 (line 440) | |
; {runtime_call} | |
0x000000010c05f795: mov %rax,%rsi | |
0x000000010c05f798: add $0x30,%rsp | |
0x000000010c05f79c: pop %rbp | |
0x000000010c05f79d: jmpq 0x000000010c061e20 ; {runtime_call} | |
0x000000010c05f7a2: hlt | |
0x000000010c05f7a3: hlt | |
0x000000010c05f7a4: hlt | |
0x000000010c05f7a5: hlt | |
0x000000010c05f7a6: hlt | |
0x000000010c05f7a7: hlt | |
0x000000010c05f7a8: hlt | |
0x000000010c05f7a9: hlt | |
0x000000010c05f7aa: hlt | |
0x000000010c05f7ab: hlt | |
0x000000010c05f7ac: hlt | |
0x000000010c05f7ad: hlt | |
0x000000010c05f7ae: hlt | |
0x000000010c05f7af: hlt | |
0x000000010c05f7b0: hlt | |
0x000000010c05f7b1: hlt | |
0x000000010c05f7b2: hlt | |
0x000000010c05f7b3: hlt | |
0x000000010c05f7b4: hlt | |
0x000000010c05f7b5: hlt | |
0x000000010c05f7b6: hlt | |
0x000000010c05f7b7: hlt | |
0x000000010c05f7b8: hlt | |
0x000000010c05f7b9: hlt | |
0x000000010c05f7ba: hlt | |
0x000000010c05f7bb: hlt | |
0x000000010c05f7bc: hlt | |
0x000000010c05f7bd: hlt | |
0x000000010c05f7be: hlt | |
0x000000010c05f7bf: hlt | |
[Stub Code] | |
0x000000010c05f7c0: movabs $0x0,%rbx ; {no_reloc} | |
0x000000010c05f7ca: jmpq 0x000000010c05f7ca ; {runtime_call} | |
[Exception Handler] | |
0x000000010c05f7cf: jmpq 0x000000010c05f0a0 ; {runtime_call} | |
[Deopt Handler Code] | |
0x000000010c05f7d4: callq 0x000000010c05f7d9 | |
0x000000010c05f7d9: subq $0x5,(%rsp) | |
0x000000010c05f7de: jmpq 0x000000010c038b00 ; {runtime_call} | |
0x000000010c05f7e3: hlt | |
0x000000010c05f7e4: hlt | |
0x000000010c05f7e5: hlt | |
0x000000010c05f7e6: hlt | |
0x000000010c05f7e7: hlt | |
Decoding compiled method 0x000000010c05f150: | |
Code: | |
[Entry Point] | |
[Constants] | |
# {method} 'ensureExplicitCapacity' '(I)V' in 'java/util/ArrayList' | |
# this: rsi:rsi = 'java/util/ArrayList' | |
# parm0: rdx = int | |
# [sp+0x20] (sp of caller) | |
0x000000010c05f2a0: mov 0x8(%rsi),%r10d | |
0x000000010c05f2a4: shl $0x3,%r10 | |
0x000000010c05f2a8: cmp %r10,%rax | |
0x000000010c05f2ab: jne 0x000000010c037960 ; {runtime_call} | |
0x000000010c05f2b1: data32 xchg %ax,%ax | |
0x000000010c05f2b4: nopl 0x0(%rax,%rax,1) | |
0x000000010c05f2bc: data32 data32 xchg %ax,%ax | |
[Verified Entry Point] | |
0x000000010c05f2c0: mov %eax,-0x14000(%rsp) | |
0x000000010c05f2c7: push %rbp | |
0x000000010c05f2c8: sub $0x10,%rsp ;*synchronization entry | |
; - java.util.ArrayList::ensureExplicitCapacity@-1 (line 212) | |
0x000000010c05f2cc: incl 0xc(%rsi) ;*putfield modCount | |
; - java.util.ArrayList::ensureExplicitCapacity@7 (line 212) | |
0x000000010c05f2cf: mov 0x14(%rsi),%r11d ;*getfield elementData | |
; - java.util.ArrayList::ensureExplicitCapacity@12 (line 215) | |
0x000000010c05f2d3: mov 0xc(%r12,%r11,8),%r10d ; implicit exception: dispatches to 0x000000010c05f2f6 | |
0x000000010c05f2d8: mov %edx,%r8d | |
0x000000010c05f2db: sub %r10d,%r8d | |
0x000000010c05f2de: test %r8d,%r8d | |
0x000000010c05f2e1: jg 0x000000010c05f2ef ;*putfield modCount | |
; - java.util.ArrayList::ensureExplicitCapacity@7 (line 212) | |
0x000000010c05f2e3: add $0x10,%rsp | |
0x000000010c05f2e7: pop %rbp | |
0x000000010c05f2e8: test %eax,-0x10af2ee(%rip) # 0x000000010afb0000 | |
; {poll_return} | |
0x000000010c05f2ee: retq | |
0x000000010c05f2ef: callq 0x000000010c037b60 ; OopMap{off=84} | |
;*invokespecial grow | |
; - java.util.ArrayList::ensureExplicitCapacity@22 (line 216) | |
; {optimized virtual_call} | |
0x000000010c05f2f4: jmp 0x000000010c05f2e3 | |
0x000000010c05f2f6: mov $0xfffffff6,%esi | |
0x000000010c05f2fb: callq 0x000000010c038f20 ; OopMap{off=96} | |
;*arraylength | |
; - java.util.ArrayList::ensureExplicitCapacity@15 (line 215) | |
; {runtime_call} | |
0x000000010c05f300: callq 0x000000010a81d5de ;*invokespecial grow | |
; - java.util.ArrayList::ensureExplicitCapacity@22 (line 216) | |
; {runtime_call} | |
0x000000010c05f305: mov %rax,%rsi | |
0x000000010c05f308: add $0x10,%rsp | |
0x000000010c05f30c: pop %rbp | |
0x000000010c05f30d: jmpq 0x000000010c061e20 ; {runtime_call} | |
0x000000010c05f312: hlt | |
0x000000010c05f313: hlt | |
0x000000010c05f314: hlt | |
0x000000010c05f315: hlt | |
0x000000010c05f316: hlt | |
0x000000010c05f317: hlt | |
0x000000010c05f318: hlt | |
0x000000010c05f319: hlt | |
0x000000010c05f31a: hlt | |
0x000000010c05f31b: hlt | |
0x000000010c05f31c: hlt | |
0x000000010c05f31d: hlt | |
0x000000010c05f31e: hlt | |
0x000000010c05f31f: hlt | |
[Stub Code] | |
0x000000010c05f320: movabs $0x0,%rbx ; {no_reloc} | |
0x000000010c05f32a: jmpq 0x000000010c05f32a ; {runtime_call} | |
[Exception Handler] | |
0x000000010c05f32f: jmpq 0x000000010c05f0a0 ; {runtime_call} | |
[Deopt Handler Code] | |
0x000000010c05f334: callq 0x000000010c05f339 | |
0x000000010c05f339: subq $0x5,(%rsp) | |
0x000000010c05f33e: jmpq 0x000000010c038b00 ; {runtime_call} | |
0x000000010c05f343: hlt | |
0x000000010c05f344: hlt | |
0x000000010c05f345: hlt | |
0x000000010c05f346: hlt | |
0x000000010c05f347: hlt | |
Decoding compiled method 0x000000010c065150: | |
Code: | |
[Entry Point] | |
[Constants] | |
# {method} 'copy' '()Lcom/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy;' in 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy' | |
# [sp+0x20] (sp of caller) | |
0x000000010c0652a0: mov 0x8(%rsi),%r10d | |
0x000000010c0652a4: shl $0x3,%r10 | |
0x000000010c0652a8: cmp %r10,%rax | |
0x000000010c0652ab: jne 0x000000010c037960 ; {runtime_call} | |
0x000000010c0652b1: data32 xchg %ax,%ax | |
0x000000010c0652b4: nopl 0x0(%rax,%rax,1) | |
0x000000010c0652bc: data32 data32 xchg %ax,%ax | |
[Verified Entry Point] | |
0x000000010c0652c0: mov %eax,-0x14000(%rsp) | |
0x000000010c0652c7: push %rbp | |
0x000000010c0652c8: sub $0x10,%rsp ;*synchronization entry | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@-1 (line 23) | |
0x000000010c0652cc: mov %rsi,%rbp | |
0x000000010c0652cf: mov 0x60(%r15),%r8 | |
0x000000010c0652d3: mov %r8,%r10 | |
0x000000010c0652d6: add $0x58,%r10 | |
0x000000010c0652da: cmp 0x70(%r15),%r10 | |
0x000000010c0652de: jae 0x000000010c0653fa | |
0x000000010c0652e4: mov %r10,0x60(%r15) | |
0x000000010c0652e8: prefetchnta 0xc0(%r10) | |
0x000000010c0652f0: mov %r8,%rdi | |
0x000000010c0652f3: add $0x10,%rdi | |
0x000000010c0652f7: mov $0xd7610e71,%r10d ; {oop('com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')} | |
0x000000010c0652fd: mov 0xb0(%r12,%r10,8),%r10 | |
0x000000010c065305: mov %r10,(%r8) | |
0x000000010c065308: movl $0xd7610e71,0x8(%r8) ; {oop('com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')} | |
0x000000010c065310: mov %r12d,0xc(%r8) | |
0x000000010c065314: mov $0x9,%ecx | |
0x000000010c065319: xor %rax,%rax | |
0x000000010c06531c: shl $0x3,%rcx | |
0x000000010c065320: rep rex.W stos %al,%es:(%rdi) ;*new | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@0 (line 23) | |
0x000000010c065323: movzwl 0x54(%rbp),%r11d | |
0x000000010c065328: mov %r11w,0x54(%r8) ;*putfield x | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@114 (line 120) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
0x000000010c06532d: movswl 0x52(%rbp),%r10d | |
0x000000010c065332: mov %r10w,0x52(%r8) ;*putfield m10 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@106 (line 119) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
0x000000010c065337: movswl 0x50(%rbp),%r11d | |
0x000000010c06533c: mov %r11w,0x50(%r8) ;*putfield m9 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@98 (line 118) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
0x000000010c065341: movswl 0x4e(%rbp),%r10d | |
0x000000010c065346: mov %r10w,0x4e(%r8) ;*putfield m8 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@90 (line 117) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
0x000000010c06534b: movswl 0x4c(%rbp),%r11d | |
0x000000010c065350: mov %r11w,0x4c(%r8) ;*putfield m7 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@82 (line 116) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
0x000000010c065355: movswl 0x4a(%rbp),%r10d | |
0x000000010c06535a: mov %r10w,0x4a(%r8) ;*putfield m6 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@74 (line 115) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
0x000000010c06535f: movswl 0x48(%rbp),%r11d | |
0x000000010c065364: mov %r11w,0x48(%r8) ;*putfield m5 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@66 (line 114) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
0x000000010c065369: movswl 0x46(%rbp),%r10d | |
0x000000010c06536e: mov %r10w,0x46(%r8) ;*putfield m4 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@58 (line 113) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
0x000000010c065373: movswl 0x44(%rbp),%r11d | |
0x000000010c065378: mov %r11w,0x44(%r8) ;*putfield m3 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@50 (line 112) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
0x000000010c06537d: movswl 0x42(%rbp),%r10d | |
0x000000010c065382: mov %r10w,0x42(%r8) ;*putfield m2 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@42 (line 111) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
0x000000010c065387: movswl 0x40(%rbp),%r11d | |
0x000000010c06538c: mov %r11w,0x40(%r8) ;*putfield m1 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@34 (line 110) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
0x000000010c065391: mov 0x38(%rbp),%r10 | |
0x000000010c065395: mov %r10,0x38(%r8) ;*putfield youCanSeeMe | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@26 (line 109) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
0x000000010c065399: vmovsd 0x30(%rbp),%xmm0 | |
0x000000010c06539e: vmovsd %xmm0,0x30(%r8) ;*putfield anotherField | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@10 (line 107) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
0x000000010c0653a4: mov 0x2c(%rbp),%r10d | |
0x000000010c0653a8: mov %r10d,0x2c(%r8) ;*putfield field1 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@18 (line 108) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
0x000000010c0653ac: movsbl 0x2b(%rbp),%r11d | |
0x000000010c0653b1: mov %r11b,0x2b(%r8) ;*putfield abc | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@33 (line 32) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
0x000000010c0653b5: movzbl 0x2a(%rbp),%r10d | |
0x000000010c0653ba: mov %r10b,0x2a(%r8) ;*putfield field6 | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@25 (line 31) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
0x000000010c0653be: movzwl 0x28(%rbp),%r11d | |
0x000000010c0653c3: mov %r11w,0x28(%r8) ;*putfield field2 | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@17 (line 30) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
0x000000010c0653c8: vmovsd 0x20(%rbp),%xmm0 | |
0x000000010c0653cd: vmovsd %xmm0,0x20(%r8) ;*putfield maxExponent | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@57 (line 35) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
0x000000010c0653d3: mov 0x18(%rbp),%r10 | |
0x000000010c0653d7: mov %r10,0x18(%r8) ;*putfield max | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@49 (line 34) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
0x000000010c0653db: mov 0x10(%rbp),%r10 | |
0x000000010c0653df: mov %r10,0x10(%r8) ;*putfield min | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@41 (line 33) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
0x000000010c0653e3: mov 0xc(%rbp),%r10d | |
0x000000010c0653e7: mov %r10d,0xc(%r8) ;*synchronization entry | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@-1 (line 23) | |
0x000000010c0653eb: mov %r8,%rax | |
0x000000010c0653ee: add $0x10,%rsp | |
0x000000010c0653f2: pop %rbp | |
0x000000010c0653f3: test %eax,-0x10b53f9(%rip) # 0x000000010afb0000 | |
; {poll_return} | |
0x000000010c0653f9: retq | |
0x000000010c0653fa: movabs $0x6bb087388,%rsi ; {oop('com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')} | |
0x000000010c065404: data32 xchg %ax,%ax | |
0x000000010c065407: callq 0x000000010c05efe0 ; OopMap{rbp=Oop off=364} | |
;*new ; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@0 (line 23) | |
; {runtime_call} | |
0x000000010c06540c: mov %rax,%r8 | |
0x000000010c06540f: jmpq 0x000000010c065323 ;*new | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@0 (line 23) | |
0x000000010c065414: mov %rax,%rsi | |
0x000000010c065417: add $0x10,%rsp | |
0x000000010c06541b: pop %rbp | |
0x000000010c06541c: jmpq 0x000000010c061e20 ; {runtime_call} | |
0x000000010c065421: hlt | |
0x000000010c065422: hlt | |
0x000000010c065423: hlt | |
0x000000010c065424: hlt | |
0x000000010c065425: hlt | |
0x000000010c065426: hlt | |
0x000000010c065427: hlt | |
0x000000010c065428: hlt | |
0x000000010c065429: hlt | |
0x000000010c06542a: hlt | |
0x000000010c06542b: hlt | |
0x000000010c06542c: hlt | |
0x000000010c06542d: hlt | |
0x000000010c06542e: hlt | |
0x000000010c06542f: hlt | |
0x000000010c065430: hlt | |
0x000000010c065431: hlt | |
0x000000010c065432: hlt | |
0x000000010c065433: hlt | |
0x000000010c065434: hlt | |
0x000000010c065435: hlt | |
0x000000010c065436: hlt | |
0x000000010c065437: hlt | |
0x000000010c065438: hlt | |
0x000000010c065439: hlt | |
0x000000010c06543a: hlt | |
0x000000010c06543b: hlt | |
0x000000010c06543c: hlt | |
0x000000010c06543d: hlt | |
0x000000010c06543e: hlt | |
0x000000010c06543f: hlt | |
[Exception Handler] | |
[Stub Code] | |
0x000000010c065440: jmpq 0x000000010c05f0a0 ; {no_reloc} | |
[Deopt Handler Code] | |
0x000000010c065445: callq 0x000000010c06544a | |
0x000000010c06544a: subq $0x5,(%rsp) | |
0x000000010c06544f: jmpq 0x000000010c038b00 ; {runtime_call} | |
0x000000010c065454: hlt | |
0x000000010c065455: hlt | |
0x000000010c065456: hlt | |
0x000000010c065457: hlt | |
Decoding compiled method 0x000000010c064b50: | |
Code: | |
[Entry Point] | |
[Verified Entry Point] | |
[Constants] | |
# {method} 'callCopy' '()Lcom/vyazelenko/blog/copyobject/Copyable;' in 'com/vyazelenko/blog/copyobject/TestConstructor' | |
# [sp+0x20] (sp of caller) | |
0x000000010c064ca0: mov %eax,-0x14000(%rsp) | |
0x000000010c064ca7: push %rbp | |
0x000000010c064ca8: sub $0x10,%rsp ;*synchronization entry | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@-1 (line 39) | |
0x000000010c064cac: mov 0x60(%r15),%r8 | |
0x000000010c064cb0: mov %r8,%r10 | |
0x000000010c064cb3: add $0x58,%r10 | |
0x000000010c064cb7: cmp 0x70(%r15),%r10 | |
0x000000010c064cbb: jae 0x000000010c064de3 | |
0x000000010c064cc1: mov %r10,0x60(%r15) | |
0x000000010c064cc5: prefetchnta 0xc0(%r10) | |
0x000000010c064ccd: mov %r8,%rdi | |
0x000000010c064cd0: add $0x10,%rdi | |
0x000000010c064cd4: mov $0xd7610e71,%r10d ; {oop('com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')} | |
0x000000010c064cda: mov 0xb0(%r12,%r10,8),%r10 | |
0x000000010c064ce2: mov %r10,(%r8) | |
0x000000010c064ce5: movl $0xd7610e71,0x8(%r8) ; {oop('com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')} | |
0x000000010c064ced: mov %r12d,0xc(%r8) | |
0x000000010c064cf1: mov $0x9,%ecx | |
0x000000010c064cf6: xor %rax,%rax | |
0x000000010c064cf9: shl $0x3,%rcx | |
0x000000010c064cfd: rep rex.W stos %al,%es:(%rdi) ;*new | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@0 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d00: mov %r8,%rax ;*areturn | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@6 (line 39) | |
0x000000010c064d03: movabs $0x7957aa098,%r9 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')} | |
0x000000010c064d0d: mov 0xc(%r9),%r11d | |
0x000000010c064d11: mov %r11d,0xc(%r8) ;*putfield field1 | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@9 (line 29) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d15: movzwl 0x54(%r9),%r10d | |
0x000000010c064d1a: mov %r10w,0x54(%r8) ;*putfield x | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@114 (line 120) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d1f: movswl 0x52(%r9),%r11d | |
0x000000010c064d24: mov %r11w,0x52(%r8) ;*putfield m10 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@106 (line 119) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d29: movswl 0x50(%r9),%r10d | |
0x000000010c064d2e: mov %r10w,0x50(%r8) ;*putfield m9 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@98 (line 118) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d33: movswl 0x4e(%r9),%r11d | |
0x000000010c064d38: mov %r11w,0x4e(%r8) ;*putfield m8 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@90 (line 117) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d3d: movswl 0x4c(%r9),%r10d | |
0x000000010c064d42: mov %r10w,0x4c(%r8) ;*putfield m7 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@82 (line 116) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d47: movswl 0x4a(%r9),%r11d | |
0x000000010c064d4c: mov %r11w,0x4a(%r8) ;*putfield m6 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@74 (line 115) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d51: movswl 0x48(%r9),%r10d | |
0x000000010c064d56: mov %r10w,0x48(%r8) ;*putfield m5 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@66 (line 114) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d5b: movswl 0x46(%r9),%r11d | |
0x000000010c064d60: mov %r11w,0x46(%r8) ;*putfield m4 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@58 (line 113) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d65: movswl 0x44(%r9),%r10d | |
0x000000010c064d6a: mov %r10w,0x44(%r8) ;*putfield m3 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@50 (line 112) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d6f: movswl 0x42(%r9),%r11d | |
0x000000010c064d74: mov %r11w,0x42(%r8) ;*putfield m2 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@42 (line 111) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d79: movswl 0x40(%r9),%r10d | |
0x000000010c064d7e: mov %r10w,0x40(%r8) ;*putfield m1 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@34 (line 110) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d83: mov 0x38(%r9),%r10 | |
0x000000010c064d87: mov %r10,0x38(%r8) ;*putfield youCanSeeMe | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@26 (line 109) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d8b: vmovsd 0x30(%r9),%xmm0 | |
0x000000010c064d91: vmovsd %xmm0,0x30(%r8) ;*putfield anotherField | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@10 (line 107) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d97: mov 0x2c(%r9),%r11d | |
0x000000010c064d9b: mov %r11d,0x2c(%r8) ;*putfield field1 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@18 (line 108) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d9f: movsbl 0x2b(%r9),%r10d | |
0x000000010c064da4: mov %r10b,0x2b(%r8) ;*putfield abc | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@33 (line 32) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064da8: movzbl 0x2a(%r9),%r11d | |
0x000000010c064dad: mov %r11b,0x2a(%r8) ;*putfield field6 | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@25 (line 31) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064db1: movzwl 0x28(%r9),%r10d | |
0x000000010c064db6: mov %r10w,0x28(%r8) ;*putfield field2 | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@17 (line 30) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064dbb: vmovsd 0x20(%r9),%xmm0 | |
0x000000010c064dc1: vmovsd %xmm0,0x20(%r8) ;*putfield maxExponent | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@57 (line 35) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064dc7: mov 0x18(%r9),%r10 | |
0x000000010c064dcb: mov %r10,0x18(%r8) ;*putfield max | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@49 (line 34) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064dcf: mov 0x10(%r9),%r10 | |
0x000000010c064dd3: mov %r10,0x10(%r8) ;*putfield min | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@41 (line 33) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064dd7: add $0x10,%rsp | |
0x000000010c064ddb: pop %rbp | |
0x000000010c064ddc: test %eax,-0x10b4de2(%rip) # 0x000000010afb0000 | |
; {poll_return} | |
0x000000010c064de2: retq | |
0x000000010c064de3: movabs $0x6bb087388,%rsi ; {oop('com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')} | |
0x000000010c064ded: xchg %ax,%ax | |
0x000000010c064def: callq 0x000000010c05efe0 ; OopMap{off=340} | |
;*new ; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@0 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
; {runtime_call} | |
0x000000010c064df4: mov %rax,%r8 | |
0x000000010c064df7: jmpq 0x000000010c064d00 ;*new | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@0 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064dfc: mov %rax,%rsi | |
0x000000010c064dff: add $0x10,%rsp | |
0x000000010c064e03: pop %rbp | |
0x000000010c064e04: jmpq 0x000000010c061e20 ; {runtime_call} | |
0x000000010c064e09: hlt | |
0x000000010c064e0a: hlt | |
0x000000010c064e0b: hlt | |
0x000000010c064e0c: hlt | |
0x000000010c064e0d: hlt | |
0x000000010c064e0e: hlt | |
0x000000010c064e0f: hlt | |
0x000000010c064e10: hlt | |
0x000000010c064e11: hlt | |
0x000000010c064e12: hlt | |
0x000000010c064e13: hlt | |
0x000000010c064e14: hlt | |
0x000000010c064e15: hlt | |
0x000000010c064e16: hlt | |
0x000000010c064e17: hlt | |
0x000000010c064e18: hlt | |
0x000000010c064e19: hlt | |
0x000000010c064e1a: hlt | |
0x000000010c064e1b: hlt | |
0x000000010c064e1c: hlt | |
0x000000010c064e1d: hlt | |
0x000000010c064e1e: hlt | |
0x000000010c064e1f: hlt | |
[Exception Handler] | |
[Stub Code] | |
0x000000010c064e20: jmpq 0x000000010c05f0a0 ; {no_reloc} | |
[Deopt Handler Code] | |
0x000000010c064e25: callq 0x000000010c064e2a | |
0x000000010c064e2a: subq $0x5,(%rsp) | |
0x000000010c064e2f: jmpq 0x000000010c038b00 ; {runtime_call} | |
0x000000010c064e34: hlt | |
0x000000010c064e35: hlt | |
0x000000010c064e36: hlt | |
0x000000010c064e37: hlt | |
Decoding compiled method 0x000000010c064650: | |
Code: | |
[Entry Point] | |
[Constants] | |
# {method} '<init>' '(Lcom/vyazelenko/blog/copyobject/primitives/BaseClass;)V' in 'com/vyazelenko/blog/copyobject/primitives/BaseClass' | |
# this: rsi:rsi = 'com/vyazelenko/blog/copyobject/primitives/BaseClass' | |
# parm0: rdx:rdx = 'com/vyazelenko/blog/copyobject/primitives/BaseClass' | |
# [sp+0x20] (sp of caller) | |
0x000000010c064780: mov 0x8(%rsi),%r10d | |
0x000000010c064784: shl $0x3,%r10 | |
0x000000010c064788: cmp %r10,%rax | |
0x000000010c06478b: jne 0x000000010c037960 ; {runtime_call} | |
0x000000010c064791: data32 xchg %ax,%ax | |
0x000000010c064794: nopl 0x0(%rax,%rax,1) | |
0x000000010c06479c: data32 data32 xchg %ax,%ax | |
[Verified Entry Point] | |
0x000000010c0647a0: mov %eax,-0x14000(%rsp) | |
0x000000010c0647a7: push %rbp | |
0x000000010c0647a8: sub $0x10,%rsp ;*synchronization entry | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@-1 (line 106) | |
0x000000010c0647ac: mov 0xc(%rdx),%r11d ; implicit exception: dispatches to 0x000000010c06487e | |
0x000000010c0647b0: mov %r11d,0xc(%rsi) ;*putfield field1 | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@9 (line 29) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
0x000000010c0647b4: movzwl 0x28(%rdx),%r10d | |
0x000000010c0647b9: mov %r10w,0x28(%rsi) ;*putfield field2 | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@17 (line 30) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
0x000000010c0647be: movzbl 0x2a(%rdx),%r11d | |
0x000000010c0647c3: mov %r11b,0x2a(%rsi) ;*putfield field6 | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@25 (line 31) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
0x000000010c0647c7: movsbl 0x2b(%rdx),%r10d | |
0x000000010c0647cc: mov %r10b,0x2b(%rsi) ;*putfield abc | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@33 (line 32) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
0x000000010c0647d0: mov 0x10(%rdx),%r10 | |
0x000000010c0647d4: mov %r10,0x10(%rsi) ;*putfield min | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@41 (line 33) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
0x000000010c0647d8: mov 0x18(%rdx),%r10 | |
0x000000010c0647dc: mov %r10,0x18(%rsi) ;*putfield max | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@49 (line 34) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
0x000000010c0647e0: vmovsd 0x20(%rdx),%xmm0 | |
0x000000010c0647e5: vmovsd %xmm0,0x20(%rsi) ;*putfield maxExponent | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@57 (line 35) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
0x000000010c0647ea: vmovsd 0x30(%rdx),%xmm0 | |
0x000000010c0647ef: vmovsd %xmm0,0x30(%rsi) ;*putfield anotherField | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@10 (line 107) | |
0x000000010c0647f4: mov 0x2c(%rdx),%r11d | |
0x000000010c0647f8: mov %r11d,0x2c(%rsi) ;*putfield field1 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@18 (line 108) | |
0x000000010c0647fc: mov 0x38(%rdx),%r10 | |
0x000000010c064800: mov %r10,0x38(%rsi) ;*putfield youCanSeeMe | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@26 (line 109) | |
0x000000010c064804: movswl 0x40(%rdx),%r10d | |
0x000000010c064809: mov %r10w,0x40(%rsi) ;*putfield m1 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@34 (line 110) | |
0x000000010c06480e: movswl 0x42(%rdx),%r11d | |
0x000000010c064813: mov %r11w,0x42(%rsi) ;*putfield m2 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@42 (line 111) | |
0x000000010c064818: movswl 0x44(%rdx),%r10d | |
0x000000010c06481d: mov %r10w,0x44(%rsi) ;*putfield m3 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@50 (line 112) | |
0x000000010c064822: movswl 0x46(%rdx),%r11d | |
0x000000010c064827: mov %r11w,0x46(%rsi) ;*putfield m4 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@58 (line 113) | |
0x000000010c06482c: movswl 0x48(%rdx),%r10d | |
0x000000010c064831: mov %r10w,0x48(%rsi) ;*putfield m5 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@66 (line 114) | |
0x000000010c064836: movswl 0x4a(%rdx),%r11d | |
0x000000010c06483b: mov %r11w,0x4a(%rsi) ;*putfield m6 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@74 (line 115) | |
0x000000010c064840: movswl 0x4c(%rdx),%r10d | |
0x000000010c064845: mov %r10w,0x4c(%rsi) ;*putfield m7 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@82 (line 116) | |
0x000000010c06484a: movswl 0x4e(%rdx),%r11d | |
0x000000010c06484f: mov %r11w,0x4e(%rsi) ;*putfield m8 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@90 (line 117) | |
0x000000010c064854: movswl 0x50(%rdx),%r10d | |
0x000000010c064859: mov %r10w,0x50(%rsi) ;*putfield m9 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@98 (line 118) | |
0x000000010c06485e: movswl 0x52(%rdx),%r11d | |
0x000000010c064863: mov %r11w,0x52(%rsi) ;*putfield m10 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@106 (line 119) | |
0x000000010c064868: movzwl 0x54(%rdx),%r10d | |
0x000000010c06486d: mov %r10w,0x54(%rsi) ;*putfield x | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@114 (line 120) | |
0x000000010c064872: add $0x10,%rsp | |
0x000000010c064876: pop %rbp | |
0x000000010c064877: test %eax,-0x10b487d(%rip) # 0x000000010afb0000 | |
; {poll_return} | |
0x000000010c06487d: retq | |
0x000000010c06487e: mov $0xfffffff6,%esi | |
0x000000010c064883: callq 0x000000010c038f20 ; OopMap{off=264} | |
;*getfield field1 | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@6 (line 29) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; {runtime_call} | |
0x000000010c064888: callq 0x000000010a81d5de ;*getfield field1 | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@6 (line 29) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; {runtime_call} | |
0x000000010c06488d: hlt | |
0x000000010c06488e: hlt | |
0x000000010c06488f: hlt | |
0x000000010c064890: hlt | |
0x000000010c064891: hlt | |
0x000000010c064892: hlt | |
0x000000010c064893: hlt | |
0x000000010c064894: hlt | |
0x000000010c064895: hlt | |
0x000000010c064896: hlt | |
0x000000010c064897: hlt | |
0x000000010c064898: hlt | |
0x000000010c064899: hlt | |
0x000000010c06489a: hlt | |
0x000000010c06489b: hlt | |
0x000000010c06489c: hlt | |
0x000000010c06489d: hlt | |
0x000000010c06489e: hlt | |
0x000000010c06489f: hlt | |
[Exception Handler] | |
[Stub Code] | |
0x000000010c0648a0: jmpq 0x000000010c05f0a0 ; {no_reloc} | |
[Deopt Handler Code] | |
0x000000010c0648a5: callq 0x000000010c0648aa | |
0x000000010c0648aa: subq $0x5,(%rsp) | |
0x000000010c0648af: jmpq 0x000000010c038b00 ; {runtime_call} | |
0x000000010c0648b4: hlt | |
0x000000010c0648b5: hlt | |
0x000000010c0648b6: hlt | |
0x000000010c0648b7: hlt | |
Decoding compiled method 0x000000010c064050: | |
Code: | |
[Entry Point] | |
[Constants] | |
# {method} '<init>' '(Lcom/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy;)V' in 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy' | |
# this: rsi:rsi = 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy' | |
# parm0: rdx:rdx = 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy' | |
# [sp+0x20] (sp of caller) | |
0x000000010c064180: mov 0x8(%rsi),%r10d | |
0x000000010c064184: shl $0x3,%r10 | |
0x000000010c064188: cmp %r10,%rax | |
0x000000010c06418b: jne 0x000000010c037960 ; {runtime_call} | |
0x000000010c064191: data32 xchg %ax,%ax | |
0x000000010c064194: nopl 0x0(%rax,%rax,1) | |
0x000000010c06419c: data32 data32 xchg %ax,%ax | |
[Verified Entry Point] | |
0x000000010c0641a0: mov %eax,-0x14000(%rsp) | |
0x000000010c0641a7: push %rbp | |
0x000000010c0641a8: sub $0x10,%rsp ;*synchronization entry | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@-1 (line 18) | |
0x000000010c0641ac: mov 0xc(%rdx),%r11d ; implicit exception: dispatches to 0x000000010c06427e | |
0x000000010c0641b0: mov %r11d,0xc(%rsi) ;*putfield field1 | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@9 (line 29) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
0x000000010c0641b4: movzwl 0x28(%rdx),%r10d | |
0x000000010c0641b9: mov %r10w,0x28(%rsi) ;*putfield field2 | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@17 (line 30) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
0x000000010c0641be: movzbl 0x2a(%rdx),%r11d | |
0x000000010c0641c3: mov %r11b,0x2a(%rsi) ;*putfield field6 | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@25 (line 31) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
0x000000010c0641c7: movsbl 0x2b(%rdx),%r10d | |
0x000000010c0641cc: mov %r10b,0x2b(%rsi) ;*putfield abc | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@33 (line 32) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
0x000000010c0641d0: mov 0x10(%rdx),%r10 | |
0x000000010c0641d4: mov %r10,0x10(%rsi) ;*putfield min | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@41 (line 33) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
0x000000010c0641d8: mov 0x18(%rdx),%r10 | |
0x000000010c0641dc: mov %r10,0x18(%rsi) ;*putfield max | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@49 (line 34) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
0x000000010c0641e0: vmovsd 0x20(%rdx),%xmm0 | |
0x000000010c0641e5: vmovsd %xmm0,0x20(%rsi) ;*putfield maxExponent | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@57 (line 35) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
0x000000010c0641ea: vmovsd 0x30(%rdx),%xmm0 | |
0x000000010c0641ef: vmovsd %xmm0,0x30(%rsi) ;*putfield anotherField | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@10 (line 107) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
0x000000010c0641f4: mov 0x2c(%rdx),%r11d | |
0x000000010c0641f8: mov %r11d,0x2c(%rsi) ;*putfield field1 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@18 (line 108) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
0x000000010c0641fc: mov 0x38(%rdx),%r10 | |
0x000000010c064200: mov %r10,0x38(%rsi) ;*putfield youCanSeeMe | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@26 (line 109) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
0x000000010c064204: movswl 0x40(%rdx),%r10d | |
0x000000010c064209: mov %r10w,0x40(%rsi) ;*putfield m1 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@34 (line 110) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
0x000000010c06420e: movswl 0x42(%rdx),%r11d | |
0x000000010c064213: mov %r11w,0x42(%rsi) ;*putfield m2 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@42 (line 111) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
0x000000010c064218: movswl 0x44(%rdx),%r10d | |
0x000000010c06421d: mov %r10w,0x44(%rsi) ;*putfield m3 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@50 (line 112) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
0x000000010c064222: movswl 0x46(%rdx),%r11d | |
0x000000010c064227: mov %r11w,0x46(%rsi) ;*putfield m4 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@58 (line 113) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
0x000000010c06422c: movswl 0x48(%rdx),%r10d | |
0x000000010c064231: mov %r10w,0x48(%rsi) ;*putfield m5 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@66 (line 114) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
0x000000010c064236: movswl 0x4a(%rdx),%r11d | |
0x000000010c06423b: mov %r11w,0x4a(%rsi) ;*putfield m6 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@74 (line 115) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
0x000000010c064240: movswl 0x4c(%rdx),%r10d | |
0x000000010c064245: mov %r10w,0x4c(%rsi) ;*putfield m7 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@82 (line 116) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
0x000000010c06424a: movswl 0x4e(%rdx),%r11d | |
0x000000010c06424f: mov %r11w,0x4e(%rsi) ;*putfield m8 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@90 (line 117) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
0x000000010c064254: movswl 0x50(%rdx),%r10d | |
0x000000010c064259: mov %r10w,0x50(%rsi) ;*putfield m9 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@98 (line 118) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
0x000000010c06425e: movswl 0x52(%rdx),%r11d | |
0x000000010c064263: mov %r11w,0x52(%rsi) ;*putfield m10 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@106 (line 119) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
0x000000010c064268: movzwl 0x54(%rdx),%r10d | |
0x000000010c06426d: mov %r10w,0x54(%rsi) ;*putfield x | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@114 (line 120) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
0x000000010c064272: add $0x10,%rsp | |
0x000000010c064276: pop %rbp | |
0x000000010c064277: test %eax,-0x10b427d(%rip) # 0x000000010afb0000 | |
; {poll_return} | |
0x000000010c06427d: retq | |
0x000000010c06427e: mov $0xfffffff6,%esi | |
0x000000010c064283: callq 0x000000010c038f20 ; OopMap{off=264} | |
;*getfield field1 | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@6 (line 29) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; {runtime_call} | |
0x000000010c064288: callq 0x000000010a81d5de ;*getfield field1 | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@6 (line 29) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; {runtime_call} | |
0x000000010c06428d: hlt | |
0x000000010c06428e: hlt | |
0x000000010c06428f: hlt | |
0x000000010c064290: hlt | |
0x000000010c064291: hlt | |
0x000000010c064292: hlt | |
0x000000010c064293: hlt | |
0x000000010c064294: hlt | |
0x000000010c064295: hlt | |
0x000000010c064296: hlt | |
0x000000010c064297: hlt | |
0x000000010c064298: hlt | |
0x000000010c064299: hlt | |
0x000000010c06429a: hlt | |
0x000000010c06429b: hlt | |
0x000000010c06429c: hlt | |
0x000000010c06429d: hlt | |
0x000000010c06429e: hlt | |
0x000000010c06429f: hlt | |
[Exception Handler] | |
[Stub Code] | |
0x000000010c0642a0: jmpq 0x000000010c05f0a0 ; {no_reloc} | |
[Deopt Handler Code] | |
0x000000010c0642a5: callq 0x000000010c0642aa | |
0x000000010c0642aa: subq $0x5,(%rsp) | |
0x000000010c0642af: jmpq 0x000000010c038b00 ; {runtime_call} | |
0x000000010c0642b4: hlt | |
0x000000010c0642b5: hlt | |
0x000000010c0642b6: hlt | |
0x000000010c0642b7: hlt | |
Decoding compiled method 0x000000010c068510: | |
Code: | |
[Entry Point] | |
[Constants] | |
# {method} '<init>' '(Lcom/vyazelenko/blog/copyobject/primitives/Root;)V' in 'com/vyazelenko/blog/copyobject/primitives/Root' | |
# this: rsi:rsi = 'com/vyazelenko/blog/copyobject/primitives/Root' | |
# parm0: rdx:rdx = 'com/vyazelenko/blog/copyobject/primitives/Root' | |
# [sp+0x20] (sp of caller) | |
0x000000010c068640: mov 0x8(%rsi),%r10d | |
0x000000010c068644: shl $0x3,%r10 | |
0x000000010c068648: cmp %r10,%rax | |
0x000000010c06864b: jne 0x000000010c037960 ; {runtime_call} | |
0x000000010c068651: data32 xchg %ax,%ax | |
0x000000010c068654: nopl 0x0(%rax,%rax,1) | |
0x000000010c06865c: data32 data32 xchg %ax,%ax | |
[Verified Entry Point] | |
0x000000010c068660: mov %eax,-0x14000(%rsp) | |
0x000000010c068667: push %rbp | |
0x000000010c068668: sub $0x10,%rsp ;*synchronization entry | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@-1 (line 28) | |
0x000000010c06866c: mov 0xc(%rdx),%r11d ; implicit exception: dispatches to 0x000000010c0686b6 | |
0x000000010c068670: mov %r11d,0xc(%rsi) ;*putfield field1 | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@9 (line 29) | |
0x000000010c068674: movzwl 0x28(%rdx),%r10d | |
0x000000010c068679: mov %r10w,0x28(%rsi) ;*putfield field2 | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@17 (line 30) | |
0x000000010c06867e: movzbl 0x2a(%rdx),%r11d | |
0x000000010c068683: mov %r11b,0x2a(%rsi) ;*putfield field6 | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@25 (line 31) | |
0x000000010c068687: movsbl 0x2b(%rdx),%r10d | |
0x000000010c06868c: mov %r10b,0x2b(%rsi) ;*putfield abc | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@33 (line 32) | |
0x000000010c068690: mov 0x10(%rdx),%r10 | |
0x000000010c068694: mov %r10,0x10(%rsi) ;*putfield min | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@41 (line 33) | |
0x000000010c068698: mov 0x18(%rdx),%r10 | |
0x000000010c06869c: mov %r10,0x18(%rsi) ;*putfield max | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@49 (line 34) | |
0x000000010c0686a0: vmovsd 0x20(%rdx),%xmm0 | |
0x000000010c0686a5: vmovsd %xmm0,0x20(%rsi) ;*putfield maxExponent | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@57 (line 35) | |
0x000000010c0686aa: add $0x10,%rsp | |
0x000000010c0686ae: pop %rbp | |
0x000000010c0686af: test %eax,-0x10b86b5(%rip) # 0x000000010afb0000 | |
; {poll_return} | |
0x000000010c0686b5: retq | |
0x000000010c0686b6: mov $0xfffffff6,%esi | |
0x000000010c0686bb: callq 0x000000010c038f20 ; OopMap{off=128} | |
;*getfield field1 | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@6 (line 29) | |
; {runtime_call} | |
0x000000010c0686c0: callq 0x000000010a81d5de ;*getfield field1 | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@6 (line 29) | |
; {runtime_call} | |
0x000000010c0686c5: hlt | |
0x000000010c0686c6: hlt | |
0x000000010c0686c7: hlt | |
0x000000010c0686c8: hlt | |
0x000000010c0686c9: hlt | |
0x000000010c0686ca: hlt | |
0x000000010c0686cb: hlt | |
0x000000010c0686cc: hlt | |
0x000000010c0686cd: hlt | |
0x000000010c0686ce: hlt | |
0x000000010c0686cf: hlt | |
0x000000010c0686d0: hlt | |
0x000000010c0686d1: hlt | |
0x000000010c0686d2: hlt | |
0x000000010c0686d3: hlt | |
0x000000010c0686d4: hlt | |
0x000000010c0686d5: hlt | |
0x000000010c0686d6: hlt | |
0x000000010c0686d7: hlt | |
0x000000010c0686d8: hlt | |
0x000000010c0686d9: hlt | |
0x000000010c0686da: hlt | |
0x000000010c0686db: hlt | |
0x000000010c0686dc: hlt | |
0x000000010c0686dd: hlt | |
0x000000010c0686de: hlt | |
0x000000010c0686df: hlt | |
[Exception Handler] | |
[Stub Code] | |
0x000000010c0686e0: jmpq 0x000000010c05f0a0 ; {no_reloc} | |
[Deopt Handler Code] | |
0x000000010c0686e5: callq 0x000000010c0686ea | |
0x000000010c0686ea: subq $0x5,(%rsp) | |
0x000000010c0686ef: jmpq 0x000000010c038b00 ; {runtime_call} | |
0x000000010c0686f4: hlt | |
0x000000010c0686f5: hlt | |
0x000000010c0686f6: hlt | |
0x000000010c0686f7: hlt | |
Decoding compiled method 0x000000010c068ed0: | |
Code: | |
[Entry Point] | |
[Verified Entry Point] | |
[Constants] | |
# {method} 'doCopy' '(ILjava/lang/String;)V' in 'com/vyazelenko/blog/copyobject/TestConstructor' | |
0x000000010c0690a0: callq 0x000000010a81d5de ; {runtime_call} | |
0x000000010c0690a5: data32 data32 nopw 0x0(%rax,%rax,1) | |
0x000000010c0690b0: mov %eax,-0x14000(%rsp) | |
0x000000010c0690b7: push %rbp | |
0x000000010c0690b8: sub $0x40,%rsp | |
0x000000010c0690bc: mov (%rsi),%r14d | |
0x000000010c0690bf: mov 0x8(%rsi),%rbx | |
0x000000010c0690c3: mov 0x10(%rsi),%ebp | |
0x000000010c0690c6: mov %rsi,%rdi | |
0x000000010c0690c9: movabs $0x10a877568,%r10 | |
0x000000010c0690d3: callq *%r10 | |
0x000000010c0690d6: test %rbx,%rbx | |
0x000000010c0690d9: je 0x000000010c0695f3 | |
0x000000010c0690df: mov 0x8(%rbx),%r10d | |
0x000000010c0690e3: cmp $0xd75c15c3,%r10d ; {oop('java/lang/String')} | |
0x000000010c0690ea: jne 0x000000010c069640 ;*iload_2 | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@38 (line 28) | |
0x000000010c0690f0: jmpq 0x000000010c069343 | |
0x000000010c0690f5: data32 data32 nopw 0x0(%rax,%rax,1) | |
0x000000010c069100: mov %r8d,0xc(%rsp) | |
0x000000010c069105: mov %rbx,(%rsp) | |
0x000000010c069109: mov %r14d,0x8(%rsp) | |
0x000000010c06910e: mov %r10,0x60(%r15) | |
0x000000010c069112: mov %r9,%rdi | |
0x000000010c069115: add $0x10,%rdi | |
0x000000010c069119: mov $0xd7610e71,%r8d ; {oop('com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')} | |
0x000000010c06911f: mov 0xb0(%r12,%r8,8),%r11 | |
0x000000010c069127: mov %r11,(%r9) | |
0x000000010c06912a: prefetchnta 0xc0(%r10) | |
0x000000010c069132: movl $0xd7610e71,0x8(%r9) ; {oop('com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')} | |
0x000000010c06913a: mov %r12d,0xc(%r9) | |
0x000000010c06913e: mov $0x9,%ecx | |
0x000000010c069143: xor %rax,%rax | |
0x000000010c069146: shl $0x3,%rcx | |
0x000000010c06914a: rep rex.W stos %al,%es:(%rdi) ;*new | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@0 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29) | |
0x000000010c06914d: mov %r9,%r10 ;*areturn | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@6 (line 39) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29) | |
0x000000010c069150: movabs $0x7957aa098,%r11 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')} | |
0x000000010c06915a: movzwl 0x54(%r11),%r8d | |
0x000000010c06915f: mov %r8w,0x54(%r9) ;*putfield x | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@114 (line 120) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29) | |
0x000000010c069164: movswl 0x52(%r11),%r11d | |
0x000000010c069169: mov %r11w,0x52(%r9) ;*putfield m10 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@106 (line 119) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29) | |
0x000000010c06916e: movabs $0x7957aa098,%r11 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')} | |
0x000000010c069178: movswl 0x50(%r11),%r8d | |
0x000000010c06917d: mov %r8w,0x50(%r9) ;*putfield m9 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@98 (line 118) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29) | |
0x000000010c069182: movswl 0x4e(%r11),%r11d | |
0x000000010c069187: mov %r11w,0x4e(%r9) ;*putfield m8 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@90 (line 117) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29) | |
0x000000010c06918c: movabs $0x7957aa098,%r11 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')} | |
0x000000010c069196: movswl 0x4c(%r11),%r8d | |
0x000000010c06919b: mov %r8w,0x4c(%r9) ;*putfield m7 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@82 (line 116) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29) | |
0x000000010c0691a0: movswl 0x4a(%r11),%r11d | |
0x000000010c0691a5: mov %r11w,0x4a(%r9) ;*putfield m6 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@74 (line 115) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29) | |
0x000000010c0691aa: movabs $0x7957aa098,%r11 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')} | |
0x000000010c0691b4: movswl 0x48(%r11),%r8d | |
0x000000010c0691b9: mov %r8w,0x48(%r9) ;*putfield m5 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@66 (line 114) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29) | |
0x000000010c0691be: movswl 0x46(%r11),%r11d | |
0x000000010c0691c3: mov %r11w,0x46(%r9) ;*putfield m4 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@58 (line 113) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29) | |
0x000000010c0691c8: movabs $0x7957aa098,%r11 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')} | |
0x000000010c0691d2: movswl 0x44(%r11),%r8d | |
0x000000010c0691d7: mov %r8w,0x44(%r9) ;*putfield m3 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@50 (line 112) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29) | |
0x000000010c0691dc: movswl 0x42(%r11),%r11d | |
0x000000010c0691e1: mov %r11w,0x42(%r9) ;*putfield m2 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@42 (line 111) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29) | |
0x000000010c0691e6: movabs $0x7957aa098,%r11 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')} | |
0x000000010c0691f0: movswl 0x40(%r11),%r8d | |
0x000000010c0691f5: mov %r8w,0x40(%r9) ;*putfield m1 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@34 (line 110) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29) | |
0x000000010c0691fa: mov 0x38(%r11),%r11 | |
0x000000010c0691fe: mov %r11,0x38(%r9) ;*putfield youCanSeeMe | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@26 (line 109) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29) | |
0x000000010c069202: movabs $0x7957aa098,%r11 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')} | |
0x000000010c06920c: vmovsd 0x30(%r11),%xmm0 | |
0x000000010c069212: vmovsd %xmm0,0x30(%r9) ;*putfield anotherField | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@10 (line 107) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29) | |
0x000000010c069218: mov 0x2c(%r11),%r11d | |
0x000000010c06921c: mov %r11d,0x2c(%r9) ;*putfield field1 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@18 (line 108) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29) | |
0x000000010c069220: movabs $0x7957aa098,%r11 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')} | |
0x000000010c06922a: movsbl 0x2b(%r11),%r8d | |
0x000000010c06922f: mov %r8b,0x2b(%r9) ;*putfield abc | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@33 (line 32) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29) | |
0x000000010c069233: movzbl 0x2a(%r11),%r11d | |
0x000000010c069238: mov %r11b,0x2a(%r9) ;*putfield field6 | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@25 (line 31) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29) | |
0x000000010c06923c: movabs $0x7957aa098,%r11 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')} | |
0x000000010c069246: movzwl 0x28(%r11),%r8d | |
0x000000010c06924b: mov %r8w,0x28(%r9) ;*putfield field2 | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@17 (line 30) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29) | |
0x000000010c069250: vmovsd 0x20(%r11),%xmm0 | |
0x000000010c069256: vmovsd %xmm0,0x20(%r9) ;*putfield maxExponent | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@57 (line 35) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29) | |
0x000000010c06925c: mov 0x18(%r11),%r11 | |
0x000000010c069260: mov %r11,0x18(%r9) ;*putfield max | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@49 (line 34) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29) | |
0x000000010c069264: movabs $0x7957aa098,%r11 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')} | |
0x000000010c06926e: mov 0x10(%r11),%r11 | |
0x000000010c069272: mov %r11,0x10(%r9) ;*putfield min | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@41 (line 33) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29) | |
0x000000010c069276: movabs $0x7957aa098,%r11 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')} | |
0x000000010c069280: mov 0xc(%r11),%r11d | |
0x000000010c069284: mov %r11d,0xc(%r9) ;*putfield field1 | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@9 (line 29) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29) | |
0x000000010c069288: mov 0xc(%rsp),%r11d | |
0x000000010c06928d: mov 0x8(%r12,%r11,8),%r8d ; implicit exception: dispatches to 0x000000010c069689 | |
0x000000010c069292: cmp $0xd75de4cc,%r8d ; {oop('java/util/ArrayList')} | |
0x000000010c069299: jne 0x000000010c0693ad | |
0x000000010c06929f: lea (%r12,%r11,8),%r9 ;*invokeinterface add | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29) | |
0x000000010c0692a3: mov 0x10(%r9),%r11d ;*getfield size | |
; - java.util.ArrayList::add@2 (line 440) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29) | |
0x000000010c0692a7: mov 0x14(%r9),%r8d ;*getfield elementData | |
; - java.util.ArrayList::ensureCapacityInternal@1 (line 204) | |
; - java.util.ArrayList::add@7 (line 440) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29) | |
0x000000010c0692ab: mov %r11d,%edx | |
0x000000010c0692ae: inc %edx ;*iadd | |
; - java.util.ArrayList::add@6 (line 440) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29) | |
0x000000010c0692b0: cmp $0xf2aa202d,%r8d ; {oop(a 'java/lang/Object'[0] )} | |
0x000000010c0692b7: je 0x000000010c0695ac ;*if_acmpne | |
; - java.util.ArrayList::ensureCapacityInternal@7 (line 204) | |
; - java.util.ArrayList::add@7 (line 440) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29) | |
0x000000010c0692bd: mov %r10,0x18(%rsp) | |
0x000000010c0692c2: incl 0xc(%r9) ;*putfield modCount | |
; - java.util.ArrayList::ensureExplicitCapacity@7 (line 212) | |
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208) | |
; - java.util.ArrayList::add@7 (line 440) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29) | |
0x000000010c0692c6: mov %r9,0x10(%rsp) | |
0x000000010c0692cb: mov 0xc(%r12,%r8,8),%r10d ;*arraylength | |
; - java.util.ArrayList::ensureExplicitCapacity@15 (line 215) | |
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208) | |
; - java.util.ArrayList::add@7 (line 440) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29) | |
; implicit exception: dispatches to 0x000000010c06969d | |
0x000000010c0692d0: mov %r11d,%ecx | |
0x000000010c0692d3: sub %r10d,%ecx | |
0x000000010c0692d6: inc %ecx | |
0x000000010c0692d8: test %ecx,%ecx | |
0x000000010c0692da: jg 0x000000010c0695d1 ;*ifle | |
; - java.util.ArrayList::ensureExplicitCapacity@17 (line 215) | |
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208) | |
; - java.util.ArrayList::add@7 (line 440) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29) | |
0x000000010c0692e0: mov %r9,%r10 ;*return | |
; - java.util.ArrayList::ensureExplicitCapacity@25 (line 217) | |
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208) | |
; - java.util.ArrayList::add@7 (line 440) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29) | |
0x000000010c0692e3: mov %edx,0x10(%r10) ;*putfield size | |
; - java.util.ArrayList::add@22 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29) | |
0x000000010c0692e7: mov 0xc(%r12,%r8,8),%r10d ; implicit exception: dispatches to 0x000000010c0696ad | |
0x000000010c0692ec: cmp %r10d,%r11d | |
0x000000010c0692ef: jae 0x000000010c069394 | |
0x000000010c0692f5: mov 0x8(%r12,%r8,8),%r10d | |
0x000000010c0692fa: cmp $0xd75d45e9,%r10d ; {oop('java/lang/Object'[])} | |
0x000000010c069301: jne 0x000000010c0693c1 ;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29) | |
0x000000010c069307: lea (%r12,%r8,8),%r10 ;*getfield elementData | |
; - java.util.ArrayList::add@11 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29) | |
0x000000010c06930b: lea 0x10(%r10,%r11,4),%r10 ;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29) | |
0x000000010c069310: mov 0x8(%rsp),%r14d | |
0x000000010c069315: inc %r14d ;*iinc | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@55 (line 28) | |
0x000000010c069318: mov %r10,%r11 | |
0x000000010c06931b: mov 0x18(%rsp),%r8 | |
0x000000010c069320: shr $0x3,%r8 | |
0x000000010c069324: mov %r8d,(%r10) ;*goto | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@58 (line 28) | |
0x000000010c069327: shr $0x9,%r11 | |
0x000000010c06932b: movabs $0x10bae9000,%r10 | |
0x000000010c069335: mov %r12b,(%r10,%r11,1) ; OopMap{[0]=Oop off=665} | |
;*goto | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@58 (line 28) | |
0x000000010c069339: test %eax,-0x10b933f(%rip) # 0x000000010afb0000 | |
;*goto | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@58 (line 28) | |
; {poll} | |
0x000000010c06933f: mov (%rsp),%rbx ;*iload_2 | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@38 (line 28) | |
0x000000010c069343: cmp %ebp,%r14d | |
0x000000010c069346: jge 0x000000010c0693dd ;*if_icmpge | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@40 (line 28) | |
0x000000010c06934c: mov 0x60(%r15),%r9 | |
0x000000010c069350: movabs $0x7955afd68,%r10 ; {oop(a 'java/lang/Class' = 'com/vyazelenko/blog/copyobject/TestConstructor')} | |
0x000000010c06935a: mov 0x70(%r10),%r8d ;*getstatic results | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@43 (line 29) | |
0x000000010c06935e: mov %r9,%r10 | |
0x000000010c069361: add $0x58,%r10 | |
0x000000010c069365: cmp 0x70(%r15),%r10 | |
0x000000010c069369: jb 0x000000010c069100 | |
0x000000010c06936f: mov %r8d,0xc(%rsp) | |
0x000000010c069374: mov %rbx,(%rsp) | |
0x000000010c069378: mov %r14d,0x8(%rsp) ;*synchronization entry | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@-1 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29) | |
0x000000010c06937d: movabs $0x6bb087388,%rsi ; {oop('com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')} | |
0x000000010c069387: callq 0x000000010c05efe0 ; OopMap{[0]=Oop [12]=NarrowOop off=748} | |
;*new ; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@0 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@46 (line 29) | |
; {runtime_call} | |
0x000000010c06938c: mov %rax,%r9 | |
0x000000010c06938f: jmpq 0x000000010c06914d ;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29) | |
0x000000010c069394: mov $0xffffffe4,%esi | |
0x000000010c069399: mov %r8d,0xc(%rsp) | |
0x000000010c06939e: mov %r11d,0x10(%rsp) | |
0x000000010c0693a3: callq 0x000000010c038f20 ; OopMap{[0]=Oop [12]=NarrowOop [24]=Oop off=776} | |
;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29) | |
; {runtime_call} | |
0x000000010c0693a8: callq 0x000000010a81d5de ; {runtime_call} | |
0x000000010c0693ad: mov $0xffffffde,%esi | |
0x000000010c0693b2: mov %r10,0x10(%rsp) | |
0x000000010c0693b7: callq 0x000000010c038f20 ; OopMap{[0]=Oop [12]=NarrowOop [16]=Oop off=796} | |
;*invokeinterface add | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29) | |
; {runtime_call} | |
0x000000010c0693bc: callq 0x000000010a81d5de ;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29) | |
; {runtime_call} | |
0x000000010c0693c1: mov $0xffffffd6,%esi | |
0x000000010c0693c6: mov %r8d,0xc(%rsp) | |
0x000000010c0693cb: mov %r11d,0x10(%rsp) | |
0x000000010c0693d0: data32 xchg %ax,%ax | |
0x000000010c0693d3: callq 0x000000010c038f20 ; OopMap{[0]=Oop [12]=NarrowOop [24]=Oop off=824} | |
;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29) | |
; {runtime_call} | |
0x000000010c0693d8: callq 0x000000010a81d5de ;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@49 (line 29) | |
; {runtime_call} | |
0x000000010c0693dd: test %rbx,%rbx | |
0x000000010c0693e0: jne 0x000000010c069681 | |
0x000000010c0693e6: movabs $0x795503338,%r9 ; {oop("null")} | |
0x000000010c0693f0: mov 0xc(%r9),%r10d | |
0x000000010c0693f4: mov 0xc(%r12,%r10,8),%r10d | |
0x000000010c0693f9: mov %r10d,%r8d | |
0x000000010c0693fc: add $0x4,%r8d | |
0x000000010c069400: movabs $0x795500d10,%r11 ; {oop(a 'java/lang/Class' = 'java/lang/System')} | |
0x000000010c06940a: mov 0x74(%r11),%ecx ;*getstatic out | |
; - com.vyazelenko.blog.copyobject.TestConstructor::doCopy@61 (line 31) | |
0x000000010c06940e: mov %ecx,0x18(%rsp) | |