Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Compiled from "LambdaJitTrace.java"
public class LambdaJitTrace {
public LambdaJitTrace();
Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: return
public static void main(java.lang.String[]);
Code:
0: invokedynamic #2, 0 // InvokeDynamic #0:apply:()Ljava/util/function/Function;
5: astore_1
6: aload_1
7: invokedynamic #3, 0 // InvokeDynamic #1:apply:(Ljava/util/function/Function;)Ljava/util/function/Function;
12: astore_2
13: aload_2
14: invokedynamic #4, 0 // InvokeDynamic #2:applyAsInt:(Ljava/util/function/Function;)Ljava/util/function/ToIntFunction;
19: astore_3
20: iconst_0
21: istore 4
23: iconst_0
24: istore 5
26: iload 5
28: ldc #5 // int 1000000
30: if_icmpge 52
33: iload 4
35: aload_3
36: ldc #6 // String a
38: invokeinterface #7, 2 // InterfaceMethod java/util/function/ToIntFunction.applyAsInt:(Ljava/lang/Object;)I
43: iadd
44: istore 4
46: iinc 5, 1
49: goto 26
52: getstatic #8 // Field java/lang/System.out:Ljava/io/PrintStream;
55: new #9 // class java/lang/StringBuilder
58: dup
59: invokespecial #10 // Method java/lang/StringBuilder."<init>":()V
62: ldc #11 // String total length:
64: invokevirtual #12 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
67: iload 4
69: invokevirtual #13 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;
72: invokevirtual #14 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
75: invokevirtual #15 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
78: return
private static int lambda$main$2(java.util.function.Function, java.lang.String);
Code:
0: aload_0
1: aload_1
2: invokeinterface #16, 2 // InterfaceMethod java/util/function/Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
7: checkcast #17 // class java/lang/String
10: invokevirtual #18 // Method java/lang/String.length:()I
13: ireturn
private static java.lang.String lambda$main$1(java.util.function.Function, java.lang.String);
Code:
0: new #9 // class java/lang/StringBuilder
3: dup
4: invokespecial #10 // Method java/lang/StringBuilder."<init>":()V
7: aload_0
8: aload_1
9: invokeinterface #16, 2 // InterfaceMethod java/util/function/Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
14: checkcast #17 // class java/lang/String
17: invokevirtual #12 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
20: aload_0
21: aload_1
22: invokeinterface #16, 2 // InterfaceMethod java/util/function/Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
27: checkcast #17 // class java/lang/String
30: invokevirtual #12 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
33: invokevirtual #14 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
36: areturn
private static java.lang.String lambda$main$0(java.lang.String);
Code:
0: aload_0
1: invokevirtual #19 // Method java/lang/String.trim:()Ljava/lang/String;
4: areturn
}
{method}
- this oop: 0x00007f624726b808
- method holder: 'java/lang/String'
- constants: 0x00007f6247268100 constant pool [678] {0x00007f6247268100} for 'java/lang/String' cache=0x00007f6247318478
- access: 0x81000001 public
- name: 'charAt'
- signature: '(I)C'
- max stack: 4
- max locals: 2
- size of params: 2
- method size: 12
- highest level: 3
- vtable index: -2
- i2i entry: 0x00007f624901e2e0
- adapters: AHE@0x00007f62580b9c48: 0xba000000 i2c: 0x00007f624910e860 c2i: 0x00007f624910e977 c2iUV: 0x00007f624910e94a
- compiled entry 0x00007f62491fae80
- code size: 29
- code start: 0x00007f624726b7c8
- code end (excl): 0x00007f624726b7e5
- method data: 0x00007f624740f2c8
- checked ex length: 0
- linenumber start: 0x00007f624726b7e5
- localvar length: 2
- localvar start: 0x00007f624726b7ee
- compiled code: nmethod 142 4 3 java.lang.String::charAt (29 bytes)
#
# char ( java/lang/String:NotNull:exact *, int )
#
#r018 rsi:rsi : parm 0: java/lang/String:NotNull:exact *
#r016 rdx : parm 1: int
# -- Old rsp -- Framesize: 48 --
#r191 rsp+44: in_preserve
#r190 rsp+40: return address
#r189 rsp+36: in_preserve
#r188 rsp+32: saved fp register
#r187 rsp+28: pad2, stack alignment
#r186 rsp+24: pad2, stack alignment
#r185 rsp+20: Fixed slot 1
#r184 rsp+16: Fixed slot 0
#r195 rsp+12: spill
#r194 rsp+ 8: spill
#r193 rsp+ 4: spill
#r192 rsp+ 0: spill
#
000 N68: # B1 <- BLOCK HEAD IS JUNK Freq: 1
000 movl rscratch1, [j_rarg0 + oopDesc::klass_offset_in_bytes()] # compressed klass
decode_klass_not_null rscratch1, rscratch1
cmpq rax, rscratch1 # Inline cache check
jne SharedRuntime::_ic_miss_stub
nop # nops to align entry point
nop # 12 bytes pad for loops and calls
020 B1: # B7 B2 <- BLOCK HEAD IS JUNK Freq: 1
020 # stack bang
pushq rbp # Save rbp
subq rsp, #32 # Create frame
02c testl RDX, RDX
02e jl,s B7 P=0.000000 C=5643.000000
02e
030 B2: # B8 B3 <- B1 Freq: 1
030 movl RBP, [RSI + #12 (8-bit)] # compressed ptr ! Field: java/lang/String.value
033 movl R10, [RBP + #12 (8-bit)] # range
037 NullCheck RBP
037
037 B3: # B7 B4 <- B2 Freq: 0.999999
037 cmpl RDX, R10
03a jge,s B7 P=0.000000 C=5643.000000
03a
03c B4: # B6 B5 <- B3 Freq: 0.999998
03c cmpl RDX, R10 # unsigned
03f jnb,us B6 P=0.000001 C=-1.000000
03f
041 B5: # N68 <- B4 Freq: 0.999997
041 movzwl RAX, [RBP + #16 + RDX << #1] # ushort/char
046 addq rsp, 32 # Destroy frame
popq rbp
testl rax, [rip + #offset_to_poll_page] # Safepoint: poll for GC
051 ret
051
052 B6: # N68 <- B4 Freq: 1.01328e-06
052 movl RSI, #-28 # int
057 movl [rsp + #0], RDX # spill
nop # 1 bytes pad for loops and calls
05b call,static wrapper for: uncommon_trap(reason='range_check' action='make_not_entrant')
# java.lang.String::charAt @ bci:27 L[0]=_ L[1]=_ STK[0]=RBP STK[1]=rsp + #0
# OopMap{rbp=NarrowOop off=96}
060 int3 # ShouldNotReachHere
060
065 B7: # N68 <- B3 B1 Freq: 9.76836e-07
065 movl RSI, #5 # int
06a movl RBP, RDX # spill
nop # 3 bytes pad for loops and calls
06f call,static wrapper for: uncommon_trap(reason='unloaded' action='reinterpret' index='5')
# java.lang.String::charAt @ bci:13 L[0]=_ L[1]=RBP
# OopMap{off=116}
074 int3 # ShouldNotReachHere
074
079 B8: # N68 <- B2 Freq: 1.01328e-06
079 movl RSI, #-10 # int
nop # 1 bytes pad for loops and calls
07f call,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# java.lang.String::charAt @ bci:9 L[0]=_ L[1]=_ STK[0]=_ STK[1]=#NULL
# OopMap{off=132}
084 int3 # ShouldNotReachHere
084
{method}
- this oop: 0x00007f624726d048
- method holder: 'java/lang/String'
- constants: 0x00007f6247268100 constant pool [678] {0x00007f6247268100} for 'java/lang/String' cache=0x00007f6247318478
- access: 0xc1000001 public
- name: 'hashCode'
- signature: '()I'
- max stack: 4
- max locals: 4
- size of params: 1
- method size: 12
- highest level: 3
- vtable index: 3
- i2i entry: 0x00007f624901e2e0
- adapters: AHE@0x00007f62580b9a90: 0xb0000000 i2c: 0x00007f6249106ae0 c2i: 0x00007f6249106bf4 c2iUV: 0x00007f6249106bc7
- compiled entry 0x00007f62491f9940
- code size: 55
- code start: 0x00007f624726cfd0
- code end (excl): 0x00007f624726d007
- method data: 0x00007f6247461e00
- checked ex length: 0
- linenumber start: 0x00007f624726d007
- localvar length: 4
- localvar start: 0x00007f624726d016
- compiled code: nmethod 186 1 3 java.lang.String::hashCode (55 bytes)
#
# int ( java/lang/String:NotNull:exact * )
#
#r018 rsi:rsi : parm 0: java/lang/String:NotNull:exact *
# -- Old rsp -- Framesize: 48 --
#r191 rsp+44: in_preserve
#r190 rsp+40: return address
#r189 rsp+36: in_preserve
#r188 rsp+32: saved fp register
#r187 rsp+28: pad2, stack alignment
#r186 rsp+24: pad2, stack alignment
#r185 rsp+20: Fixed slot 1
#r184 rsp+16: Fixed slot 0
#r195 rsp+12: spill
#r194 rsp+ 8: spill
#r193 rsp+ 4: spill
#r192 rsp+ 0: spill
#
000 N220: # B1 <- BLOCK HEAD IS JUNK Freq: 1
000 movl rscratch1, [j_rarg0 + oopDesc::klass_offset_in_bytes()] # compressed klass
decode_klass_not_null rscratch1, rscratch1
cmpq rax, rscratch1 # Inline cache check
jne SharedRuntime::_ic_miss_stub
nop # nops to align entry point
nop # 12 bytes pad for loops and calls
020 B1: # B19 B2 <- BLOCK HEAD IS JUNK Freq: 1
020 # stack bang
pushq rbp # Save rbp
subq rsp, #32 # Create frame
02c movq R11, RSI # spill
02f movl RAX, [RSI + #16 (8-bit)] # int ! Field: java/lang/String.hash
032 testl RAX, RAX
034 jne B19 P=0.616587 C=1471.000000
034
03a B2: # B22 B3 <- B1 Freq: 0.383413
03a movl RDX, [RSI + #12 (8-bit)] # compressed ptr ! Field: java/lang/String.value
03d movl R10, [RDX + #12 (8-bit)] # range
041 NullCheck RDX
041
041 B3: # B20 B4 <- B2 Freq: 0.383412
041 xorl RBP, RBP # int
043 testl R10, R10
046 jle B20 P=0.005319 C=564.000000
046
04c B4: # B21 B5 <- B3 Freq: 0.381373
04c testl R10, R10 # unsigned
04f jbe,u B21 P=0.000001 C=-1.000000
04f
055 B5: # B21 B6 <- B4 Freq: 0.381372
055 movl R9, R10 # spill
058 decl R9 # int
05b cmpl R9, R10 # unsigned
05e jnb,u B21 P=0.000001 C=-1.000000
05e
064 B6: # B7 <- B5 Freq: 0.381372
064 xorl R13, R13 # int
067
067 B7: # B9 B8 <- B6 B8 Loop: B7-B8 inner pre of N200 Freq: 0.762744
067 movzwl RCX, [RDX + #16 + RBP << #1] # ushort/char
06c addl R13, RCX # int
06f movl RBX, R13 # spill
072 sall RBX, #5
075 movl RAX, RBX # spill
077 subl RAX, R13 # int
07a incl RBP # int
07c cmpl RBP, #1
07f jge,s B9 # loop end P=0.500000 C=16467.000000
07f
081 B8: # B7 <- B7 Freq: 0.381372
081 movl R13, RAX # spill
084 jmp,s B7
084
086 B9: # B15 B10 <- B7 Freq: 0.381372
086 movl R8, R10 # spill
089 addl R8, #-3 # int
08d movl RDI, #-2147483648 # int
092 cmpl R9, R8
095 cmovll R8, RDI # signed, int
099 cmpl RBP, R8
09c jl,s B15 P=0.999999 C=-1.000000
09c
09e B10: # B16 <- B9 Freq: 3.86436e-07
09e movl RAX, RBX # spill
0a0 jmp B16
0a0
0a5 B11: # B12 <- B12 Freq: 0.190686
0a5 movl R9, RAX # spill
0a8 sall R9, #5
0ac movl R13, RAX # spill
0af movl RAX, R9 # spill
0af
0b2 B12: # B11 B13 <- B16 B11 Loop: B12-B11 inner post of N200 Freq: 0.381372
0b2 movzwl R8, [RDX + #16 + RBP << #1] # ushort/char
0b8 subl RAX, R13 # int
0bb addl RAX, R8 # int
0be incl RBP # int
0c0 cmpl RBP, R10
0c3 jl,s B11 # loop end P=0.500000 C=16467.000000
0c3
0c5 B13: # B18 <- B12 Freq: 0.190686
0c5 jmp,s B18
nop # 9 bytes pad for loops and calls
0d0 B14: # B15 <- B15 top-of-loop Freq: 11.1944
0d0 subl RAX, R13 # int
0d3
0d3 B15: # B14 B16 <- B9 B14 Loop: B15-B14 inner main of N78 Freq: 11.5757
0d3 movzwl RCX, [RDX + #16 + RBP << #1] # ushort/char
0d8 addl RAX, RCX # int
0da movslq R9, RBP # i2l
0dd movzwl RCX, [RDX + #18 + R9 << #1] # ushort/char
0e3 movzwl RDI, [RDX + #22 + R9 << #1] # ushort/char
0e9 movzwl RBX, [RDX + #20 + R9 << #1] # ushort/char
0ef movl R9, RAX # spill
0f2 sall R9, #5
0f6 subl R9, RAX # int
0f9 addl R9, RCX # int
0fc movl RCX, R9 # spill
0ff sall RCX, #5
102 subl RCX, R9 # int
105 addl RCX, RBX # int
107 movl R13, RCX # spill
10a sall R13, #5
10e subl R13, RCX # int
111 addl R13, RDI # int
114 movl RAX, R13 # spill
117 sall RAX, #5
11a addl RBP, #4 # int
11d cmpl RBP, R8
120 jl,s B14 # loop end P=0.967054 C=16467.000000
120
122 B16: # B12 B17 <- B10 B15 Freq: 0.381372
122 cmpl RBP, R10
125 jl,s B12 P=0.500000 C=-1.000000
125
127 B17: # B18 <- B16 Freq: 0.190686
127 movl RAX, R13 # spill
127
12a B18: # B19 <- B13 B17 Freq: 0.381372
12a movl [R11 + #16 (8-bit)], RAX # int ! Field: java/lang/String.hash
12a
12e B19: # N220 <- B18 B20 B1 Freq: 0.999999
12e addq rsp, 32 # Destroy frame
popq rbp
testl rax, [rip + #offset_to_poll_page] # Safepoint: poll for GC
139 ret
139
13a B20: # B19 <- B3 Freq: 0.00203943
13a xorl RAX, RAX # int
13c jmp,s B19
13c
13e B21: # N220 <- B5 B4 Freq: 7.6781e-07
13e movl RSI, #-122 # int
143 movq RBP, R11 # spill
146 movl [rsp + #0], RDX # spill
nop # 2 bytes pad for loops and calls
14b call,static wrapper for: uncommon_trap(reason='predicate' action='maybe_recompile')
# java.lang.String::hashCode @ bci:33 L[0]=RBP L[1]=#0 L[2]=rsp + #0 L[3]=#0
# OopMap{rbp=Oop [0]=NarrowOop off=336}
150 int3 # ShouldNotReachHere
150
155 B22: # N220 <- B2 Freq: 3.88504e-07
155 movl RSI, #-10 # int
nop # 1 bytes pad for loops and calls
15b call,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# java.lang.String::hashCode @ bci:13 L[0]=_ L[1]=_ L[2]=_ L[3]=_ STK[0]=#NULL
# OopMap{off=352}
160 int3 # ShouldNotReachHere
160
{method}
- this oop: 0x00007f624726d238
- method holder: 'java/lang/String'
- constants: 0x00007f6247268100 constant pool [678] {0x00007f6247268100} for 'java/lang/String' cache=0x00007f6247318478
- access: 0xc1000001 public
- name: 'indexOf'
- signature: '(II)I'
- max stack: 4
- max locals: 6
- size of params: 3
- method size: 12
- highest level: 3
- vtable index: -2
- i2i entry: 0x00007f624901e2e0
- adapters: AHE@0x00007f62580ba748: 0xbaa00000 i2c: 0x00007f6249119fe0 c2i: 0x00007f624911a120 c2iUV: 0x00007f624911a0f3
- compiled entry 0x00007f62491fb580
- code size: 70
- code start: 0x00007f624726d190
- code end (excl): 0x00007f624726d1d6
- method data: 0x00007f62474995b8
- checked ex length: 0
- linenumber start: 0x00007f624726d1d6
- localvar length: 6
- localvar start: 0x00007f624726d1ee
- compiled code: nmethod 207 6 3 java.lang.String::indexOf (70 bytes)
#
# int ( java/lang/String:NotNull:exact *, int, int )
#
#r018 rsi:rsi : parm 0: java/lang/String:NotNull:exact *
#r016 rdx : parm 1: int
#r010 rcx : parm 2: int
# -- Old rsp -- Framesize: 48 --
#r191 rsp+44: in_preserve
#r190 rsp+40: return address
#r189 rsp+36: in_preserve
#r188 rsp+32: saved fp register
#r187 rsp+28: pad2, stack alignment
#r186 rsp+24: pad2, stack alignment
#r185 rsp+20: Fixed slot 1
#r184 rsp+16: Fixed slot 0
#r195 rsp+12: spill
#r194 rsp+ 8: spill
#r193 rsp+ 4: spill
#r192 rsp+ 0: spill
#
000 N254: # B1 <- BLOCK HEAD IS JUNK Freq: 1
000 movl rscratch1, [j_rarg0 + oopDesc::klass_offset_in_bytes()] # compressed klass
decode_klass_not_null rscratch1, rscratch1
cmpq rax, rscratch1 # Inline cache check
jne SharedRuntime::_ic_miss_stub
nop # nops to align entry point
nop # 12 bytes pad for loops and calls
020 B1: # B30 B2 <- BLOCK HEAD IS JUNK Freq: 1
020 # stack bang
pushq rbp # Save rbp
subq rsp, #32 # Create frame
02c movl RBX, [RSI + #12 (8-bit)] # compressed ptr ! Field: java/lang/String.value
02f movl RBP, [RBX + #12 (8-bit)] # range
032 NullCheck RBX
032
032 B2: # B27 B3 <- B1 Freq: 0.999999
032 movl RAX, #-1 # int
037 testl RCX, RCX
039 jl B27 P=0.000000 C=1482.000000
039
03f B3: # B25 B4 <- B2 Freq: 0.999999
03f cmpl RCX, RBP
041 jge B25 P=0.000000 C=1482.000000
041
047 B4: # B28 B5 <- B3 B27 Freq: 0.999999
047 cmpl RDX, #65536
04d jge B28 P=0.000000 C=1482.000000
04d
053 B5: # B25 B6 <- B4 Freq: 0.999998
053 cmpl RCX, RBP
055 jge B25 P=0.042629 C=17875.000000
055
05b B6: # B26 B7 <- B5 Freq: 0.957369
05b cmpl RCX, RBP # unsigned
05d jnb,u B26 P=0.000001 C=-1.000000
05d
063 B7: # B26 B8 <- B6 Freq: 0.957368
063 movl R10, RBP # spill
066 decl R10 # int
069 cmpl R10, RBP # unsigned
06c jnb,u B26 P=0.000001 C=-1.000000
06c
072 B8: # B9 <- B7 Freq: 0.957367
072 movl R8, RCX # spill
075 incl R8 # int
078
078 B9: # B24 B10 <- B8 B10 Loop: B9-B10 inner pre of N196 Freq: 1.83743
078 movzwl R9, [RBX + #16 + RCX << #1] # ushort/char
07e cmpl R9, RDX
081 je B24 P=0.042073 C=17113.000000
081
087 B10: # B9 B11 <- B9 Freq: 1.76012
087 incl RCX # int
089 cmpl RCX, R8
08c jl,s B9 # loop end P=0.500000 C=16393.000000
08c
08e B11: # B17 B12 <- B10 Freq: 0.88006
08e movl RDI, RBP # spill
090 addl RDI, #-3 # int
093 movl R11, #-2147483648 # int
099 cmpl R10, RDI
09c cmovll RDI, R11 # signed, int
0a0 cmpl RCX, RDI
0a2 jge,s B17 P=0.000001 C=-1.000000
nop # 12 bytes pad for loops and calls
0b0 B12: # B24 B13 <- B11 B16 Loop: B12-B16 inner main of N105 Freq: 4.53961
0b0 movzwl R11, [RBX + #16 + RCX << #1] # ushort/char
0b6 cmpl R11, RDX
0b9 je,s B24 P=0.042073 C=17113.000000
0b9
0bb B13: # B22 B14 <- B12 Freq: 4.34862
0bb movslq R10, RCX # i2l
0be movzwl R8, [RBX + #18 + R10 << #1] # ushort/char
0c4 cmpl R8, RDX
0c7 je,s B22 P=0.042073 C=17113.000000
0c7
0c9 B14: # B23 B15 <- B13 Freq: 4.16566
0c9 movzwl R11, [RBX + #20 + R10 << #1] # ushort/char
0cf cmpl R11, RDX
0d2 je,s B23 P=0.042073 C=17113.000000
0d2
0d4 B15: # B21 B16 <- B14 Freq: 3.99039
0d4 movzwl R10, [RBX + #22 + R10 << #1] # ushort/char
0da cmpl R10, RDX
0dd je,s B21 P=0.042073 C=17113.000000
0dd
0df B16: # B12 B17 <- B15 Freq: 3.82251
0df addl RCX, #4 # int
0e2 cmpl RCX, RDI
0e4 jl,s B12 # loop end P=0.957371 C=16393.000000
0e4
0e6 B17: # B25 B18 <- B11 B16 Freq: 0.162952
0e6 cmpl RCX, RBP
0e8 jge,s B25 P=0.500000 C=-1.000000
nop # 2 bytes pad for loops and calls
0ec B18: # B24 B19 <- B17 B19 Loop: B18-B19 inner post of N196 Freq: 0.156373
0ec movzwl R10, [RBX + #16 + RCX << #1] # ushort/char
0f2 cmpl R10, RDX
0f5 je,s B24 P=0.042073 C=17113.000000
0f5
0f7 B19: # B18 B20 <- B18 Freq: 0.149794
0f7 incl RCX # int
0f9 cmpl RCX, RBP
0fb jl,s B18 # loop end P=0.500000 C=16393.000000
0fb
0fd B20: # B25 <- B19 Freq: 0.0748968
0fd jmp,s B25
0fd
0ff B21: # B22 <- B15 Freq: 0.167889
0ff addl RCX, #2 # int
102
102 B22: # B24 <- B13 B21 Freq: 0.350849
102 incl RCX # int
104 jmp,s B24
104
106 B23: # B24 <- B14 Freq: 0.175263
106 addl RCX, #2 # int
109
109 B24: # B25 <- B18 B9 B12 B23 B22 Freq: 0.800994
109 movl RAX, RCX # spill
109
10b B25: # N254 <- B3 B24 B17 B5 B20 B29 Freq: 0.999997
10b addq rsp, 32 # Destroy frame
popq rbp
testl rax, [rip + #offset_to_poll_page] # Safepoint: poll for GC
116 ret
116
117 B26: # N254 <- B7 B6 Freq: 1.94016e-06
117 movl RSI, #-122 # int
11c movl [rsp + #0], RDX # spill
11f movl [rsp + #4], RBX # spill
123 movl [rsp + #8], RCX # spill
127 call,static wrapper for: uncommon_trap(reason='predicate' action='maybe_recompile')
# java.lang.String::indexOf @ bci:43 L[0]=_ L[1]=rsp + #0 L[2]=_ L[3]=RBP L[4]=rsp + #4 L[5]=rsp + #8
# OopMap{[4]=NarrowOop off=300}
12c int3 # ShouldNotReachHere
12c
131 B27: # B4 <- B2 Freq: 4.76837e-07
131 xorl RCX, RCX # int
133 jmp B4
133
138 B28: # B31 B29 <- B4 Freq: 4.76836e-07
nop # 3 bytes pad for loops and calls
13b call,static java.lang.String::indexOfSupplementary
# java.lang.String::indexOf @ bci:66 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_
# OopMap{off=320}
140
140 B29: # B25 <- B28 Freq: 4.76827e-07
# Block is sole successor of call
140 jmp,s B25
140
142 B30: # N254 <- B1 Freq: 1.01328e-06
142 movl RSI, #-10 # int
147 call,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# java.lang.String::indexOf @ bci:4 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ STK[0]=#NULL
# OopMap{off=332}
14c int3 # ShouldNotReachHere
14c
151 B31: # N254 <- B28 Freq: 4.76836e-12
151 # exception oop is in rax; no code emitted
151 movq RSI, RAX # spill
154 addq rsp, 32 # Destroy frame
popq rbp
159 jmp rethrow_stub
159
{method}
- this oop: 0x00007f624738e328
- method holder: 'java/util/Arrays'
- constants: 0x00007f62473844f0 constant pool [897]/operands[28] {0x00007f62473844f0} for 'java/util/Arrays' cache=0x00007f6247391b40
- access: 0x81000009 public static
- name: 'copyOfRange'
- signature: '([CII)[C'
- max stack: 7
- max locals: 5
- size of params: 3
- method size: 12
- highest level: 3
- vtable index: -2
- i2i entry: 0x00007f624901e2e0
- adapters: AHE@0x00007f62580ba748: 0xbaa00000 i2c: 0x00007f6249119fe0 c2i: 0x00007f624911a120 c2iUV: 0x00007f624911a0f3
- compiled entry 0x00007f624920c220
- code size: 63
- code start: 0x00007f624738e298
- code end (excl): 0x00007f624738e2d7
- method data: 0x00007f6247512610
- checked ex length: 0
- linenumber start: 0x00007f624738e2d7
- localvar length: 5
- localvar start: 0x00007f624738e2ea
- compiled code: nmethod 218 40 3 java.util.Arrays::copyOfRange (63 bytes)
#
# char[int:>=0]:exact * ( char[int:>=0]:exact *, int, int )
#
#r018 rsi:rsi : parm 0: char[int:>=0]:exact *
#r016 rdx : parm 1: int
#r010 rcx : parm 2: int
# -- Old rsp -- Framesize: 64 --
#r191 rsp+60: in_preserve
#r190 rsp+56: return address
#r189 rsp+52: in_preserve
#r188 rsp+48: saved fp register
#r187 rsp+44: pad2, stack alignment
#r186 rsp+40: pad2, stack alignment
#r185 rsp+36: Fixed slot 1
#r184 rsp+32: Fixed slot 0
#r199 rsp+28: spill
#r198 rsp+24: spill
#r197 rsp+20: spill
#r196 rsp+16: spill
#r195 rsp+12: spill
#r194 rsp+ 8: spill
#r193 rsp+ 4: spill
#r192 rsp+ 0: spill
#
abababab N1: # B1 <- B20 B21 B12 B24 Freq: 1
abababab
000 B1: # B20 B2 <- BLOCK HEAD IS JUNK Freq: 1
000 # stack bang
pushq rbp # Save rbp
subq rsp, #48 # Create frame
00c movq [rsp + #8], RSI # spill
011 movl [rsp + #0], RDX # spill
014 movl R11, RCX # spill
017 subl R11, RDX # int
01a movl [rsp + #4], R11 # spill
01f testl R11, R11
022 jl B20 P=0.000000 C=5440.000000
022
028 B2: # B14 B3 <- B1 Freq: 1
028 movslq R10, R11 # i2l
02b salq R10, #1
02e addq R10, #23 # long
032 movq [rsp + #16], R10 # spill
037 cmpl R11, #524288 # unsigned
03e jnbe,u B14 P=0.000001 C=-1.000000
03e
044 B3: # B14 B4 <- B2 Freq: 0.999999
044 andq R10, #-8 # long
048 # TLS is in R15
048 movq RBP, [R15 + #120 (8-bit)] # ptr
04c movq R11, RBP # spill
04f addq R11, R10 # ptr
052 cmpq R11, [R15 + #136 (32-bit)] # raw ptr
059 jnb,u B14 P=0.000100 C=-1.000000
059
05f B4: # B5 <- B3 Freq: 0.999898
05f movq [R15 + #120 (8-bit)], R11 # ptr
063 PREFETCHNTA [R11 + #256 (32-bit)] # Prefetch allocation to non-temporal cache for write
06b movq [RBP], 0x0000000000000001 # ptr
073 PREFETCHNTA [R11 + #320 (32-bit)] # Prefetch allocation to non-temporal cache for write
07b movl [RBP + #8 (8-bit)], narrowklass: precise klass [C: 0x00007f625811e128:Constant:exact * # compressed klass ptr
082 movl R10, [rsp + #4] # spill
087 movl [RBP + #12 (8-bit)], R10 # int
08b PREFETCHNTA [R11 + #384 (32-bit)] # Prefetch allocation to non-temporal cache for write
08b
093 B5: # B21 B6 <- B15 B4 Freq: 1
093
093 # checkcastPP of RBP
093 movq RBX, [rsp + #8] # spill
098 movl RDI, [RBX + #12 (8-bit)] # range
09b NullCheck RBX
09b
09b B6: # B16 B7 <- B5 Freq: 0.999999
09b movl R11, RDI # spill
09e subl R11, [RSP + #0 (32-bit)] # int
0a2 movq R8, RBP # spill
0a5 addq R8, #16 # ptr
0a9 cmpl R11, [RSP + #4 (32-bit)]
0ae movl R9, [rsp + #4] # spill
0b3 cmovll R9, R11 # signed, int
0b7 movq R10, [rsp + #16] # spill
0bc shrq R10, #3
0c0 movq RSI, R10 # spill
0c3 movq RCX, R10 # spill
0c6 addq RCX, #-2 # long
0ca movl R10, [rsp + #0] # spill
0ce testl R10, R10
0d1 jl B16 P=0.000001 C=-1.000000
0d1
0d7 B7: # B16 B8 <- B6 Freq: 0.999997
0d7 movl R11, R10 # spill
0da addl R11, R9 # int
0dd cmpl RDI, R11 # unsigned
0e0 jb,u B16 P=0.000001 C=-1.000000
0e0
0e6 B8: # B16 B9 <- B7 Freq: 0.999996
0e6 movl RDI, [rsp + #4] # spill
0ea cmpl RDI, R9 # unsigned
0ed jb,u B16 P=0.000001 C=-1.000000
0ed
0f3 B9: # B18 B10 <- B8 Freq: 0.999995
0f3 testl R9, R9
0f6 jle B18 P=0.000001 C=-1.000000
0f6
0fc B10: # B13 B11 <- B9 Freq: 0.999994
0fc movslq RDX, R9 # i2l
0ff cmpl R9, RDI
102 jl,s B13 P=0.001000 C=-1.000000
102
104 B11: # B12 <- B10 B13 Freq: 0.999994
104 leaq RDI, [RBX + #16 + R10 << #1] # ptr posidxscaleoff
109 movq RSI, R8 # spill
10c call_leaf_nofp,runtime jshort_arraycopy
No JVM State Info
#
119
119 B12: # N1 <- B11 B19 B17 Freq: 0.999998
119 MEMBAR-storestore (empty encoding)
119 movq RAX, RBP # spill
11c addq rsp, 48 # Destroy frame
popq rbp
testl rax, [rip + #offset_to_poll_page] # Safepoint: poll for GC
127 ret
127
128 B13: # B11 <- B10 Freq: 0.000999994
128 movq R11, RDX # spill
12b salq R11, #1
12e addq R11, #16 # long
132 movq R9, R11 # spill
135 andq R9, #-7 # long
139 movq RDI, RBP # spill
13c addq RDI, R9 # ptr
13f shrq R11, #3
143 movq R9, RSI # spill
146 subq R9, R11 # long
149 movq RCX, R9 # spill
14c xorq rax, rax # ClearArray:
shlq rcx,3 # Convert doublewords to bytes
rep stosb # Store rax to *rdi++ while rcx--
156 jmp,s B11
156
158 B14: # B23 B15 <- B2 B3 Freq: 0.00010103
158 movq RSI, precise klass [C: 0x00007f625811e128:Constant:exact * # ptr
162 movl RDX, [rsp + #4] # spill
166 movl RBP, RDX # spill
nop # 3 bytes pad for loops and calls
16b call,static wrapper for: _new_array_nozero_Java
# java.util.Arrays::copyOfRange @ bci:40 L[0]=rsp + #8 L[1]=rsp + #0 L[2]=_ L[3]=RBP L[4]=_
# OopMap{[8]=Oop off=368}
170
170 B15: # B5 <- B14 Freq: 0.000101028
# Block is sole successor of call
170 movq RBP, RAX # spill
173 jmp B5
173
178 B16: # B22 B17 <- B6 B7 B8 B18 Freq: 2.99999e-06
178 movq RDI, R8 # spill
17b xorq rax, rax # ClearArray:
shlq rcx,3 # Convert doublewords to bytes
rep stosb # Store rax to *rdi++ while rcx--
185 xorl R8, R8 # int
188 movq RSI, RBX # spill
18b movl RDX, R10 # spill
18e movq RCX, RBP # spill
nop # 2 bytes pad for loops and calls
193 call,static wrapper for: slow_arraycopy
# java.util.Arrays::copyOfRange @ bci:57 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=RBP
# OopMap{rbp=Oop off=408}
198
198 B17: # B12 <- B16 Freq: 2.99993e-06
# Block is sole successor of call
198 jmp B12
198
19d B18: # B16 B19 <- B9 Freq: 9.99995e-07
19d testl R9, R9
1a0 jl,s B16 P=0.000001 C=-1.000000
1a0
1a2 B19: # B12 <- B18 Freq: 9.99994e-07
1a2 movq RDI, R8 # spill
1a5 xorq rax, rax # ClearArray:
shlq rcx,3 # Convert doublewords to bytes
rep stosb # Store rax to *rdi++ while rcx--
1af
1af jmp B12
1af
1b4 B20: # N1 <- B1 Freq: 4.76837e-07
1b4 movl RSI, #2 # int
1b9 movl RBP, RDX # spill
1bb movl [rsp + #0], RCX # spill
nop # 1 bytes pad for loops and calls
1bf call,static wrapper for: uncommon_trap(reason='unloaded' action='reinterpret' index='2')
# java.util.Arrays::copyOfRange @ bci:8 L[0]=_ L[1]=RBP L[2]=rsp + #0 L[3]=_ L[4]=_
# OopMap{off=452}
1c4 int3 # ShouldNotReachHere
1c4
1c9 B21: # N1 <- B5 Freq: 1.01328e-06
1c9 movl RSI, #-10 # int
nop # 1 bytes pad for loops and calls
1cf call,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# java.util.Arrays::copyOfRange @ bci:50 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ STK[0]=_ STK[1]=_ STK[2]=_ STK[3]=_ STK[4]=#NULL
# OopMap{off=468}
1d4 int3 # ShouldNotReachHere
1d4
1d9 B22: # B24 <- B16 Freq: 2.99999e-11
1d9 # exception oop is in rax; no code emitted
1d9 movq RSI, RAX # spill
1dc jmp,s B24
1dc
1de B23: # B24 <- B14 Freq: 1.0103e-09
1de # exception oop is in rax; no code emitted
1de movq RSI, RAX # spill
1de
1e1 B24: # N1 <- B23 B22 Freq: 1.0403e-09
1e1 addq rsp, 48 # Destroy frame
popq rbp
1e6 jmp rethrow_stub
1e6
{method}
- this oop: 0x00007f624726a8b0
- method holder: 'java/lang/String'
- constants: 0x00007f6247268100 constant pool [678] {0x00007f6247268100} for 'java/lang/String' cache=0x00007f6247318478
- access: 0x81000001 public
- name: '<init>'
- signature: '([CII)V'
- max stack: 6
- max locals: 4
- size of params: 4
- method size: 12
- highest level: 3
- vtable index: -2
- i2i entry: 0x00007f624901e2e0
- adapters: AHE@0x00007f62580ba488: 0xbbaa0000 i2c: 0x00007f62491130a0 c2i: 0x00007f62491131bf c2iUV: 0x00007f6249113192
- compiled entry 0x00007f6249205260
- code size: 62
- code start: 0x00007f624726a830
- code end (excl): 0x00007f624726a86e
- method data: 0x00007f624750e8a0
- checked ex length: 0
- linenumber start: 0x00007f624726a86e
- localvar length: 4
- localvar start: 0x00007f624726a87e
- compiled code: nmethod 221 28 3 java.lang.String::<init> (62 bytes)
#
# void ( java/lang/String:NotNull:exact *, char[int:>=0]:exact *, int, int )
#
#r018 rsi:rsi : parm 0: java/lang/String:NotNull:exact *
#r016 rdx:rdx : parm 1: char[int:>=0]:exact *
#r010 rcx : parm 2: int
#r004 r8 : parm 3: int
# -- Old rsp -- Framesize: 80 --
#r191 rsp+76: in_preserve
#r190 rsp+72: return address
#r189 rsp+68: in_preserve
#r188 rsp+64: saved fp register
#r187 rsp+60: pad2, stack alignment
#r186 rsp+56: pad2, stack alignment
#r185 rsp+52: Fixed slot 1
#r184 rsp+48: Fixed slot 0
#r203 rsp+44: spill
#r202 rsp+40: spill
#r201 rsp+36: spill
#r200 rsp+32: spill
#r199 rsp+28: spill
#r198 rsp+24: spill
#r197 rsp+20: spill
#r196 rsp+16: spill
#r195 rsp+12: spill
#r194 rsp+ 8: spill
#r193 rsp+ 4: spill
#r192 rsp+ 0: spill
#
000 N335: # B1 <- BLOCK HEAD IS JUNK Freq: 1
000 movl rscratch1, [j_rarg0 + oopDesc::klass_offset_in_bytes()] # compressed klass
decode_klass_not_null rscratch1, rscratch1
cmpq rax, rscratch1 # Inline cache check
jne SharedRuntime::_ic_miss_stub
nop # nops to align entry point
nop # 12 bytes pad for loops and calls
020 B1: # B21 B2 <- BLOCK HEAD IS JUNK Freq: 1
020 # stack bang
pushq rbp # Save rbp
subq rsp, #64 # Create frame
02c movq [rsp + #0], RSI # spill
030 movl [rsp + #12], RCX # spill
034 testl RCX, RCX
036 jl B21 P=0.000000 C=5419.000000
036
03c B2: # B22 B3 <- B1 Freq: 1
03c movl [rsp + #8], R8 # spill
041 testl R8, R8
044 jl B22 P=0.000000 C=5419.000000
044
04a B3: # B24 B4 <- B2 Freq: 0.999999
04a movq [rsp + #32], RDX # spill
04f movl R8, [RDX + #12 (8-bit)] # range
053 NullCheck RDX
053
053 B4: # B23 B5 <- B3 Freq: 0.999998
053 movl R11, R8 # spill
056 subl R11, [RSP + #8 (32-bit)] # int
05b cmpl RCX, R11
05e jg B23 P=0.000000 C=5419.000000
05e
064 B5: # B15 B6 <- B4 Freq: 0.999998
064 movslq R10, [RSP + #8 (32-bit)] # int -> long
069 salq R10, #1
06c addq R10, #23 # long
070 movq [rsp + #16], R10 # spill
075 movl R11, [rsp + #8] # spill
07a cmpl R11, #524288 # unsigned
081 jnbe,u B15 P=0.000001 C=-1.000000
081
087 B6: # B15 B7 <- B5 Freq: 0.999997
087 andq R10, #-8 # long
08b # TLS is in R15
08b movq RBP, [R15 + #120 (8-bit)] # ptr
08f movq R11, RBP # spill
092 addq R11, R10 # ptr
095 cmpq R11, [R15 + #136 (32-bit)] # raw ptr
09c jnb,u B15 P=0.000100 C=-1.000000
09c
0a2 B7: # B8 <- B6 Freq: 0.999897
0a2 movq [R15 + #120 (8-bit)], R11 # ptr
0a6 PREFETCHNTA [R11 + #256 (32-bit)] # Prefetch allocation to non-temporal cache for write
0ae movq [RBP], 0x0000000000000001 # ptr
0b6 PREFETCHNTA [R11 + #320 (32-bit)] # Prefetch allocation to non-temporal cache for write
0be movl [RBP + #8 (8-bit)], narrowklass: precise klass [C: 0x00007f625811e128:Constant:exact * # compressed klass ptr
0c5 movl R10, [rsp + #8] # spill
0ca movl [RBP + #12 (8-bit)], R10 # int
0ce PREFETCHNTA [R11 + #384 (32-bit)] # Prefetch allocation to non-temporal cache for write
0ce
0d6 B8: # B17 B9 <- B16 B7 Freq: 0.999998
0d6
0d6 # checkcastPP of RBP
0d6 movl R11, R8 # spill
0d9 subl R11, [RSP + #12 (32-bit)] # int
0de movq RBX, RBP # spill
0e1 addq RBX, #16 # ptr
0e5 cmpl R11, [RSP + #8 (32-bit)]
0ea movl R9, [rsp + #8] # spill
0ef cmovll R9, R11 # signed, int
0f3 movl R10, [rsp + #12] # spill
0f8 addl R10, R9 # int
0fb movq R11, [rsp + #16] # spill
100 shrq R11, #3
104 movq RCX, R11 # spill
107 addq RCX, #-2 # long
10b cmpl R8, R10 # unsigned
10e jb,u B17 P=0.000001 C=-1.000000
10e
114 B9: # B17 B10 <- B8 Freq: 0.999997
114 movl R10, [rsp + #8] # spill
119 cmpl R10, R9 # unsigned
11c jb,u B17 P=0.000001 C=-1.000000
11c
122 B10: # B19 B11 <- B9 Freq: 0.999996
122 testl R9, R9
125 jle B19 P=0.000001 C=-1.000000
125
12b B11: # B14 B12 <- B10 Freq: 0.999995
12b movslq RDX, R9 # i2l
12e cmpl R9, R10
131 jl B14 P=0.001000 C=-1.000000
131
137 B12: # B13 <- B11 B14 Freq: 0.999995
137 movq R10, [rsp + #32] # spill
13c movl R8, [rsp + #12] # spill
141 leaq RDI, [R10 + #16 + R8 << #1] # ptr posidxscaleoff
146 movq RSI, RBX # spill
149 call_leaf_nofp,runtime jshort_arraycopy
No JVM State Info
#
156
156 B13: # N335 <- B12 B20 B18 Freq: 0.999998
156 MEMBAR-storestore (empty encoding)
156 encode_heap_oop_not_null R11,RBP
261 movq R10, [rsp + #0] # spill
265 movl [R10 + #12 (8-bit)], R11 # compressed ptr ! Field: java/lang/String.value
269 movq R10, R10 # ptr -> long
269 shrq R10, #9
26d movq R11, 0x00007f62487ff000 # ptr
277 movb [R11 + R10], R12 # short/char (R12_heapbase==0)
27b MEMBAR-release ! (empty encoding)
27b addq rsp, 64 # Destroy frame
popq rbp
testl rax, [rip + #offset_to_poll_page] # Safepoint: poll for GC
286 ret
286
287 B14: # B12 <- B11 Freq: 0.000999995
287 movq R10, RDX # spill
28a salq R10, #1
28d addq R10, #16 # long
291 movq R8, R10 # spill
294 andq R8, #-7 # long
298 movq RDI, RBP # spill
29b addq RDI, R8 # ptr
29e shrq R10, #3
2a2 subq R11, R10 # long
2a5 movq RCX, R11 # spill
2a8 xorq rax, rax # ClearArray:
shlq rcx,3 # Convert doublewords to bytes
rep stosb # Store rax to *rdi++ while rcx--
2b2 jmp B12
2b2
2b7 B15: # B26 B16 <- B5 B6 Freq: 0.00010103
2b7 movl [rsp + #24], R8 # spill
2bc movq RSI, precise klass [C: 0x00007f625811e128:Constant:exact * # ptr
2c6 movl RDX, [rsp + #8] # spill
2ca movq RBP, [rsp + #32] # spill
2cf call,static wrapper for: _new_array_nozero_Java
# java.util.Arrays::copyOfRange @ bci:40 L[0]=RBP L[1]=rsp + #12 L[2]=_ L[3]=rsp + #8 L[4]=_
# java.lang.String::<init> @ bci:55 L[0]=_ L[1]=_ L[2]=_ L[3]=_ STK[0]=rsp + #0
# OopMap{rbp=Oop [0]=Oop [32]=Oop off=724}
2d4
2d4 B16: # B8 <- B15 Freq: 0.000101028
# Block is sole successor of call
2d4 movq RBP, RAX # spill
2d7 movl R8, [rsp + #24] # spill
2dc jmp B8
2dc
2e1 B17: # B25 B18 <- B19 B8 B9 Freq: 2e-06
2e1 movq RDI, RBX # spill
2e4 xorq rax, rax # ClearArray:
shlq rcx,3 # Convert doublewords to bytes
rep stosb # Store rax to *rdi++ while rcx--
2ee xorl R8, R8 # int
2f1 movq RSI, [rsp + #32] # spill
2f6 movl RDX, [rsp + #12] # spill
2fa movq RCX, RBP # spill
nop # 2 bytes pad for loops and calls
2ff call,static wrapper for: slow_arraycopy
# java.util.Arrays::copyOfRange @ bci:57 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=RBP
# java.lang.String::<init> @ bci:55 L[0]=_ L[1]=_ L[2]=_ L[3]=_ STK[0]=rsp + #0
# OopMap{rbp=Oop [0]=Oop off=772}
304
304 B18: # B13 <- B17 Freq: 1.99996e-06
# Block is sole successor of call
304 jmp B13
304
309 B19: # B17 B20 <- B10 Freq: 9.99996e-07
309 testl R9, R9
30c jl,s B17 P=0.000001 C=-1.000000
30c
30e B20: # B13 <- B19 Freq: 9.99995e-07
30e movq RDI, RBX # spill
311 xorq rax, rax # ClearArray:
shlq rcx,3 # Convert doublewords to bytes
rep stosb # Store rax to *rdi++ while rcx--
31b
31b jmp B13
31b
320 B21: # N335 <- B1 Freq: 4.76837e-07
320 movl RSI, #5 # int
325 movl RBP, RCX # spill
327 call,static wrapper for: uncommon_trap(reason='unloaded' action='reinterpret' index='5')
# java.lang.String::<init> @ bci:8 L[0]=_ L[1]=_ L[2]=RBP L[3]=_
# OopMap{off=812}
32c int3 # ShouldNotReachHere
32c
331 B22: # N335 <- B2 Freq: 4.76837e-07
331 movl RSI, #5 # int
336 movl RBP, R8 # spill
nop # 2 bytes pad for loops and calls
33b call,static wrapper for: uncommon_trap(reason='unloaded' action='reinterpret' index='5')
# java.lang.String::<init> @ bci:21 L[0]=_ L[1]=_ L[2]=_ L[3]=RBP
# OopMap{off=832}
340 int3 # ShouldNotReachHere
340
345 B23: # N335 <- B4 Freq: 4.76836e-07
345 movl RSI, #5 # int
34a movl RBP, RCX # spill
nop # 3 bytes pad for loops and calls
34f call,static wrapper for: uncommon_trap(reason='unloaded' action='reinterpret' index='5')
# java.lang.String::<init> @ bci:38 L[0]=_ L[1]=_ L[2]=RBP L[3]=rsp + #8
# OopMap{off=852}
354 int3 # ShouldNotReachHere
354
359 B24: # N335 <- B3 Freq: 1.01328e-06
359 movl RSI, #-10 # int
nop # 1 bytes pad for loops and calls
35f call,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# java.lang.String::<init> @ bci:32 L[0]=_ L[1]=_ L[2]=_ L[3]=_ STK[0]=_ STK[1]=#NULL
# OopMap{off=868}
364 int3 # ShouldNotReachHere
364
369 B25: # B27 <- B17 Freq: 2e-11
369 # exception oop is in rax; no code emitted
369 movq RSI, RAX # spill
36c jmp,s B27
36c
36e B26: # B27 <- B15 Freq: 1.0103e-09
36e # exception oop is in rax; no code emitted
36e movq RSI, RAX # spill
36e
371 B27: # N335 <- B26 B25 Freq: 1.0303e-09
371 addq rsp, 64 # Destroy frame
popq rbp
376 jmp rethrow_stub
376
{method}
- this oop: 0x00007f62472efaf8
- method holder: 'java/lang/StringBuilder'
- constants: 0x00007f62472ee860 constant pool [359] {0x00007f62472ee860} for 'java/lang/StringBuilder' cache=0x00007f62473ee7a8
- access: 0x81000001 public
- name: 'append'
- signature: '(Ljava/lang/String;)Ljava/lang/StringBuilder;'
- max stack: 3
- max locals: 2
- size of params: 2
- method size: 12
- intrinsic id: 158 _StringBuilder_append_String
- highest level: 3
- vtable index: -2
- i2i entry: 0x00007f624901e2e0
- adapters: AHE@0x00007f62580b9b40: 0xbb000000 i2c: 0x00007f6249106520 c2i: 0x00007f6249106638 c2iUV: 0x00007f624910660b
- compiled entry 0x00007f62492255a0
- code size: 8
- code start: 0x00007f62472efad0
- code end (excl): 0x00007f62472efad8
- method data: 0x00007f624752b9c8
- checked ex length: 0
- linenumber start: 0x00007f62472efad8
- localvar length: 2
- localvar start: 0x00007f62472efade
- compiled code: nmethod 246 90 3 java.lang.StringBuilder::append (8 bytes)
{method}
- this oop: 0x00007f62472ebcf8
- method holder: 'java/lang/AbstractStringBuilder'
- constants: 0x00007f62472e9da0 constant pool [365] {0x00007f62472e9da0} for 'java/lang/AbstractStringBuilder' cache=0x00007f62473edf58
- access: 0x81000001 public
- name: 'append'
- signature: '(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder;'
- max stack: 6
- max locals: 3
- size of params: 2
#
# java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * )
#
- method size: 12
- highest level: 3
- vtable index: 20
- i2i entry: 0x00007f624901e2e0
- adapters: AHE@0x00007f62580b9b40: 0xbb000000 i2c: 0x00007f6249106520 c2i: 0x00007f6249106638 c2iUV: 0x00007f624910660b
- compiled entry 0x00007f6249224980
- code size: 50
- code start: 0x00007f62472ebc90
- code end (excl): 0x00007f62472ebcc2
- method data: 0x00007f624752ba90
- checked ex length: 0
- linenumber start: 0x00007f62472ebcc2
- localvar length: 3
- localvar start: 0x00007f62472ebcd2
- compiled code: nmethod 257 91 3 java.lang.AbstractStringBuilder::append (50 bytes)
#
# java/lang/AbstractStringBuilder * ( java/lang/AbstractStringBuilder:NotNull *, java/lang/String:exact * )
#
#r018 rsi:rsi : parm 0: java/lang/AbstractStringBuilder:NotNull *
#r016 rdx:rdx : parm 1: java/lang/String:exact *
# -- Old rsp -- Framesize: 96 --
#r018 rsi:rsi : parm 0: java/lang/StringBuilder:NotNull:exact *
#r016 rdx:rdx : parm 1: #r191 rsp+92: in_preserve
#r190 rsp+88: return address
#r189 rsp+84: in_preserve
#r188 rsp+80: saved fp register
#r187 rsp+76: pad2, stack alignment
#r186 rsp+72: pad2, stack alignment
#r185 rsp+68: Fixed slot 1
#r184 rsp+64: Fixed slot 0
#r207 rsp+60: spill
#r206 rsp+56: spill
#r205 rsp+52: spill
#r204 rsp+48: spill
#r203 rsp+44: spill
#r202 rsp+40: spill
#r201 rsp+36: spill
#r200 rsp+32: spill
#r199 rsp+28: spill
#r198 rsp+24: spill
#r197 rsp+20: spill
#r196 rsp+16: spill
#r195 rsp+12: spill
#r194 rsp+ 8: spill
#r193 rsp+ 4: spill
#r192 rsp+ 0: spill
#
000 N562: # B1 <- BLOCK HEAD IS JUNK Freq: 1
000 movl rscratch1, [j_rarg0 + oopDesc::klass_offset_in_bytes()] # compressed klass
decode_klass_not_null rscratch1, rscratch1
cmpq rax, rscratch1 # Inline cache check
jne SharedRuntime::_ic_miss_stub
nop # nops to align entry point
nop # 12 bytes pad for loops and calls
020 B1: # B43 B2 <- BLOCK HEAD IS JUNK Freq: 1
020 # stack bang
pushq rbp # Save rbp
subq rsp, #80 # Create frame
02c movq [rsp + #0], RSI # spill
030 movq [rsp + #48], RDX # spill
035 movl RDI, [RDX + #12 (8-bit)] # compressed ptrjava/lang/String:exact *
# -- Old rsp -- Framesize: 96 --
#r191 rsp+92: in_preserve
#r190 rsp+88: return address
#r189 rsp+84: in_preserve
#r188 rsp+80: saved fp register
#r187 rsp+76: pad2, stack alignment
#r186 rsp+72: pad2, stack alignment
#r185 rsp+68: Fixed slot 1
#r184 rsp+64: Fixed slot 0
#r207 rsp+60: spill
#r206 rsp+56: spill
#r205 rsp+52: spill
#r204 rsp+48: spill
#r203 rsp+44: spill
#r202 rsp+40: spill
#r201 rsp+36: spill
#r200 rsp+32: spill
#r199 rsp+28: spill
#r198 rsp+24: spill
#r197 rsp+20: spill
#r196 rsp+16: spill
#r195 rsp+12: spill
#r194 rsp+ 8: spill
#r193 rsp+ 4: spill
#r192 rsp+ 0: spill
#
000 N567: # ! Field: java/lang/String.value
038 NullCheck RDX
038
B1 <- BLOCK HEAD IS JUNK Freq: 1
000 movl rscratch1, [j_rarg0 + oopDesc::klass_offset_in_bytes()] # compressed klass
decode_klass_not_null rscratch1, rscratch1
cmpq rax, rscratch1 # Inline cache check
jne SharedRuntime::_ic_miss_stub
nop # nops to align entry point
nop # 12 bytes pad for loops and calls
020 B1: # B43 B2 <- BLOCK HEAD IS JUNK Freq: 1
020 # stack bang
pushq rbp # Save rbp
subq rsp, #80 # Create frame
02c movq [rsp + #0], RSI # spill
030 movq [rsp + #48], RDX # spill
035 movl RDI, [RDX + #12 (8-bit)] # compressed ptr ! Field: java/lang/String.value
038 NullCheck RDX
038
038 B2: # B39 B3 <- B1 Freq: 1
038 movl RBX038 B2: # B39 B3 <- B1 Freq: 1
038 movl RBX, [RDI + #12 (8-bit)] # range
03b , [RDI + #12 (8-bit)] # range
03b NullCheck RDI
NullCheck RDI
03b
03b B3: # B40 B4 <- B2 Freq: 0.999999
03b movl 03b
RBP, [RSI + #16 (8-bit)] # compressed ptr ! Field: java/lang/AbstractStringBuilder.value
03e movl R8, [RBP + #12 (8-bit)] # range03b B3: # B40 B4 <- B2
042 NullCheck RBP
042
042 B4: # B14 B5 <- B3 Freq: 0.999999
03b Freq: 0.999997
042 movl R10, [RSI movl RBP, [RSI + #16 (8-bit)] # compressed ptr ! Field: + #12 (8-bit)] # int ! Field: java/lang/AbstractStringBuilder.count
046 movl R11, RBX # spill
049 java/lang/AbstractStringBuilder.value
03e movl R8, addl R11, R10 # int
04c movl RCX, R11 # spill
04f subl [RBP + #12 (8-bit)] # range
042RCX, R8 # int
NullCheck RBP
042
042 B4: # B14 B5 <- B3 Freq: 0.999997
052 testl RCX, RCX
054 jg,s B14 P=0.038687 C=11968.000000
054
056 B5: # 042 movl R10, [RSIB41 B6 <- B26 B4 Freq: 0.999997
056 movl R8, [RDI + #12 (8-bit)] # range
05a NullCheck RDI
05a
05a B6: # B34 B7 <- B5 Freq: 0.999996
05a cmpl RBX, R8
+ #12 (8-bit)] # int05d ! Field: java/lang/AbstractStringBuilder.count
046 jg B34 P=0.000000 C=10450.000000
05d
063 B7: # B42 B8 <- B6 Freq: 0.999996
063 movl R9, [RBP + #12 (8-bit)] # range
067 NullCheck RBP
067
067 B8: # B32 B9 <- B7 Freq: 0.999995
067 movl R11, RBX # spill
049 addl R11, R10 # int
04c movl RCX, R11 # spill
04f subl RCX, R8 # int
052 testl RCX, decode_heap_oop_not_null RDX,RDI
06a decode_heap_oop_not_null RCX,RBP
RCX
054 jg,s B1406d testl P=0.044120 C=10494.000000
054
056 B5: # B41 B6 <- R10, R10
B26 B4 Freq: 0.999997
056 movl R8, [RDI + #12 (8-bit)] # range
05a 070 jl B32 P=0.000001 C=-1.000000
NullCheck RDI
05a
05a B6: # B34 B7 <- B5 Freq: 0.999996
05a cmpl RBX, R8
05d jg B34070
076 B9: # B32 B10 P=0.000000 C=9661.000000
05d
063 B7: # B42 B8 <- B6 Freq: 0.999996
063 movl R9, [RBP + #12 (8-bit)] # range <- B8 Freq: 0.999994
076 cmpl R8, RBX # unsigned
079 jb,u
067 NullCheck RBP
B32 P=0.000001 C=-1.000000
067
067 B8: # B32 B9 <- B7 Freq: 0.999995079
07f
067 decode_heap_oop_not_null RDX,RDI
06a decode_heap_oop_not_null RCX,RBP
B10: # B32 B11 <- B9 Freq: 0.999993
07f movl R11, R10 # spill
082 addl R11, RBX # int
085 cmpl R9, R11 # unsigned
088 jb,u B3206d testl R10, R10
070 jl B32 P=0.000001 C=-1.000000
070
076 B9: # B32 P=0.000001 C=-1.000000
088
08e B11: # B13 B12 <- B10 Freq: 0.999992
08e testl RBX, RBX
090 jle,s B13 P=0.000001 C=-1.000000
090
092 B12: # B13 <- B11 Freq: 0.999991
092 leaq RSI, [RBP + #16 + R10 << #1] # ptr posidxscaleoffnarrow
097 leaq RDI, [RDI + #16 (8-bit)] # ptr off8narrow
B10 <- B8 Freq: 0.999994
076 cmpl R8, RBX # unsigned
079 jb09b movslq RDX, RBX # i2l
09e call_leaf_nofp,runtime jshort_arraycopy
No JVM State Info
#
0ab
0ab B13: # N562 <- B12 B11 B33 ,u B32 P=0.000001 C=-1.000000
079
07f B10: # B32 B11 <- B9 Freq: 0.999993
07f movl R11, R10 # spill
082 addl R11, RBX # int
085 cmpl R9, Freq: 0.999995
0ab
0ab movq R10, [rsp + #0] # spill
0afR11 # unsigned
088 jb,u B32 P=0.000001 C=-1.000000
movl R10, [R10 + #12 (8-bit)] # int088
08e B11: # B13 B12 <- B10 Freq: 0.999992 ! Field: java/lang/AbstractStringBuilder
08e testl RBX, RBX
.count
0b3 addl R10, RBX # int
0b6 movq R11, [rsp + #0] # spill
0ba movl 090 jle,s B13 P=0.000001 C=-1.000000
090
092 B12: # B13 <- [R11 + #12 (8-bit)], R10 # intB11 Freq: 0.999991
092 leaq RSI, [RBP + #16 + R10 << #1] # ptr posidxscaleoffnarrow
097 leaq RDI, [RDI + #16 (8-bit)] # ptr off8narrow
09b movslq RDX, RBX # i2l
09e ! Field: java/lang/AbstractStringBuilder.count
0be movq RAX, [rsp + #0] # spill
0c2 addq rsp, 80 # Destroy frame
call_leaf_nofp,runtime jshort_arraycopy
popq rbp
testl rax, [rip + #offset_to_poll_page] # Safepoint: poll for GC
0cd ret
0cd
0ce B14: # No JVM State Info
#
B27 B15 <- B4 Freq: 0.0386864
0ce movl R10, R8 # spill
0d10ab
0ab B13: # N567 <- B12 B11 B33 Freq: 0.999995
sall R100ab
0ab , movq R10, [rsp + #0] # spill
0af movl R10, [R10 + #12 (8-bit)] # int ! Field: java/lang/AbstractStringBuilder.count
0b3 addl R10, RBX # int
0b6 movq R11, [rsp + #0] # spill
0ba movl [R11 + #12 (8-bit)], R10 # int ! Field: java/lang/AbstractStringBuilder.count
0be movq RAX, [rsp + #0] # spill
0c2 addq rsp, 80 # Destroy frame
#1
0d4 movl R9, R10 # spill
0d7 popq rbp
testl rax, [rip + #offset_to_poll_page] # Safepoint: poll for GC
0cd ret
0cd
0ce B14: # B27 B15 <- subl R9, R11 # int
0da B4 Freq: 0.0441203
0ce movl R10, R8 # spill
0d1 sall R10, #1
0d4 movl R9, R10 # spill
0d7 subl R9, R11 # int
0da addl R9, #2 # int
0de testl R9, R9
0e1 jge B27 P=0.500000 C=-1.000000
0e1
0e7 B15: # B18 B16 addl R9, #2 # int
0de testl R9, R9
0e1 jge B27 P=0.500000 C=-1.000000
0e1
0e7 B15: # B18 B16 <- B14 Freq: 0.0193432
0e7 testl R11, R11
0ea jge,s <- B14 Freq: 0.0220602
0e7 testl R11, R11
0ea jgeB18 P=0.500000 C=-1.000000
0ea
0ec B16: # B38 B17 <- B15 B27 Freq: 0.0193432
0ec ,s B18 P=0.500000 C=-1.000000
0ea
0ec testl R11, R11
0ef jl B38 P=0.000001 C=-1.000000
0ef
0f5 B17: # B18 <- B16 Freq: 0.0193432
0f5 movl R11, #2147483647 # int
0f5
0fb B18: # B30 B19 <- B17 B15 B28 Freq: 0.0386864
0fb movslq R10, R11 # i2l
0fe salq R10, #1
101 addq R10, #23 # long
105 movq RDX, R10 # spill
108 andq RDX, B16: # B38 B17 <- B15 B27 Freq: 0.0220602
0ec testl #-8 # long
10c cmpl R11, #524288 # unsigned
113 jnbe,u B30 P=0.000001 C=-1.000000
113
119 B19: # B30 B20 <- B18 Freq: 0.0386864
119 # TLS is in R15
119 movq R13, [R15 + #120 (8-bit)] # ptr
11d movq R9, R13 # spill
120 addq R9, R11, R11
RDX # ptr
123 cmpq R9, [R15 + #136 (32-bit)] # raw ptr
12a jnb,u B30 P=0.000100 C=-1.000000
12a
130 B20: # B21 <- B19 Freq: 0.0386825
130 movq [R15 + #120 (8-bit)], R9 # ptr
134 PREFETCHNTA [R9 + #256 (32-bit)] # Prefetch allocation to non-temporal cache for write
13c movq [R13], 0x0000000000000001 # ptr
144 PREFETCHNTA [R9 + #320 (32-bit)] # Prefetch allocation to non-temporal cache for write
14c movl [R13 + #8 (8-bit)], narrowklass: precise klass [C: 0x00007f625811e128:Constant:exact * # compressed klass ptr
154 movl [R13 + #12 (8-bit)], R11 # int
158 PREFETCHNTA [R9 + #384 (32-bit)] # Prefetch allocation to non-temporal cache for write
0ef 158
160 B21: # B35 B22 <- B31 B20 Freq: 0.0386864
160
160 # checkcastPP of R13
160 cmpl R8, R11
163 jl B38movl R9, R11 # spill P=0.000001 C=-1.000000
0ef
0f5 B17: # B18
166 cmovll R9, R8 # signed, int
16a movq R14, R13 # spill
16d addq R14, #16 # ptr
171 decode_heap_oop_not_null RSI,RBP
174 shrq R10, #3
178 movq RCX, R10 # spill
17b addq RCX, #-2 # long
17f cmpl <- B16 Freq: 0.0220601
0f5 movl R8, R9 # unsignedR11, #2147483647 # int
0f5
0fb B18: # B30 B19 <- B17 B15 B28 Freq: 0.0441203
0fb movslq R10, R11 # i2l
0fe salq
182 jb,u B35 P=0.000001 C=-1.000000
182
188 B22: # B35 B23R10, #1
101 <- B21 Freq: 0.0386863
188 addq R10, #23 # long
105 movq RDX, R10 # spill
108 andq RDX, #-8 # long
10c cmpl R11, #524288 # unsigned
113 jnbe,u B30 cmpl R11, R9 # unsigned
18b jb,u B35 P=0.000001 C=-1.000000
18b
191 B23: # B37 B24 <- B22 Freq: 0.0386863
191 testl R9, R9
194 jle B37 P=0.000001 C=-1.000000
194
19a B24: # B29 B25 <- B23 Freq: 0.0386863
19a leaq RSI, [RBP + #16 (8-bit)] # ptr off8narrow
19e cmpl R9, R11
1a1 jl B29 P=0.001000 C=-1.000000
P=0.000001 C=-1.000000
113
119 B19: # B30 B20 <- B18 Freq: 0.0441203
119 # TLS is in R15
119 movq R13, [R15 + #120 (8-bit)] # ptr
11d movq R9, R13 # spill
120 1a1
1a7 B25: # B26 <- B24 Freq: 0.0386476addq R9, RDX # ptr
123 cmpq R9, [R15 + #136 (32-bit)] # raw ptr
12a
1a7 addq RDX, #-16 # long
1ab shrq RDX, #3
1af movq RDI, RSI # spill
1b2 movq RSI, R14 # spill
1b5 call_leaf_nofp,runtime jlong_disjoint_arraycopy
No JVM State Info
#
1c2
1c2 B26: # B5 <- B29 B25 B36 B37 Freq: 0.0386864
1c2 jnb,u B30 P=0.000100 C=-1.000000
12a
MEMBAR-storestore (empty encoding)
1c2 movq R10, [rsp + #48] # spill
1c7130 B20: # B21 <- B19 Freq: 0.0441158
movl RDI, [R10 + #12 (8-bit)] # compressed ptr130 movq [R15 + #120 (8-bit)], R9 # ptr ! Field: java/lang/String.value
1cb movq R10, [rsp + #0] # spill
1cf
134 PREFETCHNTA [R9 + #256 (32-bit)] # Prefetch allocation to non-temporal cache for write
13c movq [R13], 0x0000000000000001 # ptrmovl R10, [R10 + #12 (8-bit)] # int
144 PREFETCHNTA [R9 + #320 (32-bit)] # Prefetch allocation to non-temporal cache for write
14c movl [R13 + #8 (8-bit)], narrowklass: precise klass [C: 0x00007f625811e128:Constant:exact * ! Field: java/lang/AbstractStringBuilder.count
1d3 encode_heap_oop_not_null RBP,R13
2de movq R11, [rsp + #0] # spill # compressed klass ptr
154 movl [R13 + #12 (8-bit)],
2e2 movl [R11 # int
158 PREFETCHNTA [R9 + #384R11 + #16 (8-bit)], RBP # compressed ptr ! Field: (32-bit)] # Prefetch allocation to non-temporal cache for write
158
160 B21: # java/lang/AbstractStringBuilder.value
2e6 movq R11, R11 # ptr -> long
2e6 shrq R11B35 B22 <- B31 B20 Freq: 0.0441203, #9
2ea movq R8, 0x00007f62487ff000 # ptr
2f4 movb
160
160 # checkcastPP of [R13
160 R8 + R11], R12 # short/char (R12_heapbase==0)
cmpl R8, R11
1632f8 jmp B5
2f8
2fd B27: # B16 B28 <- B14 movl R9, R11 # spill
Freq: 0.0193432
2fd addl R10, #2 # int
301 166 cmovll R9, R8 # signed, int
16a movq R14, R13 # spill
16d addq testl R10, R10
304 jl B16 P=0.500000 C=-1.000000
304
30a B28: # B18 <- B27 Freq: 0.0096716
30a movl R11, R10 # spill
30d jmp R14, B18
30d
312 B29: # B26 <- B24 Freq: 3.86863e-05
312 movslq RDX, #16 # ptr
171 decode_heap_oop_not_null RSI,RBP
174 shrq R10, #3
178 R9 # i2l
315 movq R11, RDX # spill
movq RCX, R10 # spill
17b addq RCX, #-2 # long
17f 318 salq R11, #1
cmpl R8, R9 # unsigned
182 jb,u B35 P=0.000001 C=-1.000000
182
188 B22: # B3531b addq R11, #16 # long
31f movq R8, R11 # spill
322 andq R8, #-7 # long
326 B23 <- B21 Freq: 0.0441203
188 cmpl R11, R9 # unsigned
18b jb,u B35 P=0.000001 C=-1.000000
movq RDI, R13 # spill
329 addq RDI, R8 # ptr
32c 18b
191 B23: # B37 B24 <- B22 Freq: 0.0441202
191 testl R9, R9
194 shrq R11, #3
330 jle B37 P=0.000001 C=-1.000000
194
19a B24: # B29 B25 <- subq R10, R11B23 Freq: 0.0441202
19a leaq RSI, [RBP + #16 (8-bit)] # ptr off8narrow
19e cmpl R9, R11
1a1 jl B29 P=0.001000 C=-1.000000
# long
333 1a1
1a7 B25: # B26 <- B24 Freq: 0.044076
1a7 addq RDX, #-16 # long
1ab shrq RDX, #3
1afmovq RCX, R10 # spill
336 xorq rax, rax # ClearArray:
shlq rcx,3 # Convert doublewords to bytes
rep stosb # Store rax to *rdi++ while rcx--
340 movq RDI, RSI # spill
343 movq RSI, R14 # spill
346 call_leaf_nofp,runtime movq RDI, RSI # spill
1b2 movq RSI, R14 # spill arrayof_jshort_disjoint_arraycopy
No JVM State Info
#
353 jmp
1b5 call_leaf_nofp,runtime jlong_disjoint_arraycopy
No JVM State Info
#
1c2
B26
353
358 B30: # B45 B31 <- 1c2 B26: # B5 <- B29 B18 B19 Freq: 3.90848e-06
358 B25 B36 B37 movl [rsp + #40], R8 # spill
35d movq [rsp + #32], RDX # spill
362 movq [rsp + #24], R10 # spill
367 movl [rsp + #20], R11 # spill
36c movl [rsp + #16], RBX # spill
370 movq [rsp + #8], RSI # spill
375 pushq [rsp + #48] # 64-bit mem-mem spill
popq [rsp + #0]
37e movq RSI, Freq: 0.0441203
1c2 MEMBAR-storestore (empty encoding)
precise klass [C: 0x00007f625811e128:Constant:exact *1c2 movq R10, [rsp + #48] # spill
1c7 movl RDI, [R10 + #12 (8-bit)] # compressed ptr # ptr ! Field: java/lang/String.value
1cb movq R10, [rsp + #0] # spill
1cf movl R10, [R10 + #12 (8-bit)] # int ! Field: java/lang/AbstractStringBuilder.count
1d3 encode_heap_oop_not_null RBP,R13
2de movq R11, [rsp + #0] # spill
2e2
388 movl RDX, R11 # spill
38b call,static wrapper for: _new_array_nozero_Javamovl [R11 + #16 (8-bit)], RBP # compressed ptr ! Field: java/lang/AbstractStringBuilder.value
2e6 movq R11, R11 # ptr -> long
2e6 shrq
# java.util.Arrays::copyOf @ bci:1 L[0]=RBP L[1]=rsp + #20 L[2]=_
# java.lang.AbstractStringBuilder::expandCapacity @ bci:43 L[0]=_ L[1]=_ L[2]=_ STK[0]=rsp + #8
# java.lang.AbstractStringBuilder::ensureCapacityInternalR11, #9
2ea movq R8, 0x00007f62487ff000 # ptr
2f4 movb [R8 + R11], R12 # short/char (R12_heapbase==0)
2f8 jmp B5
2f8
2fd B27: # B16 B28 <- B14 @ bci:12 L[0]=_ L[1]=_
# Freq: 0.0220602
2fd addl R10, #2 # int
301 testl R10, java.lang.AbstractStringBuilder::append @ bci:21 L[0]=rsp + #8 L[1]=rsp + #0 L[2]=rsp + #16R10
304 jl B16 P=0.500000 C=-1.000000
304
30a B28: # B18 <- B27 Freq: 0.0110301
30a movl R11, R10 # spill
30d jmp B18
30d
312 B29: # B26 <- B24 Freq: 4.41202e-05
312 movslq RDX, R9 # i2l
315 movq R11, RDX # spill
318
# OopMap{salq R11, #1
31b addq R11, rbp#16 # long
31f movq R8, R11 # spill
322 andq R8, #-7 # long
326 movq RDI, R13 # spill
329 addq RDI, R8 # ptr
32c shrq R11, #3
330 subq R10, R11 # long
333 movq RCX, R10 # spill
336 =NarrowOop [0]=Oop [8]=Oop [48]=Oop off=912}
390
390 B31: # B21 <- B30 xorq rax, rax # ClearArray:
shlq rcx,3 # Convert doublewords to bytes
rep stosb # Store rax to *rdi++ while rcx--
340 Freq: 3.9084e-06
# Block is sole successor of call
390 pushq [rsp + #8] # 64-bit mem-mem spill
popq [rsp + #0]
399 movl RCX, [rsp + #16] # spill
39d movl R11, [rsp + #20] # spill
3a2 movq R10, [rsp + #24] # spill
3a7 movq RDI, RSI # spill
movq RDX, [rsp + #32] # spill
3ac movl R8, [rsp + #40] # spill
3b1 343 movq RSI, R14 # spill
346 call_leaf_nofp,runtime arrayof_jshort_disjoint_arraycopy
No JVM State Info
#
353 jmp B26
353
358 B30: # B45 B31 <- B18 B19 Freq: 4.45746e-06
358 movl [rsp + #40], R8 # spill
35d movq [rsp + #32], RDX # spill
362 movq [rsp + #24], R10 # spill
367 movl [rsp + #20], R11 # spill
36c movl [rsp + #16], RBX # spill
370 movl RBX, RCX # spill
3b3 movq R13, RAX # spill
3b6 jmp B21
3b6
movq [rsp + #8], RSI # spill
375 pushq [rsp + #48] # 64-bit mem-mem spill
popq [rsp + #0]
37e 3bb B32: # B46 B33 <- B8 movq RSI, precise klass [C: 0x00007f625811e128:Constant:exact * # ptr
388 movl RDX, R11 # spill
38b call,static wrapper for: _new_array_nozero_Java
# java.util.Arrays::copyOf @ bci:1 L[0]=RBP L[1]=rsp + #20 L[2]=_
# java.lang.AbstractStringBuilder::expandCapacity @ bci:43 L[0]=_ L[1]=_ B9 B10 Freq: 2.99998e-06
L[2]=_ STK[0]=rsp + #8
# java.lang.AbstractStringBuilder::ensureCapacityInternal @ bci:12 3bb movq RSI, RDX # spill
3be xorl RDX, RDX # int
3c0 movl R8, R10 # spill
3c3 movl R9, RBX # spill
3c6 movl [rsp + #12], RBX # spill
nop # 1 bytes pad for loops and calls
3cb call,static wrapper for: slow_arraycopy
# java.lang.String::getChars @ bci:58 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_
# java.lang.AbstractStringBuilder::append @ bci:35 L[0]=rsp + #0 L[1]=_ L[2]=rsp + #12
# OopMap{[0]=Oop off=976}
3d0
3d0 B33: # B13 <- B32 Freq: 2.99992e-06
# Block is sole successor of call
3d0 movl RBX, [rsp + #12] # spill
3d4 jmp B13
3d4
3d9 B34: # N562 <- B6 Freq: 4.76835e-07
3d9 movl RSI, #5 # int
3de movq RBP, [rsp + #0] # spill
L[0]=_ L[1]=_
# java.lang.AbstractStringBuilder::append @ bci:21 L[0]=rsp + #8 L[1]=rsp + #0 L[2]=rsp + #16
# java.lang.StringBuilder::append @ bci:2 L[0]=rsp + #8 L[1]=_
# OopMap{rbp=NarrowOop [0]=Oop [8]=Oop [48]=Oop off=912}
390
390 B31: # B21 <- B30 Freq: 4.45737e-06
# Block is sole successor of call
390 pushq [rsp + #8] # 64-bit mem-mem spill
popq [rsp + #0]
399 movl RCX, [rsp + #16] # spill
39d movl R11, [rsp + #20] # spill
3a2 movq R10, [rsp + #24] # spill
3a7 movq RDX, [rsp + #32] # spill
3ac movl R8, [rsp + #40] # spill
3b1 movl RBX, RCX # spill
3b3 movq R13, RAX # spill
3b6 jmp B21
3b6
3bb B32: # B46 B33 <- B8 B9 B10 Freq: 2.99998e-06
3bb movq RSI, RDX # spill
3be xorl RDX, RDX # int
3c0 movl R8, R10 # spill
3c3 movl R9, RBX # spill
3c6 movl [rsp + #12], RBX # spill
nop # 1 bytes pad for loops and calls
3cb call,static wrapper for: slow_arraycopy
# java.lang.String::getChars @ bci:58 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_
# java.lang.AbstractStringBuilder::append @ bci:35 L[0]=rsp + #0 L[1]=_ L[2]=rsp + #12
# java.lang.StringBuilder::append @ bci:2 L[0]=rsp + #0 L[1]=_
# OopMap{[0]=Oop off=976}
3d0
3d0 B33: # B13 <- B32 Freq: 2.99992e-06
# Block is sole successor of call
3d0 movl RBX, [rsp + #12] # spill
3d4 jmp B13
3d4
3d9 B34: # N567 <- B6 Freq: 4.76835e-07
3d9 movl RSI, #5 # int
3de movl [rsp + #12], RBX # spill
nop # 1 bytes pad for loops and calls
3e3 call,static wrapper for: uncommon_trap(reason='unloaded' action='reinterpret' index='5')
# java.lang.String::getChars @ bci:22 L[0]=_ L[1]=_ L[2]=rsp + #12 L[3]=_ L[4]=_
# java.lang.AbstractStringBuilder::append @ bci:35 L[0]=rsp + #0 L[1]=_ L[2]=rsp + #12
# java.lang.StringBuilder::append @ bci:2 L[0]=rsp + #0 L[1]=_
# OopMap{[0]=Oop off=1000}
3e8 int3 # ShouldNotReachHere
3e8
3ed B35: # B44 B36 <- B21 B22 Freq: 8.82405e-08
3ed movq RDI, R14 # spill
3f0 xorq rax, rax # ClearArray:
shlq rcx,3 # Convert doublewords to bytes
rep stosb # Store rax to *rdi++ while rcx--
3fa xorl RDX, RDX # int
3fc movq RCX, R13 # spill
3ff xorl R8, R8 # int
402 movl [rsp + #20], RBX # spill
406 movq [rsp + #40], R13 # spill
40b call,static wrapper for: slow_arraycopy
# java.util.Arrays::copyOf @ bci:14 L[0]=_ L[1]=_ L[2]=rsp + #40
# java.lang.AbstractStringBuilder::expandCapacity @ bci:43 L[0]=_ L[1]=_ L[2]=_ STK[0]=rsp + #0
# java.lang.AbstractStringBuilder::ensureCapacityInternal @ bci:12 L[0]=_ L[1]=_
# java.lang.AbstractStringBuilder::append @ bci:21 L[0]=rsp + #0 L[1]=rsp + #48 L[2]=rsp + #20
# java.lang.StringBuilder::append @ bci:2 L[0]=rsp + #0 L[1]=_
# OopMap{[0]=Oop [40]=Oop [48]=Oop off=1040}
410
410 B36: # B26 <- B35 Freq: 8.82388e-08
# Block is sole successor of call
410 3e2 movl [rsp + #4], RBX # spill
movl RBX, [rsp + #20] # spill
nop # 1 bytes pad for loops and calls
3e7 call,static wrapper for: uncommon_trap414 movq R13, [rsp + #40] # spill
419 jmp B26
419
41e B37: # B26 <- B23 Freq: 4.41202e-08
41e movq RDI, R14 # spill
(reason='unloaded' action='reinterpret' index='5')
#421 xorq rax, rax # ClearArray:
shlq rcx,3 # Convert doublewords to bytes
rep stosb # Store rax to *rdi++ while rcx--
42b
42b jmp java.lang.String::getChars @ bci:22 L[0]=_ L[1]=_ L[2]=rsp + #4B26
42b
430 B38: # N567 <- L[3]=_ L[4]=_
# java.lang.AbstractStringBuilder::append @ bci:35 B16 Freq: 2.20602e-08
430 movl RSI, #6 L[0]=RBP L[1]=_ L[2]=rsp + #4
# OopMap{rbp=Oop off=1004}
3ec int3 # ShouldNotReachHere # int
435 movq RBP, [rsp + #0] # spill
439 movl [rsp + #16], RBX # spill
3ec
nop # 2 bytes pad for loops and calls
43f 3f1 B35: # B44 B36 <- B21 call,static B22 Freq: 7.73727e-08
3f1 movq RDI, R14 # spill
3f4 xorq rax, rax # ClearArray:
shlq rcx,3 # Convert doublewords to bytes
rep stosb # Store rax to *rdi++ while rcx--
3fe xorl RDX, RDX # int
400 movq RCX, R13 # spill
403 xorl R8, R8 # int
wrapper for: uncommon_trap(reason='unloaded' action='reinterpret' index='6')
# java.lang.AbstractStringBuilder::expandCapacity406 @ bci:26 L[0]=_ L[1]=_ L[2]=_
# java.lang.AbstractStringBuilder::ensureCapacityInternalmovl [rsp + #20], RBX # spill
40a @ bci:12 L[0]=_ L[1]=_
movq [rsp + #32], R13 # spill
40f call,static wrapper for: slow_arraycopy
# java.util.Arrays::copyOf @ bci:14 L[0]=_ L[1]=_ L[2]=rsp + #32
# java.lang.AbstractStringBuilder::expandCapacity @ bci:43 L[0]=_ L[1]=_ L[2]=_ # java.lang.AbstractStringBuilder::append @ bci:21 L[0]=RBP L[1]=rsp + #48 L[2]=rsp + #16
# java.lang.StringBuilder::append @ bci:2 L[0]=RBP L[1]=_ STK[0]=rsp + #0
# java.lang.AbstractStringBuilder::
# OopMap{rbp=Oop [48]=Oop ensureCapacityInternal @ bci:12 L[0]=_ L[1]=_
# java.lang.AbstractStringBuilder::append @ bci:21 L[0]=rsp + #0 L[1]=rsp + #48off=1092}
444 L[2]=rsp + #20
# OopMap{[0]=Oop [32]=Oop [48]=Oop off=1044}
414
414 B36: # B26 <- B35 Freq: 7.73712e-08
# Block is sole successor of call
414 int3 # ShouldNotReachHere movl RBX, [rsp + #20] # spill
418
444
449 B39: # N567 <- B2 Freq: 1.01328e-06movq R13, [rsp + #32] # spill
41d jmp
449 movl RSI, B26
41d
422 B37: # B26 <- B23 Freq: 3.86863e-08
422 #-10 # int
nop # 1 bytes pad for loops and calls
44f call,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# java.lang.String::length @ bci:4 L[0]=_ STK[0]=#NULL
# java.lang.AbstractStringBuilder::append @ bci:10 L[0]=_ L[1]=_ L[2]=_
# java.lang.StringBuilder::movq RDI, R14 # spill
425 xorq rax, rax # ClearArray:
shlq rcx,3 # Convert doublewords to bytes
rep stosb # Store rax to *rdi++ while rcx--
42f
42f jmp B26
42f
434 B38: # N562 <- B16 Freq: 1.93432e-08
434 movl RSI, #6 # int
439 movq RBP, [rsp + #0] # spill
43d movl [rsp + #8], RBX # spill
nop # 2 bytes pad for loops and calls
443 call,static wrapper for: uncommon_trap(reason='unloaded' action='reinterpret' index='6')
# java.lang.AbstractStringBuilder::expandCapacity @ bci:26 L[0]=_ L[1]=_ L[2]=_
# java.lang.AbstractStringBuilder::ensureCapacityInternal @ bci:12 L[0]=_ L[1]=_
# java.lang.AbstractStringBuilder::append @ bci:21 L[0]=RBP L[1]=rsp + #48 L[2]=rsp + #8
# OopMap{rbp=Oop [48]=Oop off=1096}
448 int3 # ShouldNotReachHere
448
44d B39: # N562 <- B2 Freq: 1.01328e-06
44d append @ bci:2 L[0]=_ L[1]=_
# OopMap{off=1108}
454 int3 # ShouldNotReachHere
454
459 B40: # N567 <- B3 Freq: 1.01328e-06
459 movl RSI, #-10 # int
nop # 1 bytes pad for loops and calls
45f call,static movl RSI, #-10 # int
nop # 1 bytes pad for loops and calls
453 call,static wrapper for: uncommon_trap wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# java.lang.AbstractStringBuilder::ensureCapacityInternal @ bci:5 L[0]=_ L[1]=_ STK[0]=_ STK[1]=#NULL
#(reason='null_check' action='maybe_recompile')
# java.lang.String::length @ bci:4 L[0]=_ STK[0]=#NULL
# java.lang.AbstractStringBuilder::append java.lang.AbstractStringBuilder::append @ bci:21 L[0]=_ L[1]=_ L[2]=_
# java.lang.StringBuilder::append @ bci:2 L[0]=_ L[1]=_
# OopMap{off=1124}
464 int3 # ShouldNotReachHere
464
469 B41: # N567 <- @ bci:10 L[0]=_ L[1]=_ L[2]=_
# B5 Freq: 1.01328e-06
469 movl RSI, #-10 # int
nop # 1 bytes pad for loops and calls
46f call,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# java.lang.String::getChars @ bci:18 OopMap{off=1112}
458 int3 # ShouldNotReachHere
458
45d B40: # N562 <- B3 Freq: 1.01328e-06
45d movl RSI, #-10 # int
nop # 1 bytes pad for loops and calls
463 call,static wrapper for: uncommon_trap L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ STK[0]=_ STK[1]=#NULL
# java.lang.AbstractStringBuilder::append @ bci:35 L[0]=_ L[1]=_ L[2]=_
# java.lang.StringBuilder::append @ bci:2 L[0]=_ L[1]=_
# OopMap{off=1140}
474 int3 # ShouldNotReachHere
474
479 B42: # N567 <- B7 Freq: 1.01327e-06
479 movl RSI, #-10 # int
47e movl RBP, RDI # spill
480 movl [rsp + #0], R10 # spill
484 movl [rsp + #4], RBX # spill
nop # 3 bytes pad for loops and calls
48b call,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
#(reason='null_check' action='maybe_recompile')
# java.lang.AbstractStringBuilder::ensureCapacityInternal @ bci:5 L[0]=_ L[1]=_ STK[0]=_ STK[1]=#NULL
# java.lang.String::getChars @ bci:58 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ STK[0]=RBP STK[1]=#0 STK[2]=#NULL STK[3]=rsp + #0 STK[4]=rsp + #4
# java.lang.AbstractStringBuilder::append @ bci:21 L[0]=_ L[1]=_ L[2]=_
# OopMap{off=1128}
468 int3 # ShouldNotReachHere
468
java.lang.AbstractStringBuilder::append @ bci:35 L[0]=_ L[1]=_ L[2]=_
#46d B41: # N562 <- B5 Freq: 1.01328e-06
46d movl RSI, #-10 # int
java.lang.StringBuilder::append @ bci:2 L[0]=_ L[1]=_
# OopMap{ rbp=NarrowOop nop # 1 bytes pad for loops and calls
473off=1168}
490 int3 # ShouldNotReachHere
490
495 B43: # N567 <- B1 Freq: 4.76837e-07
495 movl RSI, #-83 # int
49a movq RBP, [rsp + #0] # spill
49e movq [rsp + #16], RDX # spill
4a3 call,static wrapper for: uncommon_trap(reason='unreached' action='reinterpret')
# java.lang.AbstractStringBuilder::append @ bci:1 L[0]=RBP call,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# java.lang.String::getChars @ bci:18 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ STK[0]=_ STK[1]=#NULL
# java.lang.AbstractStringBuilder::append @ bci:35 L[0]=_ L[1]=_ L[2]=_
# OopMap{off=1144}
478 int3 # ShouldNotReachHere
478
47d B42: # N562 <- B7 Freq: 1.01327e-06
47d movl RSI, #-10 # int
482 movl RBP, RDI # spill
484 movl [rsp + #0], R10 # spill
488 movl [rsp + #4], RBX # spill
L[1]=rsp + #16 L[2]=_ STK[0]=rsp + #48
# java.lang.StringBuilder::append @ bci:2 L[0]=RBP L[1]=_
# OopMap{rbp=Oop [16]=Oop [48]=Oop off=1192}
4a8 int3 # ShouldNotReachHere
4a8
4ad B44: # B47 <- B35 Freq: 8.82405e-13
4ad # exception oop is in rax; no code emitted
4ad movq RSI, RAX # spill
4b0 jmp,s B47
4b0
4b2 B45: # B47 <- B30 Freq: 4.45746e-11
4b2 # exception oop is in rax; no code emitted
4b2 movq RSI, RAX # spill
4b5 jmp,s B47
4b5
4b7 B46: # B47 <- B32 Freq: 2.99998e-11
4b7 # exception oop is in rax; no code emitted
4b7 movq RSI, RAX # spill
4b7
4ba B47: # N567 <- B45 B44 B46 Freq: 7.54569e-11
nop # 3 bytes pad for loops and calls
4ba addq rsp, 80 # Destroy frame
popq rbp
4bf jmp rethrow_stub
4bf
48f call,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# java.lang.String::getChars @ bci:58 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ STK[0]=RBP STK[1]=#0 STK[2]=#NULL STK[3]=rsp + #0 STK[4]=rsp + #4
# java.lang.AbstractStringBuilder::append @ bci:35 L[0]=_ L[1]=_ L[2]=_
# OopMap{rbp=NarrowOop off=1172}
494 int3 # ShouldNotReachHere
494
499 B43: # N562 <- B1 Freq: 4.76837e-07
499 movl RSI, #-83 # int
49e movq RBP, [rsp + #0] # spill
4a2 movq [rsp + #8], RDX # spill
4a7 call,static wrapper for: uncommon_trap(reason='unreached' action='reinterpret')
# java.lang.AbstractStringBuilder::append @ bci:1 L[0]=RBP L[1]=rsp + #8 L[2]=_ STK[0]=rsp + #48
# OopMap{rbp=Oop [8]=Oop [48]=Oop off=1196}
4ac int3 # ShouldNotReachHere
4ac
4b1 B44: # B47 <- B35 Freq: 7.73727e-13
4b1 # exception oop is in rax; no code emitted
4b1 movq RSI, RAX # spill
4b4 jmp,s B47
4b4
4b6 B45: # B47 <- B30 Freq: 3.90848e-11
4b6 # exception oop is in rax; no code emitted
4b6 movq RSI, RAX # spill
4b9 jmp,s B47
4b9
4bb B46: # B47 <- B32 Freq: 2.99998e-11
4bb # exception oop is in rax; no code emitted
4bb movq RSI, RAX # spill
4bb
4be B47: # N562 <- B45 B44 B46 Freq: 6.98583e-11
4be addq rsp, 80 # Destroy frame
popq rbp
4c3 jmp rethrow_stub
4c3
{method}
- this oop: 0x00007f624726bd80
- method holder: 'java/lang/String'
- constants: 0x00007f6247268100 constant pool [678] {0x00007f6247268100} for 'java/lang/String' cache=0x00007f6247318478
- access: 0x81000001 public
- name: 'getChars'
- signature: '(II[CI)V'
- max stack: 7
- max locals: 5
- size of params: 5
- method size: 12
- highest level: 3
- vtable index: -2
- i2i entry: 0x00007f624901e2e0
- adapters: AHE@0x00007f62580ba7f8: 0xbaaba000 i2c: 0x00007f624911a820 c2i: 0x00007f624911a968 c2iUV: 0x00007f624911a93b
- compiled entry 0x00007f6249222ae0
- code size: 62
- code start: 0x00007f624726bcf8
- code end (excl): 0x00007f624726bd36
- method data: 0x00007f6247535b68
- checked ex length: 0
- linenumber start: 0x00007f624726bd36
- localvar length: 5
- localvar start: 0x00007f624726bd42
- compiled code: nmethod 283 89 3 java.lang.String::getChars (62 bytes)
#
# void ( java/lang/String:NotNull:exact *, int, int, char[int:>=0]:exact *, int )
#
#r018 rsi:rsi : parm 0: java/lang/String:NotNull:exact *
#r016 rdx : parm 1: int
#r010 rcx : parm 2: int
#r004 r8:r8 : parm 3: char[int:>=0]:exact *
#r006 r9 : parm 4: int
# -- Old rsp -- Framesize: 48 --
#r191 rsp+44: in_preserve
#r190 rsp+40: return address
#r189 rsp+36: in_preserve
#r188 rsp+32: saved fp register
#r187 rsp+28: pad2, stack alignment
#r186 rsp+24: pad2, stack alignment
#r185 rsp+20: Fixed slot 1
#r184 rsp+16: Fixed slot 0
#r195 rsp+12: spill
#r194 rsp+ 8: spill
#r193 rsp+ 4: spill
#r192 rsp+ 0: spill
#
000 N182: # B1 <- BLOCK HEAD IS JUNK Freq: 1
000 movl rscratch1, [j_rarg0 + oopDesc::klass_offset_in_bytes()] # compressed klass
decode_klass_not_null rscratch1, rscratch1
cmpq rax, rscratch1 # Inline cache check
jne SharedRuntime::_ic_miss_stub
nop # nops to align entry point
nop # 12 bytes pad for loops and calls
020 B1: # B15 B2 <- BLOCK HEAD IS JUNK Freq: 1
020 # stack bang
pushq rbp # Save rbp
subq rsp, #32 # Create frame
02c movq RAX, R8 # spill
02f testl RDX, RDX
031 jl,s B15 P=0.000000 C=33544.000000
031
033 B2: # B18 B3 <- B1 Freq: 1
033 movl RBP, [RSI + #12 (8-bit)] # compressed ptr ! Field: java/lang/String.value
036 movl R11, [RBP + #12 (8-bit)] # range
03a NullCheck RBP
03a
03a B3: # B16 B4 <- B2 Freq: 0.999999
03a cmpl RCX, R11
03d jg,s B16 P=0.000000 C=33544.000000
03d
03f B4: # B17 B5 <- B3 Freq: 0.999998
03f cmpl RDX, RCX
041 jg B17 P=0.000000 C=33544.000000
041
047 B5: # B19 B6 <- B4 Freq: 0.999998
047 movl RBX, RCX # spill
049 subl RBX, RDX # int
04b movl R8, [R8 + #12 (8-bit)] # range
04f NullCheck R8
04f
04f B6: # B13 B7 <- B5 Freq: 0.999997
04f decode_heap_oop_not_null RSI,RBP
052 movl R10, R9 # spill
055 testl R9, R9
058 jl,s B13 P=0.000001 C=-1.000000
058
05a B7: # B13 B8 <- B6 Freq: 0.999996
05a cmpl R11, RCX # unsigned
05d jb,us B13 P=0.000001 C=-1.000000
05d
05f B8: # B13 B9 <- B7 Freq: 0.999995
05f addl R9, RBX # int
062 cmpl R8, R9 # unsigned
065 jb,us B13 P=0.000001 C=-1.000000
065
067 B9: # B12 B10 <- B8 Freq: 0.999994
067 testl RBX, RBX
069 jle,s B12 P=0.000001 C=-1.000000
069
06b B10: # B11 <- B9 Freq: 0.999992
06b leaq RDI, [RBP + #16 + RDX << #1] # ptr posidxscaleoffnarrow
070 leaq RSI, [RAX + #16 + R10 << #1] # ptr posidxscaleoff
075 movslq RDX, RBX # i2l
078 call_leaf_nofp,runtime jshort_arraycopy
No JVM State Info
#
085
085 B11: # N182 <- B10 B12 B14 Freq: 0.999996
085
085 addq rsp, 32 # Destroy frame
popq rbp
testl rax, [rip + #offset_to_poll_page] # Safepoint: poll for GC
090 ret
090
091 B12: # B11 B13 <- B9 Freq: 9.99994e-07
091 testl RBX, RBX
093 jge,s B11 P=0.999999 C=-1.000000
093
095 B13: # B20 B14 <- B12 B6 B7 B8 Freq: 2.99999e-06
095 movq RCX, RAX # spill
098 movl R8, R10 # spill
09b movl R9, RBX # spill
nop # 1 bytes pad for loops and calls
09f call,static wrapper for: slow_arraycopy
# java.lang.String::getChars @ bci:58 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_
# OopMap{off=164}
0a4
0a4 B14: # B11 <- B13 Freq: 2.99993e-06
# Block is sole successor of call
0a4 jmp,s B11
0a4
0a6 B15: # N182 <- B1 Freq: 4.76837e-07
0a6 movl RSI, #5 # int
0ab movl RBP, RDX # spill
nop # 2 bytes pad for loops and calls
0af call,static wrapper for: uncommon_trap(reason='unloaded' action='reinterpret' index='5')
# java.lang.String::getChars @ bci:4 L[0]=_ L[1]=RBP L[2]=_ L[3]=_ L[4]=_
# OopMap{off=180}
0b4 int3 # ShouldNotReachHere
0b4
0b9 B16: # N182 <- B3 Freq: 4.76836e-07
0b9 movl RSI, #5 # int
0be movl RBP, RCX # spill
nop # 3 bytes pad for loops and calls
0c3 call,static wrapper for: uncommon_trap(reason='unloaded' action='reinterpret' index='5')
# java.lang.String::getChars @ bci:22 L[0]=_ L[1]=_ L[2]=RBP L[3]=_ L[4]=_
# OopMap{off=200}
0c8 int3 # ShouldNotReachHere
0c8
0cd B17: # N182 <- B4 Freq: 4.76836e-07
0cd movl RSI, #5 # int
0d2 movl RBP, RDX # spill
0d4 movl [rsp + #0], RCX # spill
0d7 call,static wrapper for: uncommon_trap(reason='unloaded' action='reinterpret' index='5')
# java.lang.String::getChars @ bci:36 L[0]=_ L[1]=RBP L[2]=rsp + #0 L[3]=_ L[4]=_
# OopMap{off=220}
0dc int3 # ShouldNotReachHere
0dc
0e1 B18: # N182 <- B2 Freq: 1.01328e-06
0e1 movl RSI, #-10 # int
nop # 1 bytes pad for loops and calls
0e7 call,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# java.lang.String::getChars @ bci:18 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ STK[0]=_ STK[1]=#NULL
# OopMap{off=236}
0ec int3 # ShouldNotReachHere
0ec
0f1 B19: # N182 <- B5 Freq: 1.01328e-06
0f1 movl RSI, #-10 # int
0f6 movl [rsp + #0], RDX # spill
0f9 movl [rsp + #4], R9 # spill
0fe movl [rsp + #8], RBX # spill
nop # 1 bytes pad for loops and calls
103 call,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# java.lang.String::getChars @ bci:58 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ STK[0]=RBP STK[1]=rsp + #0 STK[2]=#NULL STK[3]=rsp + #4 STK[4]=rsp + #8
# OopMap{rbp=NarrowOop off=264}
108 int3 # ShouldNotReachHere
108
10d B20: # N182 <- B13 Freq: 2.99999e-11
10d # exception oop is in rax; no code emitted
10d movq RSI, RAX # spill
110 addq rsp, 32 # Destroy frame
popq rbp
115 jmp rethrow_stub
115
{method}
- this oop: 0x00007f624766fa70
- method holder: 'LambdaJitTrace$$Lambda$1'
- constants: 0x00007f624766f850 constant pool [22] {0x00007f624766f850} for 'LambdaJitTrace$$Lambda$1' cache=0x00007f624766fae8
- access: 0x81000001 public
- name: 'apply'
- signature: '(Ljava/lang/Object;)Ljava/lang/Object;'
- max stack: 2
- max locals: 2
- size of params: 2
- method size: 12
- highest level: 2
- vtable index: -2
- i2i entry: 0x00007f624901e2e0
- adapters: AHE@0x00007f62580b9b40: 0xbb000000 i2c: 0x00007f6249106520 c2i: 0x00007f6249106638 c2iUV: 0x00007f624910660b
- compiled entry 0x00007f6249229640
- code size: 8
- code start: 0x00007f624766fa68
- code end (excl): 0x00007f624766fa70
- method data: 0x00007f6247673c30
- checked ex length: 0
- localvar length: 0
- compiled code: nmethod 299 120 2 LambdaJitTrace$$Lambda$1/640070680::apply (8 bytes)
#
# java/lang/Object * ( LambdaJitTrace$$Lambda$1{method}
- this oop: 0x00007f624726f7e0
- method holder: 'java/lang/String'
- constants: 0x00007f6247268100 constant pool [678] {0x00007f6247268100} for 'java/lang/Str:NotNull:exact *, java/lang/Object * )
#
#r018 rsi:rsi : parm 0: LambdaJitTrace$$Lambda$1:NotNull:exact *
#r016 rdx:rdx : parm 1: java/lang/Object *
# -- Old rsp -- Framesize: 80 --
#r191 rsp+76: in_preserve
#r190 rsp+72: return address
#r189 rsp+68: in_preserve
#r188 rsp+64: saved fp register
ing' cache=0x00007f6247318478
- access: 0xc1000001 public
- name: 'trim'
- signature: '()Ljava/lang/String;'
- max stack: 4
- max locals: 4
- size of params: 1
- method size: 12
- highest level: 2
- vtable index: -2
- i2i entry: 0x00007f624901e2e0
- adapters: AHE@0x00007f62580b9a90: 0xb0000000 i2c: 0x00007f6249106ae0 c2i: 0x00007f6249106bf4 c2iUV: 0x00007f6249106bc7
- compiled entry 0x00007f6249229be0
- code size: 77
- code start: 0x00007f624726f750
- code end (excl): 0x00007f624726f79d
- method data: 0x00007f624756af68
- checked ex length: 0
- linenumber start: 0x00007f624726f79d
- localvar length: 4
- localvar start: 0x00007f624726f7ae
- compiled code: nmethod 303 119 2 java.lang.String::trim (77 bytes)
#
# java/lang/String:exact * ( java/lang/String:NotNull:exact * )#r187 rsp+60: pad2, stack alignment
#r186 rsp+56: pad2, stack alignment
#r185 rsp+52: Fixed slot 1
#r184 rsp+48: Fixed slot 0
#
#r018 rsi:rsi : parm 0: java/lang/String:NotNull:exact *
# -- Old rsp -- Framesize: 80 --
#r191 rsp+76: in_preserve
#r190 rsp+72: return address
#r189 rsp+68: in_preserve
#r188 rsp+64: saved fp register
#r187 rsp+60: pad2, stack alignment
#r186 rsp+56: pad2, stack alignment
#r185 rsp+52: Fixed slot 1
#r184 rsp+48: Fixed slot 0
#r203 rsp+44: spill
#r202 rsp+40: spill
#r201 rsp+36: spill
#r200 rsp+32: spill
#r199 rsp+28: spill
#r198 rsp+24: spill
#r197 rsp+20: spill
#r196 rsp+16: spill
#r195 rsp+12: spill
#r194 rsp+ 8: spill
#r193 rsp+ 4: spill
#r192 rsp+ 0: spill
#
000 #r203 rsp+44: spill
#r202 rsp+40: spill
#r201 rsp+36: spill
#r200 rsp+32: spill
#r199 rsp+28: spill
#r198 rsp+24: spill
#r197 rsp+20: spill
#r196 rsp+16: spill
#r195 rsp+12: spill
#r194 rsp+ 8: spill
#r193 rsp+ 4: spill
#r192 rsp+ 0: spill
#
000 N686: # B1 <- BLOCK HEAD IS JUNK Freq: 1
000 movl rscratch1, [j_rarg0 + oopDesc::klass_offset_in_bytes()] # compressed klass
decode_klass_not_null rscratch1, rscratch1
cmpq rax, rscratch1 # Inline cache check
jne SharedRuntime::_ic_miss_stub
N654: # B1 <- BLOCK HEAD IS JUNK Freq: 1
000 movl rscratch1, [j_rarg0 + oopDesc::klass_offset_in_bytes()] # compressed klass
decode_klass_not_null rscratch1, rscratch1
cmpq rax, rscratch1 # Inline cache check
jne SharedRuntime::_ic_miss_stub
nop # nops to align entry point
nop # 12 bytes pad for loops and calls
020 B1: # B54 B2 <- BLOCK HEAD IS JUNK Freq: 1
020 # stack bang
pushq rbp # Save rbp
subq rsp, #64 # Create frame
02c movq [rsp + #8], RSI # spill
031 movl RDI, [RSI + #12 (8-bit)] # compressed ptr ! Field: java/lang/String.value
034 movl R9, [RDI + #12 (8-bit)] # range
038 NullCheck RDI
038
038 B2: # B44 B3 <- B1 Freq: 0.999999
038 movl R10, R9 # spill
03b decl R10 # int
03e testl R9, R9
041 jle B44 P=0.000000 C=69687.000000
041
047 B3: # B38 B4 <- B2 Freq: 0.999999
047 testl R9, R9 # unsigned
04a jbe,u B38 P=0.000001 C=-1.000000
04a
050 B4: # B38 B5 <- B3 Freq: 0.999997
050 cmpl R10, R9 # unsigned
053 jnb,u B38 P=0.000001 C=-1.000000
053
059 B5: # B6 <- B4 Freq: 0.999996
059 xorl RCX, RCX # int
nop # 5 bytes pad for loops and calls
060 B6: # B8 B7 <- B5 B7 Loop: B6-B7 inner Freq: 2.99999
060 movzwl R8, [RDI + #16 + nop # nops to align entry point
nop # 12 bytes pad for loops and calls
020 B1: # B57 B2 <- BLOCK HEAD IS JUNK Freq: 1
RCX << #1] # ushort/char
066 cmpl R8, #32
06a jg,s B8 P=0.333333 C=69687.000000
06a
06c B7: # B6 B8 <- B6 Freq: 1.99999
06c incl RCX # int
06e cmpl RCX, R9
071 jl,s B6 # loop end P=1.000000 C=46458.000000
071
073 B8: # B45 B9 <- B7 B6 B44 Freq: 0.999997
073 cmpl RCX, R9
076 jge 020 # stack bang
pushq rbp # Save rbp
subq rsp, #64 # Create frame
02c B45 P=0.000000 C=69687.000000
076
07c B9: # movq R11, RDX # spill
02f movl R10, [RDX + B39 B10 <- B8 Freq: 0.999996
07c cmpl RCX, R9 # unsigned
07f jnb,u B39 P=0.000001 C=-1.000000
07f
085 B10: # B39 B11 <- B9 Freq: 0.999995
085 cmpl R10, R9 # unsigned
088 jnb,u B39 P=0.000001 C=-1.000000
088
08e B11: # B12 <- B10 Freq: 0.999994
08e movl RBP, R9 # spill
091 movl R8, RCX # spill
nop # 12 bytes pad for loops and calls
0a0 B12: # B14 B13 <- B11 B13 Loop: B12-B13 inner Freq: 2.99998
0a0 movzwl R11, [RDI + #14 + RBP << #1] # ushort/char
0a6 cmpl R11, #32
0aa jg,s B14 P=0.333333 C=69687.000000
0aa
0ac B13: # B12 B14 <- B12 Freq: 1.99999
0ac decl RBP # int
0ae cmpl RBP, R8
0b1 jg,s B12 # loop end P=1.000000 C=46458.000000
0b1
0b3 B14: # B46 B15 <- B13 B12 B45 Freq: 0.999995
0b3 testl R8, R8
#8 (8-bit)] # compressed klass ptr
033 NullCheck RDX
033
033 B2: # 0b6 jle B46 P=0.000000 C=23229.000000
0b6
0bc B15: # B48 B16 <- B46 B14 Freq: 0.999995
0bc testl R8, R8
0bf jl B48 P=0.000000 C=38198.000000
0bf
0c5 B16: # B49 B17 <- B15 Freq: 0.999994
0c5 cmpl RBP, R9
0c8 jg B49 P=0.000000 C=38198.000000
0c8
0ce B17: # B50 B18 <- B16 Freq: 0.999994
0ce movl R11, RBP # spill
0d1 subl R11, R8 # int
0d4 movl [rsp + #4], R11 # spill
0d9 testl R11, R11
0dc jl B50 P=0.000000 C=38198.000000
0dc
0e2 B18: # B51 B19 <- B17 Freq: 0.999993
B56 B3 <- B1 Freq: 0.999999
0e2 testl R8, R8
0e5 je B51 P=0.000000 C=38198.000000
0e5
0eb B19: # 033 cmpl B34 B20 <- B51 B18 Freq: 0.999993
0eb # TLS is in R15
0eb movq RBX, [R15 + #120 (8-bit)] # ptrR10, narrowklass: precise klass java/lang/String: 0x00007f6258128b28:Constant:exact * # compressed klass ptr
03a jne,u B56 P=0.000000 C=-1.000000
03a
040 B3: # B58 B4 <- B2
0ef movq R10, RBX # spill
0f2 addq R10, #24 # ptr
0f6 # TLS is in R15
0f6 cmpq R10, [R15 + #136 (32-bit)] # raw ptr
0fd jnb,u B34 P=0.000100 C=-1.000000
0fd
Freq: 0.999999
040 # checkcastPP of 103 B20: # B21 <- B19 Freq: 0.999893
103 # TLS is in R15
103 movq [R15 + #120 (8-bit)], R10 # ptr
107 PREFETCHNTA [R10 + #256 (32-bit)] # Prefetch allocation to non-temporal cache for write
10fR11
040 movq [rsp + #8], R11 # spill
045 movl RDI, [R11 + #12 (8-bit)] # compressed ptr ! Field: java/lang/String.value
049 movl R9 movl R11, narrowklass: precise klass java/lang/String: 0x00007f6258128b28:Constant:exact * # compressed klass ptr
115 decode_klass_not_null R10,R11
123 movq R10, [R10 + #176 (32-bit)] # ptr
12a movq [RBX], R10 # ptr
12d movl [RBX + , [RDI + #12 (8-bit)] # range
04d NullCheck RDI
04d
04d B4: # B46 B5 <- B3 #8 (8-bit)], narrowklass: precise klass java/lang/String: 0x00007f6258128b28:Constant:exact * # compressed klass ptr
134 movl [RBX + #12 (8-bit)], R12 # int (R12_heapbase==0)
138 movq [RBX + #16 (8-bit)], R12 # long (R12_heapbase==0)
13c movl [rsp + #32], R8 # spill
13c
141 B21: # B55 B22 <- B35 B20 Freq: 0.999993
141
141 MEMBAR-storestore (empty encoding)
141 # checkcastPP of RBX
141 Freq: 0.999998
04d movl R10, R9 # spill
050 movq R10, [rsp + #8] # spill
146 movl RSI, [R10 + #12 (8-bit)] # compressed ptr ! Field: java/lang/String.value decl R10 # int
053 testl R9, R9
056 jle B46
14a movl R8, [RSI + #12 (8-bit)] # range
14e NullCheck RSI
14e
14e B22: # B53 B23 <- B21 Freq: 0.999992
14e movl R11, R8 # spill
151 subl R11, [RSP + #4 (32-bit)] # int
156 movl R9, [rsp + #32] # spill
15b cmpl R9, R11
15e jg P=0.000000 C=69687.000000
B53 P=0.000000 C=14575.000000
15e
164 B23: # 056
05c B5: # B40 B6 <- B4 B36 B24 <- B22 Freq: 0.999992
164 decode_heap_oop_not_null R14,RSI
167 movslq R11, [RSP + #4 (32-bit)] # int -> long
16c salq R11, #1
16f addq R11, #23 # long
173 movl R10, [rsp + #4] # spill
178 cmpl R10, #524288 # unsigned
17f jnbe,u B36 P=0.000001 C=-1.000000
17f
185 B24: # B36 B25 <- B23 Freq: 0.999991
185 # TLS is in R15
185 movq RBP, [R15 + #120 (8-bit)] # ptr
189 Freq: 0.999997
05c testl R9, R9 # unsigned
05f jbe movq R10, R11 # spill
18c andq R10, #-8 # long
190 movq R9, RBP # spill
193 addq R9, R10 # ptr
196 # TLS is in R15
196 cmpq R9, [R15 + #136 (32-bit)] # raw ptr
19d jnb,u B36 P=0.000100 C=-1.000000
19d
1a3 B25: # B26 <- B24 Freq: 0.999891
1a3 # TLS is in R15
1a3 movq [R15 + #120 (8-bit)],u B40 P=0.000001 C=-1.000000
05f
065 B6: # B40 B7 <- B5 Freq: 0.999996
065 cmpl R10, R9 # unsigned
068 jnb,u B40 P=0.000001 C=-1.000000
, R9 # ptr
1a7 PREFETCHNTA [R9 + #256 (32-bit)] # Prefetch allocation to non-temporal cache for write
1af movq [RBP], 0x0000000000000001 # ptr
1b7 PREFETCHNTA [R9 + #320 (32-bit)] # Prefetch allocation to non-temporal cache for write
1bf movl [RBP + #8 (8-bit)], narrowklass: precise klass [C: 0x00007f625811e128:Constant:exact * # compressed klass ptr
1c6 movl R10, [rsp + #4] # spill
1cb movl [RBP + #12 (8-bit)], R10 # int
1cf 068
06e B7: # B8 <- B6 Freq: 0.999995
06e xorl RCX, RCX # int
070
070 B8: # B10 PREFETCHNTA [R9 + #384 (32-bit)] # Prefetch allocation to non-temporal cache for write
B9 <- B7 B9 Loop: B8-B9 inner 1cf
1d7 B26: # B40 B27 <- B37 B25 Freq: 0.999992
1d7
1d7 # checkcastPP of RBP
1d7 movl R10, R8 # spill
1da subl R10, [RSP + #32 (32-bit)] # int
1df movq R13, RBP # spill
1e2 addq R13, #16 # ptr
1e6 cmpl R10, [RSP + #4 (32-bit)]
1eb movl R9, [rsp + #4] # spill
1f0 cmovll R9, R10 # signed, int
1f4 movl R10, [rsp + #32] # spill
1f9 addl Freq: 2.99998
070 movzwl R8, [RDI + #16 + RCX << #1] # ushort/char
076 R10, R9 # int
1fc shrq R11, #3
200 movq RCX, R11 # spill
203 addq RCX, #-2 # long
207 cmpl R8, R10 # unsigned
20a jb,u B40 P=0.000001 C=-1.000000
20a
210 B27: # B40 B28 <- B26 Freq: 0.999991
cmpl R8, #32
07a210 movl R10, [rsp + #4] # spill
215 cmpl R10, R9 # unsigned
218 jb,u B40 P=0.000001 C=-1.000000
218
21e B28: # B42 B29 <- B27 Freq: 0.99999
21e testl R9, R9
221 jle B42 P=0.000001 C=-1.000000
221
227 B29: # B33 B30 <- B28 Freq: 0.999989
227 movslq RDX, R9 # i2l
22a cmpl R9, R10
22d jl B33 P=0.001000 C=-1.000000
22d
233 B30: # B31 <- B29 B33 Freq: 0.999989
233 movl R11, [rsp + #32] # spill
238 leaq jg,s B10 P=0.333333 C=69687.000000
07a
07c B9: # B8 B10 <- B8 Freq: 1.99999
07c incl RCX # int
07e cmpl RCX, R9
081 jl,s RDI, [RSI + #16 + R11 << #1] # ptr posidxscaleoffnarrow
23d movq RSI, R13 # spill
240 call_leaf_nofp,runtime jshort_arraycopy
No JVM State Info
#
24d
24d B31: # B32 <- B30 B43 B41 Freq: 0.999992
24d MEMBAR-storestore (empty encoding)
24d encode_heap_oop_not_null R10,RBP
358 movl [RBX + B8 # loop end P=1.000000 C=46458.000000
081
083 B10#12 (8-bit)], R10 # compressed ptr ! Field: java/lang/String.value
35c movq R10, : # B47 B11 <- RBX # ptr -> long
35f shrq R10, #9
363 movq R11, 0x00007f62487ff000 # ptr
36d movb [R11 + R10], R12 # short/char (R12_heapbase==0)
371 MEMBAR-release ! (empty encoding)
371
371 B32: # N654 <- B31 B52 B47 Freq: 0.999992
371 B9 B8 B46 Freq: 0.999996
083 cmpl RCX, R9
086 jge B47 P=0.000000 C=69687.000000
086
08c B11: # B41 B12 <- B10 Freq: 0.999995
08c cmpl RCX, R9 # unsigned
08f jnb,u B41 P=0.000001 C=-1.000000
08f
095 B12: # B41 B13 <- B11 movq RAX, RBX # spill
374 addq rsp, 64 # Destroy frame
popq rbp
testl rax, [rip + #offset_to_poll_page] # Safepoint: poll for GC
37f ret
37f
380 B33: # B30 <- B29 Freq: 0.000999989
380 movq R10, RDX # spill
383 salq R10, #1
386 addq R10, #16 # long
38a movq R8, R10 # spill
Freq: 0.999994
095 cmpl R10, R9 # unsigned
098 jnb,u B41 P=0.000001 C=-1.000000
098
09e B13: # B14 <- B12 Freq: 0.999993
09e movl RBP, R9 # spill
0a1 movl R8, RCX # spill
nop # 12 bytes pad for loops and calls
0b0 B14: # B16 B15 <- B13 B15 Loop: B14-B15 inner Freq: 2.99998
0b0 movzwl R11, [RDI + #14 + RBP << #1] # ushort/char38d
0b6 cmpl R11, #32
0ba jg,s B16andq R8, #-7 # long
391 movq RDI, RBP # spill
394 addq RDI, R8 # ptr
397 shrq R10, #3
39b subq R11, R10 # long
39e movq RCX, R11 # spill
3a1 xorq rax, rax # ClearArray:
shlq rcx,3 # Convert doublewords to bytes
rep stosb # Store rax to *rdi++ while rcx--
3ab jmp B30
3ab
3b0 B34: # B58 B35 <- B19 Freq: 0.000100016
3b0 movq RSI, precise klass java/lang/String: 0x00007f6258128b28:Constant:exact * # ptr
3ba movq RBP, [rsp + #8] # spill
3bf movl [rsp + #32], R8 # spill
nop # 3 bytes pad for loops and calls
3c7 call,static P=0.333333 C=69687.000000
0ba
0bc B15: # B14 B16 <- B14 Freq: 1.99998
0bc decl RBP # int
0be cmpl RBP, wrapper for: _new_instance_Java
# java.lang.String::substring @ bci:65 L[0]=RBP L[1]=rsp + #32 L[2]=_ L[3]=rsp + #4
# java.lang.String::trim @ bci:69 L[0]=_ L[1]=_ L[2]=_ L[3]=_
# OopMap{rbp=Oop [8]=Oop off=972}
R8
0c1 jg,s B14 # loop end P=1.000000 C=46458.000000
0c1
0c3 B16: # B48 B17 <- B15 B14 3cc
3cc B35: # B21 <- B34 Freq: 0.000100014
# Block is sole successor of call
3cc movq RBX, RAX # spill
3cf jmp B21
3cf
3d4 B36: # B57 B37 <- B23 B24 Freq: 0.000101029
3d4 movl [rsp + #40], R8 # spill
B47 Freq: 0.999994
0c3 testl R8, R8
0c6 jle B48 P=0.000000 C=23229.000000
0c6
0cc B17: # B50 B18 <- B48 B16 Freq: 0.999994
0cc testl R8, R8
0cf3d9 movl [rsp + #36], RSI # spill
3dd movq [rsp + #24], R11 # spill
3e2 jl B50 P=0.000000 C=33025.000000
0cf
0d5 B18: # B51 B19 <- B17 Freq: 0.999993
0d5 cmpl RBP, R9
0d8 jg B51 P=0.000000 C=33025.000000
0d8
0de B19: # B52 B20 <- movq [rsp + #16], R14 # spill
3e7 movq [rsp + #8], RBX # spill
3ec movq [rsp - #8], rax # 32-bit mem-mem spill
movl rax, [rsp + #4]
movl [rsp + #0], rax
movq rax, [rsp - #8]
3fd movq RSI, precise B18 Freq: 0.999993
0de movl RCX, RBP # spill
0e0 klass [C: 0x00007f625811e128:Constant:exact * # ptr
407 movl RDX, [rsp + #0] # spill
nop # 1 bytes pad for loops and calls
40b call,static wrapper for: _new_array_nozero_Java
# java.util.Arrays::copyOfRange @ bci:40 L[0]=rsp + #16 L[1]=rsp + #32 L[2]=_ L[3]=rsp + #0 L[4]=_
# java.lang.String::<init> @ bci:55 L[0]=_ L[1]=_ L[2]=_ L[3]=_ STK[0]=rsp + #8
# java.lang.String::subl RCX, R8 # int
0e3 movl [rsp + #4], RCX # spill
0e7 testl RCX, RCX
0e9 jl B52 P=0.000000 C=33025.000000
0e9
0ef B20: # B53 B21 <- B19 substring @ bci:75 L[0]=_ L[1]=_ L[2]=_ L[3]=_ STK[0]=rsp + #8
# java.lang.String::trim Freq: 0.999992
0ef testl R8, R8
0f2 je B53 P=0.000000 C=33025.000000
0f2
0f8 B21: # B36 B22 <- B53 B20 Freq: 0.999992
0f8 # TLS is in R15
0f8 movq RBX, [R15 + #120 (8-bit)] # ptr
0fc movq R10, RBX # spill
0ff addq R10, #24 # ptr
103 # TLS is in R15
103 cmpq R10, [R15 + #136 (32-bit)] # raw ptr
10a jnb,u B36 P=0.000100 C=-1.000000
10a
110 B22: # B23 <- B21 Freq: 0.999892
110 # TLS is in R15
110 movq [R15 + #120 (8-bit)], R10 # ptr
114 PREFETCHNTA [R10 + #256 (32-bit)] # Prefetch allocation to non-temporal cache for write @ bci:69 L[0]=_ L[1]=_ L[2]=_ L[3]=_
# OopMap{[8]=Oop [16]=Oop [36]=NarrowOop off=1040}
410
410 B37: # B26 <- B36 Freq: 0.000101027
# Block is sole successor of call
410 movq R9, [rsp + #8] # spill
415 movq R14, [rsp + #16] # spill
41a movq R11, [rsp + #24] # spill
41f movq RBP, RAX # spill
422 movl RSI, [rsp + #36] # spill
426 movl R8, [rsp + #40] # spill
42b movq RBX, R9 # spill
42e jmp B26
42e
433 B38: # N654 <- B4 B3 Freq: 2.01327e-06
433 movl RSI, #-122 # int
438 movl RBP, RDI # spill
43a pushq [rsp + #8] # 64-bit mem-mem spill
popq [rsp + #0]
443 movl [rsp + #8], R9 # spill
nop # 3 bytes pad for loops and calls
44b call,static wrapper for: uncommon_trap(reason='predicate' action='maybe_recompile')
# java.lang.String::trim @ bci:18 L[0]=rsp + #0 L[1]=rsp + #8 L[2]=#0 L[3]=RBP
# OopMap{rbp=NarrowOop [0]=Oop off=1104}
450 int3 # ShouldNotReachHere
450
455 B39: # N654 <- B10 B9 Freq: 2.02655e-06
455 movl RSI, #-122 # int
45a movl RBP, RCX # spill
45c movl [rsp + #0], RDI # spill
45f movl [rsp + #4], R9 # spill
nop # 3 bytes pad for loops and calls
467 call,static wrapper for: uncommon_trap(reason='predicate' action='maybe_recompile')
# java.lang.String::trim @ bci:37 L[0]=rsp + #8 L[1]=rsp + #4 L[2]=RBP L[3]=rsp + #0
# OopMap{[0]=NarrowOop [8]=Oop off=1132}
46c int3 # ShouldNotReachHere
46c
471 B40: # B56 B41 <- B42 B26 B27 Freq: 1.99998e-06
471 movq RDI, R13 # spill
474 xorq rax, rax # ClearArray:
shlq rcx,3 # Convert doublewords to bytes
rep stosb # Store rax to *rdi++ while rcx--
47e movq RSI, R14 # spill
481 movl RDX, [rsp + #32] # spill
485 movq RCX, RBP # spill
488 xorl R8, R8 # int
48b movq [rsp + #8], RBX # spill
490 movq [rsp + #16], RBX # spill
nop # 2 bytes pad for loops and calls
497 call,static wrapper for: slow_arraycopy
# java.util.Arrays::copyOfRange @ bci:57 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=RBP
# java.lang.String::<init> @ bci:55 L[0]=_ L[1]=_ L[2]=_ L[3]=_ STK[0]=rsp + #16
# java.lang.String::substring @ bci:75 L[0]=_ L[1]=_ L[2]=_ L[3]=_ STK[0]=rsp + #8
# java.lang.String::
11c movl R11, narrowklass: precise klass java/lang/String: 0x00007f6258128b28:Constant:exact * # compressed klass ptr
122 trim @ bci:69 L[0]=_ L[1]=_ L[2]=_ L[3]=_
# OopMap{rbp=Oop [8]=Oop [16]=Oop off=1180}
49c
49c B41: # B31 <- B40 Freq: 1.99994e-06
# Block is sole successor of call
49c movq RBX, [rsp + #8] # spill
4a1 jmp B31
4a1
4a6 B42: # B40 B43 <- B28 Freq: 9.9999e-07
4a6 testl R9, R9
4a9 decode_klass_not_null R10,R11
130 movq R10, [R10 + #176 (32-bit)] # ptr
137 movq [RBX], R10 # ptr
13a movl [RBX + #8 (8-bit)], narrowklass: precise klass java/lang/String: 0x00007f6258128b28:Constant:exact * # compressed klass ptr
141 movl [RBX + #12 (8-bit)], R12 # int (R12_heapbase==0)
145 movq [RBX + #16 (8-bit)], R12 # long (R12_heapbase==0)
149 movl [rsp + #32], R8 # spill
jl,s B40 P=0.000001 C=-1.000000
4a9
4ab B43: # B31 <- B42 Freq: 9.99989e-07
4ab movq RDI, R13 # spill
4ae xorq rax, rax # ClearArray:
shlq rcx,3 # Convert doublewords to bytes
rep stosb # Store rax to *rdi++ while rcx--
4b8
4b8 jmp B31
4b8
4bd B44: # B8 <- B2 Freq: 4.99999e-07
4bd xorl R11, R11 # int
4c0 movl RCX, R11 # spill
4c3 jmp B8
4c3
4c8 B45: # B14 <- B8 Freq: 4.76836e-07
4c8 movl RBP, R9 # spill
4cb movl R8, RCX # spill
4ce jmp B14
4ce
4d3 B46: # 149
14e B23: # B59 B24 <- B37 B22 Freq: 0.999992B15 B47 <- B14 Freq: 4.76835e-07
4d3 cmpl RBP, R9
4d6
14e
14e MEMBAR-storestore (empty encoding)
14e # checkcastPP of RBX
14e movq R10, [rsp + #8] # spill
153 movl RSI, [R10 + #12 (8-bit)] # compressed ptr ! Field: java/lang/String.value
157 movl R8, [RSI + #12 (8-bit)] # range jl B15 P=0.500000 C=-1.000000
4d6
4dc B47: # B32 <- B46 Freq: 2.38417e-07
4dc movq R10, [rsp + #8] # spill
4e1 movq RBX, R10 # spill
4e4 jmp B32
4e4
4e9 B48: # N654 <- B15 Freq: 4.76835e-07
4e9 movl RSI, #5 # int
4ee movl RBP, R8 # spill
nop # 2 bytes pad for loops and calls
4f3 call,static wrapper for: uncommon_trap(reason='unloaded' action='reinterpret' index='5')
# java.lang.String::substring @ bci:4 L[0]=_ L[1]=RBP L[2]=_ L[3]=_
# java.lang.String::trim @ bci:69 L[0]=_ L[1]=_ L[2]=_ L[3]=_
# OopMap{off=1272}
4f8 int3 # ShouldNotReachHere
4f8
4fd
15b NullCheck RSI
15b
15b B24: # B55 B25 <- B23 Freq: 0.999991
15b movl R11, R8 # spill
15e subl R11, [RSP + #4 (32-bit)] # int
163 B49: # N654 <- B16 Freq: 4.76834e-07
4fd movl RSI, #5 # int
nop # 1 bytes pad for loops and calls
503 call,static wrapper for: uncommon_trap(reason='unloaded' action='reinterpret' index='5')
# java.lang.String::substring @ bci:22 L[0]=_ L[1]=_ L[2]=RBP L[3]=_
# java.lang.String::trim @ bci:69 L[0]=_ L[1]=_ L[2]=_ L[3]=_
# OopMap{off=1288}
508 int3 # ShouldNotReachHere
508
50d B50: # N654 <- B17 Freq: 4.76834e-07
50d movl RSI, #5 # int
512 movl RBP, R11 # spill
nop # 2 bytes pad for loops and calls
517 call,static wrapper for: uncommon_trap(reason='unloaded' action='reinterpret' index='5')
# java.lang.String::substring @ bci:39 L[0]=_ L[1]=_ L[2]=_ L[3]=RBP
# java.lang.String::trim @ bci:69 L[0]=_ L[1]=_ L[2]=_ L[3]=_
# OopMap{off=1308}
51c int3 # ShouldNotReachHere
51c
521 B51: # B19 B52 <- B18 Freq: 4.76834e-07
521 cmpl RBP, R9
524 jne B19 P=0.900000 C=-1.000000
524
52a B52: # B32 <- B51 Freq: 4.76834e-08
52a movq R10, [rsp + #8] # spill
52f movq RBX, R10 # spill
532 jmp B32
532
537 B53: # N654 <- B22 Freq: 4.76833e-07
537 movl RSI, #5 # int
53c movq [rsp + #8], RBX # spill
nop # 2 bytes pad for loops and calls
543 call,static wrapper for: uncommon_trap(reason='unloaded' action='reinterpret' index='5')
# java.lang.String::<init> @ bci:38 L[0]=_ L[1]=_ L[2]=rsp + #32 L[3]=rsp + #4
# java.lang.String::substring @ bci:75 L[0]=_ L[1]=_ L[2]=_ L[3]=_ STK[0]=rsp + #8
# java.lang.String::trim @ bci:69 L[0]=_ L[1]=_ L[2]=_ L[3]=_
# OopMap{[8]=Oop off=1352}
548 int3 # ShouldNotReachHere
548
54d B54: # N654 <- B1 Freq: 1.01328e-06
54d movl RSI, #-10 # int
nop # 1 bytes pad for loops and calls
553 call,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# java.lang.String::trim @ bci:4 L[0]=_ L[1]=_ L[2]=_ L[3]=_ STK[0]=#NULL
# OopMap{off=1368}
558 int3 # ShouldNotReachHere
558
55d B55: # N654 <- B21 Freq: 1.01327e-06
55d movl RSI, #-10 # int
nop # 1 bytes pad for loops and calls
563 call,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# java.lang.String::<init> @ bci:32 L[0]=_ L[1]=_ L[2]=_ L[3]=_ STK[0]=_ STK[1]=#NULL
# java.lang.String::substring @ bci:75 movl R9, [rsp + #32] # spill
168 cmpl R9, R11
16b jg B55 P=0.000000 C=14575.000000
16b
171 B25: # L[0]=_ L[1]=_ L[2]=_ L[3]=_ STK[0]=_
# java.lang.String::trim @ bci:69 L[0]=_ L[1]=_ L[2]=_ L[3]=_
# OopMap{B38 B26 <- B24 Freq: 0.999991
171 decode_heap_oop_not_null R14,RSI
174 movslq R11, [RSP + #4 (32-bit)] # int -> long
179 salq R11, off=1384}
568 #1
17c int3 # ShouldNotReachHere
addq R11, #23568
56d B56: # B59 <- B40 Freq: 1.99998e-11
56d # exception oop is in rax; no code emitted
56d movq RSI, RAX # spill
570 jmp,s B59
570
572 B57: # B59 <- B36 Freq: 1.01029e-09
572 # exception oop is in rax; no code emitted
572 movq RSI, RAX # spill
575 jmp,s B59
575
577 B58: # B59 <- B34 Freq: 1.00016e-09
577 # exception oop is in rax; no code emitted
577 movq RSI, RAX # spill
577
57a B59: # N654 <- B58 B57 B56 Freq: 2.03045e-09
57a addq rsp, 64 # Destroy frame
popq rbp
57f jmp rethrow_stub
57f
# long
180 movl R10, [rsp + #4] # spill
185 cmpl R10, #524288 # unsigned
18c jnbe,u B38 P=0.000001 C=-1.000000
18c
192 B26: # B38 B27 <- B25 Freq: 0.99999
192 # TLS is in R15
192 movq RBP, [R15 + #120 (8-bit)] # ptr
196 movq R10, R11 # spill
199 andq R10, #-8 # long
19d movq R9, RBP # spill
1a0 addq R9, R10 # ptr
1a3 # TLS is in R15
1a3 cmpq R9, [R15 + #136 (32-bit)] # raw ptr
1aa jnb,u B38 P=0.000100 C=-1.000000
1aa
1b0 B27: # B28 <- B26 Freq: 0.99989
1b0 # TLS is in R15
1b0 movq [R15 + #120 (8-bit)], R9 # ptr
1b4 PREFETCHNTA [R9 + #256 (32-bit)] # Prefetch allocation to non-temporal cache for write
1bc movq [RBP], 0x0000000000000001 # ptr
1c4 PREFETCHNTA [R9 + #320 (32-bit)] # Prefetch allocation to non-temporal cache for write
1cc movl [RBP + #8 (8-bit)], narrowklass: precise klass [C: 0x00007f625811e128:Constant:exact * # compressed klass ptr
1d3 movl R10, [rsp + #4] # spill
1d8 movl [RBP + #12 (8-bit)], R10 # int
1dc PREFETCHNTA [R9 + #384 (32-bit)] # Prefetch allocation to non-temporal cache for write
1dc
1e4 B28: # B42 B29 <- B39 B27 Freq: 0.999991
1e4
1e4 # checkcastPP of RBP
1e4 movl R10, R8 # spill
1e7 subl R10, [RSP + #32 (32-bit)] # int
1ec movq R13, RBP # spill
1ef addq R13, #16 # ptr
1f3 cmpl R10, [RSP + #4 (32-bit)]
1f8 movl R9, [rsp + #4] # spill
1fd cmovll R9, R10 # signed, int
201 movl R10, [rsp + #32] # spill
206 addl R10, R9 # int
209 shrq R11, #3
20d movq RCX, R11 # spill
210 addq RCX, #-2 # long
214 cmpl R8, R10 # unsigned
217 jb,u B42 P=0.000001 C=-1.000000
217
21d B29: # B42 B30 <- B28 Freq: 0.99999
21d movl R10, [rsp + #4] # spill
222 cmpl R10, R9 # unsigned
225 jb,u B42 P=0.000001 C=-1.000000
225
22b B30: # B44 B31 <- B29 Freq: 0.999989
22b testl R9, R9
22e jle B44 P=0.000001 C=-1.000000
22e
234 B31: # B35 B32 <- B30 Freq: 0.999988
234 movslq RDX, R9 # i2l
237 cmpl R9, R10
23a jl B35 P=0.001000 C=-1.000000
23a
240 B32: # B33 <- B31 B35 Freq: 0.999988
240 movl R11, [rsp + #32] # spill
245 leaq RDI, [RSI + #16 + R11 << #1] # ptr posidxscaleoffnarrow
24a movq RSI, R13 # spill
24d call_leaf_nofp,runtime jshort_arraycopy
No JVM State Info
#
25a
25a B33: # B34 <- B32 B45 B43 Freq: 0.999991
25a MEMBAR-storestore (empty encoding)
25a encode_heap_oop_not_null R10,RBP
365 movl [RBX + #12 (8-bit)], R10 # compressed ptr ! Field: java/lang/String.value
369 movq R10, RBX # ptr -> long
36c shrq R10, #9
370 movq R11, 0x00007f62487ff000 # ptr
37a movb [R11 + R10], R12 # short/char (R12_heapbase==0)
37e MEMBAR-release ! (empty encoding)
37e
37e B34: # N686 <- B33 B54 B49 Freq: 0.999991
37e movq RAX, RBX # spill
381 addq rsp, 64 # Destroy frame
popq rbp
testl rax, [rip + #offset_to_poll_page] # Safepoint: poll for GC
38c ret
38c
38d B35: # B32 <- B31 Freq: 0.000999988
38d movq R10, RDX # spill
390 salq R10, #1
393 addq R10, #16 # long
397 movq R8, R10 # spill
39a andq R8, #-7 # long
39e movq RDI, RBP # spill
3a1 addq RDI, R8 # ptr
3a4 shrq R10, #3
3a8 subq R11, R10 # long
3ab movq RCX, R11 # spill
3ae xorq rax, rax # ClearArray:
shlq rcx,3 # Convert doublewords to bytes
rep stosb # Store rax to *rdi++ while rcx--
3b8 jmp B32
3b8
3bd B36: # B62 B37 <- B21 Freq: 0.000100016
3bd movq RSI, precise klass java/lang/String: 0x00007f6258128b28:Constant:exact * # ptr
3c7 movq RBP, [rsp + #8] # spill
3cc movl [rsp + #32], R8 # spill
nop # 2 bytes pad for loops and calls
3d3 call,static wrapper for: _new_instance_Java
# java.lang.String::substring @ bci:65 L[0]=RBP L[1]=rsp + #32 L[2]=_ L[3]=rsp + #4
# java.lang.String::trim @ bci:69 L[0]=_ L[1]=_ L[2]=_ L[3]=_
# LambdaJitTrace::lambda$main$0 @ bci:1 L[0]=_
# LambdaJitTrace$$Lambda$1/640070680::apply @ bci:4 L[0]=_ L[1]=_
# OopMap{rbp=Oop [8]=Oop off=984}
3d8
3d8 B37: # B23 <- B36 Freq: 0.000100014
# Block is sole successor of call
3d8 movq RBX, RAX # spill
3db jmp B23
3db
3e0 B38: # B61 B39 <- B25 B26 Freq: 0.000101029
3e0 movl [rsp + #40], R8 # spill
3e5 movl [rsp + #36], RSI # spill
3e9 movq [rsp + #24], R11 # spill
3ee movq [rsp + #16], R14 # spill
3f3 movq [rsp + #8], RBX # spill
3f8 movq [rsp - #8], rax # 32-bit mem-mem spill
movl rax, [rsp + #4]
movl [rsp + #0], rax
movq rax, [rsp - #8]
409 movq RSI, precise klass [C: 0x00007f625811e128:Constant:exact * # ptr
413 movl RDX, [rsp + #0] # spill
nop # 1 bytes pad for loops and calls
417 call,static wrapper for: _new_array_nozero_Java
# java.util.Arrays::copyOfRange @ bci:40 L[0]=rsp + #16 L[1]=rsp + #32 L[2]=_ L[3]=rsp + #0 L[4]=_
# java.lang.String::<init> @ bci:55 L[0]=_ L[1]=_ L[2]=_ L[3]=_ STK[0]=rsp + #8
# java.lang.String::substring @ bci:75 L[0]=_ L[1]=_ L[2]=_ L[3]=_ STK[0]=rsp + #8
# java.lang.String::trim @ bci:69 L[0]=_ L[1]=_ L[2]=_ L[3]=_
# LambdaJitTrace::lambda$main$0 @ bci:1 L[0]=_
# LambdaJitTrace$$Lambda$1/640070680::apply @ bci:4 L[0]=_ L[1]=_
# OopMap{[8]=Oop [16]=Oop [36]=NarrowOop off=1052}
41c
41c B39: # B28 <- B38 Freq: 0.000101027
# Block is sole successor of call
41c movq R9, [rsp + #8] # spill
421 movq R14, [rsp + #16] # spill
426 movq R11, [rsp + #24] # spill
42b movq RBP, RAX # spill
42e movl RSI, [rsp + #36] # spill
432 movl R8, [rsp + #40] # spill
437 movq RBX, R9 # spill
43a jmp B28
43a
43f B40: # N686 <- B6 B5 Freq: 2.01327e-06
43f movl RSI, #-122 # int
444 movl RBP, RDI # spill
446 movq [rsp + #0], R11 # spill
44a movl [rsp + #8], R9 # spill
44f call,static wrapper for: uncommon_trap(reason='predicate' action='maybe_recompile')
# java.lang.String::trim @ bci:18 L[0]=rsp + #0 L[1]=rsp + #8 L[2]=#0 L[3]=RBP
# LambdaJitTrace::lambda$main$0 @ bci:1 L[0]=_
# LambdaJitTrace$$Lambda$1/640070680::apply @ bci:4 L[0]=_ L[1]=_
# OopMap{rbp=NarrowOop [0]=Oop off=1108}
454 int3 # ShouldNotReachHere
454
459 B41: # N686 <- B12 B11 Freq: 2.02655e-06
459 movl RSI, #-122 # int
45e movl RBP, RCX # spill
460 movl [rsp + #0], RDI # spill
463 movl [rsp + #4], R9 # spill
nop # 3 bytes pad for loops and calls
46b call,static wrapper for: uncommon_trap(reason='predicate' action='maybe_recompile')
# java.lang.String::trim @ bci:37 L[0]=rsp + #8 L[1]=rsp + #4 L[2]=RBP L[3]=rsp + #0
# LambdaJitTrace::lambda$main$0 @ bci:1 L[0]=_
# LambdaJitTrace$$Lambda$1/640070680::apply @ bci:4 L[0]=_ L[1]=_
# OopMap{[0]=NarrowOop [8]=Oop off=1136}
470 int3 # ShouldNotReachHere
470
475 B42: # B60 B43 <- B44 B28 B29 Freq: 1.99998e-06
475 movq RDI, R13 # spill
478 xorq rax, rax # ClearArray:
shlq rcx,3 # Convert doublewords to bytes
rep stosb # Store rax to *rdi++ while rcx--
482 movq RSI, R14 # spill
485 movl RDX, [rsp + #32] # spill
489 movq RCX, RBP # spill
48c xorl R8, R8 # int
48f movq [rsp + #8], RBX # spill
494 movq [rsp + #16], RBX # spill
nop # 2 bytes pad for loops and calls
49b call,static wrapper for: slow_arraycopy
# java.util.Arrays::copyOfRange @ bci:57 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=RBP
# java.lang.String::<init> @ bci:55 L[0]=_ L[1]=_ L[2]=_ L[3]=_ STK[0]=rsp + #16
# java.lang.String::substring @ bci:75 L[0]=_ L[1]=_ L[2]=_ L[3]=_ STK[0]=rsp + #8
# java.lang.String::trim @ bci:69 L[0]=_ L[1]=_ L[2]=_ L[3]=_
# LambdaJitTrace::lambda$main$0 @ bci:1 L[0]=_
# LambdaJitTrace$$Lambda$1/640070680::apply @ bci:4 L[0]=_ L[1]=_
# OopMap{rbp=Oop [8]=Oop [16]=Oop off=1184}
4a0
4a0 B43: # B33 <- B42 Freq: 1.99994e-06
# Block is sole successor of call
4a0 movq RBX, [rsp + #8] # spill
4a5 jmp B33
4a5
4aa B44: # B42 B45 <- B30 Freq: 9.99989e-07
4aa testl R9, R9
4ad jl,s B42 P=0.000001 C=-1.000000
4ad
4af B45: # B33 <- B44 Freq: 9.99988e-07
4af movq RDI, R13 # spill
4b2 xorq rax, rax # ClearArray:
shlq rcx,3 # Convert doublewords to bytes
rep stosb # Store rax to *rdi++ while rcx--
4bc
4bc jmp B33
4bc
4c1 B46: # B10 <- B4 Freq: 4.99999e-07
4c1 xorl R11, R11 # int
4c4 movl RCX, R11 # spill
4c7 jmp B10
4c7
4cc B47: # B16 <- B10 Freq: 4.76835e-07
4cc movl RBP, R9 # spill
4cf movl R8, RCX # spill
4d2 jmp B16
4d2
4d7 B48: # B17 B49 <- B16 Freq: 4.76834e-07
4d7 cmpl RBP, R9
4da jl B17 P=0.500000 C=-1.000000
4da
4e0 B49: # B34 <- B48 Freq: 2.38417e-07
4e0 movq R10, [rsp + #8] # spill
4e5 movq RBX, R10 # spill
4e8 jmp B34
4e8
4ed B50: # N686 <- B17 Freq: 4.76834e-07
4ed movl RSI, #5 # int
4f2 movl RBP, R8 # spill
nop # 2 bytes pad for loops and calls
4f7 call,static wrapper for: uncommon_trap(reason='unloaded' action='reinterpret' index='5')
# java.lang.String::substring @ bci:4 L[0]=_ L[1]=RBP L[2]=_ L[3]=_
# java.lang.String::trim @ bci:69 L[0]=_ L[1]=_ L[2]=_ L[3]=_
# LambdaJitTrace::lambda$main$0 @ bci:1 L[0]=_
# LambdaJitTrace$$Lambda$1/640070680::apply @ bci:4 L[0]=_ L[1]=_
# OopMap{off=1276}
4fc int3 # ShouldNotReachHere
4fc
501 B51: # N686 <- B18 Freq: 4.76834e-07
501 movl RSI, #5 # int
nop # 1 bytes pad for loops and calls
507 call,static wrapper for: uncommon_trap(reason='unloaded' action='reinterpret' index='5')
# java.lang.String::substring @ bci:22 L[0]=_ L[1]=_ L[2]=RBP L[3]=_
# java.lang.String::trim @ bci:69 L[0]=_ L[1]=_ L[2]=_ L[3]=_
# LambdaJitTrace::lambda$main$0 @ bci:1 L[0]=_
# LambdaJitTrace$$Lambda$1/640070680::apply @ bci:4 L[0]=_ L[1]=_
# OopMap{off=1292}
50c int3 # ShouldNotReachHere
50c
511 B52: # N686 <- B19 Freq: 4.76834e-07
511 movl RSI, #5 # int
516 movl RBP, RCX # spill
nop # 3 bytes pad for loops and calls
51b call,static wrapper for: uncommon_trap(reason='unloaded' action='reinterpret' index='5')
# java.lang.String::substring @ bci:39 L[0]=_ L[1]=_ L[2]=_ L[3]=RBP
# java.lang.String::trim @ bci:69 L[0]=_ L[1]=_ L[2]=_ L[3]=_
# LambdaJitTrace::lambda$main$0 @ bci:1 L[0]=_
# LambdaJitTrace$$Lambda$1/640070680::apply @ bci:4 L[0]=_ L[1]=_
# OopMap{off=1312}
520 int3 # ShouldNotReachHere
520
525 B53: # B21 B54 <- B20 Freq: 4.76833e-07
525 cmpl RBP, R9
528 jne B21 P=0.900000 C=-1.000000
528
52e B54: # B34 <- B53 Freq: 4.76834e-08
52e movq R10, [rsp + #8] # spill
533 movq RBX, R10 # spill
536 jmp B34
536
53b B55: # N686 <- B24 Freq: 4.76833e-07
53b movl RSI, #5 # int
540 movq [rsp + #8], RBX # spill
nop # 2 bytes pad for loops and calls
547 call,static wrapper for: uncommon_trap(reason='unloaded' action='reinterpret' index='5')
# java.lang.String::<init> @ bci:38 L[0]=_ L[1]=_ L[2]=rsp + #32 L[3]=rsp + #4
# java.lang.String::substring @ bci:75 L[0]=_ L[1]=_ L[2]=_ L[3]=_ STK[0]=rsp + #8
# java.lang.String::trim @ bci:69 L[0]=_ L[1]=_ L[2]=_ L[3]=_
# LambdaJitTrace::lambda$main$0 @ bci:1 L[0]=_
# LambdaJitTrace$$Lambda$1/640070680::apply @ bci:4 L[0]=_ L[1]=_
# OopMap{[8]=Oop off=1356}
54c int3 # ShouldNotReachHere
54c
551 B56: # N686 <- B2 Freq: 1e-35
551 movl RSI, #-34 # int
556 movq RBP, RDX # spill
nop # 2 bytes pad for loops and calls
55b call,static wrapper for: uncommon_trap(reason='class_check' action='maybe_recompile')
# LambdaJitTrace$$Lambda$1/640070680::apply @ bci:1 L[0]=_ L[1]=_ STK[0]=RBP
# OopMap{rbp=Oop off=1376}
560 int3 # ShouldNotReachHere
560
565 B57: # N686 <- B1 Freq: 1.01328e-06
565 movl RSI, #-12 # int
nop # 1 bytes pad for loops and calls
56b call,static wrapper for: uncommon_trap(reason='null_check' action='make_not_entrant')
# LambdaJitTrace$$Lambda$1/640070680::apply @ bci:1 L[0]=_ L[1]=_ STK[0]=#NULL
# OopMap{off=1392}
570 int3 # ShouldNotReachHere
570
575 B58: # N686 <- B3 Freq: 1.01328e-06
575 movl RSI, #-10 # int
nop # 1 bytes pad for loops and calls
57b call,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# java.lang.String::trim @ bci:4 L[0]=_ L[1]=_ L[2]=_ L[3]=_ STK[0]=#NULL
# LambdaJitTrace::lambda$main$0 @ bci:1 L[0]=_
# LambdaJitTrace$$Lambda$1/640070680::apply @ bci:4 L[0]=_ L[1]=_
# OopMap{off=1408}
580 int3 # ShouldNotReachHere
580
585 B59: # N686 <- B23 Freq: 1.01327e-06
585 movl RSI, #-10 # int
nop # 1 bytes pad for loops and calls
58b call,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile')
# java.lang.String::<init> @ bci:32 L[0]=_ L[1]=_ L[2]=_ L[3]=_ STK[0]=_ STK[1]=#NULL
# java.lang.String::substring @ bci:75 L[0]=_ L[1]=_ L[2]=_ L[3]=_ STK[0]=_
# java.lang.String::trim @ bci:69 L[0]=_ L[1]=_ L[2]=_ L[3]=_
# LambdaJitTrace::lambda$main$0 @ bci:1 L[0]=_
# LambdaJitTrace$$Lambda$1/640070680::apply @ bci:4 L[0]=_ L[1]=_
# OopMap{off=1424}
590 int3 # ShouldNotReachHere
590
595 B60: # B63 <- B42 Freq: 1.99998e-11
595 # exception oop is in rax; no code emitted
595 movq RSI, RAX # spill
598 jmp,s B63
598
59a B61: # B63 <- B38 Freq: 1.01029e-09
59a # exception oop is in rax; no code emitted
59a movq RSI, RAX # spill
59d jmp,s B63
59d
59f B62: # B63 <- B36 Freq: 1.00016e-09
59f # exception oop is in rax; no code emitted
59f movq RSI, RAX # spill
59f
5a2 B63: # N686 <- B62 B61 B60 Freq: 2.03045e-09
5a2 addq rsp, 64 # Destroy frame
popq rbp
5a7 jmp rethrow_stub
5a7
{method}
- this oop: 0x00007f624726e198
- method holder: 'java/lang/String'
- constants: 0x00007f6247268100 constant pool [678] {0x00007f6247268100} for 'java/lang/String' cache=0x00007f6247318478
- access: 0x81000001 public
- name: 'substring'
- signature: '(II)Ljava/lang/String;'
- max stack: 6
- max locals: 4
- size of params: 3
- method size: 12
- highest level: 2
- vtable index: -2
- i2i entry: 0x00007f624901e2e0
- adapters: AHE@0x00007f62580ba748: 0xbaa00000 i2c: 0x00007f6249119fe0 c2i: 0x00007f624911a120 c2iUV: 0x00007f624911a0f3
- compiled entry 0x00007f6249237340
- code size: 79
- code start: 0x00007f624726e108
- code end (excl): 0x00007f624726e157
- method data: 0x00007f624756adb0
- checked ex length: 0
- linenumber start: 0x00007f624726e157
- localvar length: 4
- localvar start: 0x00007f624726e166
- compiled code: nmethod 337 116 2 java.lang.String::substring (79 bytes)
#
# java/lang/String:exact * ( java/lang/String:NotNull:exact *, int, int )
#
#r018 rsi:rsi : parm 0: java/lang/String:NotNull:exact *
#r016 rdx : parm 1: int
#r010 rcx : parm 2: int
# -- Old rsp -- Framesize: 80 --
#r191 rsp+76: in_preserve
#r190 rsp+72: return address
#r189 rsp+68: in_preserve
#r188 rsp+64: saved fp register
#r187 rsp+60: pad2, stack alignment
#r186 rsp+56: pad2, stack alignment
#r185 rsp+52: Fixed slot 1
#r184 rsp+48: Fixed slot 0
#r203 rsp+44: spill
#r202 rsp+40: spill
#r201 rsp+36: spill
#r200 rsp+32: spill