Complete ASM code for TestClone 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 0x00000001063bb1d0: | |
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) | |
0x00000001063bb320: mov 0x8(%rsi),%r10d | |
0x00000001063bb324: shl $0x3,%r10 | |
0x00000001063bb328: cmp %r10,%rax | |
0x00000001063bb32b: jne 0x000000010638d960 ; {runtime_call} | |
0x00000001063bb331: data32 xchg %ax,%ax | |
0x00000001063bb334: nopl 0x0(%rax,%rax,1) | |
0x00000001063bb33c: data32 data32 xchg %ax,%ax | |
[Verified Entry Point] | |
0x00000001063bb340: mov %eax,-0x14000(%rsp) | |
0x00000001063bb347: push %rbp | |
0x00000001063bb348: sub $0x20,%rsp ;*synchronization entry | |
; - java.lang.String::indexOf@-1 (line 1526) | |
0x00000001063bb34c: mov 0xc(%rsi),%r8d ;*getfield value | |
; - java.lang.String::indexOf@1 (line 1526) | |
0x00000001063bb350: mov 0xc(%r12,%r8,8),%ebp ;*arraylength | |
; - java.lang.String::indexOf@4 (line 1526) | |
; implicit exception: dispatches to 0x00000001063bb466 | |
0x00000001063bb355: mov $0xffffffff,%eax | |
0x00000001063bb35a: test %ecx,%ecx | |
0x00000001063bb35c: jl 0x00000001063bb455 ;*ifge | |
; - java.lang.String::indexOf@7 (line 1527) | |
0x00000001063bb362: cmp %ebp,%ecx | |
0x00000001063bb364: jge 0x00000001063bb41d ;*if_icmplt | |
; - java.lang.String::indexOf@17 (line 1529) | |
0x00000001063bb36a: cmp $0x10000,%edx | |
0x00000001063bb370: jge 0x00000001063bb45c ;*if_icmpge | |
; - java.lang.String::indexOf@25 (line 1534) | |
0x00000001063bb376: cmp %ebp,%ecx | |
0x00000001063bb378: jge 0x00000001063bb41d ;*if_icmpge | |
; - java.lang.String::indexOf@40 (line 1538) | |
0x00000001063bb37e: cmp %ebp,%ecx | |
0x00000001063bb380: jae 0x00000001063bb437 | |
0x00000001063bb386: mov %ebp,%r10d | |
0x00000001063bb389: dec %r10d | |
0x00000001063bb38c: cmp %ebp,%r10d | |
0x00000001063bb38f: jae 0x00000001063bb437 | |
0x00000001063bb395: lea (%r12,%r8,8),%r9 | |
0x00000001063bb399: mov %ecx,%r11d | |
0x00000001063bb39c: inc %r11d ;*aload | |
; - java.lang.String::indexOf@43 (line 1539) | |
0x00000001063bb39f: movzwl 0x10(%r9,%rcx,2),%r8d ;*caload | |
; - java.lang.String::indexOf@47 (line 1539) | |
0x00000001063bb3a5: cmp %edx,%r8d | |
0x00000001063bb3a8: je 0x00000001063bb433 ;*if_icmpne | |
; - java.lang.String::indexOf@49 (line 1539) | |
0x00000001063bb3ae: inc %ecx ;*iinc | |
; - java.lang.String::indexOf@55 (line 1538) | |
0x00000001063bb3b0: cmp %r11d,%ecx | |
0x00000001063bb3b3: jl 0x00000001063bb39f ;*if_icmpge | |
; - java.lang.String::indexOf@40 (line 1538) | |
0x00000001063bb3b5: mov %ebp,%r11d | |
0x00000001063bb3b8: add $0xfffffffffffffffd,%r11d | |
0x00000001063bb3bc: mov $0x80000000,%r8d | |
0x00000001063bb3c2: cmp %r11d,%r10d | |
0x00000001063bb3c5: cmovl %r8d,%r11d | |
0x00000001063bb3c9: cmp %r11d,%ecx | |
0x00000001063bb3cc: jge 0x00000001063bb405 | |
0x00000001063bb3ce: xchg %ax,%ax ;*aload | |
; - java.lang.String::indexOf@43 (line 1539) | |
0x00000001063bb3d0: movzwl 0x10(%r9,%rcx,2),%r10d ;*caload | |
; - java.lang.String::indexOf@47 (line 1539) | |
0x00000001063bb3d6: cmp %edx,%r10d | |
0x00000001063bb3d9: je 0x00000001063bb433 ;*if_icmpne | |
; - java.lang.String::indexOf@49 (line 1539) | |
0x00000001063bb3db: movslq %ecx,%r10 | |
0x00000001063bb3de: movzwl 0x12(%r9,%r10,2),%ebx ;*caload | |
; - java.lang.String::indexOf@47 (line 1539) | |
0x00000001063bb3e4: cmp %edx,%ebx | |
0x00000001063bb3e6: je 0x00000001063bb42c ;*if_icmpne | |
; - java.lang.String::indexOf@49 (line 1539) | |
0x00000001063bb3e8: movzwl 0x14(%r9,%r10,2),%ebx ;*caload | |
; - java.lang.String::indexOf@47 (line 1539) | |
0x00000001063bb3ee: cmp %edx,%ebx | |
0x00000001063bb3f0: je 0x00000001063bb430 ;*if_icmpne | |
; - java.lang.String::indexOf@49 (line 1539) | |
0x00000001063bb3f2: movzwl 0x16(%r9,%r10,2),%r8d ;*caload | |
; - java.lang.String::indexOf@47 (line 1539) | |
0x00000001063bb3f8: cmp %edx,%r8d | |
0x00000001063bb3fb: je 0x00000001063bb429 ;*if_icmpne | |
; - java.lang.String::indexOf@49 (line 1539) | |
0x00000001063bb3fd: add $0x4,%ecx ;*iinc | |
; - java.lang.String::indexOf@55 (line 1538) | |
0x00000001063bb400: cmp %r11d,%ecx | |
0x00000001063bb403: jl 0x00000001063bb3d0 ;*if_icmpge | |
; - java.lang.String::indexOf@40 (line 1538) | |
0x00000001063bb405: cmp %ebp,%ecx | |
0x00000001063bb407: jge 0x00000001063bb41d | |
0x00000001063bb409: data32 xchg %ax,%ax ;*aload | |
; - java.lang.String::indexOf@43 (line 1539) | |
0x00000001063bb40c: movzwl 0x10(%r9,%rcx,2),%r11d ;*caload | |
; - java.lang.String::indexOf@47 (line 1539) | |
0x00000001063bb412: cmp %edx,%r11d | |
0x00000001063bb415: je 0x00000001063bb433 ;*if_icmpne | |
; - java.lang.String::indexOf@49 (line 1539) | |
0x00000001063bb417: inc %ecx ;*iinc | |
; - java.lang.String::indexOf@55 (line 1538) | |
0x00000001063bb419: cmp %ebp,%ecx | |
0x00000001063bb41b: jl 0x00000001063bb40c ;*aload | |
; - java.lang.String::indexOf@43 (line 1539) | |
0x00000001063bb41d: add $0x20,%rsp | |
0x00000001063bb421: pop %rbp | |
0x00000001063bb422: test %eax,-0x1bce428(%rip) # 0x00000001047ed000 | |
; {poll_return} | |
0x00000001063bb428: retq | |
0x00000001063bb429: add $0x2,%ecx | |
0x00000001063bb42c: inc %ecx | |
0x00000001063bb42e: jmp 0x00000001063bb433 | |
0x00000001063bb430: add $0x2,%ecx ;*iinc | |
; - java.lang.String::indexOf@55 (line 1538) | |
0x00000001063bb433: mov %ecx,%eax | |
0x00000001063bb435: jmp 0x00000001063bb41d | |
0x00000001063bb437: mov $0xffffff86,%esi | |
0x00000001063bb43c: mov %edx,(%rsp) | |
0x00000001063bb43f: mov %ecx,0x4(%rsp) | |
0x00000001063bb443: mov %r8d,0x8(%rsp) | |
0x00000001063bb448: data32 xchg %ax,%ax | |
0x00000001063bb44b: callq 0x000000010638ef20 ; OopMap{[8]=NarrowOop off=304} | |
;*aload | |
; - java.lang.String::indexOf@43 (line 1539) | |
; {runtime_call} | |
0x00000001063bb450: callq 0x0000000105c165de ;*aload | |
; - java.lang.String::indexOf@43 (line 1539) | |
; {runtime_call} | |
0x00000001063bb455: xor %ecx,%ecx | |
0x00000001063bb457: jmpq 0x00000001063bb36a | |
0x00000001063bb45c: data32 xchg %ax,%ax | |
0x00000001063bb45f: callq 0x000000010638db60 ; OopMap{off=324} | |
;*invokespecial indexOfSupplementary | |
; - java.lang.String::indexOf@66 (line 1545) | |
; {optimized virtual_call} | |
0x00000001063bb464: jmp 0x00000001063bb41d | |
0x00000001063bb466: mov $0xfffffff6,%esi | |
0x00000001063bb46b: callq 0x000000010638ef20 ; OopMap{off=336} | |
;*arraylength | |
; - java.lang.String::indexOf@4 (line 1526) | |
; {runtime_call} | |
0x00000001063bb470: callq 0x0000000105c165de ;*invokespecial indexOfSupplementary | |
; - java.lang.String::indexOf@66 (line 1545) | |
; {runtime_call} | |
0x00000001063bb475: mov %rax,%rsi | |
0x00000001063bb478: add $0x20,%rsp | |
0x00000001063bb47c: pop %rbp | |
0x00000001063bb47d: jmpq 0x00000001063b7e20 ;*iconst_m1 | |
; - java.lang.String::indexOf@61 (line 1543) | |
; {runtime_call} | |
0x00000001063bb482: hlt | |
0x00000001063bb483: hlt | |
0x00000001063bb484: hlt | |
0x00000001063bb485: hlt | |
0x00000001063bb486: hlt | |
0x00000001063bb487: hlt | |
0x00000001063bb488: hlt | |
0x00000001063bb489: hlt | |
0x00000001063bb48a: hlt | |
0x00000001063bb48b: hlt | |
0x00000001063bb48c: hlt | |
0x00000001063bb48d: hlt | |
0x00000001063bb48e: hlt | |
0x00000001063bb48f: hlt | |
0x00000001063bb490: hlt | |
0x00000001063bb491: hlt | |
0x00000001063bb492: hlt | |
0x00000001063bb493: hlt | |
0x00000001063bb494: hlt | |
0x00000001063bb495: hlt | |
0x00000001063bb496: hlt | |
0x00000001063bb497: hlt | |
0x00000001063bb498: hlt | |
0x00000001063bb499: hlt | |
0x00000001063bb49a: hlt | |
0x00000001063bb49b: hlt | |
0x00000001063bb49c: hlt | |
0x00000001063bb49d: hlt | |
0x00000001063bb49e: hlt | |
0x00000001063bb49f: hlt | |
[Stub Code] | |
0x00000001063bb4a0: movabs $0x0,%rbx ; {no_reloc} | |
0x00000001063bb4aa: jmpq 0x00000001063bb4aa ; {runtime_call} | |
[Exception Handler] | |
0x00000001063bb4af: jmpq 0x00000001063b50a0 ; {runtime_call} | |
[Deopt Handler Code] | |
0x00000001063bb4b4: callq 0x00000001063bb4b9 | |
0x00000001063bb4b9: subq $0x5,(%rsp) | |
0x00000001063bb4be: jmpq 0x000000010638eb00 ; {runtime_call} | |
0x00000001063bb4c3: hlt | |
0x00000001063bb4c4: hlt | |
0x00000001063bb4c5: hlt | |
0x00000001063bb4c6: hlt | |
0x00000001063bb4c7: hlt | |
Decoding compiled method 0x00000001063b7890: | |
Code: | |
[Entry Point] | |
[Constants] | |
# {method} 'hashCode' '()I' in 'java/lang/String' | |
# [sp+0x30] (sp of caller) | |
0x00000001063b79e0: mov 0x8(%rsi),%r10d | |
0x00000001063b79e4: shl $0x3,%r10 | |
0x00000001063b79e8: cmp %r10,%rax | |
0x00000001063b79eb: jne 0x000000010638d960 ; {runtime_call} | |
0x00000001063b79f1: data32 xchg %ax,%ax | |
0x00000001063b79f4: nopl 0x0(%rax,%rax,1) | |
0x00000001063b79fc: data32 data32 xchg %ax,%ax | |
[Verified Entry Point] | |
0x00000001063b7a00: mov %eax,-0x14000(%rsp) | |
0x00000001063b7a07: push %rbp | |
0x00000001063b7a08: sub $0x20,%rsp ;*synchronization entry | |
; - java.lang.String::hashCode@-1 (line 1446) | |
0x00000001063b7a0c: mov %rsi,%r10 | |
0x00000001063b7a0f: mov 0x10(%rsi),%eax ;*getfield hash | |
; - java.lang.String::hashCode@1 (line 1446) | |
0x00000001063b7a12: test %eax,%eax | |
0x00000001063b7a14: jne 0x00000001063b7b04 ;*ifne | |
; - java.lang.String::hashCode@6 (line 1447) | |
0x00000001063b7a1a: mov 0xc(%rsi),%ebp ;*getfield value | |
; - java.lang.String::hashCode@10 (line 1447) | |
0x00000001063b7a1d: mov 0xc(%r12,%rbp,8),%r8d ;*arraylength | |
; - java.lang.String::hashCode@13 (line 1447) | |
; implicit exception: dispatches to 0x00000001063b7b29 | |
0x00000001063b7a22: xor %ecx,%ecx | |
0x00000001063b7a24: test %r8d,%r8d | |
0x00000001063b7a27: jle 0x00000001063b7b25 ;*ifle | |
; - java.lang.String::hashCode@14 (line 1447) | |
0x00000001063b7a2d: test %r8d,%r8d | |
0x00000001063b7a30: jbe 0x00000001063b7b10 | |
0x00000001063b7a36: mov %r8d,%ebx | |
0x00000001063b7a39: dec %ebx | |
0x00000001063b7a3b: cmp %r8d,%ebx | |
0x00000001063b7a3e: jae 0x00000001063b7b10 | |
0x00000001063b7a44: lea (%r12,%rbp,8),%rdx | |
0x00000001063b7a48: xor %ebp,%ebp ;*imul | |
; - java.lang.String::hashCode@36 (line 1451) | |
0x00000001063b7a4a: movzwl 0x10(%rdx,%rcx,2),%r11d | |
0x00000001063b7a50: add %r11d,%ebp ;*iadd | |
; - java.lang.String::hashCode@40 (line 1451) | |
0x00000001063b7a53: mov %ebp,%r11d | |
0x00000001063b7a56: shl $0x5,%r11d | |
0x00000001063b7a5a: mov %r11d,%eax | |
0x00000001063b7a5d: sub %ebp,%eax ;*imul | |
; - java.lang.String::hashCode@36 (line 1451) | |
0x00000001063b7a5f: inc %ecx ;*iinc | |
; - java.lang.String::hashCode@42 (line 1450) | |
0x00000001063b7a61: cmp $0x1,%ecx | |
0x00000001063b7a64: jge 0x00000001063b7a6a ;*if_icmpge | |
; - java.lang.String::hashCode@30 (line 1450) | |
0x00000001063b7a66: mov %eax,%ebp | |
0x00000001063b7a68: jmp 0x00000001063b7a4a | |
0x00000001063b7a6a: mov %r8d,%edi | |
0x00000001063b7a6d: add $0xfffffffffffffffd,%edi | |
0x00000001063b7a70: mov $0x80000000,%r9d | |
0x00000001063b7a76: cmp %edi,%ebx | |
0x00000001063b7a78: cmovl %r9d,%edi | |
0x00000001063b7a7c: cmp %edi,%ecx | |
0x00000001063b7a7e: jl 0x00000001063b7ab2 | |
0x00000001063b7a80: mov %r11d,%eax | |
0x00000001063b7a83: jmp 0x00000001063b7af9 | |
0x00000001063b7a85: mov %eax,%r9d | |
0x00000001063b7a88: shl $0x5,%r9d ;*imul | |
; - java.lang.String::hashCode@36 (line 1451) | |
0x00000001063b7a8c: mov %eax,%ebp | |
0x00000001063b7a8e: mov %r9d,%eax ;*bipush | |
; - java.lang.String::hashCode@33 (line 1451) | |
0x00000001063b7a91: movzwl 0x10(%rdx,%rcx,2),%r11d | |
0x00000001063b7a97: sub %ebp,%eax | |
0x00000001063b7a99: add %r11d,%eax ;*iadd | |
; - java.lang.String::hashCode@40 (line 1451) | |
0x00000001063b7a9c: inc %ecx ;*iinc | |
; - java.lang.String::hashCode@42 (line 1450) | |
0x00000001063b7a9e: cmp %r8d,%ecx | |
0x00000001063b7aa1: jl 0x00000001063b7a85 ;*if_icmpge | |
; - java.lang.String::hashCode@30 (line 1450) | |
0x00000001063b7aa3: jmp 0x00000001063b7b00 | |
0x00000001063b7aa5: data32 data32 nopw 0x0(%rax,%rax,1) | |
0x00000001063b7ab0: sub %ebp,%eax ;*imul | |
; - java.lang.String::hashCode@36 (line 1451) | |
0x00000001063b7ab2: movzwl 0x10(%rdx,%rcx,2),%r11d | |
0x00000001063b7ab8: add %r11d,%eax | |
0x00000001063b7abb: movslq %ecx,%r11 | |
0x00000001063b7abe: movzwl 0x12(%rdx,%r11,2),%esi | |
0x00000001063b7ac4: movzwl 0x16(%rdx,%r11,2),%r9d | |
0x00000001063b7aca: movzwl 0x14(%rdx,%r11,2),%r11d | |
0x00000001063b7ad0: mov %eax,%ebx | |
0x00000001063b7ad2: shl $0x5,%ebx | |
0x00000001063b7ad5: sub %eax,%ebx | |
0x00000001063b7ad7: add %esi,%ebx | |
0x00000001063b7ad9: mov %ebx,%esi | |
0x00000001063b7adb: shl $0x5,%esi | |
0x00000001063b7ade: sub %ebx,%esi | |
0x00000001063b7ae0: add %r11d,%esi | |
0x00000001063b7ae3: mov %esi,%ebp | |
0x00000001063b7ae5: shl $0x5,%ebp | |
0x00000001063b7ae8: sub %esi,%ebp | |
0x00000001063b7aea: add %r9d,%ebp ;*iadd | |
; - java.lang.String::hashCode@40 (line 1451) | |
0x00000001063b7aed: mov %ebp,%eax | |
0x00000001063b7aef: shl $0x5,%eax ;*imul | |
; - java.lang.String::hashCode@36 (line 1451) | |
0x00000001063b7af2: add $0x4,%ecx ;*iinc | |
; - java.lang.String::hashCode@42 (line 1450) | |
0x00000001063b7af5: cmp %edi,%ecx | |
0x00000001063b7af7: jl 0x00000001063b7ab0 ;*if_icmpge | |
; - java.lang.String::hashCode@30 (line 1450) | |
0x00000001063b7af9: cmp %r8d,%ecx | |
0x00000001063b7afc: jl 0x00000001063b7a91 | |
0x00000001063b7afe: mov %ebp,%eax | |
0x00000001063b7b00: mov %eax,0x10(%r10) ;*synchronization entry | |
; - java.lang.String::hashCode@-1 (line 1446) | |
0x00000001063b7b04: add $0x20,%rsp | |
0x00000001063b7b08: pop %rbp | |
0x00000001063b7b09: test %eax,-0x1bcab0f(%rip) # 0x00000001047ed000 | |
; {poll_return} | |
0x00000001063b7b0f: retq | |
0x00000001063b7b10: mov $0xffffff86,%esi | |
0x00000001063b7b15: mov %r10,(%rsp) | |
0x00000001063b7b19: xchg %ax,%ax | |
0x00000001063b7b1b: callq 0x000000010638ef20 ; OopMap{rbp=NarrowOop [0]=Oop off=320} | |
;*bipush | |
; - java.lang.String::hashCode@33 (line 1451) | |
; {runtime_call} | |
0x00000001063b7b20: callq 0x0000000105c165de ;*bipush | |
; - java.lang.String::hashCode@33 (line 1451) | |
; {runtime_call} | |
0x00000001063b7b25: xor %eax,%eax | |
0x00000001063b7b27: jmp 0x00000001063b7b04 | |
0x00000001063b7b29: mov $0xfffffff6,%esi | |
0x00000001063b7b2e: nop | |
0x00000001063b7b2f: callq 0x000000010638ef20 ; OopMap{off=340} | |
;*arraylength | |
; - java.lang.String::hashCode@13 (line 1447) | |
; {runtime_call} | |
0x00000001063b7b34: callq 0x0000000105c165de ;*arraylength | |
; - java.lang.String::hashCode@13 (line 1447) | |
; {runtime_call} | |
0x00000001063b7b39: hlt | |
0x00000001063b7b3a: hlt | |
0x00000001063b7b3b: hlt | |
0x00000001063b7b3c: hlt | |
0x00000001063b7b3d: hlt | |
0x00000001063b7b3e: hlt | |
0x00000001063b7b3f: hlt | |
[Exception Handler] | |
[Stub Code] | |
0x00000001063b7b40: jmpq 0x00000001063b50a0 ; {no_reloc} | |
[Deopt Handler Code] | |
0x00000001063b7b45: callq 0x00000001063b7b4a | |
0x00000001063b7b4a: subq $0x5,(%rsp) | |
0x00000001063b7b4f: jmpq 0x000000010638eb00 ; {runtime_call} | |
0x00000001063b7b54: hlt | |
0x00000001063b7b55: hlt | |
0x00000001063b7b56: hlt | |
0x00000001063b7b57: hlt | |
>>> In warmup | |
Decoding compiled method 0x00000001063bb810: | |
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) | |
0x00000001063bb9a0: mov 0x8(%rsi),%r10d | |
0x00000001063bb9a4: shl $0x3,%r10 | |
0x00000001063bb9a8: cmp %r10,%rax | |
0x00000001063bb9ab: jne 0x000000010638d960 ; {runtime_call} | |
0x00000001063bb9b1: data32 xchg %ax,%ax | |
0x00000001063bb9b4: nopl 0x0(%rax,%rax,1) | |
0x00000001063bb9bc: data32 data32 xchg %ax,%ax | |
[Verified Entry Point] | |
0x00000001063bb9c0: mov %eax,-0x14000(%rsp) | |
0x00000001063bb9c7: push %rbp | |
0x00000001063bb9c8: sub $0x70,%rsp ;*synchronization entry | |
; - sun.nio.cs.UTF_8$Encoder::encode@-1 (line 627) | |
0x00000001063bb9cc: mov %rsi,0x28(%rsp) | |
0x00000001063bb9d1: mov 0xc(%r9),%r14d ;*arraylength | |
; - sun.nio.cs.UTF_8$Encoder::encode@13 (line 629) | |
; implicit exception: dispatches to 0x00000001063bc04d | |
0x00000001063bb9d5: cmp %r14d,%r8d | |
0x00000001063bb9d8: mov %r14d,%ebx | |
0x00000001063bb9db: cmovl %r8d,%ebx ;*invokestatic min | |
; - sun.nio.cs.UTF_8$Encoder::encode@14 (line 629) | |
0x00000001063bb9df: mov %ecx,%r11d | |
0x00000001063bb9e2: add %r8d,%r11d ;*iadd | |
; - sun.nio.cs.UTF_8$Encoder::encode@2 (line 627) | |
0x00000001063bb9e5: mov %r11d,0x24(%rsp) | |
0x00000001063bb9ea: test %ebx,%ebx | |
0x00000001063bb9ec: jle 0x00000001063bbb49 ;*if_icmpge | |
; - sun.nio.cs.UTF_8$Encoder::encode@24 (line 632) | |
0x00000001063bb9f2: mov %rdx,%r10 | |
0x00000001063bb9f5: mov 0xc(%rdx),%r11d ;*caload | |
; - sun.nio.cs.UTF_8$Encoder::encode@29 (line 632) | |
; implicit exception: dispatches to 0x00000001063bbba9 | |
0x00000001063bb9f9: cmp %r11d,%ecx | |
0x00000001063bb9fc: jae 0x00000001063bbba9 | |
0x00000001063bba02: mov %ecx,%r8d | |
0x00000001063bba05: add %ebx,%r8d | |
0x00000001063bba08: dec %r8d | |
0x00000001063bba0b: cmp %r11d,%r8d | |
0x00000001063bba0e: jae 0x00000001063bbba9 | |
0x00000001063bba14: mov $0x1,%r11d | |
0x00000001063bba1a: cmp %r11d,%ebx | |
0x00000001063bba1d: mov %ebx,%edi | |
0x00000001063bba1f: cmovg %r11d,%edi | |
0x00000001063bba23: xor %eax,%eax | |
0x00000001063bba25: mov %eax,%r8d | |
0x00000001063bba28: add %ecx,%r8d ;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632) | |
0x00000001063bba2b: movzwl 0x10(%r10,%r8,2),%esi ;*caload | |
; - sun.nio.cs.UTF_8$Encoder::encode@48 (line 633) | |
0x00000001063bba31: cmp $0x80,%esi | |
0x00000001063bba37: jge 0x00000001063bbbd1 ;*if_icmpge | |
; - sun.nio.cs.UTF_8$Encoder::encode@33 (line 632) | |
0x00000001063bba3d: mov %eax,%edx | |
0x00000001063bba3f: inc %edx ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@40 (line 633) | |
0x00000001063bba41: cmp %r14d,%eax | |
0x00000001063bba44: jae 0x00000001063bbb6e | |
0x00000001063bba4a: movslq %eax,%r11 | |
0x00000001063bba4d: mov %sil,0x10(%r9,%r11,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@50 (line 633) | |
0x00000001063bba52: cmp %edi,%edx | |
0x00000001063bba54: jge 0x00000001063bba5a ;*if_icmpge | |
; - sun.nio.cs.UTF_8$Encoder::encode@24 (line 632) | |
0x00000001063bba56: mov %edx,%eax | |
0x00000001063bba58: jmp 0x00000001063bba25 | |
0x00000001063bba5a: cmp %ebx,%r14d | |
0x00000001063bba5d: mov %r14d,%r11d | |
0x00000001063bba60: cmovg %ebx,%r11d | |
0x00000001063bba64: mov %r11d,%eax | |
0x00000001063bba67: add $0xfffffffffffffffd,%eax | |
0x00000001063bba6a: mov $0x80000000,%esi | |
0x00000001063bba6f: cmp %eax,%r11d | |
0x00000001063bba72: cmovl %esi,%eax | |
0x00000001063bba75: cmp %eax,%edx | |
0x00000001063bba77: jge 0x00000001063bbbc9 | |
0x00000001063bba7d: data32 xchg %ax,%ax | |
0x00000001063bba80: mov %edx,%r8d | |
0x00000001063bba83: add %ecx,%r8d ;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632) | |
0x00000001063bba86: movzwl 0x10(%r10,%r8,2),%r11d ;*caload | |
; - sun.nio.cs.UTF_8$Encoder::encode@48 (line 633) | |
0x00000001063bba8c: cmp $0x80,%r11d | |
0x00000001063bba93: jge 0x00000001063bbb69 ;*if_icmpge | |
; - sun.nio.cs.UTF_8$Encoder::encode@33 (line 632) | |
0x00000001063bba99: movslq %r8d,%rsi | |
0x00000001063bba9c: movzwl 0x12(%r10,%rsi,2),%edi ;*caload | |
; - sun.nio.cs.UTF_8$Encoder::encode@48 (line 633) | |
0x00000001063bbaa2: movslq %edx,%rbp | |
0x00000001063bbaa5: mov %r11b,0x10(%r9,%rbp,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@50 (line 633) | |
0x00000001063bbaaa: cmp $0x80,%edi | |
0x00000001063bbab0: jge 0x00000001063bbb5b ;*if_icmpge | |
; - sun.nio.cs.UTF_8$Encoder::encode@33 (line 632) | |
0x00000001063bbab6: movzwl 0x14(%r10,%rsi,2),%r11d ;*caload | |
; - sun.nio.cs.UTF_8$Encoder::encode@48 (line 633) | |
0x00000001063bbabc: movslq %edx,%rbp | |
0x00000001063bbabf: mov %dil,0x11(%r9,%rbp,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@50 (line 633) | |
0x00000001063bbac4: cmp $0x80,%r11d | |
0x00000001063bbacb: jge 0x00000001063bbb62 ;*if_icmpge | |
; - sun.nio.cs.UTF_8$Encoder::encode@33 (line 632) | |
0x00000001063bbad1: mov %r11b,0x12(%r9,%rbp,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@50 (line 633) | |
0x00000001063bbad6: movzwl 0x16(%r10,%rsi,2),%edi ;*caload | |
; - sun.nio.cs.UTF_8$Encoder::encode@48 (line 633) | |
0x00000001063bbadc: cmp $0x80,%edi | |
0x00000001063bbae2: jge 0x00000001063bbb54 ;*if_icmpge | |
; - sun.nio.cs.UTF_8$Encoder::encode@33 (line 632) | |
0x00000001063bbae4: mov %dil,0x13(%r9,%rbp,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@50 (line 633) | |
0x00000001063bbae9: add $0x4,%edx ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@40 (line 633) | |
0x00000001063bbaec: cmp %eax,%edx | |
0x00000001063bbaee: jl 0x00000001063bba80 ;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632) | |
0x00000001063bbaf0: add $0x4,%r8d ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@45 (line 633) | |
0x00000001063bbaf4: cmp %ebx,%edx | |
0x00000001063bbaf6: jl 0x00000001063bbb00 | |
0x00000001063bbaf8: mov %edx,%r11d | |
0x00000001063bbafb: jmp 0x00000001063bbb2f | |
0x00000001063bbafd: mov %r11d,%edx | |
0x00000001063bbb00: mov %edx,%r8d | |
0x00000001063bbb03: add %ecx,%r8d ;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632) | |
0x00000001063bbb06: movzwl 0x10(%r10,%r8,2),%esi ;*caload | |
; - sun.nio.cs.UTF_8$Encoder::encode@48 (line 633) | |
0x00000001063bbb0c: cmp $0x80,%esi | |
0x00000001063bbb12: jge 0x00000001063bbb69 ;*if_icmpge | |
; - sun.nio.cs.UTF_8$Encoder::encode@33 (line 632) | |
0x00000001063bbb14: mov %edx,%r11d | |
0x00000001063bbb17: inc %r11d ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@40 (line 633) | |
0x00000001063bbb1a: cmp %r14d,%edx | |
0x00000001063bbb1d: jae 0x00000001063bbb78 | |
0x00000001063bbb1f: movslq %edx,%rdi | |
0x00000001063bbb22: mov %sil,0x10(%r9,%rdi,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@50 (line 633) | |
0x00000001063bbb27: cmp %ebx,%r11d | |
0x00000001063bbb2a: jl 0x00000001063bbafd ;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632) | |
0x00000001063bbb2c: inc %r8d ;*if_icmpge | |
; - sun.nio.cs.UTF_8$Encoder::encode@33 (line 632) | |
0x00000001063bbb2f: cmp 0x24(%rsp),%r8d | |
0x00000001063bbb34: jl 0x00000001063bbbd5 | |
0x00000001063bbb3a: mov %r11d,%eax | |
0x00000001063bbb3d: add $0x70,%rsp | |
0x00000001063bbb41: pop %rbp | |
0x00000001063bbb42: test %eax,-0x1bceb48(%rip) # 0x00000001047ed000 | |
; {poll_return} | |
0x00000001063bbb48: retq | |
0x00000001063bbb49: mov %ecx,%r8d | |
0x00000001063bbb4c: xor %r11d,%r11d | |
0x00000001063bbb4f: mov %rdx,%r10 | |
0x00000001063bbb52: jmp 0x00000001063bbb2f ;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632) | |
0x00000001063bbb54: add $0x2,%edx ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@40 (line 633) | |
0x00000001063bbb57: add $0x2,%r8d ;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632) | |
0x00000001063bbb5b: inc %r8d ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@45 (line 633) | |
0x00000001063bbb5e: inc %edx ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@40 (line 633) | |
0x00000001063bbb60: jmp 0x00000001063bbb69 | |
0x00000001063bbb62: add $0x2,%r8d ;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632) | |
0x00000001063bbb66: add $0x2,%edx ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@40 (line 633) | |
0x00000001063bbb69: mov %edx,%r11d | |
0x00000001063bbb6c: jmp 0x00000001063bbb2f ;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632) | |
0x00000001063bbb6e: inc %r8d ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@45 (line 633) | |
0x00000001063bbb71: mov %edx,(%rsp) | |
0x00000001063bbb74: mov %eax,%edx | |
0x00000001063bbb76: jmp 0x00000001063bbb7f ;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632) | |
0x00000001063bbb78: inc %r8d ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@45 (line 633) | |
0x00000001063bbb7b: mov %r11d,(%rsp) | |
0x00000001063bbb7f: movsbl %sil,%ebp ;*i2b ; - sun.nio.cs.UTF_8$Encoder::encode@49 (line 633) | |
0x00000001063bbb83: mov $0xffffffe4,%esi | |
0x00000001063bbb88: mov %r10,0x8(%rsp) | |
0x00000001063bbb8d: mov %r8d,0x4(%rsp) | |
0x00000001063bbb92: mov %r9,0x18(%rsp) | |
0x00000001063bbb97: mov %edx,0x20(%rsp) | |
0x00000001063bbb9b: mov %ebx,0x30(%rsp) | |
0x00000001063bbb9f: callq 0x000000010638ef20 ; OopMap{[8]=Oop [24]=Oop [40]=Oop off=516} | |
;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@50 (line 633) | |
; {runtime_call} | |
0x00000001063bbba4: callq 0x0000000105c165de ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@50 (line 633) | |
; {runtime_call} | |
0x00000001063bbba9: mov $0xffffff86,%esi | |
0x00000001063bbbae: mov %rdx,%rbp | |
0x00000001063bbbb1: mov %ecx,(%rsp) | |
0x00000001063bbbb4: mov %r9,0x8(%rsp) | |
0x00000001063bbbb9: mov %ebx,0x10(%rsp) | |
0x00000001063bbbbd: xchg %ax,%ax | |
0x00000001063bbbbf: callq 0x000000010638ef20 ; OopMap{rbp=Oop [8]=Oop [40]=Oop off=548} | |
;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632) | |
; {runtime_call} | |
0x00000001063bbbc4: callq 0x0000000105c165de ;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632) | |
; {runtime_call} | |
0x00000001063bbbc9: inc %r8d ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@45 (line 633) | |
0x00000001063bbbcc: jmpq 0x00000001063bbaf4 ;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@27 (line 632) | |
0x00000001063bbbd1: mov %eax,%edx | |
0x00000001063bbbd3: jmp 0x00000001063bbb69 | |
0x00000001063bbbd5: mov 0xc(%r10),%edx ;*caload | |
; - sun.nio.cs.UTF_8$Encoder::encode@65 (line 636) | |
; implicit exception: dispatches to 0x00000001063bc06f | |
0x00000001063bbbd9: mov %r8d,%edi | |
0x00000001063bbbdc: mov %r11d,0x50(%rsp) ;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@60 (line 636) | |
0x00000001063bbbe1: mov %edi,%ecx | |
0x00000001063bbbe3: inc %ecx ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@62 (line 636) | |
0x00000001063bbbe5: mov %edi,%r8d | |
0x00000001063bbbe8: cmp %edx,%edi | |
0x00000001063bbbea: jae 0x00000001063bbeb7 | |
0x00000001063bbbf0: movzwl 0x10(%r10,%rdi,2),%ebx ;*caload | |
; - sun.nio.cs.UTF_8$Encoder::encode@65 (line 636) | |
0x00000001063bbbf6: movslq 0x50(%rsp),%rsi ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@86 (line 639) | |
0x00000001063bbbfb: mov 0x50(%rsp),%r11d | |
0x00000001063bbc00: inc %r11d ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@80 (line 639) | |
0x00000001063bbc03: cmp $0x80,%ebx | |
0x00000001063bbc09: jge 0x00000001063bbc41 ;*if_icmpge | |
; - sun.nio.cs.UTF_8$Encoder::encode@73 (line 637) | |
0x00000001063bbc0b: mov 0x50(%rsp),%r8d | |
0x00000001063bbc10: cmp %r14d,%r8d | |
0x00000001063bbc13: jae 0x00000001063bbed9 | |
0x00000001063bbc19: mov %bl,0x10(%r9,%rsi,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@86 (line 639) | |
0x00000001063bbc1e: mov 0x28(%rsp),%r8 ; OopMap{r10=Oop r8=Oop r9=Oop off=643} | |
;*goto | |
; - sun.nio.cs.UTF_8$Encoder::encode@355 (line 665) | |
0x00000001063bbc23: test %eax,-0x1bcec29(%rip) # 0x00000001047ed000 | |
;*goto | |
; - sun.nio.cs.UTF_8$Encoder::encode@355 (line 665) | |
; {poll} | |
0x00000001063bbc29: cmp 0x24(%rsp),%ecx | |
0x00000001063bbc2d: jge 0x00000001063bbb3a ;*if_icmpge | |
; - sun.nio.cs.UTF_8$Encoder::encode@57 (line 635) | |
0x00000001063bbc33: mov %ecx,%edi | |
0x00000001063bbc35: mov %r11d,0x50(%rsp) | |
0x00000001063bbc3a: mov %r8,0x28(%rsp) | |
0x00000001063bbc3f: jmp 0x00000001063bbbe1 | |
0x00000001063bbc41: mov %ebx,%ebp | |
0x00000001063bbc43: and $0x3f,%ebp | |
0x00000001063bbc46: movslq 0x50(%rsp),%r13 ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@291 (line 656) | |
0x00000001063bbc4b: or $0x80,%ebp ;*ior ; - sun.nio.cs.UTF_8$Encoder::encode@131 (line 643) | |
0x00000001063bbc51: mov 0x50(%rsp),%eax | |
0x00000001063bbc55: add $0x2,%eax ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@120 (line 643) | |
0x00000001063bbc58: cmp $0x800,%ebx | |
0x00000001063bbc5e: jge 0x00000001063bbc98 ;*if_icmpge | |
; - sun.nio.cs.UTF_8$Encoder::encode@95 (line 640) | |
0x00000001063bbc60: mov %ebx,%r8d | |
0x00000001063bbc63: sar $0x6,%r8d | |
0x00000001063bbc67: or $0xc0,%r8d ;*ior ; - sun.nio.cs.UTF_8$Encoder::encode@113 (line 642) | |
0x00000001063bbc6e: mov 0x50(%rsp),%edi | |
0x00000001063bbc72: cmp %r14d,%edi | |
0x00000001063bbc75: jae 0x00000001063bbf11 | |
0x00000001063bbc7b: mov %r8b,0x10(%r9,%rsi,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@115 (line 642) | |
0x00000001063bbc80: cmp %r14d,%r11d | |
0x00000001063bbc83: jae 0x00000001063bbf4d | |
0x00000001063bbc89: mov %bpl,0x11(%r9,%r13,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@133 (line 643) | |
0x00000001063bbc8e: mov 0x28(%rsp),%r8 | |
0x00000001063bbc93: mov %eax,%r11d | |
0x00000001063bbc96: jmp 0x00000001063bbc23 | |
0x00000001063bbc98: mov %eax,0x44(%rsp) | |
0x00000001063bbc9c: mov %r13,0x48(%rsp) | |
0x00000001063bbca1: mov %ebp,0x40(%rsp) | |
0x00000001063bbca5: mov %rsi,0x38(%rsp) | |
0x00000001063bbcaa: mov %ebx,0x34(%rsp) | |
0x00000001063bbcae: mov %ecx,0x30(%rsp) | |
0x00000001063bbcb2: mov %r8d,0x1c(%rsp) | |
0x00000001063bbcb7: mov %edx,0x14(%rsp) | |
0x00000001063bbcbb: mov %r11d,0x18(%rsp) | |
0x00000001063bbcc0: mov %rax,-0x8(%rsp) | |
0x00000001063bbcc5: mov 0x24(%rsp),%eax | |
0x00000001063bbcc9: mov %eax,0x20(%rsp) | |
0x00000001063bbccd: mov -0x8(%rsp),%rax | |
0x00000001063bbcd2: mov %r14d,0x10(%rsp) | |
0x00000001063bbcd7: mov %r10,(%rsp) | |
0x00000001063bbcdb: mov %r9,0x8(%rsp) ;*if_icmpge | |
; - sun.nio.cs.UTF_8$Encoder::encode@95 (line 640) | |
0x00000001063bbce0: mov %ebx,%esi | |
0x00000001063bbce2: nop | |
0x00000001063bbce3: callq 0x000000010638df60 ; OopMap{[0]=Oop [8]=Oop [40]=Oop off=840} | |
;*invokestatic isSurrogate | |
; - sun.nio.cs.UTF_8$Encoder::encode@139 (line 644) | |
; {static_call} | |
0x00000001063bbce8: mov 0x50(%rsp),%ebp | |
0x00000001063bbcec: add $0x3,%ebp ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@257 (line 655) | |
0x00000001063bbcef: test %eax,%eax | |
0x00000001063bbcf1: je 0x00000001063bbded ;*ifeq | |
; - sun.nio.cs.UTF_8$Encoder::encode@142 (line 644) | |
0x00000001063bbcf7: mov 0x28(%rsp),%r10 | |
0x00000001063bbcfc: mov 0x2c(%r10),%r11d ;*getfield sgp | |
; - sun.nio.cs.UTF_8$Encoder::encode@146 (line 645) | |
0x00000001063bbd00: test %r11d,%r11d | |
0x00000001063bbd03: je 0x00000001063bbf89 ;*ifnonnull | |
; - sun.nio.cs.UTF_8$Encoder::encode@149 (line 645) | |
0x00000001063bbd09: lea (%r12,%r11,8),%rsi ;*getfield sgp | |
; - sun.nio.cs.UTF_8$Encoder::encode@146 (line 645) | |
0x00000001063bbd0d: mov 0x34(%rsp),%edx | |
0x00000001063bbd11: mov (%rsp),%rcx | |
0x00000001063bbd15: mov 0x1c(%rsp),%r8d | |
0x00000001063bbd1a: mov 0x24(%rsp),%r9d | |
0x00000001063bbd1f: callq 0x000000010638db60 ; OopMap{[0]=Oop [8]=Oop [40]=Oop off=900} | |
;*invokevirtual parse | |
; - sun.nio.cs.UTF_8$Encoder::encode@175 (line 647) | |
; {optimized virtual_call} | |
0x00000001063bbd24: mov %eax,%ebx | |
0x00000001063bbd26: test %eax,%eax | |
0x00000001063bbd28: jge 0x00000001063bbd4b ;*ifge | |
; - sun.nio.cs.UTF_8$Encoder::encode@182 (line 648) | |
0x00000001063bbd2a: mov 0x28(%rsp),%r8 | |
0x00000001063bbd2f: mov 0x20(%r8),%r11d | |
0x00000001063bbd33: cmp $0xf2aa24d3,%r11d ; {oop(a 'java/nio/charset/CodingErrorAction')} | |
0x00000001063bbd3a: je 0x00000001063bbe72 ;*if_acmpeq | |
; - sun.nio.cs.UTF_8$Encoder::encode@192 (line 649) | |
0x00000001063bbd40: mov $0xffffffff,%r11d | |
0x00000001063bbd46: jmpq 0x00000001063bbb3a | |
0x00000001063bbd4b: mov %eax,%r10d | |
0x00000001063bbd4e: sar $0x12,%r10d | |
0x00000001063bbd52: or $0xf0,%r10d ;*ior ; - sun.nio.cs.UTF_8$Encoder::encode@229 (line 653) | |
0x00000001063bbd59: mov 0x50(%rsp),%r8d | |
0x00000001063bbd5e: cmp 0x10(%rsp),%r8d | |
0x00000001063bbd63: jae 0x00000001063bbfa5 | |
0x00000001063bbd69: mov 0x8(%rsp),%r9 | |
0x00000001063bbd6e: mov 0x38(%rsp),%r11 | |
0x00000001063bbd73: mov %r10b,0x10(%r9,%r11,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@231 (line 653) | |
0x00000001063bbd78: mov %eax,%r11d | |
0x00000001063bbd7b: shr $0xc,%r11d | |
0x00000001063bbd7f: and $0x3f,%r11d | |
0x00000001063bbd83: or $0x80,%r11d ;*ior ; - sun.nio.cs.UTF_8$Encoder::encode@250 (line 654) | |
0x00000001063bbd8a: cmp 0x10(%rsp),%ebp | |
0x00000001063bbd8e: jae 0x00000001063bbfc9 | |
0x00000001063bbd94: mov 0x48(%rsp),%rdi | |
0x00000001063bbd99: mov %r11b,0x11(%r9,%rdi,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@252 (line 654) | |
0x00000001063bbd9e: mov 0x50(%rsp),%r11d | |
0x00000001063bbda3: add $0x4,%r11d ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@278 (line 656) | |
0x00000001063bbda7: mov 0x1c(%rsp),%r8d | |
0x00000001063bbdac: mov %r8d,%ecx | |
0x00000001063bbdaf: add $0x2,%ecx ;*iinc | |
; - sun.nio.cs.UTF_8$Encoder::encode@292 (line 657) | |
0x00000001063bbdb2: mov %eax,%r8d | |
0x00000001063bbdb5: and $0x3f,%r8d | |
0x00000001063bbdb9: shr $0x6,%ebx | |
0x00000001063bbdbc: or $0x80,%r8d | |
0x00000001063bbdc3: and $0x3f,%ebx | |
0x00000001063bbdc6: or $0x80,%ebx | |
0x00000001063bbdcc: mov %bl,0x12(%r9,%rdi,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@273 (line 655) | |
0x00000001063bbdd1: mov %r8b,0x13(%r9,%rdi,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@291 (line 656) | |
0x00000001063bbdd6: mov 0x28(%rsp),%r8 ;*goto | |
; - sun.nio.cs.UTF_8$Encoder::encode@295 (line 659) | |
0x00000001063bbddb: mov (%rsp),%r10 | |
0x00000001063bbddf: mov 0x10(%rsp),%r14d | |
0x00000001063bbde4: mov 0x14(%rsp),%edx | |
0x00000001063bbde8: jmpq 0x00000001063bbc23 | |
0x00000001063bbded: mov 0x34(%rsp),%r8d | |
0x00000001063bbdf2: sar $0xc,%r8d | |
0x00000001063bbdf6: or $0xe0,%r8d ;*ior ; - sun.nio.cs.UTF_8$Encoder::encode@313 (line 661) | |
0x00000001063bbdfd: mov 0x50(%rsp),%r11d | |
0x00000001063bbe02: cmp 0x10(%rsp),%r11d | |
0x00000001063bbe07: jae 0x00000001063bbfe1 | |
0x00000001063bbe0d: mov 0x8(%rsp),%r9 | |
0x00000001063bbe12: mov 0x38(%rsp),%r10 | |
0x00000001063bbe17: mov %r8b,0x10(%r9,%r10,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@315 (line 661) | |
0x00000001063bbe1c: mov 0x34(%rsp),%r8d | |
0x00000001063bbe21: shr $0x6,%r8d | |
0x00000001063bbe25: and $0x3f,%r8d | |
0x00000001063bbe29: or $0x80,%r8d ;*ior ; - sun.nio.cs.UTF_8$Encoder::encode@334 (line 662) | |
0x00000001063bbe30: mov 0x44(%rsp),%r10d | |
0x00000001063bbe35: cmp 0x10(%rsp),%r10d | |
0x00000001063bbe3a: jae 0x00000001063bc001 | |
0x00000001063bbe40: mov 0x48(%rsp),%r10 | |
0x00000001063bbe45: mov %r8b,0x11(%r9,%r10,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@336 (line 662) | |
0x00000001063bbe4a: mov 0x40(%rsp),%r8d | |
0x00000001063bbe4f: mov %r8b,0x12(%r9,%r10,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@354 (line 663) | |
0x00000001063bbe54: mov (%rsp),%r10 | |
0x00000001063bbe58: mov 0x28(%rsp),%r8 | |
0x00000001063bbe5d: mov 0x10(%rsp),%r14d | |
0x00000001063bbe62: mov %ebp,%r11d | |
0x00000001063bbe65: mov 0x14(%rsp),%edx | |
0x00000001063bbe69: mov 0x30(%rsp),%ecx | |
0x00000001063bbe6d: jmpq 0x00000001063bbc23 | |
0x00000001063bbe72: mov 0x1c(%r8),%ebp ;*getfield replacement | |
; - java.nio.charset.CharsetEncoder::replacement@1 (line 247) | |
; - sun.nio.cs.UTF_8$Encoder::encode@205 (line 651) | |
0x00000001063bbe76: mov 0xc(%r12,%rbp,8),%r10d ; implicit exception: dispatches to 0x00000001063bc091 | |
0x00000001063bbe7b: test %r10d,%r10d | |
0x00000001063bbe7e: jbe 0x00000001063bc031 | |
0x00000001063bbe84: movsbl 0x10(%r12,%rbp,8),%ebp ;*baload | |
; - sun.nio.cs.UTF_8$Encoder::encode@209 (line 651) | |
0x00000001063bbe8a: mov 0x50(%rsp),%r10d | |
0x00000001063bbe8f: cmp 0x10(%rsp),%r10d | |
0x00000001063bbe94: jae 0x00000001063bc015 | |
0x00000001063bbe9a: mov 0x8(%rsp),%r9 | |
0x00000001063bbe9f: mov 0x38(%rsp),%r10 | |
0x00000001063bbea4: mov %bpl,0x10(%r9,%r10,1) ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@210 (line 651) | |
0x00000001063bbea9: mov 0x18(%rsp),%r11d | |
0x00000001063bbeae: mov 0x30(%rsp),%ecx | |
0x00000001063bbeb2: jmpq 0x00000001063bbddb | |
0x00000001063bbeb7: mov $0xffffffe4,%esi | |
0x00000001063bbebc: mov %r9,(%rsp) | |
0x00000001063bbec0: mov %r10,0x8(%rsp) | |
0x00000001063bbec5: mov %ecx,0x10(%rsp) | |
0x00000001063bbec9: mov %edi,0x18(%rsp) | |
0x00000001063bbecd: xchg %ax,%ax | |
0x00000001063bbecf: callq 0x000000010638ef20 ; OopMap{[0]=Oop [8]=Oop [40]=Oop off=1332} | |
;*caload | |
; - sun.nio.cs.UTF_8$Encoder::encode@65 (line 636) | |
; {runtime_call} | |
0x00000001063bbed4: callq 0x0000000105c165de ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@86 (line 639) | |
; {runtime_call} | |
0x00000001063bbed9: movsbl %bl,%ebp ;*i2b ; - sun.nio.cs.UTF_8$Encoder::encode@85 (line 639) | |
0x00000001063bbedc: mov $0xffffffe4,%esi | |
0x00000001063bbee1: mov %r10,(%rsp) | |
0x00000001063bbee5: mov %r11d,0x10(%rsp) | |
0x00000001063bbeea: mov %r9,0x18(%rsp) | |
0x00000001063bbeef: mov %ecx,0x14(%rsp) | |
0x00000001063bbef3: mov %rax,-0x8(%rsp) | |
0x00000001063bbef8: mov 0x24(%rsp),%eax | |
0x00000001063bbefc: mov %eax,0x20(%rsp) | |
0x00000001063bbf00: mov -0x8(%rsp),%rax | |
0x00000001063bbf05: xchg %ax,%ax | |
0x00000001063bbf07: callq 0x000000010638ef20 ; OopMap{[0]=Oop [24]=Oop [40]=Oop off=1388} | |
;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@86 (line 639) | |
; {runtime_call} | |
0x00000001063bbf0c: callq 0x0000000105c165de ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@115 (line 642) | |
; {runtime_call} | |
0x00000001063bbf11: movsbl %r8b,%ebp ;*i2b ; - sun.nio.cs.UTF_8$Encoder::encode@114 (line 642) | |
0x00000001063bbf15: mov $0xffffffe4,%esi | |
0x00000001063bbf1a: mov %r10,(%rsp) | |
0x00000001063bbf1e: mov %r11d,0x10(%rsp) | |
0x00000001063bbf23: mov %r9,0x18(%rsp) | |
0x00000001063bbf28: mov %ecx,0x14(%rsp) | |
0x00000001063bbf2c: mov %rax,-0x8(%rsp) | |
0x00000001063bbf31: mov 0x24(%rsp),%eax | |
0x00000001063bbf35: mov %eax,0x20(%rsp) | |
0x00000001063bbf39: mov -0x8(%rsp),%rax | |
0x00000001063bbf3e: mov %ebx,0x24(%rsp) | |
0x00000001063bbf42: nop | |
0x00000001063bbf43: callq 0x000000010638ef20 ; OopMap{[0]=Oop [24]=Oop [40]=Oop off=1448} | |
;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@115 (line 642) | |
; {runtime_call} | |
0x00000001063bbf48: callq 0x0000000105c165de ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@133 (line 643) | |
; {runtime_call} | |
0x00000001063bbf4d: movsbl %bpl,%ebp ;*i2b ; - sun.nio.cs.UTF_8$Encoder::encode@132 (line 643) | |
0x00000001063bbf51: mov $0xffffffe4,%esi | |
0x00000001063bbf56: mov %r10,(%rsp) | |
0x00000001063bbf5a: mov %r9,0x10(%rsp) | |
0x00000001063bbf5f: mov %r11d,0x18(%rsp) | |
0x00000001063bbf64: mov %ecx,0x1c(%rsp) | |
0x00000001063bbf68: mov %rax,-0x8(%rsp) | |
0x00000001063bbf6d: mov 0x24(%rsp),%eax | |
0x00000001063bbf71: mov %eax,0x20(%rsp) | |
0x00000001063bbf75: mov -0x8(%rsp),%rax | |
0x00000001063bbf7a: mov %eax,0x24(%rsp) | |
0x00000001063bbf7e: nop | |
0x00000001063bbf7f: callq 0x000000010638ef20 ; OopMap{[0]=Oop [16]=Oop [40]=Oop off=1508} | |
;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@133 (line 643) | |
; {runtime_call} | |
0x00000001063bbf84: callq 0x0000000105c165de ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@133 (line 643) | |
; {runtime_call} | |
0x00000001063bbf89: mov $0x15,%esi | |
0x00000001063bbf8e: mov (%rsp),%rbp | |
0x00000001063bbf92: mov 0x8(%rsp),%r11 | |
0x00000001063bbf97: mov %r11,(%rsp) | |
0x00000001063bbf9b: callq 0x000000010638ef20 ; OopMap{rbp=Oop [0]=Oop [40]=Oop off=1536} | |
;*new ; - sun.nio.cs.UTF_8$Encoder::encode@153 (line 646) | |
; {runtime_call} | |
0x00000001063bbfa0: callq 0x0000000105c165de ;*new | |
; - sun.nio.cs.UTF_8$Encoder::encode@153 (line 646) | |
; {runtime_call} | |
0x00000001063bbfa5: movsbl %r10b,%ebp ;*i2b ; - sun.nio.cs.UTF_8$Encoder::encode@230 (line 653) | |
0x00000001063bbfa9: mov $0xffffffe4,%esi | |
0x00000001063bbfae: mov 0x18(%rsp),%r11d | |
0x00000001063bbfb3: mov %r11d,0x10(%rsp) | |
0x00000001063bbfb8: mov %eax,0x14(%rsp) | |
0x00000001063bbfbc: data32 xchg %ax,%ax | |
0x00000001063bbfbf: callq 0x000000010638ef20 ; OopMap{[0]=Oop [8]=Oop [40]=Oop off=1572} | |
;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@231 (line 653) | |
; {runtime_call} | |
0x00000001063bbfc4: callq 0x0000000105c165de ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@252 (line 654) | |
; {runtime_call} | |
0x00000001063bbfc9: movsbl %r11b,%ebp ;*i2b ; - sun.nio.cs.UTF_8$Encoder::encode@251 (line 654) | |
0x00000001063bbfcd: mov $0xffffffe4,%esi | |
0x00000001063bbfd2: mov %eax,0x1c(%rsp) | |
0x00000001063bbfd6: nop | |
0x00000001063bbfd7: callq 0x000000010638ef20 ; OopMap{[0]=Oop [8]=Oop [40]=Oop off=1596} | |
;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@252 (line 654) | |
; {runtime_call} | |
0x00000001063bbfdc: callq 0x0000000105c165de ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@252 (line 654) | |
; {runtime_call} | |
0x00000001063bbfe1: movsbl %r8b,%ebp ;*i2b ; - sun.nio.cs.UTF_8$Encoder::encode@314 (line 661) | |
0x00000001063bbfe5: mov $0xffffffe4,%esi | |
0x00000001063bbfea: mov 0x18(%rsp),%r10d | |
0x00000001063bbfef: mov %r10d,0x10(%rsp) | |
0x00000001063bbff4: data32 xchg %ax,%ax | |
0x00000001063bbff7: callq 0x000000010638ef20 ; OopMap{[0]=Oop [8]=Oop [40]=Oop off=1628} | |
;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@315 (line 661) | |
; {runtime_call} | |
0x00000001063bbffc: callq 0x0000000105c165de ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@336 (line 662) | |
; {runtime_call} | |
0x00000001063bc001: movsbl %r8b,%ebp ;*i2b ; - sun.nio.cs.UTF_8$Encoder::encode@335 (line 662) | |
0x00000001063bc005: mov $0xffffffe4,%esi | |
0x00000001063bc00a: nop | |
0x00000001063bc00b: callq 0x000000010638ef20 ; OopMap{[0]=Oop [8]=Oop [40]=Oop off=1648} | |
;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@336 (line 662) | |
; {runtime_call} | |
0x00000001063bc010: callq 0x0000000105c165de ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@336 (line 662) | |
; {runtime_call} | |
0x00000001063bc015: mov $0xffffffe4,%esi | |
0x00000001063bc01a: mov 0x18(%rsp),%r9d | |
0x00000001063bc01f: mov %r9d,0x10(%rsp) | |
0x00000001063bc024: data32 xchg %ax,%ax | |
0x00000001063bc027: callq 0x000000010638ef20 ; OopMap{[0]=Oop [8]=Oop [40]=Oop off=1676} | |
;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@210 (line 651) | |
; {runtime_call} | |
0x00000001063bc02c: callq 0x0000000105c165de ;*bastore | |
; - sun.nio.cs.UTF_8$Encoder::encode@210 (line 651) | |
; {runtime_call} | |
0x00000001063bc031: mov $0xffffffe4,%esi | |
0x00000001063bc036: mov 0x18(%rsp),%r10d | |
0x00000001063bc03b: mov %r10d,0x10(%rsp) | |
0x00000001063bc040: data32 xchg %ax,%ax | |
0x00000001063bc043: callq 0x000000010638ef20 ; OopMap{rbp=NarrowOop [0]=Oop [8]=Oop [40]=Oop off=1704} | |
;*baload | |
; - sun.nio.cs.UTF_8$Encoder::encode@209 (line 651) | |
; {runtime_call} | |
0x00000001063bc048: callq 0x0000000105c165de ;*baload | |
; - sun.nio.cs.UTF_8$Encoder::encode@209 (line 651) | |
; {runtime_call} | |
0x00000001063bc04d: mov $0xfffffff6,%esi | |
0x00000001063bc052: nop | |
0x00000001063bc053: callq 0x000000010638ef20 ; OopMap{off=1720} | |
;*arraylength | |
; - sun.nio.cs.UTF_8$Encoder::encode@13 (line 629) | |
; {runtime_call} | |
0x00000001063bc058: callq 0x0000000105c165de ;*invokestatic isSurrogate | |
; - sun.nio.cs.UTF_8$Encoder::encode@139 (line 644) | |
; {runtime_call} | |
0x00000001063bc05d: mov %rax,%rsi | |
0x00000001063bc060: jmp 0x00000001063bc065 | |
0x00000001063bc062: mov %rax,%rsi ;*invokevirtual parse | |
; - sun.nio.cs.UTF_8$Encoder::encode@175 (line 647) | |
0x00000001063bc065: add $0x70,%rsp | |
0x00000001063bc069: pop %rbp | |
0x00000001063bc06a: jmpq 0x00000001063b7e20 ; {runtime_call} | |
0x00000001063bc06f: mov $0xffffff86,%esi | |
0x00000001063bc074: mov %r10,%rbp | |
0x00000001063bc077: mov %r8d,(%rsp) | |
0x00000001063bc07b: mov %r9,0x8(%rsp) | |
0x00000001063bc080: mov %r11d,0x4(%rsp) | |
0x00000001063bc085: xchg %ax,%ax | |
0x00000001063bc087: callq 0x000000010638ef20 ; OopMap{rbp=Oop [8]=Oop [40]=Oop off=1772} | |
;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@60 (line 636) | |
; {runtime_call} | |
0x00000001063bc08c: callq 0x0000000105c165de ;*aload_1 | |
; - sun.nio.cs.UTF_8$Encoder::encode@60 (line 636) | |
; {runtime_call} | |
0x00000001063bc091: mov $0xfffffff6,%esi | |
0x00000001063bc096: nop | |
0x00000001063bc097: callq 0x000000010638ef20 ; OopMap{off=1788} | |
;*baload | |
; - sun.nio.cs.UTF_8$Encoder::encode@209 (line 651) | |
; {runtime_call} | |
0x00000001063bc09c: callq 0x0000000105c165de ;*if_icmpge | |
; - sun.nio.cs.UTF_8$Encoder::encode@57 (line 635) | |
; {runtime_call} | |
0x00000001063bc0a1: hlt | |
0x00000001063bc0a2: hlt | |
0x00000001063bc0a3: hlt | |
0x00000001063bc0a4: hlt | |
0x00000001063bc0a5: hlt | |
0x00000001063bc0a6: hlt | |
0x00000001063bc0a7: hlt | |
0x00000001063bc0a8: hlt | |
0x00000001063bc0a9: hlt | |
0x00000001063bc0aa: hlt | |
0x00000001063bc0ab: hlt | |
0x00000001063bc0ac: hlt | |
0x00000001063bc0ad: hlt | |
0x00000001063bc0ae: hlt | |
0x00000001063bc0af: hlt | |
0x00000001063bc0b0: hlt | |
0x00000001063bc0b1: hlt | |
0x00000001063bc0b2: hlt | |
0x00000001063bc0b3: hlt | |
0x00000001063bc0b4: hlt | |
0x00000001063bc0b5: hlt | |
0x00000001063bc0b6: hlt | |
0x00000001063bc0b7: hlt | |
0x00000001063bc0b8: hlt | |
0x00000001063bc0b9: hlt | |
0x00000001063bc0ba: hlt | |
0x00000001063bc0bb: hlt | |
0x00000001063bc0bc: hlt | |
0x00000001063bc0bd: hlt | |
0x00000001063bc0be: hlt | |
0x00000001063bc0bf: hlt | |
[Stub Code] | |
0x00000001063bc0c0: movabs $0x0,%rbx ; {no_reloc} | |
0x00000001063bc0ca: jmpq 0x00000001063bc0ca ; {runtime_call} | |
0x00000001063bc0cf: movabs $0x0,%rbx ; {static_stub} | |
0x00000001063bc0d9: jmpq 0x00000001063bc0d9 ; {runtime_call} | |
[Exception Handler] | |
0x00000001063bc0de: jmpq 0x00000001063b50a0 ; {runtime_call} | |
[Deopt Handler Code] | |
0x00000001063bc0e3: callq 0x00000001063bc0e8 | |
0x00000001063bc0e8: subq $0x5,(%rsp) | |
0x00000001063bc0ed: jmpq 0x000000010638eb00 ; {runtime_call} | |
0x00000001063bc0f2: hlt | |
0x00000001063bc0f3: hlt | |
0x00000001063bc0f4: hlt | |
0x00000001063bc0f5: hlt | |
0x00000001063bc0f6: hlt | |
0x00000001063bc0f7: hlt | |
Decoding compiled method 0x00000001063b72d0: | |
Code: | |
[Entry Point] | |
# {method} 'clone' '()Ljava/lang/Object;' in 'java/lang/Object' | |
# [sp+0x50] (sp of caller) | |
0x00000001063b7440: mov 0x8(%rsi),%r10d | |
0x00000001063b7444: shl $0x3,%r10 | |
0x00000001063b7448: cmp %r10,%rax | |
0x00000001063b744b: je 0x00000001063b7458 | |
0x00000001063b7451: jmpq 0x000000010638d960 ; {runtime_call} | |
0x00000001063b7456: xchg %ax,%ax | |
[Verified Entry Point] | |
0x00000001063b7458: mov %eax,-0x14000(%rsp) | |
0x00000001063b745f: push %rbp | |
0x00000001063b7460: mov %rsp,%rbp | |
0x00000001063b7463: sub $0x40,%rsp | |
0x00000001063b7467: mov %rsi,(%rsp) | |
0x00000001063b746b: cmp $0x0,%rsi | |
0x00000001063b746f: lea (%rsp),%rsi | |
0x00000001063b7473: cmove (%rsp),%rsi ; OopMap{[0]=Oop off=56} | |
0x00000001063b7478: movabs $0x1063b7478,%r10 ; {section_word} | |
0x00000001063b7482: mov %r10,0x1d0(%r15) | |
0x00000001063b7489: mov %rsp,0x1c8(%r15) | |
0x00000001063b7490: cmpb $0x0,-0x3b44d5(%rip) # 0x0000000106002fc2 | |
; {external_word} | |
0x00000001063b7497: je 0x00000001063b74cf | |
0x00000001063b749d: push %rsi | |
0x00000001063b749e: movabs $0x6bae023f0,%rsi ; {oop({method} 'clone' '()Ljava/lang/Object;' in 'java/lang/Object')} | |
0x00000001063b74a8: mov %r15,%rdi | |
0x00000001063b74ab: test $0xf,%esp | |
0x00000001063b74b1: je 0x00000001063b74c9 | |
0x00000001063b74b7: sub $0x8,%rsp | |
0x00000001063b74bb: callq 0x0000000105c7296c ; {runtime_call} | |
0x00000001063b74c0: add $0x8,%rsp | |
0x00000001063b74c4: jmpq 0x00000001063b74ce | |
0x00000001063b74c9: callq 0x0000000105c7296c ; {runtime_call} | |
0x00000001063b74ce: pop %rsi | |
0x00000001063b74cf: lea 0x1e8(%r15),%rdi | |
0x00000001063b74d6: movl $0x4,0x260(%r15) | |
0x00000001063b74e1: callq 0x0000000105b2ac9a ; {runtime_call} | |
0x00000001063b74e6: vzeroupper | |
0x00000001063b74e9: movl $0x5,0x260(%r15) | |
0x00000001063b74f4: lock addl $0x0,(%rsp) | |
0x00000001063b74f9: cmpl $0x0,-0x3ab5a3(%rip) # 0x000000010600bf60 | |
; {external_word} | |
0x00000001063b7503: jne 0x00000001063b7517 | |
0x00000001063b7509: cmpl $0x0,0x30(%r15) | |
0x00000001063b7511: je 0x00000001063b753c | |
0x00000001063b7517: mov %rax,-0x8(%rbp) | |
0x00000001063b751b: mov %r15,%rdi | |
0x00000001063b751e: mov %rsp,%r12 | |
0x00000001063b7521: sub $0x0,%rsp | |
0x00000001063b7525: and $0xfffffffffffffff0,%rsp | |
0x00000001063b7529: callq 0x0000000105ceedb2 ; {runtime_call} | |
0x00000001063b752e: mov %r12,%rsp | |
0x00000001063b7531: mov -0x446f78(%rip),%r12 # 0x0000000105f705c0 | |
; {external_word} | |
0x00000001063b7538: mov -0x8(%rbp),%rax | |
0x00000001063b753c: movl $0x8,0x260(%r15) | |
0x00000001063b7547: cmpl $0x1,0x28c(%r15) | |
0x00000001063b7552: je 0x00000001063b75ef | |
0x00000001063b7558: cmpb $0x0,-0x3b459d(%rip) # 0x0000000106002fc2 | |
; {external_word} | |
0x00000001063b755f: je 0x00000001063b759d | |
0x00000001063b7565: mov %rax,-0x8(%rbp) | |
0x00000001063b7569: movabs $0x6bae023f0,%rsi ; {oop({method} 'clone' '()Ljava/lang/Object;' in 'java/lang/Object')} | |
0x00000001063b7573: mov %r15,%rdi | |
0x00000001063b7576: test $0xf,%esp | |
0x00000001063b757c: je 0x00000001063b7594 | |
0x00000001063b7582: sub $0x8,%rsp | |
0x00000001063b7586: callq 0x0000000105c728c6 ; {runtime_call} | |
0x00000001063b758b: add $0x8,%rsp | |
0x00000001063b758f: jmpq 0x00000001063b7599 | |
0x00000001063b7594: callq 0x0000000105c728c6 ; {runtime_call} | |
0x00000001063b7599: mov -0x8(%rbp),%rax | |
0x00000001063b759d: movabs $0x0,%r10 | |
0x00000001063b75a7: mov %r10,0x1c8(%r15) | |
0x00000001063b75ae: movabs $0x0,%r10 | |
0x00000001063b75b8: mov %r10,0x1d0(%r15) | |
0x00000001063b75bf: test %rax,%rax | |
0x00000001063b75c2: je 0x00000001063b75cb | |
0x00000001063b75c8: mov (%rax),%rax | |
0x00000001063b75cb: mov 0x38(%r15),%rcx | |
0x00000001063b75cf: movq $0x0,0x100(%rcx) | |
0x00000001063b75da: leaveq | |
0x00000001063b75db: cmpq $0x0,0x8(%r15) | |
0x00000001063b75e3: jne 0x00000001063b75ea | |
0x00000001063b75e9: retq | |
0x00000001063b75ea: jmpq Stub::forward exception ; {runtime_call} | |
0x00000001063b75ef: mov %rax,-0x8(%rbp) | |
0x00000001063b75f3: mov %rsp,%r12 | |
0x00000001063b75f6: sub $0x0,%rsp | |
0x00000001063b75fa: and $0xfffffffffffffff0,%rsp | |
0x00000001063b75fe: callq 0x0000000105c714ae ; {runtime_call} | |
0x00000001063b7603: mov %r12,%rsp | |
0x00000001063b7606: mov -0x44704d(%rip),%r12 # 0x0000000105f705c0 | |
; {external_word} | |
0x00000001063b760d: mov -0x8(%rbp),%rax | |
0x00000001063b7611: jmpq 0x00000001063b7558 | |
0x00000001063b7616: hlt | |
0x00000001063b7617: hlt | |
Decoding compiled method 0x00000001063b5a10: | |
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) | |
0x00000001063b5b60: mov 0x8(%rsi),%r10d | |
0x00000001063b5b64: shl $0x3,%r10 | |
0x00000001063b5b68: cmp %r10,%rax | |
0x00000001063b5b6b: jne 0x000000010638d960 ; {runtime_call} | |
0x00000001063b5b71: data32 xchg %ax,%ax | |
0x00000001063b5b74: nopl 0x0(%rax,%rax,1) | |
0x00000001063b5b7c: data32 data32 xchg %ax,%ax | |
[Verified Entry Point] | |
0x00000001063b5b80: mov %eax,-0x14000(%rsp) | |
0x00000001063b5b87: push %rbp | |
0x00000001063b5b88: sub $0x20,%rsp ;*synchronization entry | |
; - java.util.ArrayList::ensureCapacityInternal@-1 (line 204) | |
0x00000001063b5b8c: mov 0x14(%rsi),%r10d ;*getfield elementData | |
; - java.util.ArrayList::ensureCapacityInternal@1 (line 204) | |
0x00000001063b5b90: cmp $0xf2aa202d,%r10d ; {oop(a 'java/lang/Object'[0] )} | |
0x00000001063b5b97: je 0x00000001063b5bb8 ;*if_acmpne | |
; - java.util.ArrayList::ensureCapacityInternal@7 (line 204) | |
0x00000001063b5b99: incl 0xc(%rsi) ;*putfield modCount | |
; - java.util.ArrayList::ensureExplicitCapacity@7 (line 212) | |
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208) | |
0x00000001063b5b9c: mov 0xc(%r12,%r10,8),%r11d ; implicit exception: dispatches to 0x00000001063b5bde | |
0x00000001063b5ba1: mov %edx,%r10d | |
0x00000001063b5ba4: sub %r11d,%r10d | |
0x00000001063b5ba7: test %r10d,%r10d | |
0x00000001063b5baa: jg 0x00000001063b5bd5 ;*synchronization entry | |
; - java.util.ArrayList::ensureCapacityInternal@-1 (line 204) | |
0x00000001063b5bac: add $0x20,%rsp | |
0x00000001063b5bb0: pop %rbp | |
0x00000001063b5bb1: test %eax,-0x1bc8bb7(%rip) # 0x00000001047ed000 | |
; {poll_return} | |
0x00000001063b5bb7: retq | |
0x00000001063b5bb8: mov %rsi,%rbp | |
0x00000001063b5bbb: mov %edx,(%rsp) | |
0x00000001063b5bbe: mov %r10d,0x4(%rsp) | |
0x00000001063b5bc3: mov $0xffffffad,%esi | |
0x00000001063b5bc8: data32 xchg %ax,%ax | |
0x00000001063b5bcb: callq 0x000000010638ef20 ; OopMap{rbp=Oop [4]=NarrowOop off=112} | |
;*if_acmpne | |
; - java.util.ArrayList::ensureCapacityInternal@7 (line 204) | |
; {runtime_call} | |
0x00000001063b5bd0: callq 0x0000000105c165de ;*synchronization entry | |
; - java.util.ArrayList::ensureExplicitCapacity@-1 (line 212) | |
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208) | |
; {runtime_call} | |
0x00000001063b5bd5: xchg %ax,%ax | |
0x00000001063b5bd7: callq 0x000000010638db60 ; OopMap{off=124} | |
;*invokespecial grow | |
; - java.util.ArrayList::ensureExplicitCapacity@22 (line 216) | |
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208) | |
; {optimized virtual_call} | |
0x00000001063b5bdc: jmp 0x00000001063b5bac | |
0x00000001063b5bde: mov $0xfffffff6,%esi | |
0x00000001063b5be3: callq 0x000000010638ef20 ; OopMap{off=136} | |
;*arraylength | |
; - java.util.ArrayList::ensureExplicitCapacity@15 (line 215) | |
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208) | |
; {runtime_call} | |
0x00000001063b5be8: callq 0x0000000105c165de ;*invokespecial grow | |
; - java.util.ArrayList::ensureExplicitCapacity@22 (line 216) | |
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208) | |
; {runtime_call} | |
0x00000001063b5bed: mov %rax,%rsi | |
0x00000001063b5bf0: add $0x20,%rsp | |
0x00000001063b5bf4: pop %rbp | |
0x00000001063b5bf5: jmpq 0x00000001063b7e20 ; {runtime_call} | |
0x00000001063b5bfa: hlt | |
0x00000001063b5bfb: hlt | |
0x00000001063b5bfc: hlt | |
0x00000001063b5bfd: hlt | |
0x00000001063b5bfe: hlt | |
0x00000001063b5bff: hlt | |
[Stub Code] | |
0x00000001063b5c00: movabs $0x0,%rbx ; {no_reloc} | |
0x00000001063b5c0a: jmpq 0x00000001063b5c0a ; {runtime_call} | |
[Exception Handler] | |
0x00000001063b5c0f: jmpq 0x00000001063b50a0 ; {runtime_call} | |
[Deopt Handler Code] | |
0x00000001063b5c14: callq 0x00000001063b5c19 | |
0x00000001063b5c19: subq $0x5,(%rsp) | |
0x00000001063b5c1e: jmpq 0x000000010638eb00 ; {runtime_call} | |
0x00000001063b5c23: hlt | |
0x00000001063b5c24: hlt | |
0x00000001063b5c25: hlt | |
0x00000001063b5c26: hlt | |
0x00000001063b5c27: hlt | |
Decoding compiled method 0x00000001063b53d0: | |
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) | |
0x00000001063b5540: mov 0x8(%rsi),%r10d | |
0x00000001063b5544: shl $0x3,%r10 | |
0x00000001063b5548: cmp %r10,%rax | |
0x00000001063b554b: jne 0x000000010638d960 ; {runtime_call} | |
0x00000001063b5551: data32 xchg %ax,%ax | |
0x00000001063b5554: nopl 0x0(%rax,%rax,1) | |
0x00000001063b555c: data32 data32 xchg %ax,%ax | |
[Verified Entry Point] | |
0x00000001063b5560: mov %eax,-0x14000(%rsp) | |
0x00000001063b5567: push %rbp | |
0x00000001063b5568: sub $0x30,%rsp ;*synchronization entry | |
; - java.util.ArrayList::add@-1 (line 440) | |
0x00000001063b556c: mov %rdx,0x8(%rsp) | |
0x00000001063b5571: mov %rsi,%rbp | |
0x00000001063b5574: mov 0x10(%rsi),%r8d ;*getfield size | |
; - java.util.ArrayList::add@2 (line 440) | |
0x00000001063b5578: mov 0x14(%rsi),%r11d ;*getfield elementData | |
; - java.util.ArrayList::ensureCapacityInternal@1 (line 204) | |
; - java.util.ArrayList::add@7 (line 440) | |
0x00000001063b557c: mov %r8d,%edx | |
0x00000001063b557f: inc %edx ;*iadd | |
; - java.util.ArrayList::add@6 (line 440) | |
0x00000001063b5581: cmp $0xf2aa202d,%r11d ; {oop(a 'java/lang/Object'[0] )} | |
0x00000001063b5588: je 0x00000001063b562d ;*if_acmpne | |
; - java.util.ArrayList::ensureCapacityInternal@7 (line 204) | |
; - java.util.ArrayList::add@7 (line 440) | |
0x00000001063b558e: 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) | |
0x00000001063b5591: mov 0xc(%r12,%r11,8),%r10d ; implicit exception: dispatches to 0x00000001063b5685 | |
0x00000001063b5596: mov %r8d,%ecx | |
0x00000001063b5599: sub %r10d,%ecx | |
0x00000001063b559c: inc %ecx | |
0x00000001063b559e: test %ecx,%ecx | |
0x00000001063b55a0: jg 0x00000001063b5651 ;*ifle | |
; - java.util.ArrayList::ensureExplicitCapacity@17 (line 215) | |
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208) | |
; - java.util.ArrayList::add@7 (line 440) | |
0x00000001063b55a6: 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) | |
0x00000001063b55a9: mov 0xc(%r12,%r11,8),%r10d | |
0x00000001063b55ae: cmp %r10d,%r8d | |
0x00000001063b55b1: jae 0x00000001063b55fc | |
0x00000001063b55b3: mov 0x8(%r12,%r11,8),%r10d | |
0x00000001063b55b8: cmp $0xd75d45e9,%r10d ; {oop('java/lang/Object'[])} | |
0x00000001063b55bf: jne 0x00000001063b5615 ;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
0x00000001063b55c1: lea (%r12,%r11,8),%r10 ;*getfield elementData | |
; - java.util.ArrayList::add@11 (line 441) | |
0x00000001063b55c5: lea 0x10(%r10,%r8,4),%r10 | |
0x00000001063b55ca: mov 0x8(%rsp),%r11 | |
0x00000001063b55cf: mov %r11,%r8 | |
0x00000001063b55d2: shr $0x3,%r8 | |
0x00000001063b55d6: mov %r8d,(%r10) | |
0x00000001063b55d9: shr $0x9,%r10 | |
0x00000001063b55dd: mov $0x1,%eax | |
0x00000001063b55e2: movabs $0x105e3f000,%r11 | |
0x00000001063b55ec: mov %r12b,(%r11,%r10,1) ;*synchronization entry | |
; - java.util.ArrayList::add@-1 (line 440) | |
0x00000001063b55f0: add $0x30,%rsp | |
0x00000001063b55f4: pop %rbp | |
0x00000001063b55f5: test %eax,-0x1bc85fb(%rip) # 0x00000001047ed000 | |
; {poll_return} | |
0x00000001063b55fb: retq ;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
0x00000001063b55fc: mov $0xffffffe4,%esi | |
0x00000001063b5601: mov %r11d,%ebp | |
0x00000001063b5604: mov %r8d,(%rsp) | |
0x00000001063b5608: data32 xchg %ax,%ax | |
0x00000001063b560b: callq 0x000000010638ef20 ; OopMap{rbp=NarrowOop [8]=Oop off=208} | |
;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; {runtime_call} | |
0x00000001063b5610: callq 0x0000000105c165de ;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; {runtime_call} | |
0x00000001063b5615: mov $0xffffffd6,%esi | |
0x00000001063b561a: mov %r11d,%ebp | |
0x00000001063b561d: mov %r8d,(%rsp) | |
0x00000001063b5621: xchg %ax,%ax | |
0x00000001063b5623: callq 0x000000010638ef20 ; OopMap{rbp=NarrowOop [8]=Oop off=232} | |
;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; {runtime_call} | |
0x00000001063b5628: callq 0x0000000105c165de ;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; {runtime_call} | |
0x00000001063b562d: mov $0xffffffad,%esi | |
0x00000001063b5632: rex.W pushq 0x8(%rsp) | |
0x00000001063b5637: rex.W popq (%rsp) | |
0x00000001063b563b: mov %edx,0x10(%rsp) | |
0x00000001063b563f: mov %r11d,0x14(%rsp) | |
0x00000001063b5644: data32 xchg %ax,%ax | |
0x00000001063b5647: callq 0x000000010638ef20 ; 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} | |
0x00000001063b564c: callq 0x0000000105c165de ;*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} | |
0x00000001063b5651: xchg %ax,%ax | |
0x00000001063b5653: callq 0x000000010638db60 ; 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} | |
0x00000001063b5658: mov 0x10(%rbp),%r8d ;*getfield size | |
; - java.util.ArrayList::add@16 (line 441) | |
0x00000001063b565c: mov 0x14(%rbp),%r11d ;*getfield elementData | |
; - java.util.ArrayList::add@11 (line 441) | |
0x00000001063b5660: mov %r8d,%r9d | |
0x00000001063b5663: inc %r9d | |
0x00000001063b5666: mov %r9d,0x10(%rbp) ;*putfield size | |
; - java.util.ArrayList::add@22 (line 441) | |
0x00000001063b566a: test %r11d,%r11d | |
0x00000001063b566d: jne 0x00000001063b55a9 ;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
0x00000001063b5673: mov $0xfffffff6,%esi | |
0x00000001063b5678: mov %r8d,%ebp | |
0x00000001063b567b: callq 0x000000010638ef20 ; OopMap{[8]=Oop off=320} | |
;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; {runtime_call} | |
0x00000001063b5680: callq 0x0000000105c165de ; {runtime_call} | |
0x00000001063b5685: mov $0xfffffff6,%esi | |
0x00000001063b568a: nop | |
0x00000001063b568b: callq 0x000000010638ef20 ; 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} | |
0x00000001063b5690: callq 0x0000000105c165de ;*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} | |
0x00000001063b5695: mov %rax,%rsi | |
0x00000001063b5698: add $0x30,%rsp | |
0x00000001063b569c: pop %rbp | |
0x00000001063b569d: jmpq 0x00000001063b7e20 ; {runtime_call} | |
0x00000001063b56a2: hlt | |
0x00000001063b56a3: hlt | |
0x00000001063b56a4: hlt | |
0x00000001063b56a5: hlt | |
0x00000001063b56a6: hlt | |
0x00000001063b56a7: hlt | |
0x00000001063b56a8: hlt | |
0x00000001063b56a9: hlt | |
0x00000001063b56aa: hlt | |
0x00000001063b56ab: hlt | |
0x00000001063b56ac: hlt | |
0x00000001063b56ad: hlt | |
0x00000001063b56ae: hlt | |
0x00000001063b56af: hlt | |
0x00000001063b56b0: hlt | |
0x00000001063b56b1: hlt | |
0x00000001063b56b2: hlt | |
0x00000001063b56b3: hlt | |
0x00000001063b56b4: hlt | |
0x00000001063b56b5: hlt | |
0x00000001063b56b6: hlt | |
0x00000001063b56b7: hlt | |
0x00000001063b56b8: hlt | |
0x00000001063b56b9: hlt | |
0x00000001063b56ba: hlt | |
0x00000001063b56bb: hlt | |
0x00000001063b56bc: hlt | |
0x00000001063b56bd: hlt | |
0x00000001063b56be: hlt | |
0x00000001063b56bf: hlt | |
[Stub Code] | |
0x00000001063b56c0: movabs $0x0,%rbx ; {no_reloc} | |
0x00000001063b56ca: jmpq 0x00000001063b56ca ; {runtime_call} | |
[Exception Handler] | |
0x00000001063b56cf: jmpq 0x00000001063b50a0 ; {runtime_call} | |
[Deopt Handler Code] | |
0x00000001063b56d4: callq 0x00000001063b56d9 | |
0x00000001063b56d9: subq $0x5,(%rsp) | |
0x00000001063b56de: jmpq 0x000000010638eb00 ; {runtime_call} | |
0x00000001063b56e3: hlt | |
0x00000001063b56e4: hlt | |
0x00000001063b56e5: hlt | |
0x00000001063b56e6: hlt | |
0x00000001063b56e7: hlt | |
Decoding compiled method 0x00000001063baed0: | |
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) | |
0x00000001063bb020: mov 0x8(%rsi),%r10d | |
0x00000001063bb024: shl $0x3,%r10 | |
0x00000001063bb028: cmp %r10,%rax | |
0x00000001063bb02b: jne 0x000000010638d960 ; {runtime_call} | |
0x00000001063bb031: data32 xchg %ax,%ax | |
0x00000001063bb034: nopl 0x0(%rax,%rax,1) | |
0x00000001063bb03c: data32 data32 xchg %ax,%ax | |
[Verified Entry Point] | |
0x00000001063bb040: mov %eax,-0x14000(%rsp) | |
0x00000001063bb047: push %rbp | |
0x00000001063bb048: sub $0x10,%rsp ;*synchronization entry | |
; - java.util.ArrayList::ensureExplicitCapacity@-1 (line 212) | |
0x00000001063bb04c: incl 0xc(%rsi) ;*putfield modCount | |
; - java.util.ArrayList::ensureExplicitCapacity@7 (line 212) | |
0x00000001063bb04f: mov 0x14(%rsi),%r11d ;*getfield elementData | |
; - java.util.ArrayList::ensureExplicitCapacity@12 (line 215) | |
0x00000001063bb053: mov 0xc(%r12,%r11,8),%r10d ; implicit exception: dispatches to 0x00000001063bb076 | |
0x00000001063bb058: mov %edx,%r8d | |
0x00000001063bb05b: sub %r10d,%r8d | |
0x00000001063bb05e: test %r8d,%r8d | |
0x00000001063bb061: jg 0x00000001063bb06f ;*putfield modCount | |
; - java.util.ArrayList::ensureExplicitCapacity@7 (line 212) | |
0x00000001063bb063: add $0x10,%rsp | |
0x00000001063bb067: pop %rbp | |
0x00000001063bb068: test %eax,-0x1bce06e(%rip) # 0x00000001047ed000 | |
; {poll_return} | |
0x00000001063bb06e: retq | |
0x00000001063bb06f: callq 0x000000010638db60 ; OopMap{off=84} | |
;*invokespecial grow | |
; - java.util.ArrayList::ensureExplicitCapacity@22 (line 216) | |
; {optimized virtual_call} | |
0x00000001063bb074: jmp 0x00000001063bb063 | |
0x00000001063bb076: mov $0xfffffff6,%esi | |
0x00000001063bb07b: callq 0x000000010638ef20 ; OopMap{off=96} | |
;*arraylength | |
; - java.util.ArrayList::ensureExplicitCapacity@15 (line 215) | |
; {runtime_call} | |
0x00000001063bb080: callq 0x0000000105c165de ;*invokespecial grow | |
; - java.util.ArrayList::ensureExplicitCapacity@22 (line 216) | |
; {runtime_call} | |
0x00000001063bb085: mov %rax,%rsi | |
0x00000001063bb088: add $0x10,%rsp | |
0x00000001063bb08c: pop %rbp | |
0x00000001063bb08d: jmpq 0x00000001063b7e20 ; {runtime_call} | |
0x00000001063bb092: hlt | |
0x00000001063bb093: hlt | |
0x00000001063bb094: hlt | |
0x00000001063bb095: hlt | |
0x00000001063bb096: hlt | |
0x00000001063bb097: hlt | |
0x00000001063bb098: hlt | |
0x00000001063bb099: hlt | |
0x00000001063bb09a: hlt | |
0x00000001063bb09b: hlt | |
0x00000001063bb09c: hlt | |
0x00000001063bb09d: hlt | |
0x00000001063bb09e: hlt | |
0x00000001063bb09f: hlt | |
[Stub Code] | |
0x00000001063bb0a0: movabs $0x0,%rbx ; {no_reloc} | |
0x00000001063bb0aa: jmpq 0x00000001063bb0aa ; {runtime_call} | |
[Exception Handler] | |
0x00000001063bb0af: jmpq 0x00000001063b50a0 ; {runtime_call} | |
[Deopt Handler Code] | |
0x00000001063bb0b4: callq 0x00000001063bb0b9 | |
0x00000001063bb0b9: subq $0x5,(%rsp) | |
0x00000001063bb0be: jmpq 0x000000010638eb00 ; {runtime_call} | |
0x00000001063bb0c3: hlt | |
0x00000001063bb0c4: hlt | |
0x00000001063bb0c5: hlt | |
0x00000001063bb0c6: hlt | |
0x00000001063bb0c7: hlt | |
Decoding compiled method 0x00000001063b9390: | |
Code: | |
[Entry Point] | |
[Verified Entry Point] | |
[Constants] | |
# {method} 'callCopy' '()Lcom/vyazelenko/blog/copyobject/Copyable;' in 'com/vyazelenko/blog/copyobject/TestClone' | |
# [sp+0x20] (sp of caller) | |
0x00000001063b94e0: mov %eax,-0x14000(%rsp) | |
0x00000001063b94e7: push %rbp | |
0x00000001063b94e8: sub $0x10,%rsp | |
0x00000001063b94ec: mov 0x60(%r15),%rsi | |
0x00000001063b94f0: mov %rsi,%r10 | |
0x00000001063b94f3: add $0x58,%r10 | |
0x00000001063b94f7: cmp 0x70(%r15),%r10 | |
0x00000001063b94fb: jae 0x00000001063b9557 | |
0x00000001063b94fd: mov %r10,0x60(%r15) | |
0x00000001063b9501: prefetchnta 0xc0(%r10) | |
0x00000001063b9509: mov $0xd7610ea1,%r11d ; {oop('com/vyazelenko/blog/copyobject/primitives/clone/CloneCopy')} | |
0x00000001063b950f: mov 0xb0(%r12,%r11,8),%r10 | |
0x00000001063b9517: mov %r10,(%rsi) | |
0x00000001063b951a: movl $0xd7610ea1,0x8(%rsi) ; {oop('com/vyazelenko/blog/copyobject/primitives/clone/CloneCopy')} | |
0x00000001063b9521: mov %rsi,%rbx | |
0x00000001063b9524: add $0x8,%rsi | |
0x00000001063b9528: mov $0xa,%edx | |
0x00000001063b952d: movabs $0x7957a9d90,%rdi ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/clone/CloneCopy')} | |
0x00000001063b9537: add $0x8,%rdi | |
0x00000001063b953b: movabs $0x106398120,%r10 | |
0x00000001063b9545: callq *%r10 ;*invokespecial clone | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::clone@1 (line 16) | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::copy@1 (line 24) | |
; - com.vyazelenko.blog.copyobject.TestClone::callCopy@3 (line 38) | |
0x00000001063b9548: mov %rbx,%rax | |
0x00000001063b954b: add $0x10,%rsp | |
0x00000001063b954f: pop %rbp | |
0x00000001063b9550: test %eax,-0x1bcc556(%rip) # 0x00000001047ed000 | |
; {poll_return} | |
0x00000001063b9556: retq | |
0x00000001063b9557: movabs $0x6bb087508,%rsi ; {oop('com/vyazelenko/blog/copyobject/primitives/clone/CloneCopy')} | |
0x00000001063b9561: xchg %ax,%ax | |
0x00000001063b9563: callq 0x00000001063b4fe0 ; OopMap{off=136} | |
;*invokespecial clone | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::clone@1 (line 16) | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::copy@1 (line 24) | |
; - com.vyazelenko.blog.copyobject.TestClone::callCopy@3 (line 38) | |
; {runtime_call} | |
0x00000001063b9568: mov %rax,%rsi | |
0x00000001063b956b: jmp 0x00000001063b9521 | |
0x00000001063b956d: mov 0x8(%rax),%r10d | |
0x00000001063b9571: cmp $0xd7610fdb,%r10d ; {oop('java/lang/CloneNotSupportedException')} | |
0x00000001063b9578: je 0x00000001063b9587 | |
0x00000001063b957a: mov %rax,%rsi | |
0x00000001063b957d: add $0x10,%rsp | |
0x00000001063b9581: pop %rbp | |
0x00000001063b9582: jmpq 0x00000001063b7e20 ; {runtime_call} | |
0x00000001063b9587: mov %rax,%rbp ;*areturn | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::clone@7 (line 16) | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::copy@1 (line 24) | |
; - com.vyazelenko.blog.copyobject.TestClone::callCopy@3 (line 38) | |
0x00000001063b958a: mov $0x5,%esi | |
0x00000001063b958f: callq 0x000000010638ef20 ; OopMap{rbp=Oop off=180} | |
;*new ; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::clone@9 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::copy@1 (line 24) | |
; - com.vyazelenko.blog.copyobject.TestClone::callCopy@3 (line 38) | |
; {runtime_call} | |
0x00000001063b9594: callq 0x0000000105c165de ;*new | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::clone@9 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::copy@1 (line 24) | |
; - com.vyazelenko.blog.copyobject.TestClone::callCopy@3 (line 38) | |
; {runtime_call} | |
0x00000001063b9599: hlt | |
0x00000001063b959a: hlt | |
0x00000001063b959b: hlt | |
0x00000001063b959c: hlt | |
0x00000001063b959d: hlt | |
0x00000001063b959e: hlt | |
0x00000001063b959f: hlt | |
[Exception Handler] | |
[Stub Code] | |
0x00000001063b95a0: jmpq 0x00000001063b50a0 ; {no_reloc} | |
[Deopt Handler Code] | |
0x00000001063b95a5: callq 0x00000001063b95aa | |
0x00000001063b95aa: subq $0x5,(%rsp) | |
0x00000001063b95af: jmpq 0x000000010638eb00 ; {runtime_call} | |
0x00000001063b95b4: hlt | |
0x00000001063b95b5: hlt | |
0x00000001063b95b6: hlt | |
0x00000001063b95b7: hlt | |
Decoding compiled method 0x00000001063b9010: | |
Code: | |
[Entry Point] | |
[Constants] | |
# {method} 'copy' '()Lcom/vyazelenko/blog/copyobject/primitives/clone/CloneCopy;' in 'com/vyazelenko/blog/copyobject/primitives/clone/CloneCopy' | |
# [sp+0x20] (sp of caller) | |
0x00000001063b9160: mov 0x8(%rsi),%r10d | |
0x00000001063b9164: shl $0x3,%r10 | |
0x00000001063b9168: cmp %r10,%rax | |
0x00000001063b916b: jne 0x000000010638d960 ; {runtime_call} | |
0x00000001063b9171: data32 xchg %ax,%ax | |
0x00000001063b9174: nopl 0x0(%rax,%rax,1) | |
0x00000001063b917c: data32 data32 xchg %ax,%ax | |
[Verified Entry Point] | |
0x00000001063b9180: mov %eax,-0x14000(%rsp) | |
0x00000001063b9187: push %rbp | |
0x00000001063b9188: sub $0x10,%rsp ;*synchronization entry | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::copy@-1 (line 24) | |
0x00000001063b918c: mov %rsi,%rbp | |
0x00000001063b918f: mov 0x60(%r15),%rbx | |
0x00000001063b9193: mov %rbx,%r10 | |
0x00000001063b9196: add $0x58,%r10 | |
0x00000001063b919a: cmp 0x70(%r15),%r10 | |
0x00000001063b919e: jae 0x00000001063b91f3 | |
0x00000001063b91a0: mov %r10,0x60(%r15) | |
0x00000001063b91a4: prefetchnta 0xc0(%r10) | |
0x00000001063b91ac: mov $0xd7610ea1,%r11d ; {oop('com/vyazelenko/blog/copyobject/primitives/clone/CloneCopy')} | |
0x00000001063b91b2: mov 0xb0(%r12,%r11,8),%r10 | |
0x00000001063b91ba: mov %r10,(%rbx) | |
0x00000001063b91bd: movl $0xd7610ea1,0x8(%rbx) ; {oop('com/vyazelenko/blog/copyobject/primitives/clone/CloneCopy')} | |
0x00000001063b91c4: mov %rbp,%rdi | |
0x00000001063b91c7: add $0x8,%rdi | |
0x00000001063b91cb: mov %rbx,%rsi | |
0x00000001063b91ce: add $0x8,%rsi | |
0x00000001063b91d2: mov $0xa,%edx | |
0x00000001063b91d7: movabs $0x106398120,%r10 | |
0x00000001063b91e1: callq *%r10 ;*invokespecial clone | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::clone@1 (line 16) | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::copy@1 (line 24) | |
0x00000001063b91e4: mov %rbx,%rax | |
0x00000001063b91e7: add $0x10,%rsp | |
0x00000001063b91eb: pop %rbp | |
0x00000001063b91ec: test %eax,-0x1bcc1f2(%rip) # 0x00000001047ed000 | |
; {poll_return} | |
0x00000001063b91f2: retq | |
0x00000001063b91f3: movabs $0x6bb087508,%rsi ; {oop('com/vyazelenko/blog/copyobject/primitives/clone/CloneCopy')} | |
0x00000001063b91fd: xchg %ax,%ax | |
0x00000001063b91ff: callq 0x00000001063b4fe0 ; OopMap{rbp=Oop off=164} | |
;*invokespecial clone | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::clone@1 (line 16) | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::copy@1 (line 24) | |
; {runtime_call} | |
0x00000001063b9204: mov %rax,%rbx | |
0x00000001063b9207: jmp 0x00000001063b91c4 | |
0x00000001063b9209: mov 0x8(%rax),%r10d | |
0x00000001063b920d: cmp $0xd7610fdb,%r10d ; {oop('java/lang/CloneNotSupportedException')} | |
0x00000001063b9214: je 0x00000001063b9223 | |
0x00000001063b9216: mov %rax,%rsi | |
0x00000001063b9219: add $0x10,%rsp | |
0x00000001063b921d: pop %rbp | |
0x00000001063b921e: jmpq 0x00000001063b7e20 ; {runtime_call} | |
0x00000001063b9223: mov %rax,%rbp ;*areturn | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::clone@7 (line 16) | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::copy@1 (line 24) | |
0x00000001063b9226: mov $0x5,%esi | |
0x00000001063b922b: callq 0x000000010638ef20 ; OopMap{rbp=Oop off=208} | |
;*new ; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::clone@9 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::copy@1 (line 24) | |
; {runtime_call} | |
0x00000001063b9230: callq 0x0000000105c165de ;*new | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::clone@9 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::copy@1 (line 24) | |
; {runtime_call} | |
0x00000001063b9235: hlt | |
0x00000001063b9236: hlt | |
0x00000001063b9237: hlt | |
0x00000001063b9238: hlt | |
0x00000001063b9239: hlt | |
0x00000001063b923a: hlt | |
0x00000001063b923b: hlt | |
0x00000001063b923c: hlt | |
0x00000001063b923d: hlt | |
0x00000001063b923e: hlt | |
0x00000001063b923f: hlt | |
[Exception Handler] | |
[Stub Code] | |
0x00000001063b9240: jmpq 0x00000001063b50a0 ; {no_reloc} | |
[Deopt Handler Code] | |
0x00000001063b9245: callq 0x00000001063b924a | |
0x00000001063b924a: subq $0x5,(%rsp) | |
0x00000001063b924f: jmpq 0x000000010638eb00 ; {runtime_call} | |
0x00000001063b9254: hlt | |
0x00000001063b9255: hlt | |
0x00000001063b9256: hlt | |
0x00000001063b9257: hlt | |
Decoding compiled method 0x00000001063b8c90: | |
Code: | |
[Entry Point] | |
[Constants] | |
# {method} 'clone' '()Lcom/vyazelenko/blog/copyobject/primitives/clone/CloneCopy;' in 'com/vyazelenko/blog/copyobject/primitives/clone/CloneCopy' | |
# [sp+0x20] (sp of caller) | |
0x00000001063b8de0: mov 0x8(%rsi),%r10d | |
0x00000001063b8de4: shl $0x3,%r10 | |
0x00000001063b8de8: cmp %r10,%rax | |
0x00000001063b8deb: jne 0x000000010638d960 ; {runtime_call} | |
0x00000001063b8df1: data32 xchg %ax,%ax | |
0x00000001063b8df4: nopl 0x0(%rax,%rax,1) | |
0x00000001063b8dfc: data32 data32 xchg %ax,%ax | |
[Verified Entry Point] | |
0x00000001063b8e00: mov %eax,-0x14000(%rsp) | |
0x00000001063b8e07: push %rbp | |
0x00000001063b8e08: sub $0x10,%rsp ;*synchronization entry | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::clone@-1 (line 16) | |
0x00000001063b8e0c: mov %rsi,%rbp | |
0x00000001063b8e0f: mov 0x60(%r15),%rbx | |
0x00000001063b8e13: mov %rbx,%r10 | |
0x00000001063b8e16: add $0x58,%r10 | |
0x00000001063b8e1a: cmp 0x70(%r15),%r10 | |
0x00000001063b8e1e: jae 0x00000001063b8e73 | |
0x00000001063b8e20: mov %r10,0x60(%r15) | |
0x00000001063b8e24: prefetchnta 0xc0(%r10) | |
0x00000001063b8e2c: mov $0xd7610ea1,%r11d ; {oop('com/vyazelenko/blog/copyobject/primitives/clone/CloneCopy')} | |
0x00000001063b8e32: mov 0xb0(%r12,%r11,8),%r10 | |
0x00000001063b8e3a: mov %r10,(%rbx) | |
0x00000001063b8e3d: movl $0xd7610ea1,0x8(%rbx) ; {oop('com/vyazelenko/blog/copyobject/primitives/clone/CloneCopy')} | |
0x00000001063b8e44: mov %rbp,%rdi | |
0x00000001063b8e47: add $0x8,%rdi | |
0x00000001063b8e4b: mov %rbx,%rsi | |
0x00000001063b8e4e: add $0x8,%rsi | |
0x00000001063b8e52: mov $0xa,%edx | |
0x00000001063b8e57: movabs $0x106398120,%r10 | |
0x00000001063b8e61: callq *%r10 ;*invokespecial clone | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::clone@1 (line 16) | |
0x00000001063b8e64: mov %rbx,%rax | |
0x00000001063b8e67: add $0x10,%rsp | |
0x00000001063b8e6b: pop %rbp | |
0x00000001063b8e6c: test %eax,-0x1bcbe72(%rip) # 0x00000001047ed000 | |
; {poll_return} | |
0x00000001063b8e72: retq | |
0x00000001063b8e73: movabs $0x6bb087508,%rsi ; {oop('com/vyazelenko/blog/copyobject/primitives/clone/CloneCopy')} | |
0x00000001063b8e7d: xchg %ax,%ax | |
0x00000001063b8e7f: callq 0x00000001063b4fe0 ; OopMap{rbp=Oop off=164} | |
;*invokespecial clone | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::clone@1 (line 16) | |
; {runtime_call} | |
0x00000001063b8e84: mov %rax,%rbx | |
0x00000001063b8e87: jmp 0x00000001063b8e44 | |
0x00000001063b8e89: mov 0x8(%rax),%r10d | |
0x00000001063b8e8d: cmp $0xd7610fdb,%r10d ; {oop('java/lang/CloneNotSupportedException')} | |
0x00000001063b8e94: je 0x00000001063b8ea3 | |
0x00000001063b8e96: mov %rax,%rsi | |
0x00000001063b8e99: add $0x10,%rsp | |
0x00000001063b8e9d: pop %rbp | |
0x00000001063b8e9e: jmpq 0x00000001063b7e20 ; {runtime_call} | |
0x00000001063b8ea3: mov %rax,%rbp ;*areturn | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::clone@7 (line 16) | |
0x00000001063b8ea6: mov $0x5,%esi | |
0x00000001063b8eab: callq 0x000000010638ef20 ; OopMap{rbp=Oop off=208} | |
;*new ; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::clone@9 (line 18) | |
; {runtime_call} | |
0x00000001063b8eb0: callq 0x0000000105c165de ;*new | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::clone@9 (line 18) | |
; {runtime_call} | |
0x00000001063b8eb5: hlt | |
0x00000001063b8eb6: hlt | |
0x00000001063b8eb7: hlt | |
0x00000001063b8eb8: hlt | |
0x00000001063b8eb9: hlt | |
0x00000001063b8eba: hlt | |
0x00000001063b8ebb: hlt | |
0x00000001063b8ebc: hlt | |
0x00000001063b8ebd: hlt | |
0x00000001063b8ebe: hlt | |
0x00000001063b8ebf: hlt | |
[Exception Handler] | |
[Stub Code] | |
0x00000001063b8ec0: jmpq 0x00000001063b50a0 ; {no_reloc} | |
[Deopt Handler Code] | |
0x00000001063b8ec5: callq 0x00000001063b8eca | |
0x00000001063b8eca: subq $0x5,(%rsp) | |
0x00000001063b8ecf: jmpq 0x000000010638eb00 ; {runtime_call} | |
0x00000001063b8ed4: hlt | |
0x00000001063b8ed5: hlt | |
0x00000001063b8ed6: hlt | |
0x00000001063b8ed7: hlt | |
Decoding compiled method 0x00000001063bd710: | |
Code: | |
[Entry Point] | |
[Verified Entry Point] | |
[Constants] | |
# {method} 'doCopy' '(ILjava/lang/String;)V' in 'com/vyazelenko/blog/copyobject/TestClone' | |
0x00000001063bd8e0: callq 0x0000000105c165de ; {runtime_call} | |
0x00000001063bd8e5: data32 data32 nopw 0x0(%rax,%rax,1) | |
0x00000001063bd8f0: mov %eax,-0x14000(%rsp) | |
0x00000001063bd8f7: push %rbp | |
0x00000001063bd8f8: sub $0x40,%rsp | |
0x00000001063bd8fc: mov (%rsi),%ebp | |
0x00000001063bd8fe: mov 0x8(%rsi),%rbx | |
0x00000001063bd902: mov 0x10(%rsi),%r13d | |
0x00000001063bd906: mov %rsi,%rdi | |
0x00000001063bd909: movabs $0x105c70568,%r10 | |
0x00000001063bd913: callq *%r10 | |
0x00000001063bd916: test %rbx,%rbx | |
0x00000001063bd919: je 0x00000001063bddb5 | |
0x00000001063bd91f: mov 0x8(%rbx),%r11d | |
0x00000001063bd923: cmp $0xd75c15c3,%r11d ; {oop('java/lang/String')} | |
0x00000001063bd92a: jne 0x00000001063bddf4 ;*iload_2 | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@38 (line 27) | |
0x00000001063bd930: movabs $0x7957a9d90,%r10 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/clone/CloneCopy')} | |
0x00000001063bd93a: movabs $0x7957a9d90,%r8 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/clone/CloneCopy')} | |
0x00000001063bd944: add $0x8,%r8 | |
0x00000001063bd948: jmpq 0x00000001063bda80 | |
0x00000001063bd94d: data32 xchg %ax,%ax | |
0x00000001063bd950: mov %r10,0x60(%r15) | |
0x00000001063bd954: prefetchnta 0xc0(%r10) | |
0x00000001063bd95c: mov $0xd7610ea1,%r10d ; {oop('com/vyazelenko/blog/copyobject/primitives/clone/CloneCopy')} | |
0x00000001063bd962: mov 0xb0(%r12,%r10,8),%r10 | |
0x00000001063bd96a: mov %r10,(%rax) | |
0x00000001063bd96d: movl $0xd7610ea1,0x8(%rax) ; {oop('com/vyazelenko/blog/copyobject/primitives/clone/CloneCopy')} | |
0x00000001063bd974: mov %ebp,0x10(%rsp) | |
0x00000001063bd978: mov %rbx,0x8(%rsp) | |
0x00000001063bd97d: mov %r13d,(%rsp) | |
0x00000001063bd981: mov %r8,0x18(%rsp) | |
0x00000001063bd986: mov %r11d,0x14(%rsp) ;*invokespecial clone | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::clone@1 (line 16) | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::copy@1 (line 24) | |
; - com.vyazelenko.blog.copyobject.TestClone::callCopy@3 (line 38) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@46 (line 28) | |
0x00000001063bd98b: mov %rax,%r10 ;*areturn | |
; - com.vyazelenko.blog.copyobject.TestClone::callCopy@6 (line 38) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@46 (line 28) | |
0x00000001063bd98e: mov %r10,0x28(%rsp) | |
0x00000001063bd993: mov %rax,%rsi | |
0x00000001063bd996: add $0x8,%rsi | |
0x00000001063bd99a: mov 0x18(%rsp),%rdi | |
0x00000001063bd99f: mov $0xa,%edx | |
0x00000001063bd9a4: movabs $0x106398120,%r10 | |
0x00000001063bd9ae: callq *%r10 ;*invokespecial clone | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::clone@1 (line 16) | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::copy@1 (line 24) | |
; - com.vyazelenko.blog.copyobject.TestClone::callCopy@3 (line 38) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@46 (line 28) | |
0x00000001063bd9b1: mov 0x14(%rsp),%r11d | |
0x00000001063bd9b6: mov 0x8(%r12,%r11,8),%r11d ; implicit exception: dispatches to 0x00000001063bde3d | |
0x00000001063bd9bb: cmp $0xd75de4cc,%r11d ; {oop('java/util/ArrayList')} | |
0x00000001063bd9c2: jne 0x00000001063bdb11 | |
0x00000001063bd9c8: mov 0x14(%rsp),%r10d | |
0x00000001063bd9cd: shl $0x3,%r10 ;*invokeinterface add | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
0x00000001063bd9d1: mov 0x10(%r10),%r11d ;*getfield size | |
; - java.util.ArrayList::add@2 (line 440) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
0x00000001063bd9d5: mov 0x14(%r10),%r8d ;*getfield elementData | |
; - java.util.ArrayList::ensureCapacityInternal@1 (line 204) | |
; - java.util.ArrayList::add@7 (line 440) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
0x00000001063bd9d9: mov %r11d,%edx | |
0x00000001063bd9dc: inc %edx ;*iadd | |
; - java.util.ArrayList::add@6 (line 440) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
0x00000001063bd9de: cmp $0xf2aa202d,%r8d ; {oop(a 'java/lang/Object'[0] )} | |
0x00000001063bd9e5: je 0x00000001063bdd2c ;*if_acmpne | |
; - java.util.ArrayList::ensureCapacityInternal@7 (line 204) | |
; - java.util.ArrayList::add@7 (line 440) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
0x00000001063bd9eb: incl 0xc(%r10) ;*putfield modCount | |
; - java.util.ArrayList::ensureExplicitCapacity@7 (line 212) | |
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208) | |
; - java.util.ArrayList::add@7 (line 440) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
0x00000001063bd9ef: mov %r10,0x20(%rsp) | |
0x00000001063bd9f4: 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.TestClone::doCopy@49 (line 28) | |
; implicit exception: dispatches to 0x00000001063bde51 | |
0x00000001063bd9f9: mov %r11d,%ecx | |
0x00000001063bd9fc: sub %r10d,%ecx | |
0x00000001063bd9ff: inc %ecx | |
0x00000001063bda01: test %ecx,%ecx | |
0x00000001063bda03: jg 0x00000001063bdd69 ;*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.TestClone::doCopy@49 (line 28) | |
0x00000001063bda09: mov 0x20(%rsp),%r10 | |
0x00000001063bda0e: mov %edx,0x10(%r10) ;*return | |
; - java.util.ArrayList::ensureExplicitCapacity@25 (line 217) | |
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208) | |
; - java.util.ArrayList::add@7 (line 440) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
0x00000001063bda12: mov 0xc(%r12,%r8,8),%r9d | |
0x00000001063bda17: cmp %r9d,%r11d | |
0x00000001063bda1a: jae 0x00000001063bdae1 | |
0x00000001063bda20: mov 0x8(%r12,%r8,8),%r9d | |
0x00000001063bda25: cmp $0xd75d45e9,%r9d ; {oop('java/lang/Object'[])} | |
0x00000001063bda2c: jne 0x00000001063bdb41 | |
0x00000001063bda32: mov 0x28(%rsp),%r10 | |
0x00000001063bda37: shr $0x3,%r10 ;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
0x00000001063bda3b: mov 0x10(%rsp),%ebp | |
0x00000001063bda3f: inc %ebp ;*iinc | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@55 (line 27) | |
0x00000001063bda41: shl $0x3,%r8 ;*getfield elementData | |
; - java.util.ArrayList::add@11 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
0x00000001063bda45: lea 0x10(%r8,%r11,4),%r11 | |
0x00000001063bda4a: mov %r10d,(%r11) | |
0x00000001063bda4d: mov %r11,%r10 | |
0x00000001063bda50: shr $0x9,%r10 | |
0x00000001063bda54: movabs $0x105e3f000,%r11 | |
0x00000001063bda5e: mov %r12b,(%r11,%r10,1) ;*goto | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@58 (line 27) | |
0x00000001063bda62: movabs $0x7957a9d90,%r10 ; OopMap{r10=Oop [8]=Oop [24]=Derived_oop_r10 off=396} | |
;*goto | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@58 (line 27) | |
; {oop(a 'com/vyazelenko/blog/copyobject/primitives/clone/CloneCopy')} | |
0x00000001063bda6c: test %eax,-0x1bd0a72(%rip) # 0x00000001047ed000 | |
;*goto | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@58 (line 27) | |
; {poll} | |
0x00000001063bda72: mov 0x8(%rsp),%rbx | |
0x00000001063bda77: mov (%rsp),%r13d | |
0x00000001063bda7b: mov 0x18(%rsp),%r8 ;*iload_2 | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@38 (line 27) | |
0x00000001063bda80: cmp %r13d,%ebp | |
0x00000001063bda83: jge 0x00000001063bdb71 ;*synchronization entry | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::clone@-1 (line 16) | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::copy@1 (line 24) | |
; - com.vyazelenko.blog.copyobject.TestClone::callCopy@3 (line 38) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@46 (line 28) | |
0x00000001063bda89: movabs $0x7955afb58,%r10 ; {oop(a 'java/lang/Class' = 'com/vyazelenko/blog/copyobject/TestClone')} | |
0x00000001063bda93: mov 0x70(%r10),%r11d ;*invokespecial clone | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::clone@1 (line 16) | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::copy@1 (line 24) | |
; - com.vyazelenko.blog.copyobject.TestClone::callCopy@3 (line 38) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@46 (line 28) | |
0x00000001063bda97: mov 0x60(%r15),%rax | |
0x00000001063bda9b: mov %rax,%r10 | |
0x00000001063bda9e: add $0x58,%r10 | |
0x00000001063bdaa2: cmp 0x70(%r15),%r10 | |
0x00000001063bdaa6: jb 0x00000001063bd950 | |
0x00000001063bdaac: mov %r11d,0x14(%rsp) | |
0x00000001063bdab1: mov %r8,0x18(%rsp) | |
0x00000001063bdab6: mov %r13d,(%rsp) | |
0x00000001063bdaba: mov %rbx,0x8(%rsp) | |
0x00000001063bdabf: mov %ebp,0x10(%rsp) | |
0x00000001063bdac3: movabs $0x6bb087508,%rsi ; {oop('com/vyazelenko/blog/copyobject/primitives/clone/CloneCopy')} | |
0x00000001063bdacd: movabs $0x7957a9d90,%rbp ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/clone/CloneCopy')} | |
0x00000001063bdad7: callq 0x00000001063b4fe0 ; OopMap{rbp=Oop [8]=Oop [20]=NarrowOop [24]=Derived_oop_rbp off=508} | |
;*invokespecial clone | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::clone@1 (line 16) | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::copy@1 (line 24) | |
; - com.vyazelenko.blog.copyobject.TestClone::callCopy@3 (line 38) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@46 (line 28) | |
; {runtime_call} | |
0x00000001063bdadc: jmpq 0x00000001063bd98b ;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
0x00000001063bdae1: mov $0xffffffe4,%esi | |
0x00000001063bdae6: mov (%rsp),%ebp | |
0x00000001063bdae9: mov 0x8(%rsp),%r10 | |
0x00000001063bdaee: mov %r10,(%rsp) | |
0x00000001063bdaf2: mov 0x10(%rsp),%r10d | |
0x00000001063bdaf7: mov %r10d,0x8(%rsp) | |
0x00000001063bdafc: mov %r8d,0xc(%rsp) | |
0x00000001063bdb01: mov %r11d,0x10(%rsp) | |
0x00000001063bdb06: nop | |
0x00000001063bdb07: callq 0x000000010638ef20 ; OopMap{[0]=Oop [12]=NarrowOop [40]=Oop off=556} | |
;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
; {runtime_call} | |
0x00000001063bdb0c: callq 0x0000000105c165de ;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
; {runtime_call} | |
0x00000001063bdb11: mov $0xffffffde,%esi | |
0x00000001063bdb16: mov (%rsp),%ebp | |
0x00000001063bdb19: mov 0x8(%rsp),%r10 | |
0x00000001063bdb1e: mov %r10,(%rsp) | |
0x00000001063bdb22: mov 0x10(%rsp),%r11d | |
0x00000001063bdb27: mov %r11d,0x8(%rsp) | |
0x00000001063bdb2c: mov 0x14(%rsp),%r10d | |
0x00000001063bdb31: mov %r10d,0xc(%rsp) | |
0x00000001063bdb36: nop | |
0x00000001063bdb37: callq 0x000000010638ef20 ; OopMap{[0]=Oop [12]=NarrowOop [40]=Oop off=604} | |
;*invokeinterface add | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
; {runtime_call} | |
0x00000001063bdb3c: callq 0x0000000105c165de ;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
; {runtime_call} | |
0x00000001063bdb41: mov $0xffffffd6,%esi | |
0x00000001063bdb46: mov (%rsp),%ebp | |
0x00000001063bdb49: mov 0x8(%rsp),%r10 | |
0x00000001063bdb4e: mov %r10,(%rsp) | |
0x00000001063bdb52: mov 0x10(%rsp),%r9d | |
0x00000001063bdb57: mov %r9d,0x8(%rsp) | |
0x00000001063bdb5c: mov %r8d,0xc(%rsp) | |
0x00000001063bdb61: mov %r11d,0x10(%rsp) | |
0x00000001063bdb66: nop | |
0x00000001063bdb67: callq 0x000000010638ef20 ; OopMap{[0]=Oop [12]=NarrowOop [40]=Oop off=652} | |
;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
; {runtime_call} | |
0x00000001063bdb6c: callq 0x0000000105c165de ;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
; {runtime_call} | |
0x00000001063bdb71: test %rbx,%rbx | |
0x00000001063bdb74: jne 0x00000001063bde35 | |
0x00000001063bdb7a: movabs $0x795503338,%r9 ; {oop("null")} | |
0x00000001063bdb84: mov 0xc(%r9),%r11d | |
0x00000001063bdb88: mov 0xc(%r12,%r11,8),%r10d | |
0x00000001063bdb8d: mov %r10d,%r8d | |
0x00000001063bdb90: add $0x4,%r8d | |
0x00000001063bdb94: movabs $0x795500d10,%r11 ; {oop(a 'java/lang/Class' = 'java/lang/System')} | |
0x00000001063bdb9e: mov 0x74(%r11),%ebp ;*getstatic out | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@61 (line 30) | |
0x00000001063bdba2: test %r8d,%r8d | |
0x00000001063bdba5: jl 0x00000001063bde21 | |
0x00000001063bdbab: mov %r10d,%edx | |
0x00000001063bdbae: add $0xe,%edx | |
0x00000001063bdbb1: test %edx,%edx | |
0x00000001063bdbb3: jl 0x00000001063bde21 | |
0x00000001063bdbb9: cmp $0x80000,%edx | |
0x00000001063bdbbf: ja 0x00000001063bddd4 | |
0x00000001063bdbc5: mov 0x60(%r15),%rcx | |
0x00000001063bdbc9: movslq %r10d,%r10 | |
0x00000001063bdbcc: shl %r10 | |
0x00000001063bdbcf: add $0x33,%r10 | |
0x00000001063bdbd3: and $0xfffffffffffffff8,%r10 | |
0x00000001063bdbd7: mov %rcx,%r11 | |
0x00000001063bdbda: add %r10,%r11 | |
0x00000001063bdbdd: cmp 0x70(%r15),%r11 | |
0x00000001063bdbe1: jae 0x00000001063bddd4 | |
0x00000001063bdbe7: mov %r11,0x60(%r15) | |
0x00000001063bdbeb: prefetchnta 0xc0(%r11) | |
0x00000001063bdbf3: movq $0x1,(%rcx) | |
0x00000001063bdbfa: prefetchnta 0x100(%r11) | |
0x00000001063bdc02: movl $0xd75c00c5,0x8(%rcx) ; {oop({type array char})} | |
0x00000001063bdc09: mov %edx,0xc(%rcx) | |
0x00000001063bdc0c: prefetchnta 0x140(%r11) | |
0x00000001063bdc14: prefetchnta 0x180(%r11) | |
0x00000001063bdc1c: mov %rbx,(%rsp) | |
0x00000001063bdc20: mov %r9,0x8(%rsp) | |
0x00000001063bdc25: mov 0x8(%rsp),%r10 | |
0x00000001063bdc2a: mov 0xc(%r10),%r10d | |
0x00000001063bdc2e: mov %rcx,%r11 | |
0x00000001063bdc31: add $0x18,%r11 | |
0x00000001063bdc35: mov 0xc(%r12,%r10,8),%ebx | |
0x00000001063bdc3a: lea (%r12,%r10,8),%r8 | |
0x00000001063bdc3e: lea 0x10(%r12,%r10,8),%r10 | |
0x00000001063bdc43: movslq %ebx,%rdx | |
0x00000001063bdc46: lea 0x18(%rcx,%rdx,2),%r8 | |
0x00000001063bdc4b: mov %r8,%rbx | |
0x00000001063bdc4e: mov $0x20,%r9d | |
0x00000001063bdc54: movabs $0x795880e50,%r8 ; {oop([C)} | |
0x00000001063bdc5e: movabs $0x795880e50,%rdi ; {oop([C)} | |
0x00000001063bdc68: add $0x10,%rdi | |
0x00000001063bdc6c: mov %rdi,%r13 | |
0x00000001063bdc6f: mov $0x3c,%r8d | |
0x00000001063bdc75: mov %r8w,0x10(%rcx) | |
0x00000001063bdc7a: mov %r8w,0x12(%rcx) | |
0x00000001063bdc7f: mov %r8w,0x14(%rcx) | |
0x00000001063bdc84: mov %r9w,0x16(%rcx) | |
0x00000001063bdc89: mov %rcx,0x8(%rsp) | |
0x00000001063bdc8e: mov %r10,%rdi | |
0x00000001063bdc91: mov %r11,%rsi | |
0x00000001063bdc94: movabs $0x106397e00,%r10 | |
0x00000001063bdc9e: callq *%r10 | |
0x00000001063bdca1: mov %r13,%rdi | |
0x00000001063bdca4: mov %rbx,%rsi | |
0x00000001063bdca7: mov $0xa,%edx | |
0x00000001063bdcac: movabs $0x106397e00,%r10 | |
0x00000001063bdcb6: callq *%r10 | |
0x00000001063bdcb9: mov 0x60(%r15),%r10 | |
0x00000001063bdcbd: mov %r10,%r11 | |
0x00000001063bdcc0: add $0x18,%r11 | |
0x00000001063bdcc4: cmp 0x70(%r15),%r11 | |
0x00000001063bdcc8: jae 0x00000001063bddbc | |
0x00000001063bdcce: mov %r11,0x60(%r15) | |
0x00000001063bdcd2: prefetchnta 0xc0(%r11) | |
0x00000001063bdcda: mov $0xd75c15c3,%r8d ; {oop('java/lang/String')} | |
0x00000001063bdce0: mov 0xb0(%r12,%r8,8),%r11 | |
0x00000001063bdce8: mov %r10,%r8 | |
0x00000001063bdceb: mov %r11,(%r8) | |
0x00000001063bdcee: movl $0xd75c15c3,0x8(%r8) ; {oop('java/lang/String')} | |
0x00000001063bdcf6: mov %r12d,0xc(%r8) | |
0x00000001063bdcfa: mov %r12,0x10(%r8) | |
0x00000001063bdcfe: mov 0x8(%rsp),%r10 | |
0x00000001063bdd03: shr $0x3,%r10 | |
0x00000001063bdd07: mov %r10d,0xc(%r8) | |
0x00000001063bdd0b: test %ebp,%ebp | |
0x00000001063bdd0d: je 0x00000001063bde0d ;*invokevirtual println | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@88 (line 30) | |
0x00000001063bdd13: lea (%r12,%rbp,8),%rsi ;*getstatic out | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@61 (line 30) | |
0x00000001063bdd17: mov %r8,%rdx | |
0x00000001063bdd1a: nop | |
0x00000001063bdd1b: callq 0x000000010638db60 ; OopMap{off=1088} | |
;*invokevirtual println | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@88 (line 30) | |
; {optimized virtual_call} | |
0x00000001063bdd20: add $0x40,%rsp | |
0x00000001063bdd24: pop %rbp | |
0x00000001063bdd25: test %eax,-0x1bd0d2b(%rip) # 0x00000001047ed000 | |
; {poll_return} | |
0x00000001063bdd2b: retq | |
0x00000001063bdd2c: mov $0xffffffad,%esi | |
0x00000001063bdd31: mov (%rsp),%ebp | |
0x00000001063bdd34: mov 0x8(%rsp),%r11 | |
0x00000001063bdd39: mov %r11,(%rsp) | |
0x00000001063bdd3d: mov 0x10(%rsp),%r9d | |
0x00000001063bdd42: mov %r9d,0x8(%rsp) | |
0x00000001063bdd47: rex.W pushq 0x28(%rsp) | |
0x00000001063bdd4c: rex.W popq 0x18(%rsp) | |
0x00000001063bdd51: mov %r10,0x20(%rsp) | |
0x00000001063bdd56: mov %edx,0xc(%rsp) | |
0x00000001063bdd5a: mov %r8d,0x28(%rsp) | |
0x00000001063bdd5f: callq 0x000000010638ef20 ; OopMap{[0]=Oop [24]=Oop [32]=Oop [40]=NarrowOop off=1156} | |
;*if_acmpne | |
; - java.util.ArrayList::ensureCapacityInternal@7 (line 204) | |
; - java.util.ArrayList::add@7 (line 440) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
; {runtime_call} | |
0x00000001063bdd64: callq 0x0000000105c165de ;*synchronization entry | |
; - java.util.ArrayList::ensureExplicitCapacity@-1 (line 212) | |
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208) | |
; - java.util.ArrayList::add@7 (line 440) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
; {runtime_call} | |
0x00000001063bdd69: mov 0x20(%rsp),%rsi | |
0x00000001063bdd6e: movabs $0x7957a9d90,%rbp ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/clone/CloneCopy')} | |
0x00000001063bdd78: data32 xchg %ax,%ax | |
0x00000001063bdd7b: callq 0x000000010638db60 ; OopMap{rbp=Oop [8]=Oop [24]=Derived_oop_rbp [32]=Oop [40]=Oop off=1184} | |
;*invokespecial grow | |
; - java.util.ArrayList::ensureExplicitCapacity@22 (line 216) | |
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208) | |
; - java.util.ArrayList::add@7 (line 440) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
; {optimized virtual_call} | |
0x00000001063bdd80: mov 0x20(%rsp),%r9 | |
0x00000001063bdd85: mov 0x14(%r9),%r8d ;*getfield elementData | |
; - java.util.ArrayList::add@11 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
0x00000001063bdd89: mov 0x10(%r9),%r11d ;*getfield size | |
; - java.util.ArrayList::add@16 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
0x00000001063bdd8d: mov %r11d,%r10d | |
0x00000001063bdd90: inc %r10d | |
0x00000001063bdd93: mov %r10d,0x10(%r9) ;*putfield size | |
; - java.util.ArrayList::add@22 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
0x00000001063bdd97: test %r8d,%r8d | |
0x00000001063bdd9a: jne 0x00000001063bda12 ;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
0x00000001063bdda0: mov $0xfffffff6,%esi | |
0x00000001063bdda5: mov %r11d,%ebp | |
0x00000001063bdda8: data32 xchg %ax,%ax | |
0x00000001063bddab: callq 0x000000010638ef20 ; OopMap{[40]=Oop off=1232} | |
;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
; {runtime_call} | |
0x00000001063bddb0: callq 0x0000000105c165de ;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
; {runtime_call} | |
0x00000001063bddb5: xor %ebx,%ebx | |
0x00000001063bddb7: jmpq 0x00000001063bd930 | |
0x00000001063bddbc: movabs $0x6bae0ae18,%rsi ; {oop('java/lang/String')} | |
0x00000001063bddc6: nop | |
0x00000001063bddc7: callq 0x00000001063b4fe0 ; OopMap{rbp=NarrowOop [0]=Oop [8]=Oop off=1260} | |
;*new ; - com.vyazelenko.blog.copyobject.TestClone::doCopy@64 (line 30) | |
; {runtime_call} | |
0x00000001063bddcc: mov %rax,%r8 | |
0x00000001063bddcf: jmpq 0x00000001063bdcfe | |
0x00000001063bddd4: mov %r9,0x8(%rsp) | |
0x00000001063bddd9: mov %rbx,(%rsp) | |
0x00000001063bdddd: movabs $0x6bae00628,%rsi ; {oop({type array char})} | |
0x00000001063bdde7: callq 0x00000001063b4f20 ; OopMap{rbp=NarrowOop [0]=Oop [8]=Oop off=1292} | |
;*new ; - com.vyazelenko.blog.copyobject.TestClone::doCopy@64 (line 30) | |
; {runtime_call} | |
0x00000001063bddec: mov %rax,%rcx | |
0x00000001063bddef: jmpq 0x00000001063bdc25 | |
0x00000001063bddf4: mov $0xffffff9d,%esi | |
0x00000001063bddf9: mov %r13d,(%rsp) | |
0x00000001063bddfd: mov %rbx,0x8(%rsp) | |
0x00000001063bde02: nop | |
0x00000001063bde03: callq 0x000000010638ef20 ; OopMap{[8]=Oop off=1320} | |
;*iload_2 | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@38 (line 27) | |
; {runtime_call} | |
0x00000001063bde08: callq 0x0000000105c165de ;*iload_2 | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@38 (line 27) | |
; {runtime_call} | |
0x00000001063bde0d: mov $0xfffffff6,%esi | |
0x00000001063bde12: mov %r8,%rbp | |
0x00000001063bde15: xchg %ax,%ax | |
0x00000001063bde17: callq 0x000000010638ef20 ; OopMap{rbp=Oop off=1340} | |
;*invokevirtual println | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@88 (line 30) | |
; {runtime_call} | |
0x00000001063bde1c: callq 0x0000000105c165de ;*invokevirtual println | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@88 (line 30) | |
; {runtime_call} | |
0x00000001063bde21: mov $0xffffffcc,%esi | |
0x00000001063bde26: mov %rbx,(%rsp) | |
0x00000001063bde2a: nop | |
0x00000001063bde2b: callq 0x000000010638ef20 ; OopMap{rbp=NarrowOop [0]=Oop off=1360} | |
;*new ; - com.vyazelenko.blog.copyobject.TestClone::doCopy@64 (line 30) | |
; {runtime_call} | |
0x00000001063bde30: callq 0x0000000105c165de ; {runtime_call} | |
0x00000001063bde35: mov %rbx,%r9 | |
0x00000001063bde38: jmpq 0x00000001063bdb84 | |
0x00000001063bde3d: mov $0xfffffff6,%esi | |
0x00000001063bde42: mov 0x28(%rsp),%rbp | |
0x00000001063bde47: callq 0x000000010638ef20 ; OopMap{rbp=Oop off=1388} | |
;*invokeinterface add | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
; {runtime_call} | |
0x00000001063bde4c: callq 0x0000000105c165de ; {runtime_call} | |
0x00000001063bde51: mov $0xfffffff6,%esi | |
0x00000001063bde56: nop | |
0x00000001063bde57: callq 0x000000010638ef20 ; OopMap{off=1404} | |
;*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.TestClone::doCopy@49 (line 28) | |
; {runtime_call} | |
0x00000001063bde5c: callq 0x0000000105c165de ;*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.TestClone::doCopy@49 (line 28) | |
; {runtime_call} | |
0x00000001063bde61: jmp 0x00000001063bde63 | |
0x00000001063bde63: mov %rax,%rsi | |
0x00000001063bde66: jmp 0x00000001063bde82 ;*invokespecial grow | |
; - java.util.ArrayList::ensureExplicitCapacity@22 (line 216) | |
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208) | |
; - java.util.ArrayList::add@7 (line 440) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
0x00000001063bde68: mov %rax,%rsi | |
0x00000001063bde6b: jmp 0x00000001063bde82 ;*invokevirtual println | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@88 (line 30) | |
0x00000001063bde6d: mov %rax,%rsi | |
0x00000001063bde70: jmp 0x00000001063bde82 | |
0x00000001063bde72: mov 0x8(%rax),%r10d | |
0x00000001063bde76: cmp $0xd7610fdb,%r10d ; {oop('java/lang/CloneNotSupportedException')} | |
0x00000001063bde7d: je 0x00000001063bde8c ;*invokespecial clone | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::clone@1 (line 16) | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::copy@1 (line 24) | |
; - com.vyazelenko.blog.copyobject.TestClone::callCopy@3 (line 38) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@46 (line 28) | |
0x00000001063bde7f: mov %rax,%rsi | |
0x00000001063bde82: add $0x40,%rsp | |
0x00000001063bde86: pop %rbp | |
0x00000001063bde87: jmpq 0x00000001063b7e20 ; {runtime_call} | |
0x00000001063bde8c: mov %rax,%rbp ;*areturn | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::clone@7 (line 16) | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::copy@1 (line 24) | |
; - com.vyazelenko.blog.copyobject.TestClone::callCopy@3 (line 38) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@46 (line 28) | |
0x00000001063bde8f: mov $0x5,%esi | |
0x00000001063bde94: mov 0x10(%rsp),%r10d | |
0x00000001063bde99: mov %r10d,0x4(%rsp) | |
0x00000001063bde9e: nop | |
0x00000001063bde9f: callq 0x000000010638ef20 ; OopMap{rbp=Oop [8]=Oop [20]=NarrowOop off=1476} | |
;*new ; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::clone@9 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::copy@1 (line 24) | |
; - com.vyazelenko.blog.copyobject.TestClone::callCopy@3 (line 38) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@46 (line 28) | |
; {runtime_call} | |
0x00000001063bdea4: callq 0x0000000105c165de ;*new | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::clone@9 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::copy@1 (line 24) | |
; - com.vyazelenko.blog.copyobject.TestClone::callCopy@3 (line 38) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@46 (line 28) | |
; {runtime_call} | |
0x00000001063bdea9: hlt | |
0x00000001063bdeaa: hlt | |
0x00000001063bdeab: hlt | |
0x00000001063bdeac: hlt | |
0x00000001063bdead: hlt | |
0x00000001063bdeae: hlt | |
0x00000001063bdeaf: hlt | |
0x00000001063bdeb0: hlt | |
0x00000001063bdeb1: hlt | |
0x00000001063bdeb2: hlt | |
0x00000001063bdeb3: hlt | |
0x00000001063bdeb4: hlt | |
0x00000001063bdeb5: hlt | |
0x00000001063bdeb6: hlt | |
0x00000001063bdeb7: hlt | |
0x00000001063bdeb8: hlt | |
0x00000001063bdeb9: hlt | |
0x00000001063bdeba: hlt | |
0x00000001063bdebb: hlt | |
0x00000001063bdebc: hlt | |
0x00000001063bdebd: hlt | |
0x00000001063bdebe: hlt | |
0x00000001063bdebf: hlt | |
[Stub Code] | |
0x00000001063bdec0: movabs $0x0,%rbx ; {no_reloc} | |
0x00000001063bdeca: jmpq 0x00000001063bdeca ; {runtime_call} | |
0x00000001063bdecf: movabs $0x0,%rbx ; {static_stub} | |
0x00000001063bded9: jmpq 0x00000001063bded9 ; {runtime_call} | |
[Exception Handler] | |
0x00000001063bdede: jmpq 0x00000001063b50a0 ; {runtime_call} | |
[Deopt Handler Code] | |
0x00000001063bdee3: callq 0x00000001063bdee8 | |
0x00000001063bdee8: subq $0x5,(%rsp) | |
0x00000001063bdeed: jmpq 0x000000010638eb00 ; {runtime_call} | |
0x00000001063bdef2: hlt | |
0x00000001063bdef3: hlt | |
0x00000001063bdef4: hlt | |
0x00000001063bdef5: hlt | |
0x00000001063bdef6: hlt | |
0x00000001063bdef7: hlt | |
<<< warmup completed | |
Decoding compiled method 0x00000001063b9a10: | |
Code: | |
[Entry Point] | |
[Verified Entry Point] | |
[Constants] | |
# {method} 'doCopy' '(ILjava/lang/String;)V' in 'com/vyazelenko/blog/copyobject/TestClone' | |
# parm0: rsi = int | |
# parm1: rdx:rdx = 'java/lang/String' | |
# [sp+0x50] (sp of caller) | |
0x00000001063b9c20: mov %eax,-0x14000(%rsp) | |
0x00000001063b9c27: push %rbp | |
0x00000001063b9c28: sub $0x40,%rsp ;*synchronization entry | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@-1 (line 25) | |
0x00000001063b9c2c: mov %rdx,0x8(%rsp) | |
0x00000001063b9c31: mov %esi,(%rsp) | |
0x00000001063b9c34: mov 0x60(%r15),%rbp | |
0x00000001063b9c38: mov %rbp,%r10 | |
0x00000001063b9c3b: add $0x18,%r10 | |
0x00000001063b9c3f: cmp 0x70(%r15),%r10 | |
0x00000001063b9c43: jae 0x00000001063ba320 | |
0x00000001063b9c49: mov %r10,0x60(%r15) | |
0x00000001063b9c4d: prefetchnta 0xc0(%r10) | |
0x00000001063b9c55: mov $0xd75de4cc,%r10d ; {oop('java/util/ArrayList')} | |
0x00000001063b9c5b: mov 0xb0(%r12,%r10,8),%r10 | |
0x00000001063b9c63: mov %r10,0x0(%rbp) | |
0x00000001063b9c67: movl $0xd75de4cc,0x8(%rbp) ; {oop('java/util/ArrayList')} | |
0x00000001063b9c6e: mov %r12d,0xc(%rbp) | |
0x00000001063b9c72: mov %r12,0x10(%rbp) ;*new ; - com.vyazelenko.blog.copyobject.TestClone::doCopy@0 (line 25) | |
0x00000001063b9c76: mov (%rsp),%r10d | |
0x00000001063b9c7a: test %r10d,%r10d | |
0x00000001063b9c7d: jl 0x00000001063ba3e5 ;*ifge | |
; - java.util.ArrayList::<init>@5 (line 141) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@5 (line 25) | |
0x00000001063b9c83: cmp $0x40000,%r10d | |
0x00000001063b9c8a: ja 0x00000001063ba338 | |
0x00000001063b9c90: mov 0x60(%r15),%r8 | |
0x00000001063b9c94: movslq %r10d,%rcx | |
0x00000001063b9c97: shl $0x2,%rcx | |
0x00000001063b9c9b: add $0x17,%rcx | |
0x00000001063b9c9f: mov %rcx,%r10 | |
0x00000001063b9ca2: and $0xfffffffffffffff8,%r10 | |
0x00000001063b9ca6: mov %r8,%r11 | |
0x00000001063b9ca9: add %r10,%r11 | |
0x00000001063b9cac: cmp 0x70(%r15),%r11 | |
0x00000001063b9cb0: jae 0x00000001063ba338 | |
0x00000001063b9cb6: mov %r11,0x60(%r15) | |
0x00000001063b9cba: prefetchnta 0xc0(%r11) | |
0x00000001063b9cc2: movq $0x1,(%r8) | |
0x00000001063b9cc9: prefetchnta 0x100(%r11) | |
0x00000001063b9cd1: movl $0xd75d45e9,0x8(%r8) ; {oop('java/lang/Object'[])} | |
0x00000001063b9cd9: mov (%rsp),%r10d | |
0x00000001063b9cdd: mov %r10d,0xc(%r8) | |
0x00000001063b9ce1: prefetchnta 0x140(%r11) | |
0x00000001063b9ce9: mov %r8,%rdi | |
0x00000001063b9cec: add $0x10,%rdi | |
0x00000001063b9cf0: prefetchnta 0x180(%r11) | |
0x00000001063b9cf8: shr $0x3,%rcx | |
0x00000001063b9cfc: add $0xfffffffffffffffe,%rcx | |
0x00000001063b9d00: xor %rax,%rax | |
0x00000001063b9d03: shl $0x3,%rcx | |
0x00000001063b9d07: rep rex.W stos %al,%es:(%rdi) ;*anewarray | |
; - java.util.ArrayList::<init>@37 (line 144) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@5 (line 25) | |
0x00000001063b9d0a: mov 0x8(%rsp),%r9 | |
0x00000001063b9d0f: test %r9,%r9 | |
0x00000001063b9d12: jne 0x00000001063ba405 | |
0x00000001063b9d18: movabs $0x795503338,%rbx ; {oop("null")} | |
0x00000001063b9d22: mov 0xc(%rbx),%r10d | |
0x00000001063b9d26: mov 0xc(%r12,%r10,8),%ecx | |
0x00000001063b9d2b: mov %rbp,%r10 | |
0x00000001063b9d2e: mov %ecx,%edx | |
0x00000001063b9d30: add $0x9,%edx | |
0x00000001063b9d33: shr $0x9,%r10 | |
0x00000001063b9d37: shr $0x3,%r8 | |
0x00000001063b9d3b: mov %r8d,0x14(%rbp) ;*putfield elementData | |
; - java.util.ArrayList::<init>@40 (line 144) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@5 (line 25) | |
0x00000001063b9d3f: mov %rbp,%r11 | |
0x00000001063b9d42: shr $0x3,%r11 ;*putstatic results | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@8 (line 25) | |
0x00000001063b9d46: movabs $0x105e3f000,%r8 | |
0x00000001063b9d50: mov %r12b,(%r8,%r10,1) ;*putfield elementData | |
; - java.util.ArrayList::<init>@40 (line 144) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@5 (line 25) | |
0x00000001063b9d54: movabs $0x795500d10,%r10 ; {oop(a 'java/lang/Class' = 'java/lang/System')} | |
0x00000001063b9d5e: mov 0x74(%r10),%ebp ;*getstatic out | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@11 (line 26) | |
0x00000001063b9d62: movabs $0x7955afb58,%r10 ; {oop(a 'java/lang/Class' = 'com/vyazelenko/blog/copyobject/TestClone')} | |
0x00000001063b9d6c: mov %r11d,0x70(%r10) | |
0x00000001063b9d70: shr $0x9,%r10 | |
0x00000001063b9d74: movabs $0x105e3f000,%r11 | |
0x00000001063b9d7e: mov %r12b,(%r11,%r10,1) ;*putstatic results | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@8 (line 25) | |
0x00000001063b9d82: test %edx,%edx | |
0x00000001063b9d84: jl 0x00000001063ba3f5 | |
0x00000001063b9d8a: cmp $0x80000,%edx | |
0x00000001063b9d90: ja 0x00000001063ba36c | |
0x00000001063b9d96: mov 0x60(%r15),%r8 | |
0x00000001063b9d9a: movslq %ecx,%r10 | |
0x00000001063b9d9d: shl %r10 | |
0x00000001063b9da0: add $0x29,%r10 | |
0x00000001063b9da4: and $0xfffffffffffffff8,%r10 | |
0x00000001063b9da8: mov %r8,%r11 | |
0x00000001063b9dab: add %r10,%r11 | |
0x00000001063b9dae: cmp 0x70(%r15),%r11 | |
0x00000001063b9db2: jae 0x00000001063ba36c | |
0x00000001063b9db8: mov %r11,0x60(%r15) | |
0x00000001063b9dbc: prefetchnta 0xc0(%r11) | |
0x00000001063b9dc4: movq $0x1,(%r8) | |
0x00000001063b9dcb: prefetchnta 0x100(%r11) | |
0x00000001063b9dd3: movl $0xd75c00c5,0x8(%r8) ; {oop({type array char})} | |
0x00000001063b9ddb: mov %edx,0xc(%r8) | |
0x00000001063b9ddf: prefetchnta 0x140(%r11) | |
0x00000001063b9de7: prefetchnta 0x180(%r11) | |
0x00000001063b9def: mov %r9,0x28(%rsp) | |
0x00000001063b9df4: mov %rbx,0x8(%rsp) | |
0x00000001063b9df9: mov %r8,%rbx | |
0x00000001063b9dfc: add $0x22,%rbx | |
0x00000001063b9e00: mov %r8,%rsi | |
0x00000001063b9e03: add $0x10,%rsi | |
0x00000001063b9e07: mov %r8,0x10(%rsp) | |
0x00000001063b9e0c: mov $0x9,%edx | |
0x00000001063b9e11: movabs $0x79579c260,%rdi ; {oop([C)} | |
0x00000001063b9e1b: add $0x10,%rdi | |
0x00000001063b9e1f: movabs $0x106397e00,%r10 | |
0x00000001063b9e29: callq *%r10 | |
0x00000001063b9e2c: mov 0x8(%rsp),%r10 | |
0x00000001063b9e31: mov 0xc(%r10),%r11d | |
0x00000001063b9e35: mov 0xc(%r12,%r11,8),%r10d | |
0x00000001063b9e3a: lea (%r12,%r11,8),%r8 | |
0x00000001063b9e3e: lea 0x10(%r12,%r11,8),%rdi | |
0x00000001063b9e43: movslq %r10d,%rdx | |
0x00000001063b9e46: mov %rbx,%rsi | |
0x00000001063b9e49: movabs $0x106397e00,%r10 | |
0x00000001063b9e53: callq *%r10 | |
0x00000001063b9e56: mov 0x60(%r15),%rdx | |
0x00000001063b9e5a: mov %rdx,%r10 | |
0x00000001063b9e5d: add $0x18,%r10 | |
0x00000001063b9e61: cmp 0x70(%r15),%r10 | |
0x00000001063b9e65: jae 0x00000001063ba354 | |
0x00000001063b9e6b: mov %r10,0x60(%r15) | |
0x00000001063b9e6f: prefetchnta 0xc0(%r10) | |
0x00000001063b9e77: mov $0xd75c15c3,%r11d ; {oop('java/lang/String')} | |
0x00000001063b9e7d: mov 0xb0(%r12,%r11,8),%r10 | |
0x00000001063b9e85: mov %r10,(%rdx) | |
0x00000001063b9e88: movl $0xd75c15c3,0x8(%rdx) ; {oop('java/lang/String')} | |
0x00000001063b9e8f: mov %r12d,0xc(%rdx) | |
0x00000001063b9e93: mov %r12,0x10(%rdx) | |
0x00000001063b9e97: mov 0x10(%rsp),%r10 | |
0x00000001063b9e9c: shr $0x3,%r10 | |
0x00000001063b9ea0: mov %r10d,0xc(%rdx) | |
0x00000001063b9ea4: test %ebp,%ebp | |
0x00000001063b9ea6: je 0x00000001063ba3d0 ;*invokevirtual println | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@33 (line 26) | |
0x00000001063b9eac: lea (%r12,%rbp,8),%rsi ;*getstatic out | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@11 (line 26) | |
0x00000001063b9eb0: data32 xchg %ax,%ax | |
0x00000001063b9eb3: callq 0x000000010638db60 ; OopMap{[40]=Oop off=664} | |
;*invokevirtual println | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@33 (line 26) | |
; {optimized virtual_call} | |
0x00000001063b9eb8: mov (%rsp),%r10d | |
0x00000001063b9ebc: test %r10d,%r10d | |
0x00000001063b9ebf: jle 0x00000001063ba40d ;*if_icmpge | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@40 (line 27) | |
0x00000001063b9ec5: movabs $0x7957a9d90,%r11 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/clone/CloneCopy')} | |
0x00000001063b9ecf: movabs $0x7957a9d90,%rcx ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/clone/CloneCopy')} | |
0x00000001063b9ed9: add $0x8,%rcx | |
0x00000001063b9edd: movabs $0x795503338,%rbx ; {oop("null")} | |
0x00000001063b9ee7: xor %r11d,%r11d | |
0x00000001063b9eea: jmpq 0x00000001063ba01c | |
0x00000001063b9eef: nop | |
0x00000001063b9ef0: mov %r8,0x60(%r15) | |
0x00000001063b9ef4: prefetchnta 0xc0(%r8) | |
0x00000001063b9efc: mov $0xd7610ea1,%r8d ; {oop('com/vyazelenko/blog/copyobject/primitives/clone/CloneCopy')} | |
0x00000001063b9f02: mov 0xb0(%r12,%r8,8),%r8 | |
0x00000001063b9f0a: mov %r8,(%rax) | |
0x00000001063b9f0d: movl $0xd7610ea1,0x8(%rax) ; {oop('com/vyazelenko/blog/copyobject/primitives/clone/CloneCopy')} | |
0x00000001063b9f14: mov %r10d,(%rsp) | |
0x00000001063b9f18: mov %rbx,0x8(%rsp) | |
0x00000001063b9f1d: mov %rcx,0x10(%rsp) | |
0x00000001063b9f22: mov %r11d,0x4(%rsp) | |
0x00000001063b9f27: mov %r9d,0x18(%rsp) ;*invokespecial clone | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::clone@1 (line 16) | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::copy@1 (line 24) | |
; - com.vyazelenko.blog.copyobject.TestClone::callCopy@3 (line 38) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@46 (line 28) | |
0x00000001063b9f2c: mov %rax,%r10 ;*areturn | |
; - com.vyazelenko.blog.copyobject.TestClone::callCopy@6 (line 38) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@46 (line 28) | |
0x00000001063b9f2f: mov %r10,0x20(%rsp) | |
0x00000001063b9f34: mov %rax,%rsi | |
0x00000001063b9f37: add $0x8,%rsi | |
0x00000001063b9f3b: mov 0x10(%rsp),%rdi | |
0x00000001063b9f40: mov $0xa,%edx | |
0x00000001063b9f45: movabs $0x106398120,%r10 | |
0x00000001063b9f4f: callq *%r10 ;*invokespecial clone | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::clone@1 (line 16) | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::copy@1 (line 24) | |
; - com.vyazelenko.blog.copyobject.TestClone::callCopy@3 (line 38) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@46 (line 28) | |
0x00000001063b9f52: mov 0x18(%rsp),%r11d | |
0x00000001063b9f57: mov 0x8(%r12,%r11,8),%r11d ; implicit exception: dispatches to 0x00000001063ba44b | |
0x00000001063b9f5c: cmp $0xd75de4cc,%r11d ; {oop('java/util/ArrayList')} | |
0x00000001063b9f63: jne 0x00000001063ba09d | |
0x00000001063b9f69: mov 0x18(%rsp),%r10d | |
0x00000001063b9f6e: lea (%r12,%r10,8),%r11 ;*invokeinterface add | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
0x00000001063b9f72: mov 0x14(%r11),%r10d ;*getfield elementData | |
; - java.util.ArrayList::ensureCapacityInternal@1 (line 204) | |
; - java.util.ArrayList::add@7 (line 440) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
0x00000001063b9f76: mov 0x10(%r11),%r8d ;*getfield size | |
; - java.util.ArrayList::add@2 (line 440) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
0x00000001063b9f7a: mov %r11,0x18(%rsp) | |
0x00000001063b9f7f: mov %r8d,%edx | |
0x00000001063b9f82: inc %edx ;*iadd | |
; - java.util.ArrayList::add@6 (line 440) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
0x00000001063b9f84: cmp $0xf2aa202d,%r10d ; {oop(a 'java/lang/Object'[0] )} | |
0x00000001063b9f8b: je 0x00000001063ba0e1 ;*if_acmpne | |
; - java.util.ArrayList::ensureCapacityInternal@7 (line 204) | |
; - java.util.ArrayList::add@7 (line 440) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
0x00000001063b9f91: incl 0xc(%r11) ;*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.TestClone::doCopy@49 (line 28) | |
0x00000001063b9f95: mov 0xc(%r12,%r10,8),%r9d ;*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.TestClone::doCopy@49 (line 28) | |
; implicit exception: dispatches to 0x00000001063ba461 | |
0x00000001063b9f9a: mov %r8d,%r11d | |
0x00000001063b9f9d: sub %r9d,%r11d | |
0x00000001063b9fa0: inc %r11d | |
0x00000001063b9fa3: test %r11d,%r11d | |
0x00000001063b9fa6: jg 0x00000001063ba111 ;*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.TestClone::doCopy@49 (line 28) | |
0x00000001063b9fac: mov 0x18(%rsp),%r11 | |
0x00000001063b9fb1: mov %edx,0x10(%r11) ;*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.TestClone::doCopy@49 (line 28) | |
0x00000001063b9fb5: mov 0xc(%r12,%r10,8),%r11d | |
0x00000001063b9fba: cmp %r11d,%r8d | |
0x00000001063b9fbd: jae 0x00000001063ba075 | |
0x00000001063b9fc3: mov 0x8(%r12,%r10,8),%r11d | |
0x00000001063b9fc8: cmp $0xd75d45e9,%r11d ; {oop('java/lang/Object'[])} | |
0x00000001063b9fcf: jne 0x00000001063ba0b9 | |
0x00000001063b9fd5: mov 0x20(%rsp),%r11 | |
0x00000001063b9fda: shr $0x3,%r11 ;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
0x00000001063b9fde: shl $0x3,%r10 ;*getfield elementData | |
; - java.util.ArrayList::add@11 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
0x00000001063b9fe2: lea 0x10(%r10,%r8,4),%r10 | |
0x00000001063b9fe7: mov %r11d,(%r10) | |
0x00000001063b9fea: shr $0x9,%r10 | |
0x00000001063b9fee: movabs $0x105e3f000,%r11 | |
0x00000001063b9ff8: mov %r12b,(%r11,%r10,1) ;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
0x00000001063b9ffc: mov 0x4(%rsp),%r11d | |
0x00000001063ba001: inc %r11d ;*iinc | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@55 (line 27) | |
0x00000001063ba004: cmp (%rsp),%r11d | |
0x00000001063ba008: jge 0x00000001063ba161 | |
0x00000001063ba00e: mov (%rsp),%r10d | |
0x00000001063ba012: mov 0x8(%rsp),%rbx | |
0x00000001063ba017: mov 0x10(%rsp),%rcx | |
0x00000001063ba01c: movabs $0x7955afb58,%r8 ; {oop(a 'java/lang/Class' = 'com/vyazelenko/blog/copyobject/TestClone')} | |
0x00000001063ba026: mov 0x70(%r8),%r9d ;*invokespecial clone | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::clone@1 (line 16) | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::copy@1 (line 24) | |
; - com.vyazelenko.blog.copyobject.TestClone::callCopy@3 (line 38) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@46 (line 28) | |
0x00000001063ba02a: mov 0x60(%r15),%rax | |
0x00000001063ba02e: mov %rax,%r8 | |
0x00000001063ba031: add $0x58,%r8 | |
0x00000001063ba035: cmp 0x70(%r15),%r8 | |
0x00000001063ba039: jb 0x00000001063b9ef0 | |
0x00000001063ba03f: mov %r9d,0x18(%rsp) | |
0x00000001063ba044: mov %r11d,0x4(%rsp) | |
0x00000001063ba049: mov %rcx,0x10(%rsp) | |
0x00000001063ba04e: mov %rbx,0x8(%rsp) | |
0x00000001063ba053: mov %r10d,(%rsp) | |
0x00000001063ba057: movabs $0x6bb087508,%rsi ; {oop('com/vyazelenko/blog/copyobject/primitives/clone/CloneCopy')} | |
0x00000001063ba061: movabs $0x7957a9d90,%rbp ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/clone/CloneCopy')} | |
0x00000001063ba06b: callq 0x00000001063b4fe0 ; OopMap{rbp=Oop [8]=Oop [16]=Derived_oop_rbp [24]=NarrowOop [40]=Oop off=1104} | |
;*invokespecial clone | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::clone@1 (line 16) | |
; - com.vyazelenko.blog.copyobject.primitives.clone.CloneCopy::copy@1 (line 24) | |
; - com.vyazelenko.blog.copyobject.TestClone::callCopy@3 (line 38) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@46 (line 28) | |
; {runtime_call} | |
0x00000001063ba070: jmpq 0x00000001063b9f2c ;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
0x00000001063ba075: mov $0xffffffe4,%esi | |
0x00000001063ba07a: mov (%rsp),%ebp | |
0x00000001063ba07d: mov 0x4(%rsp),%r11d | |
0x00000001063ba082: mov %r11d,(%rsp) | |
0x00000001063ba086: mov %r10d,0x4(%rsp) | |
0x00000001063ba08b: mov %r8d,0x8(%rsp) | |
0x00000001063ba090: data32 xchg %ax,%ax | |
0x00000001063ba093: callq 0x000000010638ef20 ; OopMap{[4]=NarrowOop [32]=Oop [40]=Oop off=1144} | |
;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
; {runtime_call} | |
0x00000001063ba098: callq 0x0000000105c165de ;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
; {runtime_call} | |
0x00000001063ba09d: mov $0xffffffde,%esi | |
0x00000001063ba0a2: mov (%rsp),%ebp | |
0x00000001063ba0a5: mov 0x4(%rsp),%r11d | |
0x00000001063ba0aa: mov %r11d,(%rsp) | |
0x00000001063ba0ae: nop | |
0x00000001063ba0af: callq 0x000000010638ef20 ; OopMap{[24]=NarrowOop [32]=Oop [40]=Oop off=1172} | |
;*invokeinterface add | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
; {runtime_call} | |
0x00000001063ba0b4: callq 0x0000000105c165de ;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
; {runtime_call} | |
0x00000001063ba0b9: mov $0xffffffd6,%esi | |
0x00000001063ba0be: mov (%rsp),%ebp | |
0x00000001063ba0c1: mov 0x4(%rsp),%r9d | |
0x00000001063ba0c6: mov %r9d,(%rsp) | |
0x00000001063ba0ca: mov %r10d,0x4(%rsp) | |
0x00000001063ba0cf: mov %r8d,0x8(%rsp) | |
0x00000001063ba0d4: data32 xchg %ax,%ax | |
0x00000001063ba0d7: callq 0x000000010638ef20 ; OopMap{[4]=NarrowOop [32]=Oop [40]=Oop off=1212} | |
;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
; {runtime_call} | |
0x00000001063ba0dc: callq 0x0000000105c165de ;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
; {runtime_call} | |
0x00000001063ba0e1: mov $0xffffffad,%esi | |
0x00000001063ba0e6: mov (%rsp),%ebp | |
0x00000001063ba0e9: mov 0x4(%rsp),%r8d | |
0x00000001063ba0ee: mov %r8d,(%rsp) | |
0x00000001063ba0f2: rex.W pushq 0x20(%rsp) | |
0x00000001063ba0f7: rex.W popq 0x10(%rsp) | |
0x00000001063ba0fc: mov %edx,0x4(%rsp) | |
0x00000001063ba100: mov %r10d,0x20(%rsp) | |
0x00000001063ba105: xchg %ax,%ax | |
0x00000001063ba107: callq 0x000000010638ef20 ; OopMap{[16]=Oop [24]=Oop [32]=NarrowOop [40]=Oop off=1260} | |
;*if_acmpne | |
; - java.util.ArrayList::ensureCapacityInternal@7 (line 204) | |
; - java.util.ArrayList::add@7 (line 440) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
; {runtime_call} | |
0x00000001063ba10c: callq 0x0000000105c165de ;*synchronization entry | |
; - java.util.ArrayList::ensureExplicitCapacity@-1 (line 212) | |
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208) | |
; - java.util.ArrayList::add@7 (line 440) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
; {runtime_call} | |
0x00000001063ba111: mov 0x18(%rsp),%rsi | |
0x00000001063ba116: movabs $0x7957a9d90,%rbp ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/clone/CloneCopy')} | |
0x00000001063ba120: data32 xchg %ax,%ax | |
0x00000001063ba123: callq 0x000000010638db60 ; OopMap{rbp=Oop [8]=Oop [16]=Derived_oop_rbp [24]=Oop [32]=Oop [40]=Oop off=1288} | |
;*invokespecial grow | |
; - java.util.ArrayList::ensureExplicitCapacity@22 (line 216) | |
; - java.util.ArrayList::ensureCapacityInternal@19 (line 208) | |
; - java.util.ArrayList::add@7 (line 440) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
; {optimized virtual_call} | |
0x00000001063ba128: mov 0x18(%rsp),%r10 | |
0x00000001063ba12d: mov 0x10(%r10),%r8d ;*getfield size | |
; - java.util.ArrayList::add@16 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
0x00000001063ba131: mov 0x14(%r10),%r10d ;*getfield elementData | |
; - java.util.ArrayList::add@11 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
0x00000001063ba135: mov %r8d,%r9d | |
0x00000001063ba138: inc %r9d | |
0x00000001063ba13b: mov 0x18(%rsp),%r11 | |
0x00000001063ba140: mov %r9d,0x10(%r11) ;*putfield size | |
; - java.util.ArrayList::add@22 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
0x00000001063ba144: test %r10d,%r10d | |
0x00000001063ba147: jne 0x00000001063b9fb5 ;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
0x00000001063ba14d: mov $0xfffffff6,%esi | |
0x00000001063ba152: mov %r8d,%ebp | |
0x00000001063ba155: xchg %ax,%ax | |
0x00000001063ba157: callq 0x000000010638ef20 ; OopMap{[32]=Oop off=1340} | |
;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
; {runtime_call} | |
0x00000001063ba15c: callq 0x0000000105c165de ;*aastore | |
; - java.util.ArrayList::add@26 (line 441) | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28) | |
; {runtime_call} | |
0x00000001063ba161: mov 0x8(%rsp),%r9 ;*if_icmpge | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@40 (line 27) | |
0x00000001063ba166: mov 0x28(%rsp),%r8 | |
0x00000001063ba16b: test %r8,%r8 | |
0x00000001063ba16e: jne 0x00000001063ba441 | |
0x00000001063ba174: movabs $0x795500d10,%r10 ; {oop(a 'java/lang/Class' = 'java/lang/System')} | |
0x00000001063ba17e: mov 0x74(%r10),%ebp ;*getstatic out | |
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@61 (line 30) | |
0x00000001063ba182: mov 0xc(%r9),%r11d | |
0x00000001063ba186: mov 0xc(%r12,%r11,8),%r11d | |
0x00000001063ba18b: mov %r11d,%r10d | |
0x00000001063ba18e: add $0x4,%r10d | |
0x00000001063ba192: test %r10d,%r10d | |
0x00000001063ba195: jl 0x00000001063ba431 | |
0x00000001063ba19b: mov %r11d,%edx | |
0x00000001063ba19e: add $0xe,%edx | |
0x00000001063ba1a1: test %edx,%edx | |
0x00000001063ba1a3: jl 0x00000001063ba431 | |
0x00000001063ba1a9: cmp $0x80000,%edx | |
0x00000001063ba1af: ja 0x00000001063ba3a8 | |
0x00000001063ba1b5: mov 0x60(%r15),%rcx | |
0x00000001063ba1b9: movslq %r11d,%r10 | |
0x00000001063ba1bc: shl %r10 | |
0x00000001063ba1bf: add $0x33,%r10 | |
0x00000001063ba1c3: and $0xfffffffffffffff8,%r10 | |
0x00000001063ba1c7: mov %rcx,%r11 | |
0x00000001063ba1ca: add %r10,%r11 | |
0x00000001063ba1cd: cmp 0x70(%r15),%r11 | |
0x00000001063ba1d1: jae 0x00000001063ba3a8 | |
0x00000001063ba1d7: mov %r11,0x60(%r15) | |
0x00000001063ba1db: prefetchnta 0xc0(%r11) | |
0x00000001063ba1e3: movq $0x1,(%rcx) | |
0x00000001063ba1ea: prefetchnta 0x100(%r11) | |
0x00000001063ba1f2: movl $0xd75c00c5,0x8(%rcx) ; {oop({type array char})} | |
0x00000001063ba1f9: mov %edx,0xc(%rcx) | |
0x00000001063ba1fc: prefetchnta 0x140(%r11) | |
0x00000001063ba204: prefetchnta 0x180(%r11) | |
0x00000001063ba20c: rex.W pushq 0x28(%rsp) | |
0x00000001063ba211: rex.W popq (%rsp) | |
0x00000001063ba215: mov %r9,0x8(%rsp) | |
0x00000001063ba21a: mov 0x8(%rsp),%r10 | |
0x00000001063ba21f: mov 0xc(%r10),%r11d | |
0x00000001063ba223: mov %rcx,%r10 | |
0x00000001063ba226: add $0x18,%r10 | |
0x00000001063ba22a: mov 0xc(%r12,%r11,8),%r9d | |
0x00000001063ba22f: lea (%r12,%r11,8),%r8 | |
0x00000001063ba233: lea 0x10(%r12,%r11,8),%r11 | |
0x00000001063ba238: movslq %r9d,%rdx | |
0x00000001063ba23b: lea 0x18(%rcx,%rdx,2),%r8 | |
0x00000001063ba240: mov %r8,%rbx | |
0x00000001063ba243: mov $0x20,%r9d | |
0x00000001063ba249: movabs $0x795880e50,%r8 ; {oop([C)} | |
0x00000001063ba253: movabs $0x795880e50,%rdi ; {oop([C)} | |
0x00000001063ba25d: add $0x10,%rdi | |
0x00000001063ba261: mov %rdi,%r13 | |
0x00000001063ba264: mov $0x3c,%r8d | |
0x00000001063ba26a: mov %r8w,0x10(%rcx) | |
0x00000001063ba26f: mov %r8w,0x12(%rcx) | |
0x00000001063ba274: mov %r8w,0x14(%rcx) | |
0x00000001063ba279: mov %r9w,0x16(%rcx) | |
0x00000001063ba27e: mov %rcx,0x8(%rsp) | |
0x00000001063ba283: mov %r11,%rdi | |
0x00000001063ba286: mov %r10,%rsi | |
0x00000001063ba289: movabs $0x106397e00,%r10 | |
0x00000001063ba293: callq *%r10 | |
0x00000001063ba296: mov %r13,%rdi | |
0x00000001063ba299: mov %rbx,%rsi | |
0x00000001063ba29c: mov $0xa,%edx | |
0x00000001063ba2a1: movabs $0x106397e00,%r10 | |
0x00000001063ba2ab: callq *%r10 | |
0x00000001063ba2ae: mov 0x60(%r15),%r10 | |
0x00000001063ba2b2: mov %r10,%r11 | |
0x00000001063ba2b5: add $0x18,%r11 | |
0x00000001063ba2b9: cmp 0x70(%r15),%r11 | |
0x00000001063ba2bd: jae 0x0000000 |