Skip to content

Instantly share code, notes, and snippets.

@cberner
Created May 27, 2016 04:56
Show Gist options
  • Save cberner/d20e96bb0b9d1a0f698f197b0fc6bbdc to your computer and use it in GitHub Desktop.
Save cberner/d20e96bb0b9d1a0f698f197b0fc6bbdc to your computer and use it in GitHub Desktop.
Compiled method (c2) 381 330 4 io.airlift.slice.Junk::sliceUnchecked (28 bytes)
total in heap [0x0000000109144790,0x0000000109144ad0] = 832
relocation [0x00000001091448b8,0x00000001091448c8] = 16
main code [0x00000001091448e0,0x0000000109144960] = 128
stub code [0x0000000109144960,0x0000000109144978] = 24
oops [0x0000000109144978,0x0000000109144980] = 8
metadata [0x0000000109144980,0x0000000109144990] = 16
scopes data [0x0000000109144990,0x00000001091449e8] = 88
scopes pcs [0x00000001091449e8,0x0000000109144ab8] = 208
dependencies [0x0000000109144ab8,0x0000000109144ac0] = 8
nul chk table [0x0000000109144ac0,0x0000000109144ad0] = 16
Decoding compiled method 0x0000000109144790:
Code:
[Entry Point]
[Verified Entry Point]
[Constants]
# {method} {0x000000011d2025b8} 'sliceUnchecked' '(Lio/airlift/slice/Slice;)I' in 'io/airlift/slice/Junk'
# parm0: rsi:rsi = 'io/airlift/slice/Slice'
# [sp+0x20] (sp of caller)
0x00000001091448e0: mov %eax,-0x14000(%rsp)
0x00000001091448e7: push %rbp
0x00000001091448e8: sub $0x10,%rsp ;*synchronization entry
; - io.airlift.slice.Junk::sliceUnchecked@-1 (line 33)
0x00000001091448ec: mov 0xc(%rsi),%r10d ; implicit exception: dispatches to 0x000000010914493b
0x00000001091448f0: xor %eax,%eax
0x00000001091448f2: test %r10d,%r10d
0x00000001091448f5: jle 0x000000010914492f ;*if_icmpge
; - io.airlift.slice.Junk::sliceUnchecked@9 (line 34)
0x00000001091448f7: xor %r11d,%r11d
0x00000001091448fa: jmp 0x0000000109144903
0x00000001091448fc: nopl 0x0(%rax)
0x0000000109144900: mov %r9d,%r11d ;*invokevirtual getByte
; - io.airlift.slice.Slice::getByteUnchecked@14 (line 349)
; - io.airlift.slice.Junk::sliceUnchecked@15 (line 35)
0x0000000109144903: mov 0x20(%rsi),%r10d ;*getfield base
; - io.airlift.slice.Slice::getByteUnchecked@4 (line 349)
; - io.airlift.slice.Junk::sliceUnchecked@15 (line 35)
0x0000000109144907: mov %r11d,%r9d
0x000000010914490a: inc %r9d ;*iinc
; - io.airlift.slice.Junk::sliceUnchecked@20 (line 34)
0x000000010914490d: shl $0x3,%r10
0x0000000109144911: movslq %r11d,%r11
0x0000000109144914: add 0x10(%rsi),%r11
0x0000000109144918: movsbl (%r10,%r11,1),%r11d ;*invokevirtual getByte
; - io.airlift.slice.Slice::getByteUnchecked@14 (line 349)
; - io.airlift.slice.Junk::sliceUnchecked@15 (line 35)
0x000000010914491d: xor %r11d,%eax ; OopMap{rsi=Oop off=64}
;*goto
; - io.airlift.slice.Junk::sliceUnchecked@23 (line 34)
0x0000000109144920: test %eax,-0x22df926(%rip) # 0x0000000106e65000
;*goto
; - io.airlift.slice.Junk::sliceUnchecked@23 (line 34)
; {poll}
0x0000000109144926: mov 0xc(%rsi),%r10d
0x000000010914492a: cmp %r10d,%r9d
0x000000010914492d: jl 0x0000000109144900 ;*if_icmpge
; - io.airlift.slice.Junk::sliceUnchecked@9 (line 34)
0x000000010914492f: add $0x10,%rsp
0x0000000109144933: pop %rbp
0x0000000109144934: test %eax,-0x22df93a(%rip) # 0x0000000106e65000
; {poll_return}
0x000000010914493a: retq
0x000000010914493b: mov $0xfffffff6,%esi
0x0000000109144940: data32 xchg %ax,%ax
0x0000000109144943: callq 0x0000000108f991a0 ; OopMap{off=104}
;*invokevirtual length
; - io.airlift.slice.Junk::sliceUnchecked@6 (line 34)
; {runtime_call}
0x0000000109144948: callq 0x00000001084805e8 ;*invokevirtual length
; - io.airlift.slice.Junk::sliceUnchecked@6 (line 34)
; {runtime_call}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment