Last active
December 26, 2015 22:39
-
-
Save vyazelenko/7224927 to your computer and use it in GitHub Desktop.
Assembly dump for TestClone#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 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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment