Assembly dump for TestConstructor#callCopy() method
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Decoding compiled method 0x000000010c064b50: | |
Code: | |
[Entry Point] | |
[Verified Entry Point] | |
[Constants] | |
# {method} 'callCopy' '()Lcom/vyazelenko/blog/copyobject/Copyable;' in 'com/vyazelenko/blog/copyobject/TestConstructor' | |
# [sp+0x20] (sp of caller) | |
0x000000010c064ca0: mov %eax,-0x14000(%rsp) | |
0x000000010c064ca7: push %rbp | |
0x000000010c064ca8: sub $0x10,%rsp ;*synchronization entry | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@-1 (line 39) | |
0x000000010c064cac: mov 0x60(%r15),%r8 | |
0x000000010c064cb0: mov %r8,%r10 | |
0x000000010c064cb3: add $0x58,%r10 | |
0x000000010c064cb7: cmp 0x70(%r15),%r10 | |
0x000000010c064cbb: jae 0x000000010c064de3 | |
0x000000010c064cc1: mov %r10,0x60(%r15) | |
0x000000010c064cc5: prefetchnta 0xc0(%r10) | |
0x000000010c064ccd: mov %r8,%rdi | |
0x000000010c064cd0: add $0x10,%rdi | |
0x000000010c064cd4: mov $0xd7610e71,%r10d ; {oop('com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')} | |
0x000000010c064cda: mov 0xb0(%r12,%r10,8),%r10 | |
0x000000010c064ce2: mov %r10,(%r8) | |
0x000000010c064ce5: movl $0xd7610e71,0x8(%r8) ; {oop('com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')} | |
0x000000010c064ced: mov %r12d,0xc(%r8) | |
0x000000010c064cf1: mov $0x9,%ecx | |
0x000000010c064cf6: xor %rax,%rax | |
0x000000010c064cf9: shl $0x3,%rcx | |
0x000000010c064cfd: rep rex.W stos %al,%es:(%rdi) ;*new | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@0 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d00: mov %r8,%rax ;*areturn | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@6 (line 39) | |
0x000000010c064d03: movabs $0x7957aa098,%r9 ; {oop(a 'com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')} | |
0x000000010c064d0d: mov 0xc(%r9),%r11d | |
0x000000010c064d11: mov %r11d,0xc(%r8) ;*putfield field1 | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@9 (line 29) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d15: movzwl 0x54(%r9),%r10d | |
0x000000010c064d1a: mov %r10w,0x54(%r8) ;*putfield x | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@114 (line 120) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d1f: movswl 0x52(%r9),%r11d | |
0x000000010c064d24: mov %r11w,0x52(%r8) ;*putfield m10 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@106 (line 119) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d29: movswl 0x50(%r9),%r10d | |
0x000000010c064d2e: mov %r10w,0x50(%r8) ;*putfield m9 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@98 (line 118) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d33: movswl 0x4e(%r9),%r11d | |
0x000000010c064d38: mov %r11w,0x4e(%r8) ;*putfield m8 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@90 (line 117) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d3d: movswl 0x4c(%r9),%r10d | |
0x000000010c064d42: mov %r10w,0x4c(%r8) ;*putfield m7 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@82 (line 116) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d47: movswl 0x4a(%r9),%r11d | |
0x000000010c064d4c: mov %r11w,0x4a(%r8) ;*putfield m6 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@74 (line 115) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d51: movswl 0x48(%r9),%r10d | |
0x000000010c064d56: mov %r10w,0x48(%r8) ;*putfield m5 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@66 (line 114) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d5b: movswl 0x46(%r9),%r11d | |
0x000000010c064d60: mov %r11w,0x46(%r8) ;*putfield m4 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@58 (line 113) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d65: movswl 0x44(%r9),%r10d | |
0x000000010c064d6a: mov %r10w,0x44(%r8) ;*putfield m3 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@50 (line 112) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d6f: movswl 0x42(%r9),%r11d | |
0x000000010c064d74: mov %r11w,0x42(%r8) ;*putfield m2 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@42 (line 111) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d79: movswl 0x40(%r9),%r10d | |
0x000000010c064d7e: mov %r10w,0x40(%r8) ;*putfield m1 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@34 (line 110) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d83: mov 0x38(%r9),%r10 | |
0x000000010c064d87: mov %r10,0x38(%r8) ;*putfield youCanSeeMe | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@26 (line 109) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d8b: vmovsd 0x30(%r9),%xmm0 | |
0x000000010c064d91: vmovsd %xmm0,0x30(%r8) ;*putfield anotherField | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@10 (line 107) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d97: mov 0x2c(%r9),%r11d | |
0x000000010c064d9b: mov %r11d,0x2c(%r8) ;*putfield field1 | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@18 (line 108) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064d9f: movsbl 0x2b(%r9),%r10d | |
0x000000010c064da4: mov %r10b,0x2b(%r8) ;*putfield abc | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@33 (line 32) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064da8: movzbl 0x2a(%r9),%r11d | |
0x000000010c064dad: mov %r11b,0x2a(%r8) ;*putfield field6 | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@25 (line 31) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064db1: movzwl 0x28(%r9),%r10d | |
0x000000010c064db6: mov %r10w,0x28(%r8) ;*putfield field2 | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@17 (line 30) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064dbb: vmovsd 0x20(%r9),%xmm0 | |
0x000000010c064dc1: vmovsd %xmm0,0x20(%r8) ;*putfield maxExponent | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@57 (line 35) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064dc7: mov 0x18(%r9),%r10 | |
0x000000010c064dcb: mov %r10,0x18(%r8) ;*putfield max | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@49 (line 34) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064dcf: mov 0x10(%r9),%r10 | |
0x000000010c064dd3: mov %r10,0x10(%r8) ;*putfield min | |
; - com.vyazelenko.blog.copyobject.primitives.Root::<init>@41 (line 33) | |
; - com.vyazelenko.blog.copyobject.primitives.BaseClass::<init>@2 (line 106) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::<init>@2 (line 18) | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@5 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064dd7: add $0x10,%rsp | |
0x000000010c064ddb: pop %rbp | |
0x000000010c064ddc: test %eax,-0x10b4de2(%rip) # 0x000000010afb0000 | |
; {poll_return} | |
0x000000010c064de2: retq | |
0x000000010c064de3: movabs $0x6bb087388,%rsi ; {oop('com/vyazelenko/blog/copyobject/primitives/constructor/ConstructorCopy')} | |
0x000000010c064ded: xchg %ax,%ax | |
0x000000010c064def: callq 0x000000010c05efe0 ; OopMap{off=340} | |
;*new ; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@0 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
; {runtime_call} | |
0x000000010c064df4: mov %rax,%r8 | |
0x000000010c064df7: jmpq 0x000000010c064d00 ;*new | |
; - com.vyazelenko.blog.copyobject.primitives.constructor.ConstructorCopy::copy@0 (line 23) | |
; - com.vyazelenko.blog.copyobject.TestConstructor::callCopy@3 (line 39) | |
0x000000010c064dfc: mov %rax,%rsi | |
0x000000010c064dff: add $0x10,%rsp | |
0x000000010c064e03: pop %rbp | |
0x000000010c064e04: jmpq 0x000000010c061e20 ; {runtime_call} | |
0x000000010c064e09: hlt | |
0x000000010c064e0a: hlt | |
0x000000010c064e0b: hlt | |
0x000000010c064e0c: hlt | |
0x000000010c064e0d: hlt | |
0x000000010c064e0e: hlt | |
0x000000010c064e0f: hlt | |
0x000000010c064e10: hlt | |
0x000000010c064e11: hlt | |
0x000000010c064e12: hlt | |
0x000000010c064e13: hlt | |
0x000000010c064e14: hlt | |
0x000000010c064e15: hlt | |
0x000000010c064e16: hlt | |
0x000000010c064e17: hlt | |
0x000000010c064e18: hlt | |
0x000000010c064e19: hlt | |
0x000000010c064e1a: hlt | |
0x000000010c064e1b: hlt | |
0x000000010c064e1c: hlt | |
0x000000010c064e1d: hlt | |
0x000000010c064e1e: hlt | |
0x000000010c064e1f: hlt | |
[Exception Handler] | |
[Stub Code] | |
0x000000010c064e20: jmpq 0x000000010c05f0a0 ; {no_reloc} | |
[Deopt Handler Code] | |
0x000000010c064e25: callq 0x000000010c064e2a | |
0x000000010c064e2a: subq $0x5,(%rsp) | |
0x000000010c064e2f: jmpq 0x000000010c038b00 ; {runtime_call} | |
0x000000010c064e34: hlt | |
0x000000010c064e35: hlt | |
0x000000010c064e36: hlt | |
0x000000010c064e37: hlt |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment