Skip to content

Instantly share code, notes, and snippets.

@astojanov
Created December 22, 2017 12:38
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save astojanov/697b1c08317e0691036f94983c805468 to your computer and use it in GitHub Desktop.
// Code being analyzed
//
// 1. package ch.ethz.acl.ngen.saxpy;
// 2.
// 3. public class JSaxpy {
// 4. public void apply(int[] a, int[] b, int s, int n){
// 5. for (int i = 0; i < n; i += 1) {
// 6. a[i] += b[i] * s;
// 7. }
// 8. }
// 9. }
Compiled method (c1) 15904 2751 % 3 ch.ethz.acl.ngen.saxpy.JSaxpy::apply @ 3 (30 bytes)
total in heap [0x000000010bcb6e10,0x000000010bcb7450] = 1600
relocation [0x000000010bcb6f38,0x000000010bcb6f80] = 72
main code [0x000000010bcb6f80,0x000000010bcb71c0] = 576
stub code [0x000000010bcb71c0,0x000000010bcb7250] = 144
oops [0x000000010bcb7250,0x000000010bcb7258] = 8
metadata [0x000000010bcb7258,0x000000010bcb7260] = 8
scopes data [0x000000010bcb7260,0x000000010bcb72e0] = 128
scopes pcs [0x000000010bcb72e0,0x000000010bcb7420] = 320
dependencies [0x000000010bcb7420,0x000000010bcb7428] = 8
nul chk table [0x000000010bcb7428,0x000000010bcb7450] = 40
Loaded disassembler from /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/server/hsdis-amd64.dylib
Decoding compiled method 0x000000010bcb6e10:
Code:
[Disassembling for mach='i386:x86-64']
[Entry Point]
[Constants]
# {method} {0x000000012b12abf0} 'apply' '([I[III)V' in 'ch/ethz/acl/ngen/saxpy/JSaxpy'
0x000000010bcb6f80: mov 0x8(%rsi),%r10d
0x000000010bcb6f84: shl $0x3,%r10
0x000000010bcb6f88: cmp %rax,%r10
0x000000010bcb6f8b: jne 0x000000010bbece20 ; {runtime_call}
0x000000010bcb6f91: data16 data16 nopw 0x0(%rax,%rax,1)
0x000000010bcb6f9c: data16 data16 xchg %ax,%ax
[Verified Entry Point]
0x000000010bcb6fa0: mov %eax,-0x14000(%rsp)
0x000000010bcb6fa7: push %rbp
0x000000010bcb6fa8: sub $0x60,%rsp
0x000000010bcb6fac: movabs $0x12b12acf0,%rdi ; {metadata(method data for {method} {0x000000012b12abf0} 'apply' '([I[III)V' in 'ch/ethz/acl/ngen/saxpy/JSaxpy')}
0x000000010bcb6fb6: mov 0xdc(%rdi),%ebx
0x000000010bcb6fbc: add $0x8,%ebx
0x000000010bcb6fbf: mov %ebx,0xdc(%rdi)
0x000000010bcb6fc5: movabs $0x12b12abf0,%rdi ; {metadata({method} {0x000000012b12abf0} 'apply' '([I[III)V' in 'ch/ethz/acl/ngen/saxpy/JSaxpy')}
0x000000010bcb6fcf: and $0x1ff8,%ebx
0x000000010bcb6fd5: cmp $0x0,%ebx
0x000000010bcb6fd8: je 0x000000010bcb7114 ;*iconst_0
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@0 (line 5)
0x000000010bcb6fde: mov $0x0,%esi
0x000000010bcb6fe3: jmpq 0x000000010bcb7068 ;*iload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@3 (line 5)
0x000000010bcb6fe8: movslq %esi,%rdi
0x000000010bcb6feb: cmp 0xc(%rdx),%esi ; implicit exception: dispatches to 0x000000010bcb712b
0x000000010bcb6fee: jae 0x000000010bcb7135
0x000000010bcb6ff4: mov 0x10(%rdx,%rdi,4),%edi ;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@14 (line 6)
0x000000010bcb6ff8: movslq %esi,%rbx
0x000000010bcb6ffb: cmp 0xc(%rcx),%esi ; implicit exception: dispatches to 0x000000010bcb713e
0x000000010bcb6ffe: jae 0x000000010bcb7148
0x000000010bcb7004: mov 0x10(%rcx,%rbx,4),%ebx ;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@18 (line 6)
0x000000010bcb7008: imul %r8d,%ebx
0x000000010bcb700c: add %ebx,%edi
0x000000010bcb700e: movslq %esi,%rbx
0x000000010bcb7011: cmp 0xc(%rdx),%esi
0x000000010bcb7014: jae 0x000000010bcb7151
0x000000010bcb701a: mov %edi,0x10(%rdx,%rbx,4) ;*iastore
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@22 (line 6)
0x000000010bcb701e: inc %esi
0x000000010bcb7020: movabs $0x12b12acf0,%rdi ; {metadata(method data for {method} {0x000000012b12abf0} 'apply' '([I[III)V' in 'ch/ethz/acl/ngen/saxpy/JSaxpy')}
0x000000010bcb702a: mov 0xe0(%rdi),%ebx
0x000000010bcb7030: add $0x8,%ebx
0x000000010bcb7033: mov %ebx,0xe0(%rdi)
0x000000010bcb7039: movabs $0x12b12abf0,%rdi ; {metadata({method} {0x000000012b12abf0} 'apply' '([I[III)V' in 'ch/ethz/acl/ngen/saxpy/JSaxpy')}
0x000000010bcb7043: and $0xfff8,%ebx
0x000000010bcb7049: cmp $0x0,%ebx
0x000000010bcb704c: je 0x000000010bcb715a ; OopMap{rcx=Oop rdx=Oop off=210}
;*goto
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@26 (line 5)
0x000000010bcb7052: test %eax,-0x2d54f58(%rip) # 0x0000000108f62100
; {poll}
0x000000010bcb7058: movabs $0x12b12acf0,%rdi ; {metadata(method data for {method} {0x000000012b12abf0} 'apply' '([I[III)V' in 'ch/ethz/acl/ngen/saxpy/JSaxpy')}
0x000000010bcb7062: incl 0x128(%rdi) ;*goto
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@26 (line 5)
0x000000010bcb7068: cmp %r9d,%esi
0x000000010bcb706b: movabs $0x12b12acf0,%rdi ; {metadata(method data for {method} {0x000000012b12abf0} 'apply' '([I[III)V' in 'ch/ethz/acl/ngen/saxpy/JSaxpy')}
0x000000010bcb7075: movabs $0x108,%rbx
0x000000010bcb707f: jge 0x000000010bcb708f
0x000000010bcb7085: movabs $0x118,%rbx
0x000000010bcb708f: mov (%rdi,%rbx,1),%rax
0x000000010bcb7093: lea 0x1(%rax),%rax
0x000000010bcb7097: mov %rax,(%rdi,%rbx,1)
0x000000010bcb709b: jl 0x000000010bcb6fe8 ;*if_icmpge
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@7 (line 5)
0x000000010bcb70a1: add $0x60,%rsp
0x000000010bcb70a5: pop %rbp
0x000000010bcb70a6: test %eax,-0x2d54fac(%rip) # 0x0000000108f62100
; {poll_return}
0x000000010bcb70ac: retq ;*return
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@29 (line 8)
0x000000010bcb70ad: mov %eax,-0x14000(%rsp)
0x000000010bcb70b4: push %rbp
0x000000010bcb70b5: sub $0x60,%rsp
0x000000010bcb70b9: mov 0x20(%rsi),%rbx
0x000000010bcb70bd: mov 0x18(%rsi),%rax
0x000000010bcb70c1: mov 0x10(%rsi),%edx
0x000000010bcb70c4: mov 0x8(%rsi),%ecx
0x000000010bcb70c7: mov (%rsi),%r8d
0x000000010bcb70ca: mov %rsi,%rdi
0x000000010bcb70cd: mov %rbx,0x48(%rsp)
0x000000010bcb70d2: mov %rax,0x40(%rsp)
0x000000010bcb70d7: mov %edx,0x38(%rsp)
0x000000010bcb70db: mov %ecx,0x34(%rsp)
0x000000010bcb70df: mov %r8d,0x30(%rsp)
0x000000010bcb70e4: callq 0x000000010b0e5842 ; {runtime_call}
0x000000010bcb70e9: mov 0x30(%rsp),%r8d
0x000000010bcb70ee: mov %r8,%rsi
0x000000010bcb70f1: mov 0x34(%rsp),%ecx
0x000000010bcb70f5: mov %rcx,%r9
0x000000010bcb70f8: mov 0x38(%rsp),%edx
0x000000010bcb70fc: mov %rdx,%r8
0x000000010bcb70ff: mov 0x40(%rsp),%rax
0x000000010bcb7104: mov %rax,%rcx
0x000000010bcb7107: mov 0x48(%rsp),%rbx
0x000000010bcb710c: mov %rbx,%rdx
0x000000010bcb710f: jmpq 0x000000010bcb7068
0x000000010bcb7114: mov %rdi,0x8(%rsp)
0x000000010bcb7119: movq $0xffffffffffffffff,(%rsp)
0x000000010bcb7121: callq 0x000000010bca4f60 ; OopMap{rsi=Oop rdx=Oop rcx=Oop off=422}
;*synchronization entry
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@-1 (line 5)
; {runtime_call}
0x000000010bcb7126: jmpq 0x000000010bcb6fde
0x000000010bcb712b: callq 0x000000010bca0a40 ; OopMap{rcx=Oop rdx=Oop off=432}
;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@14 (line 6)
; {runtime_call}
0x000000010bcb7130: callq 0x000000010bca0a40 ; OopMap{rcx=Oop rdx=Oop off=437}
;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@14 (line 6)
; {runtime_call}
0x000000010bcb7135: mov %rsi,(%rsp)
0x000000010bcb7139: callq 0x000000010bc13000 ; OopMap{rcx=Oop rdx=Oop off=446}
;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@14 (line 6)
; {runtime_call}
0x000000010bcb713e: callq 0x000000010bca0a40 ; OopMap{rcx=Oop rdx=Oop off=451}
;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@18 (line 6)
; {runtime_call}
0x000000010bcb7143: callq 0x000000010bca0a40 ; OopMap{rcx=Oop rdx=Oop off=456}
;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@18 (line 6)
; {runtime_call}
0x000000010bcb7148: mov %rsi,(%rsp)
0x000000010bcb714c: callq 0x000000010bc13000 ; OopMap{rcx=Oop rdx=Oop off=465}
;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@18 (line 6)
; {runtime_call}
0x000000010bcb7151: mov %rsi,(%rsp)
0x000000010bcb7155: callq 0x000000010bc13000 ; OopMap{rcx=Oop rdx=Oop off=474}
;*iastore
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@22 (line 6)
; {runtime_call}
0x000000010bcb715a: mov %rdi,0x8(%rsp)
0x000000010bcb715f: movq $0x1a,(%rsp)
0x000000010bcb7167: callq 0x000000010bca4f60 ; OopMap{rcx=Oop rdx=Oop off=492}
;*goto
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@26 (line 5)
; {runtime_call}
0x000000010bcb716c: jmpq 0x000000010bcb7052
0x000000010bcb7171: nop
0x000000010bcb7172: nop
0x000000010bcb7173: mov 0x2a8(%r15),%rax
0x000000010bcb717a: movabs $0x0,%r10
0x000000010bcb7184: mov %r10,0x2a8(%r15)
0x000000010bcb718b: movabs $0x0,%r10
0x000000010bcb7195: mov %r10,0x2b0(%r15)
0x000000010bcb719c: add $0x60,%rsp
0x000000010bcb71a0: pop %rbp
0x000000010bcb71a1: jmpq 0x000000010bc134a0 ; {runtime_call}
0x000000010bcb71a6: hlt
0x000000010bcb71a7: hlt
0x000000010bcb71a8: hlt
0x000000010bcb71a9: hlt
0x000000010bcb71aa: hlt
0x000000010bcb71ab: hlt
0x000000010bcb71ac: hlt
0x000000010bcb71ad: hlt
0x000000010bcb71ae: hlt
0x000000010bcb71af: hlt
0x000000010bcb71b0: hlt
0x000000010bcb71b1: hlt
0x000000010bcb71b2: hlt
0x000000010bcb71b3: hlt
0x000000010bcb71b4: hlt
0x000000010bcb71b5: hlt
0x000000010bcb71b6: hlt
0x000000010bcb71b7: hlt
0x000000010bcb71b8: hlt
0x000000010bcb71b9: hlt
0x000000010bcb71ba: hlt
0x000000010bcb71bb: hlt
0x000000010bcb71bc: hlt
0x000000010bcb71bd: hlt
0x000000010bcb71be: hlt
0x000000010bcb71bf: hlt
[Exception Handler]
[Stub Code]
0x000000010bcb71c0: callq 0x000000010bca28e0 ; {no_reloc}
0x000000010bcb71c5: mov %rsp,-0x28(%rsp)
0x000000010bcb71ca: sub $0x80,%rsp
0x000000010bcb71d1: mov %rax,0x78(%rsp)
0x000000010bcb71d6: mov %rcx,0x70(%rsp)
0x000000010bcb71db: mov %rdx,0x68(%rsp)
0x000000010bcb71e0: mov %rbx,0x60(%rsp)
0x000000010bcb71e5: mov %rbp,0x50(%rsp)
0x000000010bcb71ea: mov %rsi,0x48(%rsp)
0x000000010bcb71ef: mov %rdi,0x40(%rsp)
0x000000010bcb71f4: mov %r8,0x38(%rsp)
0x000000010bcb71f9: mov %r9,0x30(%rsp)
0x000000010bcb71fe: mov %r10,0x28(%rsp)
0x000000010bcb7203: mov %r11,0x20(%rsp)
0x000000010bcb7208: mov %r12,0x18(%rsp)
0x000000010bcb720d: mov %r13,0x10(%rsp)
0x000000010bcb7212: mov %r14,0x8(%rsp)
0x000000010bcb7217: mov %r15,(%rsp)
0x000000010bcb721b: movabs $0x10b1d96ff,%rdi ; {external_word}
0x000000010bcb7225: movabs $0x10bcb71c5,%rsi ; {internal_word}
0x000000010bcb722f: mov %rsp,%rdx
0x000000010bcb7232: and $0xfffffffffffffff0,%rsp
0x000000010bcb7236: callq 0x000000010b00490a ; {runtime_call}
0x000000010bcb723b: hlt
[Deopt Handler Code]
0x000000010bcb723c: movabs $0x10bcb723c,%r10 ; {section_word}
0x000000010bcb7246: push %r10
0x000000010bcb7248: jmpq 0x000000010bbee3c0 ; {runtime_call}
0x000000010bcb724d: hlt
0x000000010bcb724e: hlt
0x000000010bcb724f: hlt
OopMapSet contains 10 OopMaps
#0
OopMap{rcx=Oop rdx=Oop off=210}
#1
OopMap{rsi=Oop rdx=Oop rcx=Oop off=422}
#2
OopMap{rcx=Oop rdx=Oop off=432}
#3
OopMap{rcx=Oop rdx=Oop off=437}
#4
OopMap{rcx=Oop rdx=Oop off=446}
#5
OopMap{rcx=Oop rdx=Oop off=451}
#6
OopMap{rcx=Oop rdx=Oop off=456}
#7
OopMap{rcx=Oop rdx=Oop off=465}
#8
OopMap{rcx=Oop rdx=Oop off=474}
#9
OopMap{rcx=Oop rdx=Oop off=492}
Compiled method (c2) 15942 2752 % 4 ch.ethz.acl.ngen.saxpy.JSaxpy::apply @ 3 (30 bytes)
total in heap [0x000000010c3a0910,0x000000010c3a0fd8] = 1736
relocation [0x000000010c3a0a38,0x000000010c3a0a60] = 40
main code [0x000000010c3a0a60,0x000000010c3a0d00] = 672
stub code [0x000000010c3a0d00,0x000000010c3a0d18] = 24
oops [0x000000010c3a0d18,0x000000010c3a0d20] = 8
metadata [0x000000010c3a0d20,0x000000010c3a0d30] = 16
scopes data [0x000000010c3a0d30,0x000000010c3a0dc8] = 152
scopes pcs [0x000000010c3a0dc8,0x000000010c3a0fb8] = 496
dependencies [0x000000010c3a0fb8,0x000000010c3a0fc0] = 8
nul chk table [0x000000010c3a0fc0,0x000000010c3a0fd8] = 24
Decoding compiled method 0x000000010c3a0910:
Code:
[Entry Point]
[Verified Entry Point]
[Constants]
# {method} {0x000000012b12abf0} 'apply' '([I[III)V' in 'ch/ethz/acl/ngen/saxpy/JSaxpy'
0x000000010c3a0a60: callq 0x000000010b087154 ; {runtime_call}
0x000000010c3a0a65: data16 data16 nopw 0x0(%rax,%rax,1)
0x000000010c3a0a70: mov %eax,-0x14000(%rsp)
0x000000010c3a0a77: push %rbp
0x000000010c3a0a78: sub $0x40,%rsp
0x000000010c3a0a7c: mov (%rsi),%r13d
0x000000010c3a0a7f: mov 0x8(%rsi),%ebx
0x000000010c3a0a82: mov 0x20(%rsi),%rbp
0x000000010c3a0a86: mov 0x18(%rsi),%r14
0x000000010c3a0a8a: mov 0x10(%rsi),%r11d
0x000000010c3a0a8e: mov %r11d,0x8(%rsp)
0x000000010c3a0a93: mov %rsi,%rdi
0x000000010c3a0a96: vzeroupper
0x000000010c3a0a99: movabs $0x10b0e5842,%r10
0x000000010c3a0aa3: callq *%r10
0x000000010c3a0aa6: test %rbp,%rbp
0x000000010c3a0aa9: je 0x000000010c3a0c85
0x000000010c3a0aaf: mov 0x8(%rbp),%r11d
0x000000010c3a0ab3: cmp $0xf800016d,%r11d ; {metadata({type array int})}
0x000000010c3a0aba: jne 0x000000010c3a0cae
0x000000010c3a0ac0: mov %rbp,%r11
0x000000010c3a0ac3: test %r14,%r14
0x000000010c3a0ac6: je 0x000000010c3a0c8d
0x000000010c3a0acc: mov 0x8(%r14),%r10d
0x000000010c3a0ad0: cmp $0xf800016d,%r10d ; {metadata({type array int})}
0x000000010c3a0ad7: jne 0x000000010c3a0cae ;*iload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@3 (line 5)
0x000000010c3a0add: mov 0xc(%r11),%ecx ;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@14 (line 6)
; implicit exception: dispatches to 0x000000010c3a0ccd
0x000000010c3a0ae1: mov 0xc(%r14),%r8d ;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@18 (line 6)
; implicit exception: dispatches to 0x000000010c3a0ccd
0x000000010c3a0ae5: cmp %ebx,%r13d
0x000000010c3a0ae8: jge 0x000000010c3a0c01 ;*if_icmpge
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@7 (line 5)
0x000000010c3a0aee: mov %r11d,%r10d
0x000000010c3a0af1: mov %r13d,%r9d
0x000000010c3a0af4: inc %r9d
0x000000010c3a0af7: shr $0x2,%r10d
0x000000010c3a0afb: and $0x7,%r10d
0x000000010c3a0aff: xor %edx,%edx
0x000000010c3a0b01: cmp %edx,%r9d
0x000000010c3a0b04: cmovl %edx,%r9d
0x000000010c3a0b08: cmp %ebx,%r9d
0x000000010c3a0b0b: cmovg %ebx,%r9d
0x000000010c3a0b0f: add %r9d,%r10d
0x000000010c3a0b12: mov $0x4,%edi
0x000000010c3a0b17: sub %r10d,%edi
0x000000010c3a0b1a: and $0x7,%edi
0x000000010c3a0b1d: add %r9d,%edi
0x000000010c3a0b20: cmp %ebx,%edi
0x000000010c3a0b22: cmovg %ebx,%edi ;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@18 (line 6)
0x000000010c3a0b25: cmp %ecx,%r13d
0x000000010c3a0b28: jae 0x000000010c3a0c25
0x000000010c3a0b2e: mov 0x10(%r11,%r13,4),%r10d ;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@14 (line 6)
0x000000010c3a0b33: cmp %r8d,%r13d
0x000000010c3a0b36: jae 0x000000010c3a0c55
0x000000010c3a0b3c: mov 0x10(%r14,%r13,4),%edx ;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@18 (line 6)
0x000000010c3a0b41: imul 0x8(%rsp),%edx
0x000000010c3a0b46: add %r10d,%edx
0x000000010c3a0b49: mov %edx,0x10(%r11,%r13,4) ;*iastore
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@22 (line 6)
0x000000010c3a0b4e: mov %r13d,%esi
0x000000010c3a0b51: inc %esi ;*iinc
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@23 (line 5)
0x000000010c3a0b53: cmp %edi,%esi
0x000000010c3a0b55: jge 0x000000010c3a0b5c ;*if_icmpge
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@7 (line 5)
0x000000010c3a0b57: mov %esi,%r13d
0x000000010c3a0b5a: jmp 0x000000010c3a0b25
0x000000010c3a0b5c: cmp %r8d,%ecx
0x000000010c3a0b5f: mov %ecx,%r9d
0x000000010c3a0b62: cmovg %r8d,%r9d
0x000000010c3a0b66: cmp %ebx,%r9d
0x000000010c3a0b69: cmovg %ebx,%r9d
0x000000010c3a0b6d: mov %r9d,%r10d
0x000000010c3a0b70: add $0xfffffff9,%r10d
0x000000010c3a0b74: mov $0x80000000,%edi
0x000000010c3a0b79: cmp %r10d,%r9d
0x000000010c3a0b7c: cmovl %edi,%r10d
0x000000010c3a0b80: cmp %r10d,%esi
0x000000010c3a0b83: jge 0x000000010c3a0ca0
0x000000010c3a0b89: vmovd 0x8(%rsp),%xmm0
0x000000010c3a0b8f: vpshufd $0x0,%xmm0,%xmm0
0x000000010c3a0b94: vinserti128 $0x1,%xmm0,%ymm0,%ymm0
0x000000010c3a0b9a: jmp 0x000000010c3a0ba3
0x000000010c3a0b9c: nopl 0x0(%rax)
0x000000010c3a0ba0: mov %r13d,%esi ;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@14 (line 6)
0x000000010c3a0ba3: vmovdqu 0x10(%r14,%rsi,4),%ymm1
0x000000010c3a0baa: vpmulld %ymm0,%ymm1,%ymm1
0x000000010c3a0baf: vpaddd 0x10(%r11,%rsi,4),%ymm1,%ymm1
0x000000010c3a0bb6: vmovdqu %ymm1,0x10(%r11,%rsi,4) ;*iastore
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@22 (line 6)
0x000000010c3a0bbd: mov %esi,%r13d
0x000000010c3a0bc0: add $0x8,%r13d ;*iinc
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@23 (line 5)
0x000000010c3a0bc4: cmp %r10d,%r13d
0x000000010c3a0bc7: jl 0x000000010c3a0ba0 ;*if_icmpge
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@7 (line 5)
0x000000010c3a0bc9: add $0x7,%esi ;*iinc
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@23 (line 5)
0x000000010c3a0bcc: cmp %ebx,%r13d
0x000000010c3a0bcf: jge 0x000000010c3a0c95
0x000000010c3a0bd5: data16 xchg %ax,%ax ;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@18 (line 6)
0x000000010c3a0bd8: cmp %ecx,%r13d
0x000000010c3a0bdb: jae 0x000000010c3a0c25
0x000000010c3a0bdd: mov 0x10(%r11,%r13,4),%r10d ;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@14 (line 6)
0x000000010c3a0be2: cmp %r8d,%r13d
0x000000010c3a0be5: jae 0x000000010c3a0c55
0x000000010c3a0be7: mov 0x10(%r14,%r13,4),%edi ;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@18 (line 6)
0x000000010c3a0bec: imul 0x8(%rsp),%edi
0x000000010c3a0bf1: add %r10d,%edi
0x000000010c3a0bf4: mov %edi,0x10(%r11,%r13,4) ;*iastore
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@22 (line 6)
0x000000010c3a0bf9: inc %r13d ;*iinc
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@23 (line 5)
0x000000010c3a0bfc: cmp %ebx,%r13d
0x000000010c3a0bff: jl 0x000000010c3a0bd8 ;*if_icmpge
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@7 (line 5)
0x000000010c3a0c01: mov $0xffffff65,%esi
0x000000010c3a0c06: mov %r11,%rbp
0x000000010c3a0c09: mov %r14,(%rsp)
0x000000010c3a0c0d: mov %r13d,0x14(%rsp)
0x000000010c3a0c12: mov %ebx,0x18(%rsp)
0x000000010c3a0c16: xchg %ax,%ax
0x000000010c3a0c18: vzeroupper
0x000000010c3a0c1b: callq 0x000000010bbac1a0 ; OopMap{rbp=Oop [0]=Oop off=448}
;*if_icmpge
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@7 (line 5)
; {runtime_call}
0x000000010c3a0c20: callq 0x000000010b087154 ; {runtime_call}
0x000000010c3a0c25: mov $0xffffffe4,%esi
0x000000010c3a0c2a: mov %r14,(%rsp)
0x000000010c3a0c2e: mov %ebx,0xc(%rsp)
0x000000010c3a0c32: mov %r11,0x18(%rsp)
0x000000010c3a0c37: mov %r13d,0x14(%rsp)
0x000000010c3a0c3c: mov %r11,0x20(%rsp)
0x000000010c3a0c41: mov %r13d,0x28(%rsp)
0x000000010c3a0c46: xchg %ax,%ax
0x000000010c3a0c48: vzeroupper
0x000000010c3a0c4b: callq 0x000000010bbac1a0 ; OopMap{[0]=Oop [24]=Oop [32]=Oop off=496}
;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@14 (line 6)
; {runtime_call}
0x000000010c3a0c50: callq 0x000000010b087154 ; {runtime_call}
0x000000010c3a0c55: mov $0xffffffe4,%esi
0x000000010c3a0c5a: mov %ebx,0xc(%rsp)
0x000000010c3a0c5e: mov %r11,0x18(%rsp)
0x000000010c3a0c63: mov %r13d,0x14(%rsp)
0x000000010c3a0c68: mov %r10d,0x20(%rsp)
0x000000010c3a0c6d: mov %r14,0x28(%rsp)
0x000000010c3a0c72: mov %r13d,0x24(%rsp)
0x000000010c3a0c77: nop
0x000000010c3a0c78: vzeroupper
0x000000010c3a0c7b: callq 0x000000010bbac1a0 ; OopMap{[24]=Oop [40]=Oop off=544}
;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@18 (line 6)
; {runtime_call}
0x000000010c3a0c80: callq 0x000000010b087154 ;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@18 (line 6)
; {runtime_call}
0x000000010c3a0c85: xor %r11d,%r11d
0x000000010c3a0c88: jmpq 0x000000010c3a0ac3
0x000000010c3a0c8d: xor %r14d,%r14d
0x000000010c3a0c90: jmpq 0x000000010c3a0add
0x000000010c3a0c95: mov %esi,%r13d
0x000000010c3a0c98: inc %r13d ;*iinc
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@23 (line 5)
0x000000010c3a0c9b: jmpq 0x000000010c3a0c01
0x000000010c3a0ca0: mov %r13d,%r10d
0x000000010c3a0ca3: mov %esi,%r13d
0x000000010c3a0ca6: mov %r10d,%esi
0x000000010c3a0ca9: jmpq 0x000000010c3a0bcc
0x000000010c3a0cae: mov $0xffffff9d,%esi
0x000000010c3a0cb3: mov %r14,(%rsp)
0x000000010c3a0cb7: mov %ebx,0xc(%rsp)
0x000000010c3a0cbb: mov %r13d,0x10(%rsp)
0x000000010c3a0cc0: vzeroupper
0x000000010c3a0cc3: callq 0x000000010bbac1a0 ; OopMap{rbp=Oop [0]=Oop off=616}
;*iload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@3 (line 5)
; {runtime_call}
0x000000010c3a0cc8: callq 0x000000010b087154 ; {runtime_call}
0x000000010c3a0ccd: mov $0xffffff86,%esi
0x000000010c3a0cd2: mov %r11,%rbp
0x000000010c3a0cd5: mov %r14,(%rsp)
0x000000010c3a0cd9: mov %ebx,0xc(%rsp)
0x000000010c3a0cdd: mov %r13d,0x10(%rsp)
0x000000010c3a0ce2: xchg %ax,%ax
0x000000010c3a0ce4: vzeroupper
0x000000010c3a0ce7: callq 0x000000010bbac1a0 ; OopMap{rbp=Oop [0]=Oop off=652}
;*iload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@3 (line 5)
; {runtime_call}
0x000000010c3a0cec: callq 0x000000010b087154 ;*iinc
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@23 (line 5)
; {runtime_call}
0x000000010c3a0cf1: hlt
0x000000010c3a0cf2: hlt
0x000000010c3a0cf3: hlt
0x000000010c3a0cf4: hlt
0x000000010c3a0cf5: hlt
0x000000010c3a0cf6: hlt
0x000000010c3a0cf7: hlt
0x000000010c3a0cf8: hlt
0x000000010c3a0cf9: hlt
0x000000010c3a0cfa: hlt
0x000000010c3a0cfb: hlt
0x000000010c3a0cfc: hlt
0x000000010c3a0cfd: hlt
0x000000010c3a0cfe: hlt
0x000000010c3a0cff: hlt
[Exception Handler]
[Stub Code]
0x000000010c3a0d00: jmpq 0x000000010bc13760 ; {no_reloc}
[Deopt Handler Code]
0x000000010c3a0d05: callq 0x000000010c3a0d0a
0x000000010c3a0d0a: subq $0x5,(%rsp)
0x000000010c3a0d0f: jmpq 0x000000010bbee3c0 ; {runtime_call}
0x000000010c3a0d14: hlt
0x000000010c3a0d15: hlt
0x000000010c3a0d16: hlt
0x000000010c3a0d17: hlt
OopMapSet contains 5 OopMaps
#0
OopMap{rbp=Oop [0]=Oop off=448}
#1
OopMap{[0]=Oop [24]=Oop [32]=Oop off=496}
#2
OopMap{[24]=Oop [40]=Oop off=544}
#3
OopMap{rbp=Oop [0]=Oop off=616}
#4
OopMap{rbp=Oop [0]=Oop off=652}
Compiled method (c2) 15960 2753 4 ch.ethz.acl.ngen.saxpy.JSaxpy::apply (30 bytes)
total in heap [0x000000010c3a49d0,0x000000010c3a4ef0] = 1312
relocation [0x000000010c3a4af8,0x000000010c3a4b10] = 24
main code [0x000000010c3a4b20,0x000000010c3a4ca0] = 384
stub code [0x000000010c3a4ca0,0x000000010c3a4cb8] = 24
oops [0x000000010c3a4cb8,0x000000010c3a4cc0] = 8
metadata [0x000000010c3a4cc0,0x000000010c3a4cc8] = 8
scopes data [0x000000010c3a4cc8,0x000000010c3a4d40] = 120
scopes pcs [0x000000010c3a4d40,0x000000010c3a4ed0] = 400
dependencies [0x000000010c3a4ed0,0x000000010c3a4ed8] = 8
nul chk table [0x000000010c3a4ed8,0x000000010c3a4ef0] = 24
Decoding compiled method 0x000000010c3a49d0:
Code:
[Entry Point]
[Constants]
# {method} {0x000000012b12abf0} 'apply' '([I[III)V' in 'ch/ethz/acl/ngen/saxpy/JSaxpy'
# this: rsi:rsi = 'ch/ethz/acl/ngen/saxpy/JSaxpy'
# parm0: rdx:rdx = '[I'
# parm1: rcx:rcx = '[I'
# parm2: r8 = int
# parm3: r9 = int
# [sp+0x40] (sp of caller)
0x000000010c3a4b20: mov 0x8(%rsi),%r10d
0x000000010c3a4b24: shl $0x3,%r10
0x000000010c3a4b28: cmp %r10,%rax
0x000000010c3a4b2b: jne 0x000000010bbece20 ; {runtime_call}
0x000000010c3a4b31: data16 xchg %ax,%ax
0x000000010c3a4b34: nopl 0x0(%rax,%rax,1)
0x000000010c3a4b3c: data16 data16 xchg %ax,%ax
[Verified Entry Point]
0x000000010c3a4b40: mov %eax,-0x14000(%rsp)
0x000000010c3a4b47: push %rbp
0x000000010c3a4b48: sub $0x30,%rsp ;*synchronization entry
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@-1 (line 5)
0x000000010c3a4b4c: test %r9d,%r9d
0x000000010c3a4b4f: jle 0x000000010c3a4c75 ;*if_icmpge
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@7 (line 5)
0x000000010c3a4b55: mov 0xc(%rdx),%r10d ;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@14 (line 6)
; implicit exception: dispatches to 0x000000010c3a4c55
0x000000010c3a4b59: test %r10d,%r10d
0x000000010c3a4b5c: jbe 0x000000010c3a4c55
0x000000010c3a4b62: movslq %r10d,%r10
0x000000010c3a4b65: movslq %r9d,%r11
0x000000010c3a4b68: dec %r11
0x000000010c3a4b6b: cmp %r10,%r11
0x000000010c3a4b6e: jae 0x000000010c3a4c55 ;*aload_1
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@10 (line 6)
0x000000010c3a4b74: mov 0xc(%rcx),%r10d ;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@18 (line 6)
; implicit exception: dispatches to 0x000000010c3a4c55
0x000000010c3a4b78: test %r10d,%r10d
0x000000010c3a4b7b: jbe 0x000000010c3a4c55
0x000000010c3a4b81: movslq %r10d,%r10
0x000000010c3a4b84: cmp %r10,%r11
0x000000010c3a4b87: jae 0x000000010c3a4c55
0x000000010c3a4b8d: mov %edx,%r11d
0x000000010c3a4b90: shr $0x2,%r11d
0x000000010c3a4b94: and $0x3,%r11d
0x000000010c3a4b98: mov $0xffffffff,%r10d
0x000000010c3a4b9e: sub %r11d,%r10d
0x000000010c3a4ba1: and $0x3,%r10d
0x000000010c3a4ba5: inc %r10d
0x000000010c3a4ba8: cmp %r9d,%r10d
0x000000010c3a4bab: cmovg %r9d,%r10d
0x000000010c3a4baf: xor %r11d,%r11d ;*aload_1
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@10 (line 6)
0x000000010c3a4bb2: mov %r8d,%ebx
0x000000010c3a4bb5: imul 0x10(%rcx,%r11,4),%ebx
0x000000010c3a4bbb: add %ebx,0x10(%rdx,%r11,4) ;*iastore
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@22 (line 6)
0x000000010c3a4bc0: inc %r11d ;*iinc
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@23 (line 5)
0x000000010c3a4bc3: cmp %r10d,%r11d
0x000000010c3a4bc6: jl 0x000000010c3a4bb2 ;*if_icmpge
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@7 (line 5)
0x000000010c3a4bc8: mov %r9d,%ebx
0x000000010c3a4bcb: add $0xfffffffd,%ebx
0x000000010c3a4bce: mov $0x80000000,%edi
0x000000010c3a4bd3: cmp %ebx,%r9d
0x000000010c3a4bd6: cmovl %edi,%ebx
0x000000010c3a4bd9: cmp %ebx,%r11d
0x000000010c3a4bdc: jge 0x000000010c3a4c13
0x000000010c3a4bde: vmovd %r8d,%xmm0
0x000000010c3a4be3: vpshufd $0x0,%xmm0,%xmm0
0x000000010c3a4be8: nopl 0x0(%rax,%rax,1) ;*aload_1
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@10 (line 6)
0x000000010c3a4bf0: vmovdqu 0x10(%rcx,%r11,4),%xmm1
0x000000010c3a4bf7: vpmulld %xmm0,%xmm1,%xmm1
0x000000010c3a4bfc: vpaddd 0x10(%rdx,%r11,4),%xmm1,%xmm1
0x000000010c3a4c03: vmovdqu %xmm1,0x10(%rdx,%r11,4) ;*iastore
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@22 (line 6)
0x000000010c3a4c0a: add $0x4,%r11d ;*iinc
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@23 (line 5)
0x000000010c3a4c0e: cmp %ebx,%r11d
0x000000010c3a4c11: jl 0x000000010c3a4bf0 ;*if_icmpge
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@7 (line 5)
0x000000010c3a4c13: cmp %r9d,%r11d
0x000000010c3a4c16: jge 0x000000010c3a4c2e ;*aload_1
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@10 (line 6)
0x000000010c3a4c18: mov %r8d,%ebx
0x000000010c3a4c1b: imul 0x10(%rcx,%r11,4),%ebx
0x000000010c3a4c21: add %ebx,0x10(%rdx,%r11,4) ;*iastore
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@22 (line 6)
0x000000010c3a4c26: inc %r11d ;*iinc
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@23 (line 5)
0x000000010c3a4c29: cmp %r9d,%r11d
0x000000010c3a4c2c: jl 0x000000010c3a4c18 ;*if_icmpge
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@7 (line 5)
0x000000010c3a4c2e: mov $0xffffff65,%esi
0x000000010c3a4c33: mov %rdx,%rbp
0x000000010c3a4c36: mov %rcx,(%rsp)
0x000000010c3a4c3a: mov %r8d,0x8(%rsp)
0x000000010c3a4c3f: mov %r11d,0x14(%rsp)
0x000000010c3a4c44: mov %r9d,0x18(%rsp)
0x000000010c3a4c49: xchg %ax,%ax
0x000000010c3a4c4b: callq 0x000000010bbac1a0 ; OopMap{rbp=Oop [0]=Oop off=304}
;*if_icmpge
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@7 (line 5)
; {runtime_call}
0x000000010c3a4c50: callq 0x000000010b087154 ;*if_icmpge
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@7 (line 5)
; {runtime_call}
0x000000010c3a4c55: mov $0xffffff86,%esi
0x000000010c3a4c5a: mov %rdx,%rbp
0x000000010c3a4c5d: mov %rcx,(%rsp)
0x000000010c3a4c61: mov %r8d,0x8(%rsp)
0x000000010c3a4c66: mov %r9d,0xc(%rsp)
0x000000010c3a4c6b: callq 0x000000010bbac1a0 ; OopMap{rbp=Oop [0]=Oop off=336}
;*aload_1
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@10 (line 6)
; {runtime_call}
0x000000010c3a4c70: callq 0x000000010b087154 ;*aload_1
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@10 (line 6)
; {runtime_call}
0x000000010c3a4c75: mov $0xffffff65,%esi
0x000000010c3a4c7a: mov %rdx,%rbp
0x000000010c3a4c7d: mov %rcx,(%rsp)
0x000000010c3a4c81: mov %r8d,0x8(%rsp)
0x000000010c3a4c86: mov %r9d,0x10(%rsp)
0x000000010c3a4c8b: callq 0x000000010bbac1a0 ; OopMap{rbp=Oop [0]=Oop off=368}
;*if_icmpge
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@7 (line 5)
; {runtime_call}
0x000000010c3a4c90: callq 0x000000010b087154 ;*if_icmpge
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@7 (line 5)
; {runtime_call}
0x000000010c3a4c95: hlt
0x000000010c3a4c96: hlt
0x000000010c3a4c97: hlt
0x000000010c3a4c98: hlt
0x000000010c3a4c99: hlt
0x000000010c3a4c9a: hlt
0x000000010c3a4c9b: hlt
0x000000010c3a4c9c: hlt
0x000000010c3a4c9d: hlt
0x000000010c3a4c9e: hlt
0x000000010c3a4c9f: hlt
[Exception Handler]
[Stub Code]
0x000000010c3a4ca0: jmpq 0x000000010bc13760 ; {no_reloc}
[Deopt Handler Code]
0x000000010c3a4ca5: callq 0x000000010c3a4caa
0x000000010c3a4caa: subq $0x5,(%rsp)
0x000000010c3a4caf: jmpq 0x000000010bbee3c0 ; {runtime_call}
0x000000010c3a4cb4: hlt
0x000000010c3a4cb5: hlt
0x000000010c3a4cb6: hlt
0x000000010c3a4cb7: hlt
OopMapSet contains 3 OopMaps
#0
OopMap{rbp=Oop [0]=Oop off=304}
#1
OopMap{rbp=Oop [0]=Oop off=336}
#2
OopMap{rbp=Oop [0]=Oop off=368}
Compiled method (c2) 15978 2756 % 4 ch.ethz.acl.ngen.saxpy.JSaxpy::apply @ 3 (30 bytes)
total in heap [0x000000010c3a4310,0x000000010c3a4988] = 1656
relocation [0x000000010c3a4438,0x000000010c3a4460] = 40
main code [0x000000010c3a4460,0x000000010c3a46e0] = 640
stub code [0x000000010c3a46e0,0x000000010c3a46f8] = 24
oops [0x000000010c3a46f8,0x000000010c3a4700] = 8
metadata [0x000000010c3a4700,0x000000010c3a4710] = 16
scopes data [0x000000010c3a4710,0x000000010c3a47c0] = 176
scopes pcs [0x000000010c3a47c0,0x000000010c3a4970] = 432
dependencies [0x000000010c3a4970,0x000000010c3a4978] = 8
nul chk table [0x000000010c3a4978,0x000000010c3a4988] = 16
Decoding compiled method 0x000000010c3a4310:
Code:
[Entry Point]
[Verified Entry Point]
[Constants]
# {method} {0x000000012b12abf0} 'apply' '([I[III)V' in 'ch/ethz/acl/ngen/saxpy/JSaxpy'
0x000000010c3a4460: callq 0x000000010b087154 ; {runtime_call}
0x000000010c3a4465: data16 data16 nopw 0x0(%rax,%rax,1)
0x000000010c3a4470: mov %eax,-0x14000(%rsp)
0x000000010c3a4477: push %rbp
0x000000010c3a4478: sub $0x50,%rsp
0x000000010c3a447c: mov (%rsi),%r13d
0x000000010c3a447f: mov 0x8(%rsi),%r14d
0x000000010c3a4483: mov 0x20(%rsi),%rbp
0x000000010c3a4487: mov 0x18(%rsi),%rbx
0x000000010c3a448b: mov 0x10(%rsi),%r10d
0x000000010c3a448f: mov %r10d,0x2c(%rsp)
0x000000010c3a4494: mov %rsi,%rdi
0x000000010c3a4497: vzeroupper
0x000000010c3a449a: movabs $0x10b0e5842,%r10
0x000000010c3a44a4: callq *%r10
0x000000010c3a44a7: test %rbp,%rbp
0x000000010c3a44aa: je 0x000000010c3a4615
0x000000010c3a44b0: mov %rbp,%r9
0x000000010c3a44b3: mov 0x8(%rbp),%r11d
0x000000010c3a44b7: cmp $0xf800016d,%r11d ; {metadata({type array int})}
0x000000010c3a44be: jne 0x000000010c3a46a1
0x000000010c3a44c4: mov %rbp,%r8
0x000000010c3a44c7: test %rbx,%rbx
0x000000010c3a44ca: je 0x000000010c3a4620
0x000000010c3a44d0: mov 0x8(%rbx),%r10d
0x000000010c3a44d4: cmp $0xf800016d,%r10d ; {metadata({type array int})}
0x000000010c3a44db: jne 0x000000010c3a46a1 ;*iload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@3 (line 5)
0x000000010c3a44e1: mov %rbx,%rdx
0x000000010c3a44e4: add $0xc,%rdx ;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@18 (line 6)
0x000000010c3a44e8: cmp %r14d,%r13d
0x000000010c3a44eb: jge 0x000000010c3a4606 ;*if_icmpge
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@7 (line 5)
0x000000010c3a44f1: mov %r8d,%r11d
0x000000010c3a44f4: mov %r13d,%r10d
0x000000010c3a44f7: inc %r10d
0x000000010c3a44fa: shr $0x2,%r11d
0x000000010c3a44fe: and $0x7,%r11d
0x000000010c3a4502: xor %ecx,%ecx
0x000000010c3a4504: cmp %ecx,%r10d
0x000000010c3a4507: cmovl %ecx,%r10d
0x000000010c3a450b: cmp %r14d,%r10d
0x000000010c3a450e: cmovg %r14d,%r10d
0x000000010c3a4512: add %r10d,%r11d
0x000000010c3a4515: mov $0x4,%ecx
0x000000010c3a451a: sub %r11d,%ecx
0x000000010c3a451d: and $0x7,%ecx
0x000000010c3a4520: add %r10d,%ecx
0x000000010c3a4523: cmp %r14d,%ecx
0x000000010c3a4526: cmovg %r14d,%ecx
0x000000010c3a452a: mov 0xc(%r8),%edi ; implicit exception: dispatches to 0x000000010c3a46c5
0x000000010c3a452e: cmp %edi,%r13d
0x000000010c3a4531: jae 0x000000010c3a462c ;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@14 (line 6)
0x000000010c3a4537: test %rbx,%rbx
0x000000010c3a453a: je 0x000000010c3a465d ;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@18 (line 6)
0x000000010c3a4540: mov 0x10(%r8,%r13,4),%ebp ;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@14 (line 6)
0x000000010c3a4545: mov (%rdx),%r9d
0x000000010c3a4548: cmp %r9d,%r13d
0x000000010c3a454b: jae 0x000000010c3a4675
0x000000010c3a4551: mov 0x10(%rbx,%r13,4),%r11d ;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@18 (line 6)
0x000000010c3a4556: imul 0x2c(%rsp),%r11d
0x000000010c3a455c: add %ebp,%r11d
0x000000010c3a455f: mov %r11d,0x10(%r8,%r13,4) ;*iastore
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@22 (line 6)
0x000000010c3a4564: inc %r13d ;*iinc
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@23 (line 5)
0x000000010c3a4567: cmp %ecx,%r13d
0x000000010c3a456a: jl 0x000000010c3a452a ;*if_icmpge
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@7 (line 5)
0x000000010c3a456c: cmp %r9d,%edi
0x000000010c3a456f: mov %edi,%r11d
0x000000010c3a4572: cmovg %r9d,%r11d
0x000000010c3a4576: cmp %r14d,%r11d
0x000000010c3a4579: cmovg %r14d,%r11d
0x000000010c3a457d: mov %r11d,%r10d
0x000000010c3a4580: add $0xfffffff9,%r10d
0x000000010c3a4584: mov $0x80000000,%ecx
0x000000010c3a4589: cmp %r10d,%r11d
0x000000010c3a458c: cmovl %ecx,%r10d
0x000000010c3a4590: cmp %r10d,%r13d
0x000000010c3a4593: jge 0x000000010c3a45d3
0x000000010c3a4595: vmovd 0x2c(%rsp),%xmm0
0x000000010c3a459b: vpshufd $0x0,%xmm0,%xmm0
0x000000010c3a45a0: vinserti128 $0x1,%xmm0,%ymm0,%ymm0
0x000000010c3a45a6: data16 nopw 0x0(%rax,%rax,1) ;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@14 (line 6)
0x000000010c3a45b0: vmovdqu 0x10(%rbx,%r13,4),%ymm1
0x000000010c3a45b7: vpmulld %ymm0,%ymm1,%ymm1
0x000000010c3a45bc: vpaddd 0x10(%r8,%r13,4),%ymm1,%ymm1
0x000000010c3a45c3: vmovdqu %ymm1,0x10(%r8,%r13,4) ;*iastore
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@22 (line 6)
0x000000010c3a45ca: add $0x8,%r13d ;*iinc
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@23 (line 5)
0x000000010c3a45ce: cmp %r10d,%r13d
0x000000010c3a45d1: jl 0x000000010c3a45b0 ;*if_icmpge
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@7 (line 5)
0x000000010c3a45d3: cmp %r14d,%r13d
0x000000010c3a45d6: jge 0x000000010c3a4606
0x000000010c3a45d8: cmp %edi,%r13d
0x000000010c3a45db: jae 0x000000010c3a462c
0x000000010c3a45dd: mov 0x10(%r8,%r13,4),%ebp ;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@14 (line 6)
0x000000010c3a45e2: cmp %r9d,%r13d
0x000000010c3a45e5: jae 0x000000010c3a4675
0x000000010c3a45eb: mov 0x10(%rbx,%r13,4),%r10d ;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@18 (line 6)
0x000000010c3a45f0: imul 0x2c(%rsp),%r10d
0x000000010c3a45f6: add %ebp,%r10d
0x000000010c3a45f9: mov %r10d,0x10(%r8,%r13,4) ;*iastore
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@22 (line 6)
0x000000010c3a45fe: inc %r13d ;*iinc
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@23 (line 5)
0x000000010c3a4601: cmp %r14d,%r13d
0x000000010c3a4604: jl 0x000000010c3a45d8 ;*if_icmpge
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@7 (line 5)
0x000000010c3a4606: vzeroupper
0x000000010c3a4609: add $0x50,%rsp
0x000000010c3a460d: pop %rbp
0x000000010c3a460e: test %eax,-0x3442614(%rip) # 0x0000000108f62000
; {poll_return}
0x000000010c3a4614: retq
0x000000010c3a4615: xor %r8d,%r8d
0x000000010c3a4618: mov %rbp,%r9
0x000000010c3a461b: jmpq 0x000000010c3a44c7
0x000000010c3a4620: mov $0xc,%edx
0x000000010c3a4625: xor %ebx,%ebx
0x000000010c3a4627: jmpq 0x000000010c3a44e8
0x000000010c3a462c: mov $0xffffffe4,%esi
0x000000010c3a4631: mov %rbx,(%rsp)
0x000000010c3a4635: mov %r8,0x10(%rsp)
0x000000010c3a463a: mov %r13d,0xc(%rsp)
0x000000010c3a463f: mov %r8,0x18(%rsp)
0x000000010c3a4644: mov %r13d,0x20(%rsp)
0x000000010c3a4649: mov %r14d,0x28(%rsp)
0x000000010c3a464e: xchg %ax,%ax
0x000000010c3a4650: vzeroupper
0x000000010c3a4653: callq 0x000000010bbac1a0 ; OopMap{[0]=Oop [16]=Oop [24]=Oop off=504}
;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@14 (line 6)
; {runtime_call}
0x000000010c3a4658: callq 0x000000010b087154 ; {runtime_call}
0x000000010c3a465d: mov $0xfffffff6,%esi
0x000000010c3a4662: mov %r13d,%ebp
0x000000010c3a4665: data16 xchg %ax,%ax
0x000000010c3a4668: vzeroupper
0x000000010c3a466b: callq 0x000000010bbac1a0 ; OopMap{off=528}
;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@18 (line 6)
; {runtime_call}
0x000000010c3a4670: callq 0x000000010b087154 ; {runtime_call}
0x000000010c3a4675: mov $0xffffffe4,%esi
0x000000010c3a467a: mov %r8,0x18(%rsp)
0x000000010c3a467f: mov %r13d,0x14(%rsp)
0x000000010c3a4684: mov %rbx,0x20(%rsp)
0x000000010c3a4689: mov %r13d,0x28(%rsp)
0x000000010c3a468e: mov %r14d,0x30(%rsp)
0x000000010c3a4693: nop
0x000000010c3a4694: vzeroupper
0x000000010c3a4697: callq 0x000000010bbac1a0 ; OopMap{[24]=Oop [32]=Oop off=572}
;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@18 (line 6)
; {runtime_call}
0x000000010c3a469c: callq 0x000000010b087154 ; {runtime_call}
0x000000010c3a46a1: mov $0xffffff9d,%esi
0x000000010c3a46a6: mov %rbx,%rbp
0x000000010c3a46a9: mov %r13d,(%rsp)
0x000000010c3a46ad: mov %r9,0x8(%rsp)
0x000000010c3a46b2: mov %r14d,0x10(%rsp)
0x000000010c3a46b7: nop
0x000000010c3a46b8: vzeroupper
0x000000010c3a46bb: callq 0x000000010bbac1a0 ; OopMap{rbp=Oop [8]=Oop off=608}
;*iload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@3 (line 5)
; {runtime_call}
0x000000010c3a46c0: callq 0x000000010b087154 ; {runtime_call}
0x000000010c3a46c5: mov $0xfffffff6,%esi
0x000000010c3a46ca: mov %r13d,%ebp
0x000000010c3a46cd: data16 xchg %ax,%ax
0x000000010c3a46d0: vzeroupper
0x000000010c3a46d3: callq 0x000000010bbac1a0 ; OopMap{off=632}
;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@14 (line 6)
; {runtime_call}
0x000000010c3a46d8: callq 0x000000010b087154 ;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@14 (line 6)
; {runtime_call}
0x000000010c3a46dd: hlt
0x000000010c3a46de: hlt
0x000000010c3a46df: hlt
[Exception Handler]
[Stub Code]
0x000000010c3a46e0: jmpq 0x000000010bc13760 ; {no_reloc}
[Deopt Handler Code]
0x000000010c3a46e5: callq 0x000000010c3a46ea
0x000000010c3a46ea: subq $0x5,(%rsp)
0x000000010c3a46ef: jmpq 0x000000010bbee3c0 ; {runtime_call}
0x000000010c3a46f4: hlt
0x000000010c3a46f5: hlt
0x000000010c3a46f6: hlt
0x000000010c3a46f7: hlt
OopMapSet contains 5 OopMaps
#0
OopMap{[0]=Oop [16]=Oop [24]=Oop off=504}
#1
OopMap{off=528}
#2
OopMap{[24]=Oop [32]=Oop off=572}
#3
OopMap{rbp=Oop [8]=Oop off=608}
#4
OopMap{off=632}
Compiled method (c1) 16003 2760 3 ch.ethz.acl.ngen.saxpy.JSaxpy::apply (30 bytes)
total in heap [0x000000010c3a36d0,0x000000010c3a3c60] = 1424
relocation [0x000000010c3a37f8,0x000000010c3a3840] = 72
main code [0x000000010c3a3840,0x000000010c3a3a00] = 448
stub code [0x000000010c3a3a00,0x000000010c3a3a90] = 144
oops [0x000000010c3a3a90,0x000000010c3a3a98] = 8
metadata [0x000000010c3a3a98,0x000000010c3a3aa0] = 8
scopes data [0x000000010c3a3aa0,0x000000010c3a3b10] = 112
scopes pcs [0x000000010c3a3b10,0x000000010c3a3c30] = 288
dependencies [0x000000010c3a3c30,0x000000010c3a3c38] = 8
nul chk table [0x000000010c3a3c38,0x000000010c3a3c60] = 40
Decoding compiled method 0x000000010c3a36d0:
Code:
[Entry Point]
[Constants]
# {method} {0x000000012b12abf0} 'apply' '([I[III)V' in 'ch/ethz/acl/ngen/saxpy/JSaxpy'
# this: rsi:rsi = 'ch/ethz/acl/ngen/saxpy/JSaxpy'
# parm0: rdx:rdx = '[I'
# parm1: rcx:rcx = '[I'
# parm2: r8 = int
# parm3: r9 = int
# [sp+0x50] (sp of caller)
0x000000010c3a3840: mov 0x8(%rsi),%r10d
0x000000010c3a3844: shl $0x3,%r10
0x000000010c3a3848: cmp %rax,%r10
0x000000010c3a384b: jne 0x000000010bbece20 ; {runtime_call}
0x000000010c3a3851: data16 data16 nopw 0x0(%rax,%rax,1)
0x000000010c3a385c: data16 data16 xchg %ax,%ax
[Verified Entry Point]
0x000000010c3a3860: mov %eax,-0x14000(%rsp)
0x000000010c3a3867: push %rbp
0x000000010c3a3868: sub $0x40,%rsp
0x000000010c3a386c: movabs $0x12b12acf0,%rdi ; {metadata(method data for {method} {0x000000012b12abf0} 'apply' '([I[III)V' in 'ch/ethz/acl/ngen/saxpy/JSaxpy')}
0x000000010c3a3876: mov 0xdc(%rdi),%ebx
0x000000010c3a387c: add $0x8,%ebx
0x000000010c3a387f: mov %ebx,0xdc(%rdi)
0x000000010c3a3885: movabs $0x12b12abf0,%rdi ; {metadata({method} {0x000000012b12abf0} 'apply' '([I[III)V' in 'ch/ethz/acl/ngen/saxpy/JSaxpy')}
0x000000010c3a388f: and $0x1ff8,%ebx
0x000000010c3a3895: cmp $0x0,%ebx
0x000000010c3a3898: je 0x000000010c3a3964 ;*iconst_0
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@0 (line 5)
0x000000010c3a389e: mov $0x0,%esi
0x000000010c3a38a3: jmpq 0x000000010c3a391f ;*iload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@3 (line 5)
0x000000010c3a38a8: movslq %esi,%rdi
0x000000010c3a38ab: cmp 0xc(%rdx),%esi ; implicit exception: dispatches to 0x000000010c3a397b
0x000000010c3a38ae: jae 0x000000010c3a3985
0x000000010c3a38b4: mov 0x10(%rdx,%rdi,4),%edi ;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@14 (line 6)
0x000000010c3a38b8: movslq %esi,%rbx
0x000000010c3a38bb: cmp 0xc(%rcx),%esi ; implicit exception: dispatches to 0x000000010c3a398e
0x000000010c3a38be: jae 0x000000010c3a3998
0x000000010c3a38c4: mov 0x10(%rcx,%rbx,4),%ebx ;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@18 (line 6)
0x000000010c3a38c8: imul %r8d,%ebx
0x000000010c3a38cc: add %ebx,%edi
0x000000010c3a38ce: movslq %esi,%rbx
0x000000010c3a38d1: mov %edi,0x10(%rdx,%rbx,4) ;*iastore
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@22 (line 6)
0x000000010c3a38d5: inc %esi
0x000000010c3a38d7: movabs $0x12b12acf0,%rdi ; {metadata(method data for {method} {0x000000012b12abf0} 'apply' '([I[III)V' in 'ch/ethz/acl/ngen/saxpy/JSaxpy')}
0x000000010c3a38e1: mov 0xe0(%rdi),%ebx
0x000000010c3a38e7: add $0x8,%ebx
0x000000010c3a38ea: mov %ebx,0xe0(%rdi)
0x000000010c3a38f0: movabs $0x12b12abf0,%rdi ; {metadata({method} {0x000000012b12abf0} 'apply' '([I[III)V' in 'ch/ethz/acl/ngen/saxpy/JSaxpy')}
0x000000010c3a38fa: and $0xfff8,%ebx
0x000000010c3a3900: cmp $0x0,%ebx
0x000000010c3a3903: je 0x000000010c3a39a1 ; OopMap{rdx=Oop rcx=Oop off=201}
;*goto
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@26 (line 5)
0x000000010c3a3909: test %eax,-0x344180f(%rip) # 0x0000000108f62100
; {poll}
0x000000010c3a390f: movabs $0x12b12acf0,%rdi ; {metadata(method data for {method} {0x000000012b12abf0} 'apply' '([I[III)V' in 'ch/ethz/acl/ngen/saxpy/JSaxpy')}
0x000000010c3a3919: incl 0x128(%rdi) ;*goto
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@26 (line 5)
0x000000010c3a391f: cmp %r9d,%esi
0x000000010c3a3922: movabs $0x12b12acf0,%rdi ; {metadata(method data for {method} {0x000000012b12abf0} 'apply' '([I[III)V' in 'ch/ethz/acl/ngen/saxpy/JSaxpy')}
0x000000010c3a392c: movabs $0x108,%rbx
0x000000010c3a3936: jge 0x000000010c3a3946
0x000000010c3a393c: movabs $0x118,%rbx
0x000000010c3a3946: mov (%rdi,%rbx,1),%rax
0x000000010c3a394a: lea 0x1(%rax),%rax
0x000000010c3a394e: mov %rax,(%rdi,%rbx,1)
0x000000010c3a3952: jl 0x000000010c3a38a8 ;*if_icmpge
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@7 (line 5)
0x000000010c3a3958: add $0x40,%rsp
0x000000010c3a395c: pop %rbp
0x000000010c3a395d: test %eax,-0x3441863(%rip) # 0x0000000108f62100
; {poll_return}
0x000000010c3a3963: retq
0x000000010c3a3964: mov %rdi,0x8(%rsp)
0x000000010c3a3969: movq $0xffffffffffffffff,(%rsp)
0x000000010c3a3971: callq 0x000000010bca4f60 ; OopMap{rsi=Oop rdx=Oop rcx=Oop off=310}
;*synchronization entry
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@-1 (line 5)
; {runtime_call}
0x000000010c3a3976: jmpq 0x000000010c3a389e
0x000000010c3a397b: callq 0x000000010bca0a40 ; OopMap{rdx=Oop rcx=Oop off=320}
;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@14 (line 6)
; {runtime_call}
0x000000010c3a3980: callq 0x000000010bca0a40 ; OopMap{rdx=Oop rcx=Oop off=325}
;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@14 (line 6)
; {runtime_call}
0x000000010c3a3985: mov %rsi,(%rsp)
0x000000010c3a3989: callq 0x000000010bc13000 ; OopMap{rdx=Oop rcx=Oop off=334}
;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@14 (line 6)
; {runtime_call}
0x000000010c3a398e: callq 0x000000010bca0a40 ; OopMap{rdx=Oop rcx=Oop off=339}
;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@18 (line 6)
; {runtime_call}
0x000000010c3a3993: callq 0x000000010bca0a40 ; OopMap{rdx=Oop rcx=Oop off=344}
;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@18 (line 6)
; {runtime_call}
0x000000010c3a3998: mov %rsi,(%rsp)
0x000000010c3a399c: callq 0x000000010bc13000 ; OopMap{rdx=Oop rcx=Oop off=353}
;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@18 (line 6)
; {runtime_call}
0x000000010c3a39a1: mov %rdi,0x8(%rsp)
0x000000010c3a39a6: movq $0x1a,(%rsp)
0x000000010c3a39ae: callq 0x000000010bca4f60 ; OopMap{rdx=Oop rcx=Oop off=371}
;*goto
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@26 (line 5)
; {runtime_call}
0x000000010c3a39b3: jmpq 0x000000010c3a3909
0x000000010c3a39b8: nop
0x000000010c3a39b9: nop
0x000000010c3a39ba: mov 0x2a8(%r15),%rax
0x000000010c3a39c1: movabs $0x0,%r10
0x000000010c3a39cb: mov %r10,0x2a8(%r15)
0x000000010c3a39d2: movabs $0x0,%r10
0x000000010c3a39dc: mov %r10,0x2b0(%r15)
0x000000010c3a39e3: add $0x40,%rsp
0x000000010c3a39e7: pop %rbp
0x000000010c3a39e8: jmpq 0x000000010bc134a0 ; {runtime_call}
0x000000010c3a39ed: hlt
0x000000010c3a39ee: hlt
0x000000010c3a39ef: hlt
0x000000010c3a39f0: hlt
0x000000010c3a39f1: hlt
0x000000010c3a39f2: hlt
0x000000010c3a39f3: hlt
0x000000010c3a39f4: hlt
0x000000010c3a39f5: hlt
0x000000010c3a39f6: hlt
0x000000010c3a39f7: hlt
0x000000010c3a39f8: hlt
0x000000010c3a39f9: hlt
0x000000010c3a39fa: hlt
0x000000010c3a39fb: hlt
0x000000010c3a39fc: hlt
0x000000010c3a39fd: hlt
0x000000010c3a39fe: hlt
0x000000010c3a39ff: hlt
[Exception Handler]
[Stub Code]
0x000000010c3a3a00: callq 0x000000010bca28e0 ; {no_reloc}
0x000000010c3a3a05: mov %rsp,-0x28(%rsp)
0x000000010c3a3a0a: sub $0x80,%rsp
0x000000010c3a3a11: mov %rax,0x78(%rsp)
0x000000010c3a3a16: mov %rcx,0x70(%rsp)
0x000000010c3a3a1b: mov %rdx,0x68(%rsp)
0x000000010c3a3a20: mov %rbx,0x60(%rsp)
0x000000010c3a3a25: mov %rbp,0x50(%rsp)
0x000000010c3a3a2a: mov %rsi,0x48(%rsp)
0x000000010c3a3a2f: mov %rdi,0x40(%rsp)
0x000000010c3a3a34: mov %r8,0x38(%rsp)
0x000000010c3a3a39: mov %r9,0x30(%rsp)
0x000000010c3a3a3e: mov %r10,0x28(%rsp)
0x000000010c3a3a43: mov %r11,0x20(%rsp)
0x000000010c3a3a48: mov %r12,0x18(%rsp)
0x000000010c3a3a4d: mov %r13,0x10(%rsp)
0x000000010c3a3a52: mov %r14,0x8(%rsp)
0x000000010c3a3a57: mov %r15,(%rsp)
0x000000010c3a3a5b: movabs $0x10b1d96ff,%rdi ; {external_word}
0x000000010c3a3a65: movabs $0x10c3a3a05,%rsi ; {internal_word}
0x000000010c3a3a6f: mov %rsp,%rdx
0x000000010c3a3a72: and $0xfffffffffffffff0,%rsp
0x000000010c3a3a76: callq 0x000000010b00490a ; {runtime_call}
0x000000010c3a3a7b: hlt
[Deopt Handler Code]
0x000000010c3a3a7c: movabs $0x10c3a3a7c,%r10 ; {section_word}
0x000000010c3a3a86: push %r10
0x000000010c3a3a88: jmpq 0x000000010bbee3c0 ; {runtime_call}
0x000000010c3a3a8d: hlt
0x000000010c3a3a8e: hlt
0x000000010c3a3a8f: hlt
OopMapSet contains 9 OopMaps
#0
OopMap{rdx=Oop rcx=Oop off=201}
#1
OopMap{rsi=Oop rdx=Oop rcx=Oop off=310}
#2
OopMap{rdx=Oop rcx=Oop off=320}
#3
OopMap{rdx=Oop rcx=Oop off=325}
#4
OopMap{rdx=Oop rcx=Oop off=334}
#5
OopMap{rdx=Oop rcx=Oop off=339}
#6
OopMap{rdx=Oop rcx=Oop off=344}
#7
OopMap{rdx=Oop rcx=Oop off=353}
#8
OopMap{rdx=Oop rcx=Oop off=371}
Compiled method (c2) 16058 2771 4 ch.ethz.acl.ngen.saxpy.JSaxpy::apply (30 bytes)
total in heap [0x000000010c3a8550,0x000000010c3a89b8] = 1128
relocation [0x000000010c3a8678,0x000000010c3a8688] = 16
main code [0x000000010c3a86a0,0x000000010c3a87e0] = 320
stub code [0x000000010c3a87e0,0x000000010c3a87f8] = 24
oops [0x000000010c3a87f8,0x000000010c3a8800] = 8
metadata [0x000000010c3a8800,0x000000010c3a8808] = 8
scopes data [0x000000010c3a8808,0x000000010c3a8848] = 64
scopes pcs [0x000000010c3a8848,0x000000010c3a8998] = 336
dependencies [0x000000010c3a8998,0x000000010c3a89a0] = 8
nul chk table [0x000000010c3a89a0,0x000000010c3a89b8] = 24
Decoding compiled method 0x000000010c3a8550:
Code:
[Entry Point]
[Constants]
# {method} {0x000000012b12abf0} 'apply' '([I[III)V' in 'ch/ethz/acl/ngen/saxpy/JSaxpy'
# this: rsi:rsi = 'ch/ethz/acl/ngen/saxpy/JSaxpy'
# parm0: rdx:rdx = '[I'
# parm1: rcx:rcx = '[I'
# parm2: r8 = int
# parm3: r9 = int
# [sp+0x30] (sp of caller)
0x000000010c3a86a0: mov 0x8(%rsi),%r10d
0x000000010c3a86a4: shl $0x3,%r10
0x000000010c3a86a8: cmp %r10,%rax
0x000000010c3a86ab: jne 0x000000010bbece20 ; {runtime_call}
0x000000010c3a86b1: data16 xchg %ax,%ax
0x000000010c3a86b4: nopl 0x0(%rax,%rax,1)
0x000000010c3a86bc: data16 data16 xchg %ax,%ax
[Verified Entry Point]
0x000000010c3a86c0: mov %eax,-0x14000(%rsp)
0x000000010c3a86c7: push %rbp
0x000000010c3a86c8: sub $0x20,%rsp ;*synchronization entry
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@-1 (line 5)
0x000000010c3a86cc: test %r9d,%r9d
0x000000010c3a86cf: jle 0x000000010c3a87a9 ;*if_icmpge
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@7 (line 5)
0x000000010c3a86d5: mov 0xc(%rdx),%r11d ;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@14 (line 6)
; implicit exception: dispatches to 0x000000010c3a87b5
0x000000010c3a86d9: test %r11d,%r11d
0x000000010c3a86dc: jbe 0x000000010c3a87b5
0x000000010c3a86e2: movslq %r11d,%r11
0x000000010c3a86e5: movslq %r9d,%r10
0x000000010c3a86e8: dec %r10
0x000000010c3a86eb: cmp %r11,%r10
0x000000010c3a86ee: jae 0x000000010c3a87b5 ;*aload_1
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@10 (line 6)
0x000000010c3a86f4: mov 0xc(%rcx),%r11d ;*iaload
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@18 (line 6)
; implicit exception: dispatches to 0x000000010c3a87b5
0x000000010c3a86f8: test %r11d,%r11d
0x000000010c3a86fb: jbe 0x000000010c3a87b5
0x000000010c3a8701: movslq %r11d,%r11
0x000000010c3a8704: cmp %r11,%r10
0x000000010c3a8707: jae 0x000000010c3a87b5
0x000000010c3a870d: mov %edx,%r11d
0x000000010c3a8710: shr $0x2,%r11d
0x000000010c3a8714: and $0x3,%r11d
0x000000010c3a8718: xor %esi,%esi
0x000000010c3a871a: mov $0xffffffff,%edi
0x000000010c3a871f: sub %r11d,%edi
0x000000010c3a8722: and $0x3,%edi
0x000000010c3a8725: inc %edi
0x000000010c3a8727: cmp %r9d,%edi
0x000000010c3a872a: cmovg %r9d,%edi ;*aload_1
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@10 (line 6)
0x000000010c3a872e: mov %r8d,%r10d
0x000000010c3a8731: imul 0x10(%rcx,%rsi,4),%r10d
0x000000010c3a8737: add %r10d,0x10(%rdx,%rsi,4) ;*iastore
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@22 (line 6)
0x000000010c3a873c: inc %esi ;*iinc
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@23 (line 5)
0x000000010c3a873e: cmp %edi,%esi
0x000000010c3a8740: jl 0x000000010c3a872e ;*if_icmpge
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@7 (line 5)
0x000000010c3a8742: mov %r9d,%r10d
0x000000010c3a8745: add $0xfffffffd,%r10d
0x000000010c3a8749: mov $0x80000000,%r11d
0x000000010c3a874f: cmp %r10d,%r9d
0x000000010c3a8752: cmovl %r11d,%r10d
0x000000010c3a8756: cmp %r10d,%esi
0x000000010c3a8759: jge 0x000000010c3a878f
0x000000010c3a875b: vmovd %r8d,%xmm0
0x000000010c3a8760: vpshufd $0x0,%xmm0,%xmm0
0x000000010c3a8765: data16 data16 nopw 0x0(%rax,%rax,1)
;*aload_1
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@10 (line 6)
0x000000010c3a8770: vmovdqu 0x10(%rcx,%rsi,4),%xmm1
0x000000010c3a8776: vpmulld %xmm0,%xmm1,%xmm1
0x000000010c3a877b: vpaddd 0x10(%rdx,%rsi,4),%xmm1,%xmm1
0x000000010c3a8781: vmovdqu %xmm1,0x10(%rdx,%rsi,4) ;*iastore
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@22 (line 6)
0x000000010c3a8787: add $0x4,%esi ;*iinc
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@23 (line 5)
0x000000010c3a878a: cmp %r10d,%esi
0x000000010c3a878d: jl 0x000000010c3a8770 ;*if_icmpge
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@7 (line 5)
0x000000010c3a878f: cmp %r9d,%esi
0x000000010c3a8792: jge 0x000000010c3a87a9 ;*aload_1
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@10 (line 6)
0x000000010c3a8794: mov %r8d,%r10d
0x000000010c3a8797: imul 0x10(%rcx,%rsi,4),%r10d
0x000000010c3a879d: add %r10d,0x10(%rdx,%rsi,4) ;*iastore
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@22 (line 6)
0x000000010c3a87a2: inc %esi ;*iinc
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@23 (line 5)
0x000000010c3a87a4: cmp %r9d,%esi
0x000000010c3a87a7: jl 0x000000010c3a8794 ;*if_icmpge
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@7 (line 5)
0x000000010c3a87a9: add $0x20,%rsp
0x000000010c3a87ad: pop %rbp
0x000000010c3a87ae: test %eax,-0x34467b4(%rip) # 0x0000000108f62000
; {poll_return}
0x000000010c3a87b4: retq
0x000000010c3a87b5: mov $0xffffff86,%esi
0x000000010c3a87ba: mov %rdx,%rbp
0x000000010c3a87bd: mov %rcx,(%rsp)
0x000000010c3a87c1: mov %r8d,0x8(%rsp)
0x000000010c3a87c6: mov %r9d,0xc(%rsp)
0x000000010c3a87cb: callq 0x000000010bbac1a0 ; OopMap{rbp=Oop [0]=Oop off=304}
;*aload_1
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@10 (line 6)
; {runtime_call}
0x000000010c3a87d0: callq 0x000000010b087154 ;*aload_1
; - ch.ethz.acl.ngen.saxpy.JSaxpy::apply@10 (line 6)
; {runtime_call}
0x000000010c3a87d5: hlt
0x000000010c3a87d6: hlt
0x000000010c3a87d7: hlt
0x000000010c3a87d8: hlt
0x000000010c3a87d9: hlt
0x000000010c3a87da: hlt
0x000000010c3a87db: hlt
0x000000010c3a87dc: hlt
0x000000010c3a87dd: hlt
0x000000010c3a87de: hlt
0x000000010c3a87df: hlt
[Exception Handler]
[Stub Code]
0x000000010c3a87e0: jmpq 0x000000010bc13760 ; {no_reloc}
[Deopt Handler Code]
0x000000010c3a87e5: callq 0x000000010c3a87ea
0x000000010c3a87ea: subq $0x5,(%rsp)
0x000000010c3a87ef: jmpq 0x000000010bbee3c0 ; {runtime_call}
0x000000010c3a87f4: hlt
0x000000010c3a87f5: hlt
0x000000010c3a87f6: hlt
0x000000010c3a87f7: hlt
OopMapSet contains 1 OopMaps
#0
OopMap{rbp=Oop [0]=Oop off=304}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment