Skip to content

Instantly share code, notes, and snippets.

@vladimirdolzhenko
Created April 6, 2018 13:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vladimirdolzhenko/4c17b4476bbb9c98cdd51f2c6ae1572e to your computer and use it in GitHub Desktop.
Save vladimirdolzhenko/4c17b4476bbb9c98cdd51f2c6ae1572e to your computer and use it in GitHub Desktop.
ImmutableOopMap{rbx=Oop }pc offsets: 1684 1697 Compiled method (c2) 619 736 4 com.elastic.PartialEATest::allocate (55 bytes)
total in heap [0x00000001189a0c90,0x00000001189a1410] = 1920
relocation [0x00000001189a0e08,0x00000001189a0e38] = 48
main code [0x00000001189a0e40,0x00000001189a1060] = 544
stub code [0x00000001189a1060,0x00000001189a1078] = 24
oops [0x00000001189a1078,0x00000001189a10a0] = 40
metadata [0x00000001189a10a0,0x00000001189a10b0] = 16
scopes data [0x00000001189a10b0,0x00000001189a1210] = 352
scopes pcs [0x00000001189a1210,0x00000001189a13c0] = 432
dependencies [0x00000001189a13c0,0x00000001189a13c8] = 8
handler table [0x00000001189a13c8,0x00000001189a1410] = 72
----------------------------------------------------------------------
com/elastic/PartialEATest.allocate(Lorg/openjdk/jmh/infra/Blackhole;)V [0x00000001189a0e40, 0x00000001189a1078] 568 bytes
[Entry Point]
[Constants]
# {method} {0x000000022ea937b8} 'allocate' '(Lorg/openjdk/jmh/infra/Blackhole;)V' in 'com/elastic/PartialEATest'
# this: rsi:rsi = 'com/elastic/PartialEATest'
# parm0: rdx:rdx = 'org/openjdk/jmh/infra/Blackhole'
# [sp+0x30] (sp of caller)
0x00000001189a0e40: cmp rax,QWORD PTR [rsi+0x8]
0x00000001189a0e44: jne 0x0000000110eb7580 ; {runtime_call ic_miss_stub}
0x00000001189a0e4a: xchg ax,ax
0x00000001189a0e4c: nop DWORD PTR [rax+0x0]
[Verified Entry Point]
0x00000001189a0e50: mov DWORD PTR [rsp-0x14000],eax
0x00000001189a0e57: push rbp
0x00000001189a0e58: sub rsp,0x20 ;*synchronization entry
; - com.elastic.PartialEATest::allocate@-1 (line 26)
0x00000001189a0e5c: mov r11d,DWORD PTR [rsi+0x10]
;*getfield value {reexecute=0 rethrow=0 return_oop=0}
; - com.elastic.PartialEATest::allocate@1 (line 26)
0x00000001189a0e60: mov DWORD PTR [rsp],r11d
0x00000001189a0e64: test r11d,r11d
0x00000001189a0e67: jle 0x00000001189a0ffc ;*ifle {reexecute=0 rethrow=0 return_oop=0}
; - com.elastic.PartialEATest::allocate@4 (line 26)
0x00000001189a0e6d: cmp r11d,0xffffff80
0x00000001189a0e71: jl 0x00000001189a100e ;*if_icmplt {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.Integer::valueOf@3 (line 1048)
; - com.elastic.PartialEATest::allocate@24 (line 26)
0x00000001189a0e77: cmp r11d,0x7f
0x00000001189a0e7b: jg 0x00000001189a0ea9 ;*if_icmpgt {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.Integer::valueOf@10 (line 1048)
; - com.elastic.PartialEATest::allocate@24 (line 26)
0x00000001189a0e7d: mov ebp,r11d
0x00000001189a0e80: add ebp,0x80 ;*iadd {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.Integer::valueOf@20 (line 1049)
; - com.elastic.PartialEATest::allocate@24 (line 26)
0x00000001189a0e86: cmp ebp,0x100
0x00000001189a0e8c: jae 0x00000001189a101e
0x00000001189a0e92: movsxd r10,r11d
0x00000001189a0e95: movabs r11,0x12ed02000 ; {oop(a 'java/lang/Integer'[256] {0x000000012ed02000})}
0x00000001189a0e9f: mov rbp,QWORD PTR [r11+r10*8+0x418]
;*aaload {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.Integer::valueOf@21 (line 1049)
; - com.elastic.PartialEATest::allocate@24 (line 26)
0x00000001189a0ea7: jmp 0x00000001189a0f05
0x00000001189a0ea9: mov rbp,QWORD PTR [r15+0x80]
0x00000001189a0eb0: mov r10,rbp
0x00000001189a0eb3: add r10,0x18
0x00000001189a0eb7: cmp r10,QWORD PTR [r15+0x90]
0x00000001189a0ebe: jae 0x00000001189a0fe2
0x00000001189a0ec4: mov QWORD PTR [r15+0x80],r10
0x00000001189a0ecb: prefetchw BYTE PTR [r10+0xc0]
0x00000001189a0ed3: movabs r10,0x22c713ea8 ; {metadata('java/lang/Integer')}
0x00000001189a0edd: mov r10,QWORD PTR [r10+0xb0]
0x00000001189a0ee4: mov QWORD PTR [rbp+0x0],r10
0x00000001189a0ee8: movabs r10,0x22c713ea8 ; {metadata('java/lang/Integer')}
0x00000001189a0ef2: mov QWORD PTR [rbp+0x8],r10
0x00000001189a0ef6: mov DWORD PTR [rbp+0x14],0x0 ;*new {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.Integer::valueOf@23 (line 1050)
; - com.elastic.PartialEATest::allocate@24 (line 26)
0x00000001189a0efd: mov r11d,DWORD PTR [rsp]
0x00000001189a0f01: mov DWORD PTR [rbp+0x10],r11d
;*invokestatic valueOf {reexecute=0 rethrow=0 return_oop=0}
; - com.elastic.PartialEATest::allocate@24 (line 26)
0x00000001189a0f05: mov r11,QWORD PTR [r15+0x80]
0x00000001189a0f0c: mov r10,r11
0x00000001189a0f0f: add r10,0x18
0x00000001189a0f13: cmp r10,QWORD PTR [r15+0x90]
0x00000001189a0f1a: jae 0x00000001189a0fb6
0x00000001189a0f20: mov QWORD PTR [r15+0x80],r10
0x00000001189a0f27: prefetchw BYTE PTR [r10+0xc0]
0x00000001189a0f2f: movabs r10,0x22c713ea8 ; {metadata('java/lang/Integer')}
0x00000001189a0f39: mov r10,QWORD PTR [r10+0xb0]
0x00000001189a0f40: mov QWORD PTR [r11],r10
0x00000001189a0f43: movabs r10,0x22c713ea8 ; {metadata('java/lang/Integer')}
0x00000001189a0f4d: mov QWORD PTR [r11+0x8],r10
0x00000001189a0f51: mov QWORD PTR [r11+0x10],0x3e8
;*new {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.Integer::valueOf@23 (line 1050)
; - com.elastic.PartialEATest::allocate@33 (line 26)
0x00000001189a0f59: mov rax,QWORD PTR [r15+0x80]
0x00000001189a0f60: mov r10,rax
0x00000001189a0f63: add r10,0x18
0x00000001189a0f67: cmp r10,QWORD PTR [r15+0x90]
0x00000001189a0f6e: jae 0x00000001189a0fcd
0x00000001189a0f70: mov QWORD PTR [r15+0x80],r10
0x00000001189a0f77: prefetchw BYTE PTR [r10+0xc0]
0x00000001189a0f7f: movabs r10,0x22c713ea8 ; {metadata('java/lang/Integer')}
0x00000001189a0f89: mov r10,QWORD PTR [r10+0xb0]
0x00000001189a0f90: mov QWORD PTR [rax],r10
0x00000001189a0f93: movabs r10,0x22c713ea8 ; {metadata('java/lang/Integer')}
0x00000001189a0f9d: mov QWORD PTR [rax+0x8],r10
0x00000001189a0fa1: mov QWORD PTR [rax+0x10],0x2bc
;*new {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.Integer::valueOf@23 (line 1050)
; - com.elastic.PartialEATest::allocate@47 (line 26)
0x00000001189a0fa9: add rsp,0x20
0x00000001189a0fad: pop rbp
0x00000001189a0fae: mov r10,QWORD PTR [r15+0x70]
0x00000001189a0fb2: test DWORD PTR [r10],eax ; {poll_return}
0x00000001189a0fb5: ret ;*if_icmpgt {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.Integer::valueOf@10 (line 1048)
; - com.elastic.PartialEATest::allocate@33 (line 26)
0x00000001189a0fb6: movabs rsi,0x22c713ea8 ; {metadata('java/lang/Integer')}
0x00000001189a0fc0: data16 xchg ax,ax
0x00000001189a0fc3: call 0x0000000110f81c80 ; ImmutableOopMap{rbp=Oop }
;*new {reexecute=0 rethrow=0 return_oop=1}
; - java.lang.Integer::valueOf@23 (line 1050)
; - com.elastic.PartialEATest::allocate@33 (line 26)
; {runtime_call _new_instance_Java}
0x00000001189a0fc8: mov r11,rax
0x00000001189a0fcb: jmp 0x00000001189a0f51 ;*if_icmpgt {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.Integer::valueOf@10 (line 1048)
; - com.elastic.PartialEATest::allocate@47 (line 26)
0x00000001189a0fcd: movabs rsi,0x22c713ea8 ; {metadata('java/lang/Integer')}
0x00000001189a0fd7: mov QWORD PTR [rsp],r11
0x00000001189a0fdb: call 0x0000000110f81c80 ; ImmutableOopMap{rbp=Oop [0]=Oop }
;*new {reexecute=0 rethrow=0 return_oop=1}
; - java.lang.Integer::valueOf@23 (line 1050)
; - com.elastic.PartialEATest::allocate@47 (line 26)
; {runtime_call _new_instance_Java}
0x00000001189a0fe0: jmp 0x00000001189a0fa1
0x00000001189a0fe2: movabs rsi,0x22c713ea8 ; {metadata('java/lang/Integer')}
0x00000001189a0fec: mov ebp,r11d
0x00000001189a0fef: call 0x0000000110f81c80 ; ImmutableOopMap{}
;*new {reexecute=0 rethrow=0 return_oop=1}
; - java.lang.Integer::valueOf@23 (line 1050)
; - com.elastic.PartialEATest::allocate@24 (line 26)
; {runtime_call _new_instance_Java}
0x00000001189a0ff4: mov rbp,rax
0x00000001189a0ff7: jmp 0x00000001189a0efd
0x00000001189a0ffc: mov rbp,rsi
0x00000001189a0fff: mov esi,0xffffff55
0x00000001189a1004: data16 xchg ax,ax
0x00000001189a1007: call 0x0000000110eb9200 ; ImmutableOopMap{rbp=Oop }
;*ifle {reexecute=1 rethrow=0 return_oop=0}
; - com.elastic.PartialEATest::allocate@4 (line 26)
; {runtime_call UncommonTrapBlob}
0x00000001189a100c: ud2 ;*ifle {reexecute=0 rethrow=0 return_oop=0}
; - com.elastic.PartialEATest::allocate@4 (line 26)
0x00000001189a100e: mov esi,0xffffff55
0x00000001189a1013: mov ebp,r11d
0x00000001189a1016: nop
0x00000001189a1017: call 0x0000000110eb9200 ; ImmutableOopMap{}
;*if_icmplt {reexecute=1 rethrow=0 return_oop=0}
; - java.lang.Integer::valueOf@3 (line 1048)
; - com.elastic.PartialEATest::allocate@24 (line 26)
; {runtime_call UncommonTrapBlob}
0x00000001189a101c: ud2 ;*if_icmplt {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.Integer::valueOf@3 (line 1048)
; - com.elastic.PartialEATest::allocate@24 (line 26)
0x00000001189a101e: mov esi,0xffffffe4
0x00000001189a1023: call 0x0000000110eb9200 ; ImmutableOopMap{}
;*aaload {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.Integer::valueOf@21 (line 1049)
; - com.elastic.PartialEATest::allocate@24 (line 26)
; {runtime_call UncommonTrapBlob}
0x00000001189a1028: ud2 ;*invokespecial <init> {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.Integer::valueOf@28 (line 1050)
; - com.elastic.PartialEATest::allocate@33 (line 26)
0x00000001189a102a: mov rsi,rax
0x00000001189a102d: jmp 0x00000001189a1037 ;*new {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.Integer::valueOf@23 (line 1050)
; - com.elastic.PartialEATest::allocate@33 (line 26)
0x00000001189a102f: mov rsi,rax
0x00000001189a1032: jmp 0x00000001189a1037 ;*new {reexecute=0 rethrow=0 return_oop=0}
; - java.lang.Integer::valueOf@23 (line 1050)
; - com.elastic.PartialEATest::allocate@24 (line 26)
0x00000001189a1034: mov rsi,rax ;*anewarray {reexecute=0 rethrow=0 return_oop=0}
; - com.elastic.PartialEATest::allocate@15 (line 26)
0x00000001189a1037: add rsp,0x20
0x00000001189a103b: pop rbp
0x00000001189a103c: jmp 0x0000000110f80700 ; {runtime_call _rethrow_Java}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment