Skip to content

Instantly share code, notes, and snippets.

@vyazelenko
Last active December 27, 2015 03:29
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save vyazelenko/7259562 to your computer and use it in GitHub Desktop.
Complete ASM code for TestClone case
Java HotSpot(TM) 64-Bit Server VM warning: PrintAssembly is enabled; turning on DebugNonSafepoints to gain additional output
Loaded disassembler from /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre/lib/hsdis-amd64.dylib
Decoding compiled method 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 0x00000001063ba390
0x00000001063ba2c3: mov %r11,0x60(%r15)
0x00000001063ba2c7: prefetchnta 0xc0(%r11)
0x00000001063ba2cf: mov $0xd75c15c3,%r11d ; {oop('java/lang/String')}
0x00000001063ba2d5: mov 0xb0(%r12,%r11,8),%r11
0x00000001063ba2dd: mov %r10,%r8
0x00000001063ba2e0: mov %r11,(%r8)
0x00000001063ba2e3: movl $0xd75c15c3,0x8(%r8) ; {oop('java/lang/String')}
0x00000001063ba2eb: mov %r12d,0xc(%r8)
0x00000001063ba2ef: mov %r12,0x10(%r8)
0x00000001063ba2f3: mov 0x8(%rsp),%r10
0x00000001063ba2f8: shr $0x3,%r10
0x00000001063ba2fc: mov %r10d,0xc(%r8)
0x00000001063ba300: test %ebp,%ebp
0x00000001063ba302: je 0x00000001063ba41c ;*invokevirtual println
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@88 (line 30)
0x00000001063ba308: lea (%r12,%rbp,8),%rsi ;*getstatic out
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@61 (line 30)
0x00000001063ba30c: mov %r8,%rdx
0x00000001063ba30f: callq 0x000000010638db60 ; OopMap{off=1780}
;*invokevirtual println
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@88 (line 30)
; {optimized virtual_call}
0x00000001063ba314: add $0x40,%rsp
0x00000001063ba318: pop %rbp
0x00000001063ba319: test %eax,-0x1bcd31f(%rip) # 0x00000001047ed000
; {poll_return}
0x00000001063ba31f: retq
0x00000001063ba320: movabs $0x6baef2660,%rsi ; {oop('java/util/ArrayList')}
0x00000001063ba32a: nop
0x00000001063ba32b: callq 0x00000001063b4fe0 ; OopMap{[8]=Oop off=1808}
;*new ; - com.vyazelenko.blog.copyobject.TestClone::doCopy@0 (line 25)
; {runtime_call}
0x00000001063ba330: mov %rax,%rbp
0x00000001063ba333: jmpq 0x00000001063b9c76 ;*ifge
; - java.util.ArrayList::<init>@5 (line 141)
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@5 (line 25)
0x00000001063ba338: movabs $0x6baea2f48,%rsi ; {oop('java/lang/Object'[])}
0x00000001063ba342: mov (%rsp),%edx
0x00000001063ba345: xchg %ax,%ax
0x00000001063ba347: callq 0x00000001063b4f20 ; OopMap{rbp=Oop [8]=Oop off=1836}
;*anewarray
; - java.util.ArrayList::<init>@37 (line 144)
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@5 (line 25)
; {runtime_call}
0x00000001063ba34c: mov %rax,%r8
0x00000001063ba34f: jmpq 0x00000001063b9d0a
0x00000001063ba354: movabs $0x6bae0ae18,%rsi ; {oop('java/lang/String')}
0x00000001063ba35e: nop
0x00000001063ba35f: callq 0x00000001063b4fe0 ; OopMap{rbp=NarrowOop [16]=Oop [40]=Oop off=1860}
;*new ; - com.vyazelenko.blog.copyobject.TestClone::doCopy@14 (line 26)
; {runtime_call}
0x00000001063ba364: mov %rax,%rdx
0x00000001063ba367: jmpq 0x00000001063b9e97
0x00000001063ba36c: mov %rbx,0x8(%rsp)
0x00000001063ba371: mov %r9,0x28(%rsp)
0x00000001063ba376: movabs $0x6bae00628,%rsi ; {oop({type array char})}
0x00000001063ba380: data32 xchg %ax,%ax
0x00000001063ba383: callq 0x00000001063b4f20 ; OopMap{rbp=NarrowOop [8]=Oop [40]=Oop off=1896}
;*new ; - com.vyazelenko.blog.copyobject.TestClone::doCopy@14 (line 26)
; {runtime_call}
0x00000001063ba388: mov %rax,%r8
0x00000001063ba38b: jmpq 0x00000001063b9df9
0x00000001063ba390: movabs $0x6bae0ae18,%rsi ; {oop('java/lang/String')}
0x00000001063ba39a: nop
0x00000001063ba39b: callq 0x00000001063b4fe0 ; OopMap{rbp=NarrowOop [0]=Oop [8]=Oop off=1920}
;*new ; - com.vyazelenko.blog.copyobject.TestClone::doCopy@64 (line 30)
; {runtime_call}
0x00000001063ba3a0: mov %rax,%r8
0x00000001063ba3a3: jmpq 0x00000001063ba2f3
0x00000001063ba3a8: mov %r9,0x8(%rsp)
0x00000001063ba3ad: rex.W pushq 0x28(%rsp)
0x00000001063ba3b2: rex.W popq (%rsp)
0x00000001063ba3b6: movabs $0x6bae00628,%rsi ; {oop({type array char})}
0x00000001063ba3c0: data32 xchg %ax,%ax
0x00000001063ba3c3: callq 0x00000001063b4f20 ; OopMap{rbp=NarrowOop [0]=Oop [8]=Oop [40]=Oop off=1960}
;*new ; - com.vyazelenko.blog.copyobject.TestClone::doCopy@64 (line 30)
; {runtime_call}
0x00000001063ba3c8: mov %rax,%rcx
0x00000001063ba3cb: jmpq 0x00000001063ba21a
0x00000001063ba3d0: mov $0xfffffff6,%esi
0x00000001063ba3d5: mov %rdx,%rbp
0x00000001063ba3d8: data32 xchg %ax,%ax
0x00000001063ba3db: callq 0x000000010638ef20 ; OopMap{rbp=Oop off=1984}
;*invokevirtual println
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@33 (line 26)
; {runtime_call}
0x00000001063ba3e0: callq 0x0000000105c165de ;*invokespecial <init>
; - java.util.ArrayList::<init>@1 (line 140)
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@5 (line 25)
; {runtime_call}
0x00000001063ba3e5: mov $0x4,%esi
0x00000001063ba3ea: nop
0x00000001063ba3eb: callq 0x000000010638ef20 ; OopMap{rbp=Oop [8]=Oop off=2000}
;*new ; - java.util.ArrayList::<init>@8 (line 142)
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@5 (line 25)
; {runtime_call}
0x00000001063ba3f0: callq 0x0000000105c165de ;*new
; - java.util.ArrayList::<init>@8 (line 142)
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@5 (line 25)
; {runtime_call}
0x00000001063ba3f5: mov $0xffffffcc,%esi
0x00000001063ba3fa: nop
0x00000001063ba3fb: callq 0x000000010638ef20 ; OopMap{rbp=NarrowOop [8]=Oop off=2016}
;*new ; - com.vyazelenko.blog.copyobject.TestClone::doCopy@14 (line 26)
; {runtime_call}
0x00000001063ba400: callq 0x0000000105c165de ; {runtime_call}
0x00000001063ba405: mov %r9,%rbx
0x00000001063ba408: jmpq 0x00000001063b9d22
0x00000001063ba40d: movabs $0x795503338,%r9 ; {oop("null")}
0x00000001063ba417: jmpq 0x00000001063ba166
0x00000001063ba41c: mov $0xfffffff6,%esi
0x00000001063ba421: mov %r8,%rbp
0x00000001063ba424: data32 xchg %ax,%ax
0x00000001063ba427: callq 0x000000010638ef20 ; OopMap{rbp=Oop off=2060}
;*invokevirtual println
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@88 (line 30)
; {runtime_call}
0x00000001063ba42c: callq 0x0000000105c165de ;*invokevirtual println
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@88 (line 30)
; {runtime_call}
0x00000001063ba431: mov $0xffffffcc,%esi
0x00000001063ba436: nop
0x00000001063ba437: callq 0x000000010638ef20 ; OopMap{rbp=NarrowOop [40]=Oop off=2076}
;*new ; - com.vyazelenko.blog.copyobject.TestClone::doCopy@64 (line 30)
; {runtime_call}
0x00000001063ba43c: callq 0x0000000105c165de ; {runtime_call}
0x00000001063ba441: mov 0x28(%rsp),%r9
0x00000001063ba446: jmpq 0x00000001063ba174
0x00000001063ba44b: mov $0xfffffff6,%esi
0x00000001063ba450: mov 0x20(%rsp),%rbp
0x00000001063ba455: xchg %ax,%ax
0x00000001063ba457: callq 0x000000010638ef20 ; OopMap{rbp=Oop off=2108}
;*invokeinterface add
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@49 (line 28)
; {runtime_call}
0x00000001063ba45c: callq 0x0000000105c165de ; {runtime_call}
0x00000001063ba461: mov $0xfffffff6,%esi
0x00000001063ba466: nop
0x00000001063ba467: callq 0x000000010638ef20 ; OopMap{off=2124}
;*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}
0x00000001063ba46c: 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}
0x00000001063ba471: jmp 0x00000001063ba473
0x00000001063ba473: mov %rax,%rsi
0x00000001063ba476: jmp 0x00000001063ba4a8 ;*new
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@0 (line 25)
0x00000001063ba478: mov %rax,%rsi
0x00000001063ba47b: jmp 0x00000001063ba4a8 ;*anewarray
; - java.util.ArrayList::<init>@37 (line 144)
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@5 (line 25)
0x00000001063ba47d: mov %rax,%rsi
0x00000001063ba480: jmp 0x00000001063ba4a8
0x00000001063ba482: jmp 0x00000001063ba484
0x00000001063ba484: mov %rax,%rsi
0x00000001063ba487: jmp 0x00000001063ba4a8 ;*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)
0x00000001063ba489: mov %rax,%rsi
0x00000001063ba48c: jmp 0x00000001063ba4a8 ;*invokevirtual println
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@88 (line 30)
0x00000001063ba48e: mov %rax,%rsi
0x00000001063ba491: jmp 0x00000001063ba4a8 ;*invokevirtual println
; - com.vyazelenko.blog.copyobject.TestClone::doCopy@33 (line 26)
0x00000001063ba493: mov %rax,%rsi
0x00000001063ba496: jmp 0x00000001063ba4a8
0x00000001063ba498: mov 0x8(%rax),%r10d
0x00000001063ba49c: cmp $0xd7610fdb,%r10d ; {oop('java/lang/CloneNotSupportedException')}
0x00000001063ba4a3: je 0x00000001063ba4b2 ;*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)
0x00000001063ba4a5: mov %rax,%rsi ;*new ; - com.vyazelenko.blog.copyobject.TestClone::doCopy@0 (line 25)
0x00000001063ba4a8: add $0x40,%rsp
0x00000001063ba4ac: pop %rbp
0x00000001063ba4ad: jmpq 0x00000001063b7e20 ; {runtime_call}
0x00000001063ba4b2: 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)
0x00000001063ba4b5: mov $0x5,%esi
0x00000001063ba4ba: nop
0x00000001063ba4bb: callq 0x000000010638ef20 ; OopMap{rbp=Oop [24]=NarrowOop [40]=Oop off=2208}
;*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}
0x00000001063ba4c0: 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}
0x00000001063ba4c5: hlt
0x00000001063ba4c6: hlt
0x00000001063ba4c7: hlt
0x00000001063ba4c8: hlt
0x00000001063ba4c9: hlt
0x00000001063ba4ca: hlt
0x00000001063ba4cb: hlt
0x00000001063ba4cc: hlt
0x00000001063ba4cd: hlt
0x00000001063ba4ce: hlt
0x00000001063ba4cf: hlt
0x00000001063ba4d0: hlt
0x00000001063ba4d1: hlt
0x00000001063ba4d2: hlt
0x00000001063ba4d3: hlt
0x00000001063ba4d4: hlt
0x00000001063ba4d5: hlt
0x00000001063ba4d6: hlt
0x00000001063ba4d7: hlt
0x00000001063ba4d8: hlt
0x00000001063ba4d9: hlt
0x00000001063ba4da: hlt
0x00000001063ba4db: hlt
0x00000001063ba4dc: hlt
0x00000001063ba4dd: hlt
0x00000001063ba4de: hlt
0x00000001063ba4df: hlt
[Stub Code]
0x00000001063ba4e0: movabs $0x0,%rbx ; {no_reloc}
0x00000001063ba4ea: jmpq 0x00000001063ba4ea ; {runtime_call}
0x00000001063ba4ef: movabs $0x0,%rbx ; {static_stub}
0x00000001063ba4f9: jmpq 0x00000001063ba4f9 ; {runtime_call}
0x00000001063ba4fe: movabs $0x0,%rbx ; {static_stub}
0x00000001063ba508: jmpq 0x00000001063ba508 ; {runtime_call}
[Exception Handler]
0x00000001063ba50d: jmpq 0x00000001063b50a0 ; {runtime_call}
[Deopt Handler Code]
0x00000001063ba512: callq 0x00000001063ba517
0x00000001063ba517: subq $0x5,(%rsp)
0x00000001063ba51c: jmpq 0x000000010638eb00 ; {runtime_call}
0x00000001063ba521: hlt
0x00000001063ba522: hlt
0x00000001063ba523: hlt
0x00000001063ba524: hlt
0x00000001063ba525: hlt
0x00000001063ba526: hlt
0x00000001063ba527: hlt
>>> In test
<<< test completed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment