Created
June 25, 2012 06:04
-
-
Save rednaxelafx/2986911 to your computer and use it in GitHub Desktop.
Reproduce the OptimizeStringConcat bug in JDK7u4/HS23, as mentioned by Riven here: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2012-June/007916.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
+PrintCompilation | |
-BackgroundCompilation | |
PrintIdealGraphLevel=4 | |
PrintIdealGraphFile=ideal.xml | |
CICompilerCount=1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
OpenJDK 64-Bit Server VM warning: PrintAssembly is enabled; turning on DebugNonSafepoints to gain additional output | |
Java Version: 23.0-b21-internal-fastdebug | |
try OSR compilation | |
469 1 % b Main::foo @ 15 (225 bytes) | |
Loaded disassembler from /home/sajia/temp/openjdk7u4/jdk1.7.0_04/jre/lib/amd64/server/libhsdis-amd64.so | |
Decoding compiled method 0x00002aaaab42f510: | |
Code: | |
[Disassembling for mach='i386:x86-64'] | |
[Entry Point] | |
[Verified Entry Point] | |
[Constants] | |
# {method} 'foo' '()V' in 'Main' | |
;; N1517: # B1 <- BLOCK HEAD IS JUNK Freq: 1 | |
0x00002aaaab42f780: mov $0x2b75415a0f70,%r10 ; {runtime_call} | |
0x00002aaaab42f78a: callq *%r10 | |
0x00002aaaab42f78d: nop | |
0x00002aaaab42f78e: nop | |
0x00002aaaab42f78f: nop | |
;; B1: # B76 B2 <- BLOCK HEAD IS JUNK Freq: 1 | |
0x00002aaaab42f790: mov %eax,-0x16000(%rsp) | |
0x00002aaaab42f797: push %rbp | |
0x00002aaaab42f798: sub $0x50,%rsp | |
0x00002aaaab42f79c: mov 0x10(%rsi),%r13d | |
0x00002aaaab42f7a0: mov 0x18(%rsi),%r10d | |
0x00002aaaab42f7a4: mov %r10d,0x4(%rsp) | |
0x00002aaaab42f7a9: mov 0x30(%rsi),%rbp | |
0x00002aaaab42f7ad: mov 0x20(%rsi),%rbx | |
0x00002aaaab42f7b1: mov 0x28(%rsi),%r11d | |
0x00002aaaab42f7b5: mov %r11d,0x10(%rsp) | |
0x00002aaaab42f7ba: mov %rsi,%rdi | |
0x00002aaaab42f7bd: mov $0x2b754169c950,%r10 | |
0x00002aaaab42f7c7: callq *%r10 | |
0x00002aaaab42f7ca: test %rbp,%rbp | |
0x00002aaaab42f7cd: je 0x00002aaaab43038c | |
;; B2: # B103 B3 <- B1 Freq: 0.999 | |
0x00002aaaab42f7d3: mov %rbp,%r9 | |
0x00002aaaab42f7d6: mov 0x8(%rbp),%r11d | |
0x00002aaaab42f7da: cmp $0xc0800269,%r11d ; {oop({type array long})} | |
0x00002aaaab42f7e1: jne 0x00002aaaab430551 | |
;; B3: # B4 <- B2 Freq: 0.998999 | |
0x00002aaaab42f7e7: mov %rbp,%r8 | |
;; B4: # B77 B5 <- B3 B76 Freq: 0.999999 | |
0x00002aaaab42f7ea: test %rbx,%rbx | |
0x00002aaaab42f7ed: je 0x00002aaaab430397 | |
;; B5: # B103 B6 <- B4 Freq: 0.998999 | |
0x00002aaaab42f7f3: mov 0x8(%rbx),%r10d | |
0x00002aaaab42f7f7: cmp $0xc0800269,%r10d ; {oop({type array long})} | |
0x00002aaaab42f7fe: jne 0x00002aaaab430551 ;*iload | |
; - Main::foo@15 (line 6) | |
;; B6: # B7 <- B5 Freq: 0.998998 | |
0x00002aaaab42f804: mov %rbx,%r10 | |
0x00002aaaab42f807: add $0xc,%r10 ;*laload | |
; - Main::foo@24 (line 6) | |
;; B7: # B75 B8 <- B6 B77 Freq: 0.999998 | |
0x00002aaaab42f80b: cmp 0x4(%rsp),%r13d | |
0x00002aaaab42f810: jge 0x00002aaaab430384 ;*if_icmpge | |
; - Main::foo@18 (line 6) | |
;; B8: # B9 <- B7 Freq: 0.983668 | |
0x00002aaaab42f816: mov %r13d,%ecx | |
0x00002aaaab42f819: inc %ecx | |
0x00002aaaab42f81b: xor %r9d,%r9d | |
0x00002aaaab42f81e: xor %edi,%edi | |
0x00002aaaab42f820: cmp %r9d,%ecx | |
0x00002aaaab42f823: cmovl %edi,%ecx | |
0x00002aaaab42f826: cmp 0x4(%rsp),%ecx | |
0x00002aaaab42f82a: mov 0x4(%rsp),%edi | |
0x00002aaaab42f82e: cmovg %edi,%ecx | |
;; B9: # B94 B10 <- B8 B11 Loop: B9-B11 inner pre of N2716 Freq: 1.96733 | |
0x00002aaaab42f831: test %rbx,%rbx | |
0x00002aaaab42f834: je 0x00002aaaab43046c | |
;; B10: # B95 B11 <- B9 Freq: 1.96733 | |
0x00002aaaab42f83a: mov (%r10),%r11d | |
0x00002aaaab42f83d: cmp %r11d,%r13d | |
0x00002aaaab42f840: jae 0x00002aaaab430489 ;*laload | |
; - Main::foo@24 (line 6) | |
;; B11: # B9 B12 <- B10 Freq: 1.96733 | |
0x00002aaaab42f846: inc %r13d ;*iinc | |
; - Main::foo@27 (line 6) | |
0x00002aaaab42f849: cmp %ecx,%r13d | |
0x00002aaaab42f84c: jl 0x00002aaaab42f831 ;*if_icmpge | |
; - Main::foo@18 (line 6) | |
;; B12: # B15 B13 <- B11 Freq: 0.983664 | |
0x00002aaaab42f84e: cmp %r11d,%edi | |
0x00002aaaab42f851: mov %edi,%r10d | |
0x00002aaaab42f854: cmovg %r11d,%r10d | |
0x00002aaaab42f858: movslq %r13d,%rcx | |
0x00002aaaab42f85b: mov %r10d,%eax | |
0x00002aaaab42f85e: dec %eax | |
0x00002aaaab42f860: mov $0x80000000,%edx | |
0x00002aaaab42f865: cmp %eax,%r10d | |
0x00002aaaab42f868: cmovl %edx,%eax | |
0x00002aaaab42f86b: cmp %eax,%r13d | |
0x00002aaaab42f86e: setl %r10b | |
0x00002aaaab42f872: movzbl %r10b,%r10d | |
0x00002aaaab42f876: neg %r10d | |
0x00002aaaab42f879: movslq %eax,%rdx | |
0x00002aaaab42f87c: sub %rcx,%rdx | |
0x00002aaaab42f87f: add $0x1,%rdx | |
0x00002aaaab42f883: and $0xfffffffffffffffe,%rdx | |
0x00002aaaab42f887: mov %edx,%ebp | |
0x00002aaaab42f889: and %r10d,%ebp | |
0x00002aaaab42f88c: add %r13d,%ebp | |
0x00002aaaab42f88f: mov %edi,%r10d | |
0x00002aaaab42f892: cmp %r10d,%ebp | |
0x00002aaaab42f895: jge 0x00002aaaab42f8ab | |
0x00002aaaab42f897: nop | |
;; B13: # B96 B14 <- B12 B14 Loop: B13-B14 inner post of N2716 Freq: 0.983663 | |
0x00002aaaab42f898: cmp %r11d,%ebp | |
0x00002aaaab42f89b: jae 0x00002aaaab43048c ;*laload | |
; - Main::foo@24 (line 6) | |
;; B14: # B13 B15 <- B13 Freq: 0.983662 | |
0x00002aaaab42f8a1: inc %ebp ;*iinc | |
; - Main::foo@27 (line 6) | |
0x00002aaaab42f8a3: mov %edi,%r10d | |
0x00002aaaab42f8a6: cmp %r10d,%ebp | |
0x00002aaaab42f8a9: jl 0x00002aaaab42f898 ;*new | |
; - Main::foo@87 (line 20) | |
;; B15: # B78 B16 <- B75 B12 B14 Freq: 0.999993 | |
0x00002aaaab42f8ab: mov 0x70(%r15),%r11 | |
0x00002aaaab42f8af: mov %r11,%r10 | |
0x00002aaaab42f8b2: add $0x30,%r10 | |
0x00002aaaab42f8b6: cmp 0x80(%r15),%r10 | |
0x00002aaaab42f8bd: jae 0x00002aaaab4303a4 | |
;; B16: # B17 <- B15 Freq: 0.999893 | |
0x00002aaaab42f8c3: mov %r10,0x70(%r15) | |
0x00002aaaab42f8c7: prefetchnta 0xc0(%r10) | |
0x00002aaaab42f8cf: movq $0x1,(%r11) | |
0x00002aaaab42f8d6: prefetchnta 0x100(%r10) | |
0x00002aaaab42f8de: movl $0xc08000bf,0x8(%r11) ; {oop({type array char})} | |
0x00002aaaab42f8e6: prefetchnta 0x140(%r10) | |
0x00002aaaab42f8ee: movl $0x10,0xc(%r11) | |
0x00002aaaab42f8f6: prefetchnta 0x180(%r10) | |
0x00002aaaab42f8fe: mov %r9d,(%rsp) | |
;; B17: # B41 B18 <- B79 B16 Freq: 0.999993 | |
0x00002aaaab42f902: mov %r11,%rbx | |
0x00002aaaab42f905: add $0x18,%rbx | |
0x00002aaaab42f909: mov %r11,%r10 | |
0x00002aaaab42f90c: add $0x10,%r10 | |
0x00002aaaab42f910: mov %r10,0x18(%rsp) | |
0x00002aaaab42f915: mov %r11,0x8(%rsp) | |
0x00002aaaab42f91a: mov 0x10(%rsp),%r10d | |
0x00002aaaab42f91f: neg %r10d | |
0x00002aaaab42f922: mov %r10d,0x4(%rsp) | |
0x00002aaaab42f927: mov $0xeb0c06b2,%r10d ; {oop([C)} | |
0x00002aaaab42f92d: lea (%r12,%r10,8),%r11 | |
0x00002aaaab42f931: lea 0x10(%r12,%r10,8),%rbp | |
0x00002aaaab42f936: mov %rbp,%rdi | |
0x00002aaaab42f939: mov 0x18(%rsp),%rsi | |
0x00002aaaab42f93e: mov $0x4,%edx | |
0x00002aaaab42f943: mov $0x2aaaab40c960,%r10 | |
0x00002aaaab42f94d: callq *%r10 | |
0x00002aaaab42f950: mov %rbp,%rdi | |
0x00002aaaab42f953: mov %rbx,%rsi | |
0x00002aaaab42f956: mov $0x4,%edx | |
0x00002aaaab42f95b: mov $0x2aaaab40c960,%r10 | |
0x00002aaaab42f965: callq *%r10 ;*invokevirtual length | |
; - Main::foo@111 (line 23) | |
0x00002aaaab42f968: mov 0x10(%rsp),%r11d | |
0x00002aaaab42f96d: cmp $0x80000000,%r11d | |
0x00002aaaab42f974: jne 0x00002aaaab42fd41 | |
;; B18: # B22 <- B17 Freq: 0.499997 | |
0x00002aaaab42f97a: mov $0xb,%ebx | |
0x00002aaaab42f97f: mov $0x10,%r10d | |
0x00002aaaab42f985: mov $0x1,%r8d | |
0x00002aaaab42f98b: mov $0x20,%r9d | |
0x00002aaaab42f991: mov $0x20,%r11d | |
0x00002aaaab42f997: mov %r10d,0x2c(%rsp) | |
0x00002aaaab42f99c: mov %r8d,0x28(%rsp) | |
0x00002aaaab42f9a1: mov %r9d,0x30(%rsp) | |
0x00002aaaab42f9a6: jmp 0x00002aaaab42f9e6 | |
0x00002aaaab42f9a8: nop | |
0x00002aaaab42f9a9: nop | |
0x00002aaaab42f9aa: nop | |
0x00002aaaab42f9ab: nop | |
0x00002aaaab42f9ac: nop | |
0x00002aaaab42f9ad: nop | |
0x00002aaaab42f9ae: nop | |
0x00002aaaab42f9af: nop | |
;; B19: # B20 <- B20 top-of-loop Freq: 499996 | |
0x00002aaaab42f9b0: inc %r8d | |
;; B20: # B19 B21 <- B43 B19 Loop: B20-B19 inner Freq: 499996 | |
0x00002aaaab42f9b3: mov $0x758628a38,%rbx ; {oop([I)} | |
0x00002aaaab42f9bd: mov 0x10(%rbx,%r8,4),%ebx | |
0x00002aaaab42f9c2: cmp %ebx,%r10d | |
0x00002aaaab42f9c5: jg 0x00002aaaab42f9b0 | |
;; B21: # B22 <- B20 Freq: 0.499997 | |
0x00002aaaab42f9c7: add %r8d,%ecx | |
0x00002aaaab42f9ca: mov %ecx,%ebx | |
0x00002aaaab42f9cc: inc %ebx | |
0x00002aaaab42f9ce: add $0x16,%ecx | |
0x00002aaaab42f9d1: mov %r11d,0x10(%rsp) | |
0x00002aaaab42f9d6: mov %r9d,0x2c(%rsp) | |
0x00002aaaab42f9db: mov %edi,0x28(%rsp) | |
0x00002aaaab42f9df: mov %esi,0x30(%rsp) | |
0x00002aaaab42f9e3: mov %ecx,%r11d | |
;; B22: # B101 B23 <- B18 B21 Freq: 0.999993 | |
0x00002aaaab42f9e6: mov $0x74,%r10d | |
0x00002aaaab42f9ec: mov 0x8(%rsp),%r9 | |
0x00002aaaab42f9f1: mov %r10w,0x20(%r9) | |
0x00002aaaab42f9f6: mov $0x65,%r8d | |
0x00002aaaab42f9fc: mov %r8w,0x22(%r9) | |
0x00002aaaab42fa01: mov $0x758600d08,%r9 ; {oop(a 'java/lang/Class' = 'java/lang/System')} | |
0x00002aaaab42fa0b: mov 0x74(%r9),%ebp ;*getstatic out | |
; - Main::foo@118 (line 24) | |
0x00002aaaab42fa0f: mov $0x73,%r9d | |
0x00002aaaab42fa15: mov 0x8(%rsp),%rcx | |
0x00002aaaab42fa1a: mov %r9w,0x24(%rcx) | |
0x00002aaaab42fa1f: mov %r10w,0x26(%rcx) | |
0x00002aaaab42fa24: mov %r10w,0x28(%rcx) | |
0x00002aaaab42fa29: mov %r8w,0x2a(%rcx) | |
0x00002aaaab42fa2e: mov %r9w,0x2c(%rcx) | |
0x00002aaaab42fa33: mov %r10w,0x2e(%rcx) | |
0x00002aaaab42fa38: test %r11d,%r11d | |
0x00002aaaab42fa3b: jl 0x00002aaaab43051d | |
;; B23: # B82 B24 <- B22 Freq: 0.999992 | |
0x00002aaaab42fa41: cmp $0x80000,%r11d | |
0x00002aaaab42fa48: ja 0x00002aaaab4303e0 | |
;; B24: # B83 B25 <- B23 Freq: 0.999991 | |
0x00002aaaab42fa4e: mov %r11d,0x14(%rsp) | |
0x00002aaaab42fa53: mov 0x70(%r15),%r8 | |
0x00002aaaab42fa57: movslq %ebx,%r10 | |
0x00002aaaab42fa5a: shl %r10 | |
0x00002aaaab42fa5d: add $0x41,%r10 | |
0x00002aaaab42fa61: and $0xfffffffffffffff8,%r10 | |
0x00002aaaab42fa65: mov %r8,%r11 | |
0x00002aaaab42fa68: add %r10,%r11 | |
0x00002aaaab42fa6b: cmp 0x80(%r15),%r11 | |
0x00002aaaab42fa72: jae 0x00002aaaab4303e5 | |
;; B25: # B26 <- B24 Freq: 0.999891 | |
0x00002aaaab42fa78: mov %r11,0x70(%r15) | |
0x00002aaaab42fa7c: prefetchnta 0xc0(%r11) | |
0x00002aaaab42fa84: movq $0x1,(%r8) | |
0x00002aaaab42fa8b: prefetchnta 0x100(%r11) | |
0x00002aaaab42fa93: movl $0xc08000bf,0x8(%r8) ; {oop({type array char})} | |
0x00002aaaab42fa9b: mov 0x14(%rsp),%r10d | |
0x00002aaaab42faa0: mov %r10d,0xc(%r8) | |
0x00002aaaab42faa4: prefetchnta 0x140(%r11) | |
0x00002aaaab42faac: prefetchnta 0x180(%r11) | |
;; B26: # B31 B27 <- B84 B25 Freq: 0.999992 | |
0x00002aaaab42fab4: mov %r8,%rsi | |
0x00002aaaab42fab7: add $0x10,%rsi | |
0x00002aaaab42fabb: mov %r8,0x20(%rsp) | |
0x00002aaaab42fac0: mov $0x15,%edx | |
0x00002aaaab42fac5: mov $0x75866c628,%rdi ; {oop([C)} | |
0x00002aaaab42facf: add $0x10,%rdi | |
0x00002aaaab42fad3: mov $0x2aaaab40c960,%r10 | |
0x00002aaaab42fadd: callq *%r10 | |
0x00002aaaab42fae0: mov 0x10(%rsp),%r10d | |
0x00002aaaab42fae5: cmp $0x80000000,%r10d | |
0x00002aaaab42faec: je 0x00002aaaab42fb16 | |
;; B27: # B30 B28 <- B26 Freq: 0.499996 | |
0x00002aaaab42faee: test %r10d,%r10d | |
0x00002aaaab42faf1: jge 0x00002aaaab42faff | |
;; B28: # B29 <- B27 Freq: 0.249998 | |
0x00002aaaab42faf3: mov $0x2d,%r11d | |
;; B29: # B33 <- B28 B30 Freq: 0.499996 | |
0x00002aaaab42faf9: mov 0x14(%rsp),%ecx | |
0x00002aaaab42fafd: jmp 0x00002aaaab42fb57 | |
;; B30: # B29 <- B27 Freq: 0.249998 | |
0x00002aaaab42faff: mov %rax,-0x8(%rsp) | |
0x00002aaaab42fb04: mov 0x10(%rsp),%eax | |
0x00002aaaab42fb08: mov %eax,0x4(%rsp) | |
0x00002aaaab42fb0c: mov -0x8(%rsp),%rax | |
0x00002aaaab42fb11: xor %r11d,%r11d | |
0x00002aaaab42fb14: jmp 0x00002aaaab42faf9 | |
;; B31: # B36 <- B26 Freq: 0.499996 | |
0x00002aaaab42fb16: mov 0x20(%rsp),%rsi | |
0x00002aaaab42fb1b: add $0x3a,%rsi | |
0x00002aaaab42fb1f: mov $0x7586035c8,%rdi ; {oop([C)} | |
0x00002aaaab42fb29: add $0x10,%rdi | |
0x00002aaaab42fb2d: mov $0xb,%edx | |
0x00002aaaab42fb32: mov $0x2aaaab40c960,%r10 | |
0x00002aaaab42fb3c: callq *%r10 | |
0x00002aaaab42fb3f: jmp 0x00002aaaab42fbac | |
0x00002aaaab42fb41: nop | |
0x00002aaaab42fb42: nop | |
0x00002aaaab42fb43: nop | |
0x00002aaaab42fb44: nop | |
0x00002aaaab42fb45: nop | |
0x00002aaaab42fb46: nop | |
0x00002aaaab42fb47: nop | |
0x00002aaaab42fb48: nop | |
0x00002aaaab42fb49: nop | |
0x00002aaaab42fb4a: nop | |
0x00002aaaab42fb4b: nop | |
0x00002aaaab42fb4c: nop | |
0x00002aaaab42fb4d: nop | |
0x00002aaaab42fb4e: nop | |
0x00002aaaab42fb4f: nop | |
;; B32: # B33 <- B33 top-of-loop Freq: 4.49996 | |
0x00002aaaab42fb50: dec %ecx | |
0x00002aaaab42fb52: mov %r8d,0x4(%rsp) | |
;; B33: # B32 B34 <- B29 B32 Loop: B33-B32 inner Freq: 4.99996 | |
0x00002aaaab42fb57: mov 0x4(%rsp),%r9d | |
0x00002aaaab42fb5c: sar $0x1f,%r9d | |
0x00002aaaab42fb60: movslq 0x4(%rsp),%r10 | |
0x00002aaaab42fb65: imul $0x66666667,%r10,%r10 | |
0x00002aaaab42fb6c: sar $0x22,%r10 | |
0x00002aaaab42fb70: mov %r10d,%r10d | |
0x00002aaaab42fb73: mov %r10d,%r8d | |
0x00002aaaab42fb76: sub %r9d,%r8d | |
0x00002aaaab42fb79: mov %r8d,%edi | |
0x00002aaaab42fb7c: shl $0x3,%edi | |
0x00002aaaab42fb7f: mov %r8d,%edx | |
0x00002aaaab42fb82: shl %edx | |
0x00002aaaab42fb84: add %edi,%edx | |
0x00002aaaab42fb86: mov 0x4(%rsp),%ebx | |
0x00002aaaab42fb8a: sub %edx,%ebx | |
0x00002aaaab42fb8c: add $0x30,%ebx | |
0x00002aaaab42fb8f: mov 0x20(%rsp),%rdi | |
0x00002aaaab42fb94: mov %bx,0xe(%rdi,%rcx,2) | |
0x00002aaaab42fb99: cmp %r9d,%r10d | |
0x00002aaaab42fb9c: jne 0x00002aaaab42fb50 | |
;; B34: # B36 B35 <- B33 Freq: 0.499996 | |
0x00002aaaab42fb9e: test %r11d,%r11d | |
0x00002aaaab42fba1: je 0x00002aaaab42fbac | |
;; B35: # B36 <- B34 Freq: 0.249998 | |
0x00002aaaab42fba3: add $0xfffffffffffffffe,%ecx | |
0x00002aaaab42fba6: mov %r11w,0x10(%rdi,%rcx,2) | |
;; B36: # B80 B37 <- B35 B34 B31 Freq: 0.999992 | |
0x00002aaaab42fbac: mov 0x70(%r15),%r10 | |
0x00002aaaab42fbb0: mov %r10,%rdx | |
0x00002aaaab42fbb3: add $0x20,%r10 | |
0x00002aaaab42fbb7: cmp 0x80(%r15),%r10 | |
0x00002aaaab42fbbe: jae 0x00002aaaab4303c8 | |
;; B37: # B38 <- B36 Freq: 0.999892 | |
0x00002aaaab42fbc4: mov %r10,0x70(%r15) | |
0x00002aaaab42fbc8: prefetchnta 0xc0(%r10) | |
0x00002aaaab42fbd0: mov $0xc080165d,%r11d ; {oop('java/lang/String')} | |
0x00002aaaab42fbd6: mov 0xb0(%r12,%r11,8),%r10 | |
0x00002aaaab42fbde: mov %r10,(%rdx) | |
0x00002aaaab42fbe1: movl $0xc080165d,0x8(%rdx) ; {oop('java/lang/String')} | |
0x00002aaaab42fbe8: mov %r12d,0xc(%rdx) | |
0x00002aaaab42fbec: mov %r12,0x10(%rdx) | |
0x00002aaaab42fbf0: mov %r12,0x18(%rdx) | |
;; B38: # B97 B39 <- B81 B37 Freq: 0.999992 | |
0x00002aaaab42fbf4: mov 0x14(%rsp),%r10d | |
0x00002aaaab42fbf9: mov %r10d,0x14(%rdx) | |
0x00002aaaab42fbfd: mov 0x20(%rsp),%r10 | |
0x00002aaaab42fc02: push %r10 | |
0x00002aaaab42fc04: mov $0x2b7541d6d950,%r10 ; {external_word} | |
0x00002aaaab42fc0e: cmp (%r10),%r12 | |
0x00002aaaab42fc11: je 0x00002aaaab42fc96 | |
0x00002aaaab42fc17: mov %rsp,-0x28(%rsp) | |
0x00002aaaab42fc1c: sub $0x80,%rsp | |
0x00002aaaab42fc23: mov %rax,0x78(%rsp) | |
0x00002aaaab42fc28: mov %rcx,0x70(%rsp) | |
0x00002aaaab42fc2d: mov %rdx,0x68(%rsp) | |
0x00002aaaab42fc32: mov %rbx,0x60(%rsp) | |
0x00002aaaab42fc37: mov %rbp,0x50(%rsp) | |
0x00002aaaab42fc3c: mov %rsi,0x48(%rsp) | |
0x00002aaaab42fc41: mov %rdi,0x40(%rsp) | |
0x00002aaaab42fc46: mov %r8,0x38(%rsp) | |
0x00002aaaab42fc4b: mov %r9,0x30(%rsp) | |
0x00002aaaab42fc50: mov %r10,0x28(%rsp) | |
0x00002aaaab42fc55: mov %r11,0x20(%rsp) | |
0x00002aaaab42fc5a: mov %r12,0x18(%rsp) | |
0x00002aaaab42fc5f: mov %r13,0x10(%rsp) | |
0x00002aaaab42fc64: mov %r14,0x8(%rsp) | |
0x00002aaaab42fc69: mov %r15,(%rsp) | |
0x00002aaaab42fc6d: mov $0x2b754183d868,%rdi ; {external_word} | |
0x00002aaaab42fc77: mov $0x2aaaab42fc17,%rsi ; {internal_word} | |
0x00002aaaab42fc81: mov %rsp,%rdx | |
0x00002aaaab42fc84: and $0xfffffffffffffff0,%rsp | |
0x00002aaaab42fc88: mov $0x2b7540d56110,%r10 ; {runtime_call} | |
0x00002aaaab42fc92: callq *%r10 | |
0x00002aaaab42fc95: hlt | |
0x00002aaaab42fc96: pop %r10 | |
0x00002aaaab42fc98: test %r10,%r10 | |
0x00002aaaab42fc9b: jne 0x00002aaaab42fd20 | |
0x00002aaaab42fca1: mov %rsp,-0x28(%rsp) | |
0x00002aaaab42fca6: sub $0x80,%rsp | |
0x00002aaaab42fcad: mov %rax,0x78(%rsp) | |
0x00002aaaab42fcb2: mov %rcx,0x70(%rsp) | |
0x00002aaaab42fcb7: mov %rdx,0x68(%rsp) | |
0x00002aaaab42fcbc: mov %rbx,0x60(%rsp) | |
0x00002aaaab42fcc1: mov %rbp,0x50(%rsp) | |
0x00002aaaab42fcc6: mov %rsi,0x48(%rsp) | |
0x00002aaaab42fccb: mov %rdi,0x40(%rsp) | |
0x00002aaaab42fcd0: mov %r8,0x38(%rsp) | |
0x00002aaaab42fcd5: mov %r9,0x30(%rsp) | |
0x00002aaaab42fcda: mov %r10,0x28(%rsp) | |
0x00002aaaab42fcdf: mov %r11,0x20(%rsp) | |
0x00002aaaab42fce4: mov %r12,0x18(%rsp) | |
0x00002aaaab42fce9: mov %r13,0x10(%rsp) | |
0x00002aaaab42fcee: mov %r14,0x8(%rsp) | |
0x00002aaaab42fcf3: mov %r15,(%rsp) | |
0x00002aaaab42fcf7: mov $0x2b754183d8a8,%rdi ; {external_word} | |
0x00002aaaab42fd01: mov $0x2aaaab42fca1,%rsi ; {internal_word} | |
0x00002aaaab42fd0b: mov %rsp,%rdx | |
0x00002aaaab42fd0e: and $0xfffffffffffffff0,%rsp | |
0x00002aaaab42fd12: mov $0x2b7540d56110,%r10 ; {runtime_call} | |
0x00002aaaab42fd1c: callq *%r10 | |
0x00002aaaab42fd1f: hlt | |
0x00002aaaab42fd20: shr $0x3,%r10 | |
0x00002aaaab42fd24: mov %r10d,0xc(%rdx) | |
0x00002aaaab42fd28: test %ebp,%ebp | |
0x00002aaaab42fd2a: je 0x00002aaaab4304b1 ;*invokevirtual println | |
; - Main::foo@140 (line 24) | |
;; B39: # B114 B40 <- B38 Freq: 0.999991 | |
0x00002aaaab42fd30: lea (%r12,%rbp,8),%rsi ;*getstatic out | |
; - Main::foo@118 (line 24) | |
0x00002aaaab42fd34: nop | |
0x00002aaaab42fd35: nop | |
0x00002aaaab42fd36: nop | |
0x00002aaaab42fd37: callq 0x00002aaaab401de0 ; OopMap{[8]=Oop [24]=Derived_oop_[8] off=1468} | |
;*invokevirtual println | |
; - Main::foo@140 (line 24) | |
; {optimized virtual_call} | |
;; B40: # B46 <- B39 Freq: 0.999971 | |
0x00002aaaab42fd3c: xor %r9d,%r9d | |
0x00002aaaab42fd3f: jmp 0x00002aaaab42fd82 | |
;; B41: # B44 B42 <- B17 Freq: 0.499997 | |
0x00002aaaab42fd41: test %r11d,%r11d | |
0x00002aaaab42fd44: jge 0x00002aaaab42fd68 | |
;; B42: # B43 <- B41 Freq: 0.249998 | |
0x00002aaaab42fd46: mov 0x4(%rsp),%r10d | |
0x00002aaaab42fd4b: mov $0x1,%ecx | |
;; B43: # B20 <- B42 B44 Freq: 0.499997 | |
0x00002aaaab42fd50: xor %r8d,%r8d | |
0x00002aaaab42fd53: mov $0x10,%r9d | |
0x00002aaaab42fd59: mov $0x1,%edi | |
0x00002aaaab42fd5e: mov $0x20,%esi | |
0x00002aaaab42fd63: jmpq 0x00002aaaab42f9b3 | |
;; B44: # B43 <- B41 Freq: 0.249998 | |
0x00002aaaab42fd68: mov %r11d,%r10d | |
0x00002aaaab42fd6b: xor %ecx,%ecx | |
0x00002aaaab42fd6d: jmp 0x00002aaaab42fd50 | |
0x00002aaaab42fd6f: nop | |
;; B45: # B46 <- B46 top-of-loop Freq: 986865 | |
0x00002aaaab42fd70: mov 0x28(%rsp),%r10d | |
0x00002aaaab42fd75: inc %r10d | |
0x00002aaaab42fd78: mov 0x28(%rsp),%r9d | |
0x00002aaaab42fd7d: mov %r10d,0x28(%rsp) | |
;; B46: # B45 B47 <- B40 B45 Loop: B46-B45 inner Freq: 986866 | |
0x00002aaaab42fd82: mov $0x758628a38,%r10 ; {oop([I)} | |
0x00002aaaab42fd8c: mov 0x10(%r10,%r9,4),%r10d | |
0x00002aaaab42fd91: cmp $0x10,%r10d | |
0x00002aaaab42fd95: jl 0x00002aaaab42fd70 | |
;; B47: # B102 B48 <- B46 Freq: 0.999971 | |
0x00002aaaab42fd97: mov $0x758600d08,%r10 ; {oop(a 'java/lang/Class' = 'java/lang/System')} | |
0x00002aaaab42fda1: mov 0x74(%r10),%r10d ;*getstatic out | |
; - Main::foo@143 (line 25) | |
0x00002aaaab42fda5: mov %r10d,0x10(%rsp) | |
0x00002aaaab42fdaa: mov %r9d,%ebp | |
0x00002aaaab42fdad: add $0x12,%ebp | |
0x00002aaaab42fdb0: test %ebp,%ebp | |
0x00002aaaab42fdb2: jl 0x00002aaaab430535 | |
;; B48: # B102 B49 <- B47 Freq: 0.99997 | |
0x00002aaaab42fdb8: mov %r9d,%r10d | |
0x00002aaaab42fdbb: add $0x16,%r10d | |
0x00002aaaab42fdbf: test %r10d,%r10d | |
0x00002aaaab42fdc2: jl 0x00002aaaab430535 | |
;; B49: # B51 <- B48 Freq: 0.999969 | |
0x00002aaaab42fdc8: xor %r11d,%r11d | |
0x00002aaaab42fdcb: jmp 0x00002aaaab42fdd3 | |
0x00002aaaab42fdcd: nop | |
0x00002aaaab42fdce: nop | |
0x00002aaaab42fdcf: nop | |
;; B50: # B51 <- B51 top-of-loop Freq: 986863 | |
0x00002aaaab42fdd0: inc %r11d | |
;; B51: # B50 B52 <- B49 B50 Loop: B51-B50 inner Freq: 986864 | |
0x00002aaaab42fdd3: mov $0x758628a38,%r10 ; {oop([I)} | |
0x00002aaaab42fddd: mov 0x10(%r10,%r11,4),%r10d | |
0x00002aaaab42fde2: cmp $0x20,%r10d | |
0x00002aaaab42fde6: jl 0x00002aaaab42fdd0 | |
;; B52: # B102 B53 <- B51 Freq: 0.999969 | |
0x00002aaaab42fde8: add %r11d,%r9d | |
0x00002aaaab42fdeb: mov %r9d,%r10d | |
0x00002aaaab42fdee: add $0x17,%r10d | |
0x00002aaaab42fdf2: test %r10d,%r10d | |
0x00002aaaab42fdf5: jl 0x00002aaaab430535 | |
;; B53: # B87 B54 <- B52 Freq: 0.999968 | |
0x00002aaaab42fdfb: cmp $0x80000,%r10d | |
0x00002aaaab42fe02: ja 0x00002aaaab430418 | |
;; B54: # B88 B55 <- B53 Freq: 0.999967 | |
0x00002aaaab42fe08: mov %r10d,0x4(%rsp) | |
0x00002aaaab42fe0d: mov 0x70(%r15),%rbx | |
0x00002aaaab42fe11: inc %r9d | |
0x00002aaaab42fe14: movslq %r9d,%r10 | |
0x00002aaaab42fe17: shl %r10 | |
0x00002aaaab42fe1a: add $0x43,%r10 | |
0x00002aaaab42fe1e: and $0xfffffffffffffff8,%r10 | |
0x00002aaaab42fe22: mov %rbx,%r11 | |
0x00002aaaab42fe25: add %r10,%r11 | |
0x00002aaaab42fe28: cmp 0x80(%r15),%r11 | |
0x00002aaaab42fe2f: jae 0x00002aaaab43041d | |
;; B55: # B56 <- B54 Freq: 0.999867 | |
0x00002aaaab42fe35: mov %r11,0x70(%r15) | |
0x00002aaaab42fe39: prefetchnta 0xc0(%r11) | |
0x00002aaaab42fe41: movq $0x1,(%rbx) | |
0x00002aaaab42fe48: prefetchnta 0x100(%r11) | |
0x00002aaaab42fe50: movl $0xc08000bf,0x8(%rbx) ; {oop({type array char})} | |
0x00002aaaab42fe57: mov 0x4(%rsp),%r8d | |
0x00002aaaab42fe5c: mov %r8d,0xc(%rbx) | |
0x00002aaaab42fe60: prefetchnta 0x140(%r11) | |
0x00002aaaab42fe68: prefetchnta 0x180(%r11) | |
;; B56: # B58 <- B89 B55 Freq: 0.999968 | |
0x00002aaaab42fe70: mov %rbx,%rsi | |
0x00002aaaab42fe73: add $0x10,%rsi | |
0x00002aaaab42fe77: mov $0x11,%edx | |
0x00002aaaab42fe7c: mov $0x75866c688,%rdi ; {oop([C)} | |
0x00002aaaab42fe86: add $0x10,%rdi | |
0x00002aaaab42fe8a: mov $0x2aaaab40c960,%r10 | |
0x00002aaaab42fe94: callq *%r10 | |
0x00002aaaab42fe97: xor %r9d,%r9d | |
0x00002aaaab42fe9a: jmp 0x00002aaaab42feae | |
0x00002aaaab42fe9c: nop | |
0x00002aaaab42fe9d: nop | |
0x00002aaaab42fe9e: nop | |
0x00002aaaab42fe9f: nop | |
;; B57: # B58 <- B58 top-of-loop Freq: 8.99971 | |
0x00002aaaab42fea0: mov %r10d,%r9d | |
0x00002aaaab42fea3: sar $0x1f,%r9d | |
0x00002aaaab42fea7: dec %ebp | |
0x00002aaaab42fea9: mov %r10d,0x2c(%rsp) | |
;; B58: # B57 B59 <- B56 B57 Loop: B58-B57 inner Freq: 9.99968 | |
0x00002aaaab42feae: movslq 0x2c(%rsp),%r10 | |
0x00002aaaab42feb3: imul $0x66666667,%r10,%r10 | |
0x00002aaaab42feba: sar $0x22,%r10 | |
0x00002aaaab42febe: mov %r10d,%r11d | |
0x00002aaaab42fec1: mov %r11d,%r10d | |
0x00002aaaab42fec4: sub %r9d,%r10d | |
0x00002aaaab42fec7: mov %r10d,%r8d | |
0x00002aaaab42feca: shl $0x3,%r8d | |
0x00002aaaab42fece: mov %r10d,%edi | |
0x00002aaaab42fed1: shl %edi | |
0x00002aaaab42fed3: add %r8d,%edi | |
0x00002aaaab42fed6: mov 0x2c(%rsp),%ecx | |
0x00002aaaab42feda: sub %edi,%ecx | |
0x00002aaaab42fedc: add $0x30,%ecx | |
0x00002aaaab42fedf: mov %cx,0xe(%rbx,%rbp,2) | |
0x00002aaaab42fee4: cmp %r9d,%r11d | |
0x00002aaaab42fee7: jne 0x00002aaaab42fea0 | |
;; B59: # B61 <- B58 Freq: 0.999968 | |
0x00002aaaab42fee9: movslq 0x28(%rsp),%r10 | |
0x00002aaaab42feee: mov 0x30(%rsp),%r9d | |
0x00002aaaab42fef3: mov %r9w,0x32(%rbx,%r10,2) | |
0x00002aaaab42fef9: mov $0x3e,%r8d | |
0x00002aaaab42feff: mov $0x3c,%r11d | |
0x00002aaaab42ff05: mov %r11w,0x34(%rbx,%r10,2) | |
0x00002aaaab42ff0b: mov %r8w,0x36(%rbx,%r10,2) | |
0x00002aaaab42ff11: mov %r9w,0x38(%rbx,%r10,2) | |
0x00002aaaab42ff17: mov 0x4(%rsp),%ecx | |
0x00002aaaab42ff1b: mov %rbx,%rbp | |
0x00002aaaab42ff1e: jmp 0x00002aaaab42ff30 | |
;; B60: # B61 <- B61 top-of-loop Freq: 8.99971 | |
0x00002aaaab42ff20: mov %r10d,%r8d | |
0x00002aaaab42ff23: sar $0x1f,%r8d | |
0x00002aaaab42ff27: dec %ecx | |
0x00002aaaab42ff29: mov %r8d,(%rsp) | |
0x00002aaaab42ff2d: mov %r10d,%r9d | |
;; B61: # B60 B62 <- B59 B60 Loop: B61-B60 inner Freq: 9.99968 | |
0x00002aaaab42ff30: mov %r9d,%r8d | |
0x00002aaaab42ff33: movslq %r9d,%r10 | |
0x00002aaaab42ff36: imul $0x66666667,%r10,%r10 | |
0x00002aaaab42ff3d: sar $0x22,%r10 | |
0x00002aaaab42ff41: mov %r10d,%r11d | |
0x00002aaaab42ff44: mov %r11d,%r10d | |
0x00002aaaab42ff47: sub (%rsp),%r10d | |
0x00002aaaab42ff4b: mov %r10d,%r9d | |
0x00002aaaab42ff4e: shl $0x3,%r9d | |
0x00002aaaab42ff52: mov %r10d,%ebx | |
0x00002aaaab42ff55: shl %ebx | |
0x00002aaaab42ff57: add %r9d,%ebx | |
0x00002aaaab42ff5a: sub %ebx,%r8d | |
0x00002aaaab42ff5d: add $0x30,%r8d | |
0x00002aaaab42ff61: mov %r8w,0xe(%rbp,%rcx,2) | |
0x00002aaaab42ff67: cmp (%rsp),%r11d | |
0x00002aaaab42ff6b: jne 0x00002aaaab42ff20 | |
;; B62: # B85 B63 <- B61 Freq: 0.999968 | |
0x00002aaaab42ff6d: mov 0x70(%r15),%rdx | |
0x00002aaaab42ff71: mov %rdx,%r10 | |
0x00002aaaab42ff74: add $0x20,%r10 | |
0x00002aaaab42ff78: cmp 0x80(%r15),%r10 | |
0x00002aaaab42ff7f: jae 0x00002aaaab430400 | |
;; B63: # B64 <- B62 Freq: 0.999868 | |
0x00002aaaab42ff85: mov %r10,0x70(%r15) | |
0x00002aaaab42ff89: prefetchnta 0xc0(%r10) | |
0x00002aaaab42ff91: mov $0xc080165d,%r10d ; {oop('java/lang/String')} | |
0x00002aaaab42ff97: mov 0xb0(%r12,%r10,8),%r10 | |
0x00002aaaab42ff9f: mov %r10,(%rdx) | |
0x00002aaaab42ffa2: movl $0xc080165d,0x8(%rdx) ; {oop('java/lang/String')} | |
0x00002aaaab42ffa9: mov %r12d,0xc(%rdx) | |
0x00002aaaab42ffad: mov %r12,0x10(%rdx) | |
0x00002aaaab42ffb1: mov %r12,0x18(%rdx) | |
;; B64: # B98 B65 <- B86 B63 Freq: 0.999968 | |
0x00002aaaab42ffb5: mov 0x4(%rsp),%r11d | |
0x00002aaaab42ffba: mov %r11d,0x14(%rdx) | |
0x00002aaaab42ffbe: push %r10 | |
0x00002aaaab42ffc0: mov $0x2b7541d6d950,%r10 ; {external_word} | |
0x00002aaaab42ffca: cmp (%r10),%r12 | |
0x00002aaaab42ffcd: je 0x00002aaaab430052 | |
0x00002aaaab42ffd3: mov %rsp,-0x28(%rsp) | |
0x00002aaaab42ffd8: sub $0x80,%rsp | |
0x00002aaaab42ffdf: mov %rax,0x78(%rsp) | |
0x00002aaaab42ffe4: mov %rcx,0x70(%rsp) | |
0x00002aaaab42ffe9: mov %rdx,0x68(%rsp) | |
0x00002aaaab42ffee: mov %rbx,0x60(%rsp) | |
0x00002aaaab42fff3: mov %rbp,0x50(%rsp) | |
0x00002aaaab42fff8: mov %rsi,0x48(%rsp) | |
0x00002aaaab42fffd: mov %rdi,0x40(%rsp) | |
0x00002aaaab430002: mov %r8,0x38(%rsp) | |
0x00002aaaab430007: mov %r9,0x30(%rsp) | |
0x00002aaaab43000c: mov %r10,0x28(%rsp) | |
0x00002aaaab430011: mov %r11,0x20(%rsp) | |
0x00002aaaab430016: mov %r12,0x18(%rsp) | |
0x00002aaaab43001b: mov %r13,0x10(%rsp) | |
0x00002aaaab430020: mov %r14,0x8(%rsp) | |
0x00002aaaab430025: mov %r15,(%rsp) | |
0x00002aaaab430029: mov $0x2b754183d868,%rdi ; {external_word} | |
0x00002aaaab430033: mov $0x2aaaab42ffd3,%rsi ; {internal_word} | |
0x00002aaaab43003d: mov %rsp,%rdx | |
0x00002aaaab430040: and $0xfffffffffffffff0,%rsp | |
0x00002aaaab430044: mov $0x2b7540d56110,%r10 ; {runtime_call} | |
0x00002aaaab43004e: callq *%r10 | |
0x00002aaaab430051: hlt | |
0x00002aaaab430052: pop %r10 | |
0x00002aaaab430054: test %rbp,%rbp | |
0x00002aaaab430057: jne 0x00002aaaab4300dc | |
0x00002aaaab43005d: mov %rsp,-0x28(%rsp) | |
0x00002aaaab430062: sub $0x80,%rsp | |
0x00002aaaab430069: mov %rax,0x78(%rsp) | |
0x00002aaaab43006e: mov %rcx,0x70(%rsp) | |
0x00002aaaab430073: mov %rdx,0x68(%rsp) | |
0x00002aaaab430078: mov %rbx,0x60(%rsp) | |
0x00002aaaab43007d: mov %rbp,0x50(%rsp) | |
0x00002aaaab430082: mov %rsi,0x48(%rsp) | |
0x00002aaaab430087: mov %rdi,0x40(%rsp) | |
0x00002aaaab43008c: mov %r8,0x38(%rsp) | |
0x00002aaaab430091: mov %r9,0x30(%rsp) | |
0x00002aaaab430096: mov %r10,0x28(%rsp) | |
0x00002aaaab43009b: mov %r11,0x20(%rsp) | |
0x00002aaaab4300a0: mov %r12,0x18(%rsp) | |
0x00002aaaab4300a5: mov %r13,0x10(%rsp) | |
0x00002aaaab4300aa: mov %r14,0x8(%rsp) | |
0x00002aaaab4300af: mov %r15,(%rsp) | |
0x00002aaaab4300b3: mov $0x2b754183d8a8,%rdi ; {external_word} | |
0x00002aaaab4300bd: mov $0x2aaaab43005d,%rsi ; {internal_word} | |
0x00002aaaab4300c7: mov %rsp,%rdx | |
0x00002aaaab4300ca: and $0xfffffffffffffff0,%rsp | |
0x00002aaaab4300ce: mov $0x2b7540d56110,%r10 ; {runtime_call} | |
0x00002aaaab4300d8: callq *%r10 | |
0x00002aaaab4300db: hlt | |
0x00002aaaab4300dc: mov %rbp,%r10 | |
0x00002aaaab4300df: shr $0x3,%r10 | |
0x00002aaaab4300e3: mov %r10d,0xc(%rdx) | |
0x00002aaaab4300e7: mov 0x10(%rsp),%r10d | |
0x00002aaaab4300ec: test %r10d,%r10d | |
0x00002aaaab4300ef: je 0x00002aaaab4304cd ;*invokevirtual println | |
; - Main::foo@177 (line 25) | |
;; B65: # B115 B66 <- B64 Freq: 0.999967 | |
0x00002aaaab4300f5: lea (%r12,%r10,8),%rsi ;*getstatic out | |
; - Main::foo@143 (line 25) | |
0x00002aaaab4300f9: nop | |
0x00002aaaab4300fa: nop | |
0x00002aaaab4300fb: callq 0x00002aaaab401de0 ; OopMap{[8]=Oop [24]=Derived_oop_[8] off=2432} | |
;*invokevirtual println | |
; - Main::foo@177 (line 25) | |
; {optimized virtual_call} | |
;; B66: # B99 B67 <- B65 Freq: 0.999947 | |
0x00002aaaab430100: mov $0x758600d08,%r10 ; {oop(a 'java/lang/Class' = 'java/lang/System')} | |
0x00002aaaab43010a: mov 0x74(%r10),%r10d ;*getstatic out | |
; - Main::foo@180 (line 26) | |
0x00002aaaab43010e: test %r10d,%r10d | |
0x00002aaaab430111: je 0x00002aaaab4304e9 ;*invokevirtual println | |
; - Main::foo@185 (line 26) | |
;; B67: # B116 B68 <- B66 Freq: 0.999946 | |
0x00002aaaab430117: lea (%r12,%r10,8),%rsi ;*getstatic out | |
; - Main::foo@180 (line 26) | |
0x00002aaaab43011b: mov $0x75866c6f8,%rdx ; {oop("Expected: "testtesttesttesttesttesttesttest"")} | |
0x00002aaaab430125: nop | |
0x00002aaaab430126: nop | |
0x00002aaaab430127: callq 0x00002aaaab401de0 ; OopMap{[8]=Oop [24]=Derived_oop_[8] off=2476} | |
;*invokevirtual println | |
; - Main::foo@185 (line 26) | |
; {optimized virtual_call} | |
;; B68: # B90 B69 <- B67 Freq: 0.999926 | |
0x00002aaaab43012c: mov 0x70(%r15),%r11 | |
0x00002aaaab430130: mov $0x758600d08,%r10 ; {oop(a 'java/lang/Class' = 'java/lang/System')} | |
0x00002aaaab43013a: mov 0x74(%r10),%ebp ;*getstatic out | |
; - Main::foo@188 (line 28) | |
0x00002aaaab43013e: mov %r11,%r10 | |
0x00002aaaab430141: add $0x48,%r10 | |
0x00002aaaab430145: cmp 0x80(%r15),%r10 | |
0x00002aaaab43014c: jae 0x00002aaaab430438 | |
;; B69: # B70 <- B68 Freq: 0.999826 | |
0x00002aaaab430152: mov %r10,0x70(%r15) | |
0x00002aaaab430156: prefetchnta 0xc0(%r10) | |
0x00002aaaab43015e: movq $0x1,(%r11) | |
0x00002aaaab430165: prefetchnta 0x100(%r10) | |
0x00002aaaab43016d: movl $0xc08000bf,0x8(%r11) ; {oop({type array char})} | |
0x00002aaaab430175: prefetchnta 0x140(%r10) | |
0x00002aaaab43017d: movl $0x1c,0xc(%r11) | |
0x00002aaaab430185: prefetchnta 0x180(%r10) | |
;; B70: # B92 B71 <- B91 B69 Freq: 0.999926 | |
0x00002aaaab43018d: mov %r11,%r13 | |
0x00002aaaab430190: add $0x26,%r13 | |
0x00002aaaab430194: mov %r11,%rsi | |
0x00002aaaab430197: add $0x10,%rsi | |
0x00002aaaab43019b: mov %r11,(%rsp) | |
0x00002aaaab43019f: mov $0x22,%ebx | |
0x00002aaaab4301a4: mov $0x75866c7a0,%rdi ; {oop([C)} | |
0x00002aaaab4301ae: add $0x10,%rdi | |
0x00002aaaab4301b2: mov $0xb,%edx | |
0x00002aaaab4301b7: mov $0x2aaaab40c960,%r10 | |
0x00002aaaab4301c1: callq *%r10 | |
0x00002aaaab4301c4: mov 0x18(%rsp),%rdi | |
0x00002aaaab4301c9: mov %r13,%rsi | |
0x00002aaaab4301cc: mov $0x10,%edx | |
0x00002aaaab4301d1: mov $0x2aaaab40c960,%r10 | |
0x00002aaaab4301db: callq *%r10 | |
0x00002aaaab4301de: mov (%rsp),%r10 | |
0x00002aaaab4301e2: mov %bx,0x46(%r10) | |
0x00002aaaab4301e7: mov 0x70(%r15),%rdx | |
0x00002aaaab4301eb: mov %rdx,%r10 | |
0x00002aaaab4301ee: add $0x20,%r10 | |
0x00002aaaab4301f2: cmp 0x80(%r15),%r10 | |
0x00002aaaab4301f9: jae 0x00002aaaab430454 | |
;; B71: # B72 <- B70 Freq: 0.999826 | |
0x00002aaaab4301ff: mov %r10,0x70(%r15) | |
0x00002aaaab430203: prefetchnta 0xc0(%r10) | |
0x00002aaaab43020b: mov $0xc080165d,%r11d ; {oop('java/lang/String')} | |
0x00002aaaab430211: mov 0xb0(%r12,%r11,8),%r10 | |
0x00002aaaab430219: mov %r10,(%rdx) | |
0x00002aaaab43021c: movl $0xc080165d,0x8(%rdx) ; {oop('java/lang/String')} | |
0x00002aaaab430223: mov %r12d,0xc(%rdx) | |
0x00002aaaab430227: mov %r12,0x18(%rdx) | |
;; B72: # B100 B73 <- B93 B71 Freq: 0.999926 | |
0x00002aaaab43022b: mov (%rsp),%r10 | |
0x00002aaaab43022f: push %r10 | |
0x00002aaaab430231: mov $0x2b7541d6d950,%r10 ; {external_word} | |
0x00002aaaab43023b: cmp (%r10),%r12 | |
0x00002aaaab43023e: je 0x00002aaaab4302c3 | |
0x00002aaaab430244: mov %rsp,-0x28(%rsp) | |
0x00002aaaab430249: sub $0x80,%rsp | |
0x00002aaaab430250: mov %rax,0x78(%rsp) | |
0x00002aaaab430255: mov %rcx,0x70(%rsp) | |
0x00002aaaab43025a: mov %rdx,0x68(%rsp) | |
0x00002aaaab43025f: mov %rbx,0x60(%rsp) | |
0x00002aaaab430264: mov %rbp,0x50(%rsp) | |
0x00002aaaab430269: mov %rsi,0x48(%rsp) | |
0x00002aaaab43026e: mov %rdi,0x40(%rsp) | |
0x00002aaaab430273: mov %r8,0x38(%rsp) | |
0x00002aaaab430278: mov %r9,0x30(%rsp) | |
0x00002aaaab43027d: mov %r10,0x28(%rsp) | |
0x00002aaaab430282: mov %r11,0x20(%rsp) | |
0x00002aaaab430287: mov %r12,0x18(%rsp) | |
0x00002aaaab43028c: mov %r13,0x10(%rsp) | |
0x00002aaaab430291: mov %r14,0x8(%rsp) | |
0x00002aaaab430296: mov %r15,(%rsp) | |
0x00002aaaab43029a: mov $0x2b754183d868,%rdi ; {external_word} | |
0x00002aaaab4302a4: mov $0x2aaaab430244,%rsi ; {internal_word} | |
0x00002aaaab4302ae: mov %rsp,%rdx | |
0x00002aaaab4302b1: and $0xfffffffffffffff0,%rsp | |
0x00002aaaab4302b5: mov $0x2b7540d56110,%r10 ; {runtime_call} | |
0x00002aaaab4302bf: callq *%r10 | |
0x00002aaaab4302c2: hlt | |
0x00002aaaab4302c3: pop %r10 | |
0x00002aaaab4302c5: test %r10,%r10 | |
0x00002aaaab4302c8: jne 0x00002aaaab43034d | |
0x00002aaaab4302ce: mov %rsp,-0x28(%rsp) | |
0x00002aaaab4302d3: sub $0x80,%rsp | |
0x00002aaaab4302da: mov %rax,0x78(%rsp) | |
0x00002aaaab4302df: mov %rcx,0x70(%rsp) | |
0x00002aaaab4302e4: mov %rdx,0x68(%rsp) | |
0x00002aaaab4302e9: mov %rbx,0x60(%rsp) | |
0x00002aaaab4302ee: mov %rbp,0x50(%rsp) | |
0x00002aaaab4302f3: mov %rsi,0x48(%rsp) | |
0x00002aaaab4302f8: mov %rdi,0x40(%rsp) | |
0x00002aaaab4302fd: mov %r8,0x38(%rsp) | |
0x00002aaaab430302: mov %r9,0x30(%rsp) | |
0x00002aaaab430307: mov %r10,0x28(%rsp) | |
0x00002aaaab43030c: mov %r11,0x20(%rsp) | |
0x00002aaaab430311: mov %r12,0x18(%rsp) | |
0x00002aaaab430316: mov %r13,0x10(%rsp) | |
0x00002aaaab43031b: mov %r14,0x8(%rsp) | |
0x00002aaaab430320: mov %r15,(%rsp) | |
0x00002aaaab430324: mov $0x2b754183d8a8,%rdi ; {external_word} | |
0x00002aaaab43032e: mov $0x2aaaab4302ce,%rsi ; {internal_word} | |
0x00002aaaab430338: mov %rsp,%rdx | |
0x00002aaaab43033b: and $0xfffffffffffffff0,%rsp | |
0x00002aaaab43033f: mov $0x2b7540d56110,%r10 ; {runtime_call} | |
0x00002aaaab430349: callq *%r10 | |
0x00002aaaab43034c: hlt | |
0x00002aaaab43034d: mov %r10,%r11 | |
0x00002aaaab430350: shr $0x3,%r11 | |
0x00002aaaab430354: mov $0x1c00000000,%r10 | |
0x00002aaaab43035e: mov %r10,0x10(%rdx) | |
0x00002aaaab430362: mov %r11d,0xc(%rdx) | |
0x00002aaaab430366: test %ebp,%ebp | |
0x00002aaaab430368: je 0x00002aaaab430501 ;*invokevirtual println | |
; - Main::foo@215 (line 28) | |
;; B73: # B117 B74 <- B72 Freq: 0.999925 | |
0x00002aaaab43036e: lea (%r12,%rbp,8),%rsi ;*getstatic out | |
; - Main::foo@188 (line 28) | |
0x00002aaaab430372: nop | |
0x00002aaaab430373: callq 0x00002aaaab401de0 ; OopMap{off=3064} | |
;*invokevirtual println | |
; - Main::foo@215 (line 28) | |
; {optimized virtual_call} | |
;; B74: # N1517 <- B73 Freq: 0.999905 | |
0x00002aaaab430378: add $0x50,%rsp | |
0x00002aaaab43037c: pop %rbp | |
0x00002aaaab43037d: test %eax,-0x536383(%rip) # 0x00002aaaaaefa000 | |
; {poll_return} | |
0x00002aaaab430383: retq | |
;; B75: # B15 <- B7 Freq: 0.0163304 | |
0x00002aaaab430384: xor %r9d,%r9d | |
0x00002aaaab430387: jmpq 0x00002aaaab42f8ab | |
;; B76: # B4 <- B1 Freq: 0.000999987 | |
0x00002aaaab43038c: xor %r8d,%r8d | |
0x00002aaaab43038f: mov %rbp,%r9 | |
0x00002aaaab430392: jmpq 0x00002aaaab42f7ea | |
;; B77: # B7 <- B4 Freq: 0.000999986 | |
0x00002aaaab430397: mov $0xc,%r10d | |
0x00002aaaab43039d: xor %ebx,%ebx | |
0x00002aaaab43039f: jmpq 0x00002aaaab42f80b | |
;; B78: # B104 B79 <- B15 Freq: 0.000100016 | |
0x00002aaaab4303a4: mov %r9d,(%rsp) | |
0x00002aaaab4303a8: mov %r8,%rbp | |
0x00002aaaab4303ab: mov $0x6040005f8,%rsi ; {oop({type array char})} | |
0x00002aaaab4303b5: mov $0x10,%edx | |
0x00002aaaab4303ba: nop | |
0x00002aaaab4303bb: callq 0x00002aaaab401660 ; OopMap{rbp=Oop off=3136} | |
;*new ; - Main::foo@41 (line 14) | |
; {runtime_call} | |
;; B79: # B17 <- B78 Freq: 0.000100014 | |
0x00002aaaab4303c0: mov %rax,%r11 | |
0x00002aaaab4303c3: jmpq 0x00002aaaab42f902 | |
;; B80: # B112 B81 <- B36 Freq: 0.000100016 | |
0x00002aaaab4303c8: mov $0x60400b2e8,%rsi ; {oop('java/lang/String')} | |
0x00002aaaab4303d2: nop | |
0x00002aaaab4303d3: callq 0x00002aaaab338ee0 ; OopMap{rbp=NarrowOop [8]=Oop [24]=Derived_oop_[8] [32]=Oop off=3160} | |
;*new ; - Main::foo@121 (line 24) | |
; {runtime_call} | |
;; B81: # B38 <- B80 Freq: 0.000100014 | |
0x00002aaaab4303d8: mov %rax,%rdx | |
0x00002aaaab4303db: jmpq 0x00002aaaab42fbf4 | |
;; B82: # B83 <- B23 Freq: 1.01327e-06 | |
0x00002aaaab4303e0: mov %r11d,0x14(%rsp) | |
;; B83: # B111 B84 <- B82 B24 Freq: 0.000101029 | |
0x00002aaaab4303e5: mov $0x6040005f8,%rsi ; {oop({type array char})} | |
0x00002aaaab4303ef: mov 0x14(%rsp),%edx | |
0x00002aaaab4303f3: callq 0x00002aaaab401660 ; OopMap{rbp=NarrowOop [8]=Oop [24]=Derived_oop_[8] off=3192} | |
;*new ; - Main::foo@121 (line 24) | |
; {runtime_call} | |
;; B84: # B26 <- B83 Freq: 0.000101027 | |
0x00002aaaab4303f8: mov %rax,%r8 | |
0x00002aaaab4303fb: jmpq 0x00002aaaab42fab4 | |
;; B85: # B109 B86 <- B62 Freq: 0.000100013 | |
0x00002aaaab430400: mov $0x60400b2e8,%rsi ; {oop('java/lang/String')} | |
0x00002aaaab43040a: nop | |
0x00002aaaab43040b: callq 0x00002aaaab338ee0 ; OopMap{rbp=Oop [8]=Oop [16]=NarrowOop [24]=Derived_oop_[8] off=3216} | |
;*new ; - Main::foo@146 (line 25) | |
; {runtime_call} | |
;; B86: # B64 <- B85 Freq: 0.000100011 | |
0x00002aaaab430410: mov %rax,%rdx | |
0x00002aaaab430413: jmpq 0x00002aaaab42ffb5 | |
;; B87: # B88 <- B53 Freq: 1.01325e-06 | |
0x00002aaaab430418: mov %r10d,0x4(%rsp) | |
;; B88: # B108 B89 <- B87 B54 Freq: 0.000101027 | |
0x00002aaaab43041d: mov $0x6040005f8,%rsi ; {oop({type array char})} | |
0x00002aaaab430427: mov 0x4(%rsp),%edx | |
0x00002aaaab43042b: callq 0x00002aaaab401660 ; OopMap{[8]=Oop [16]=NarrowOop [24]=Derived_oop_[8] off=3248} | |
;*new ; - Main::foo@146 (line 25) | |
; {runtime_call} | |
;; B89: # B56 <- B88 Freq: 0.000101025 | |
0x00002aaaab430430: mov %rax,%rbx | |
0x00002aaaab430433: jmpq 0x00002aaaab42fe70 | |
;; B90: # B106 B91 <- B68 Freq: 0.000100009 | |
0x00002aaaab430438: mov $0x6040005f8,%rsi ; {oop({type array char})} | |
0x00002aaaab430442: mov $0x1c,%edx | |
0x00002aaaab430447: callq 0x00002aaaab401660 ; OopMap{rbp=NarrowOop [8]=Oop [24]=Derived_oop_[8] off=3276} | |
;*new ; - Main::foo@191 (line 28) | |
; {runtime_call} | |
;; B91: # B70 <- B90 Freq: 0.000100007 | |
0x00002aaaab43044c: mov %rax,%r11 | |
0x00002aaaab43044f: jmpq 0x00002aaaab43018d | |
;; B92: # B105 B93 <- B70 Freq: 0.000100009 | |
0x00002aaaab430454: mov $0x60400b2e8,%rsi ; {oop('java/lang/String')} | |
0x00002aaaab43045e: nop | |
0x00002aaaab43045f: callq 0x00002aaaab338ee0 ; OopMap{rbp=NarrowOop [0]=Oop [8]=Oop off=3300} | |
;*new ; - Main::foo@191 (line 28) | |
; {runtime_call} | |
;; B93: # B72 <- B92 Freq: 0.000100007 | |
0x00002aaaab430464: mov %rax,%rdx | |
0x00002aaaab430467: jmpq 0x00002aaaab43022b | |
;; B94: # N1517 <- B9 Freq: 1.99346e-06 | |
0x00002aaaab43046c: mov $0xfffffff6,%esi | |
0x00002aaaab430471: mov %r13d,%ebp | |
0x00002aaaab430474: nop | |
0x00002aaaab430475: nop | |
0x00002aaaab430476: nop | |
0x00002aaaab430477: callq 0x00002aaaab402b20 ; OopMap{off=3324} | |
;*laload | |
; - Main::foo@24 (line 6) | |
; {runtime_call} | |
0x00002aaaab43047c: mov $0x2b75415a0f70,%r10 ; {runtime_call} | |
0x00002aaaab430486: callq *%r10 | |
;; B95: # B96 <- B10 Freq: 1.99345e-06 | |
0x00002aaaab430489: mov %r13d,%ebp | |
;; B96: # N1517 <- B13 B95 Freq: 2.99018e-06 | |
0x00002aaaab43048c: mov $0xffffffe4,%esi | |
0x00002aaaab430491: mov %rbx,0x8(%rsp) | |
0x00002aaaab430496: mov %r8,0x18(%rsp) | |
0x00002aaaab43049b: mov %edi,0x14(%rsp) | |
0x00002aaaab43049f: callq 0x00002aaaab402b20 ; OopMap{[8]=Oop [24]=Oop off=3364} | |
;*laload | |
; - Main::foo@24 (line 6) | |
; {runtime_call} | |
0x00002aaaab4304a4: mov $0x2b75415a0f70,%r10 ; {runtime_call} | |
0x00002aaaab4304ae: callq *%r10 ;*laload | |
; - Main::foo@24 (line 6) | |
;; B97: # N1517 <- B38 Freq: 1.01327e-06 | |
0x00002aaaab4304b1: mov $0xfffffff6,%esi | |
0x00002aaaab4304b6: mov %rdx,%rbp | |
0x00002aaaab4304b9: nop | |
0x00002aaaab4304ba: nop | |
0x00002aaaab4304bb: callq 0x00002aaaab402b20 ; OopMap{rbp=Oop off=3392} | |
;*invokevirtual println | |
; - Main::foo@140 (line 24) | |
; {runtime_call} | |
0x00002aaaab4304c0: mov $0x2b75415a0f70,%r10 ; {runtime_call} | |
0x00002aaaab4304ca: callq *%r10 ;*invokevirtual println | |
; - Main::foo@140 (line 24) | |
;; B98: # N1517 <- B64 Freq: 1.01325e-06 | |
0x00002aaaab4304cd: mov $0xfffffff6,%esi | |
0x00002aaaab4304d2: mov %rdx,%rbp | |
0x00002aaaab4304d5: nop | |
0x00002aaaab4304d6: nop | |
0x00002aaaab4304d7: callq 0x00002aaaab402b20 ; OopMap{rbp=Oop off=3420} | |
;*invokevirtual println | |
; - Main::foo@177 (line 25) | |
; {runtime_call} | |
0x00002aaaab4304dc: mov $0x2b75415a0f70,%r10 ; {runtime_call} | |
0x00002aaaab4304e6: callq *%r10 ;*invokevirtual println | |
; - Main::foo@177 (line 25) | |
;; B99: # N1517 <- B66 Freq: 1.01323e-06 | |
0x00002aaaab4304e9: mov $0xfffffff6,%esi | |
0x00002aaaab4304ee: nop | |
0x00002aaaab4304ef: callq 0x00002aaaab402b20 ; OopMap{off=3444} | |
;*invokevirtual println | |
; - Main::foo@185 (line 26) | |
; {runtime_call} | |
0x00002aaaab4304f4: mov $0x2b75415a0f70,%r10 ; {runtime_call} | |
0x00002aaaab4304fe: callq *%r10 ;*invokevirtual println | |
; - Main::foo@185 (line 26) | |
;; B100: # N1517 <- B72 Freq: 1.0132e-06 | |
0x00002aaaab430501: mov $0xfffffff6,%esi | |
0x00002aaaab430506: mov %rdx,%rbp | |
0x00002aaaab430509: nop | |
0x00002aaaab43050a: nop | |
0x00002aaaab43050b: callq 0x00002aaaab402b20 ; OopMap{rbp=Oop off=3472} | |
;*invokevirtual println | |
; - Main::foo@215 (line 28) | |
; {runtime_call} | |
0x00002aaaab430510: mov $0x2b75415a0f70,%r10 ; {runtime_call} | |
0x00002aaaab43051a: callq *%r10 ;*invokevirtual println | |
; - Main::foo@215 (line 28) | |
;; B101: # N1517 <- B22 Freq: 9.99993e-07 | |
0x00002aaaab43051d: mov $0xffffffcc,%esi | |
0x00002aaaab430522: nop | |
0x00002aaaab430523: callq 0x00002aaaab402b20 ; OopMap{rbp=NarrowOop [8]=Oop off=3496} | |
;*new ; - Main::foo@121 (line 24) | |
; {runtime_call} | |
0x00002aaaab430528: mov $0x2b75415a0f70,%r10 ; {runtime_call} | |
0x00002aaaab430532: callq *%r10 | |
;; B102: # N1517 <- B47 B48 B52 Freq: 2.99991e-06 | |
0x00002aaaab430535: mov $0xffffffcc,%esi | |
0x00002aaaab43053a: mov 0x10(%rsp),%ebp | |
0x00002aaaab43053e: nop | |
0x00002aaaab43053f: callq 0x00002aaaab402b20 ; OopMap{rbp=NarrowOop [8]=Oop off=3524} | |
;*new ; - Main::foo@146 (line 25) | |
; {runtime_call} | |
0x00002aaaab430544: mov $0x2b75415a0f70,%r10 ; {runtime_call} | |
0x00002aaaab43054e: callq *%r10 | |
;; B103: # N1517 <- B2 B5 Freq: 1.998e-06 | |
0x00002aaaab430551: mov $0xffffffad,%esi | |
0x00002aaaab430556: mov %rbx,%rbp | |
0x00002aaaab430559: mov %r13d,(%rsp) | |
0x00002aaaab43055d: mov %r9,0x8(%rsp) | |
0x00002aaaab430562: nop | |
0x00002aaaab430563: callq 0x00002aaaab402b20 ; OopMap{rbp=Oop [8]=Oop off=3560} | |
;*iload | |
; - Main::foo@15 (line 6) | |
; {runtime_call} | |
0x00002aaaab430568: mov $0x2b75415a0f70,%r10 ; {runtime_call} | |
0x00002aaaab430572: callq *%r10 ;*iload | |
; - Main::foo@15 (line 6) | |
;; B104: # B118 <- B78 Freq: 1.00016e-09 | |
0x00002aaaab430575: mov %rax,%rsi | |
0x00002aaaab430578: jmp 0x00002aaaab4305a1 | |
;; B105: # B107 <- B92 Freq: 1.00009e-09 | |
0x00002aaaab43057a: jmp 0x00002aaaab43057c | |
;; B106: # B107 <- B90 Freq: 1.00009e-09 | |
;; B107: # B118 <- B106 B105 Freq: 2.00018e-09 | |
0x00002aaaab43057c: mov %rax,%rsi | |
0x00002aaaab43057f: jmp 0x00002aaaab4305a1 | |
;; B108: # B110 <- B88 Freq: 1.01027e-09 | |
0x00002aaaab430581: jmp 0x00002aaaab430583 | |
;; B109: # B110 <- B85 Freq: 1.00013e-09 | |
;; B110: # B118 <- B108 B109 Freq: 2.0104e-09 | |
0x00002aaaab430583: mov %rax,%rsi | |
0x00002aaaab430586: jmp 0x00002aaaab4305a1 | |
;; B111: # B113 <- B83 Freq: 1.01029e-09 | |
0x00002aaaab430588: jmp 0x00002aaaab43058a | |
;; B112: # B113 <- B80 Freq: 1.00016e-09 | |
;; B113: # B118 <- B111 B112 Freq: 2.01045e-09 | |
0x00002aaaab43058a: mov %rax,%rsi | |
0x00002aaaab43058d: jmp 0x00002aaaab4305a1 ;*invokevirtual println | |
; - Main::foo@140 (line 24) | |
;; B114: # B118 <- B39 Freq: 9.99991e-06 | |
0x00002aaaab43058f: mov %rax,%rsi | |
0x00002aaaab430592: jmp 0x00002aaaab4305a1 ;*invokevirtual println | |
; - Main::foo@177 (line 25) | |
;; B115: # B118 <- B65 Freq: 9.99967e-06 | |
0x00002aaaab430594: mov %rax,%rsi | |
0x00002aaaab430597: jmp 0x00002aaaab4305a1 ;*invokevirtual println | |
; - Main::foo@185 (line 26) | |
;; B116: # B118 <- B67 Freq: 9.99946e-06 | |
0x00002aaaab430599: mov %rax,%rsi | |
0x00002aaaab43059c: jmp 0x00002aaaab4305a1 ;*invokevirtual println | |
; - Main::foo@215 (line 28) | |
;; B117: # B118 <- B73 Freq: 9.99925e-06 | |
0x00002aaaab43059e: mov %rax,%rsi ;*invokespecial <init> | |
; - Main::foo@49 (line 14) | |
;; B118: # N1517 <- B117 B107 B116 B115 B110 B114 B113 B104 Freq: 4.00053e-05 | |
0x00002aaaab4305a1: add $0x50,%rsp | |
0x00002aaaab4305a5: pop %rbp | |
0x00002aaaab4305a6: jmpq 0x00002aaaab4283a0 ; {runtime_call} | |
0x00002aaaab4305ab: hlt | |
0x00002aaaab4305ac: hlt | |
0x00002aaaab4305ad: hlt | |
0x00002aaaab4305ae: hlt | |
0x00002aaaab4305af: hlt | |
0x00002aaaab4305b0: hlt | |
0x00002aaaab4305b1: hlt | |
0x00002aaaab4305b2: hlt | |
0x00002aaaab4305b3: hlt | |
0x00002aaaab4305b4: hlt | |
0x00002aaaab4305b5: hlt | |
0x00002aaaab4305b6: hlt | |
0x00002aaaab4305b7: hlt | |
0x00002aaaab4305b8: hlt | |
0x00002aaaab4305b9: hlt | |
0x00002aaaab4305ba: hlt | |
0x00002aaaab4305bb: hlt | |
0x00002aaaab4305bc: hlt | |
0x00002aaaab4305bd: hlt | |
0x00002aaaab4305be: hlt | |
0x00002aaaab4305bf: hlt | |
[Stub Code] | |
0x00002aaaab4305c0: mov $0x0,%rbx ; {no_reloc} | |
0x00002aaaab4305ca: jmpq 0x00002aaaab4305ca ; {runtime_call} | |
0x00002aaaab4305cf: mov $0x0,%rbx ; {static_stub} | |
0x00002aaaab4305d9: jmpq 0x00002aaaab4305d9 ; {runtime_call} | |
0x00002aaaab4305de: mov $0x0,%rbx ; {static_stub} | |
0x00002aaaab4305e8: jmpq 0x00002aaaab4305e8 ; {runtime_call} | |
0x00002aaaab4305ed: mov $0x0,%rbx ; {static_stub} | |
0x00002aaaab4305f7: jmpq 0x00002aaaab4305f7 ; {runtime_call} | |
[Exception Handler] | |
0x00002aaaab4305fc: jmpq 0x00002aaaab4029e0 ; {runtime_call} | |
[Deopt Handler Code] | |
0x00002aaaab430601: callq 0x00002aaaab430606 | |
0x00002aaaab430606: subq $0x5,(%rsp) | |
0x00002aaaab43060b: jmpq 0x00002aaaab403720 ; {runtime_call} | |
Failed at iteration: 241 | |
Length mismatch: 16 <> 32 | |
Expected: "testtesttesttesttesttesttesttest" | |
Actual: "nullnulltesttest" | |
try standard compilation | |
560 1 b Main::foo (225 bytes) | |
Decoding compiled method 0x00002aaaab42bc90: | |
Code: | |
[Entry Point] | |
[Verified Entry Point] | |
[Constants] | |
# {method} 'foo' '()V' in 'Main' | |
# [sp+0x50] (sp of caller) | |
;; N1: # B1 <- B62 B59 B64 B44 B61 B60 B63 B79 Freq: 1 | |
;; B1: # B45 B2 <- BLOCK HEAD IS JUNK Freq: 1 | |
0x00002aaaab42bee0: mov %eax,-0x16000(%rsp) | |
0x00002aaaab42bee7: push %rbp | |
0x00002aaaab42bee8: sub $0x40,%rsp ;*new ; - Main::foo@87 (line 20) | |
0x00002aaaab42beec: mov 0x70(%r15),%rbx | |
0x00002aaaab42bef0: mov %rbx,%r10 | |
0x00002aaaab42bef3: add $0x30,%r10 | |
0x00002aaaab42bef7: cmp 0x80(%r15),%r10 | |
0x00002aaaab42befe: jae 0x00002aaaab42c878 | |
;; B2: # B3 <- B1 Freq: 0.9999 | |
0x00002aaaab42bf04: mov %r10,0x70(%r15) | |
0x00002aaaab42bf08: prefetchnta 0xc0(%r10) | |
0x00002aaaab42bf10: movq $0x1,(%rbx) | |
0x00002aaaab42bf17: prefetchnta 0x100(%r10) | |
0x00002aaaab42bf1f: movl $0xc08000bf,0x8(%rbx) ; {oop({type array char})} | |
0x00002aaaab42bf26: prefetchnta 0x140(%r10) | |
0x00002aaaab42bf2e: movl $0x10,0xc(%rbx) | |
0x00002aaaab42bf35: prefetchnta 0x180(%r10) | |
;; B3: # B5 <- B46 B2 Freq: 1 | |
0x00002aaaab42bf3d: mov %rbx,%rbp | |
0x00002aaaab42bf40: add $0x18,%rbp | |
0x00002aaaab42bf44: mov %rbx,%r10 | |
0x00002aaaab42bf47: add $0x10,%r10 | |
0x00002aaaab42bf4b: mov %r10,(%rsp) | |
0x00002aaaab42bf4f: mov $0xeb0c06b2,%r10d ; {oop([C)} | |
0x00002aaaab42bf55: lea (%r12,%r10,8),%r11 | |
0x00002aaaab42bf59: lea 0x10(%r12,%r10,8),%r13 | |
0x00002aaaab42bf5e: mov %r13,%rdi | |
0x00002aaaab42bf61: mov (%rsp),%rsi | |
0x00002aaaab42bf65: mov $0x4,%edx | |
0x00002aaaab42bf6a: mov $0x2aaaab40c960,%r10 | |
0x00002aaaab42bf74: callq *%r10 | |
0x00002aaaab42bf77: mov %r13,%rdi | |
0x00002aaaab42bf7a: mov %rbp,%rsi | |
0x00002aaaab42bf7d: mov $0x4,%edx | |
0x00002aaaab42bf82: mov $0x2aaaab40c960,%r10 | |
0x00002aaaab42bf8c: callq *%r10 ;*invokevirtual length | |
; - Main::foo@111 (line 23) | |
0x00002aaaab42bf8f: xor %edi,%edi | |
0x00002aaaab42bf91: mov $0x10,%r11d | |
0x00002aaaab42bf97: xor %r8d,%r8d | |
0x00002aaaab42bf9a: jmp 0x00002aaaab42bfa2 | |
0x00002aaaab42bf9c: nop | |
0x00002aaaab42bf9d: nop | |
0x00002aaaab42bf9e: nop | |
0x00002aaaab42bf9f: nop | |
;; B4: # B5 <- B5 top-of-loop Freq: 986894 | |
0x00002aaaab42bfa0: inc %edi | |
;; B5: # B4 B6 <- B3 B4 Loop: B5-B4 inner Freq: 986895 | |
0x00002aaaab42bfa2: mov $0x758628a38,%r10 ; {oop([I)} | |
0x00002aaaab42bfac: mov 0x10(%r10,%rdi,4),%r10d | |
0x00002aaaab42bfb1: test %r10d,%r10d | |
0x00002aaaab42bfb4: jl 0x00002aaaab42bfa0 | |
;; B6: # B63 B7 <- B5 Freq: 1 | |
0x00002aaaab42bfb6: mov %edi,%r9d | |
0x00002aaaab42bfb9: add $0x16,%r9d | |
0x00002aaaab42bfbd: mov $0x74,%esi | |
0x00002aaaab42bfc2: mov %rbx,%rcx | |
0x00002aaaab42bfc5: mov %si,0x20(%rbx) | |
0x00002aaaab42bfc9: mov $0x65,%r10d | |
0x00002aaaab42bfcf: mov %r10w,0x22(%rbx) | |
0x00002aaaab42bfd4: mov $0x758600d08,%rbx ; {oop(a 'java/lang/Class' = 'java/lang/System')} | |
0x00002aaaab42bfde: mov 0x74(%rbx),%edx ;*getstatic out | |
; - Main::foo@118 (line 24) | |
0x00002aaaab42bfe1: mov %edx,0x1c(%rsp) | |
0x00002aaaab42bfe5: mov $0x73,%ebx | |
0x00002aaaab42bfea: mov %bx,0x24(%rcx) | |
0x00002aaaab42bfee: mov %si,0x26(%rcx) | |
0x00002aaaab42bff2: mov %si,0x28(%rcx) | |
0x00002aaaab42bff6: mov %r10w,0x2a(%rcx) | |
0x00002aaaab42bffb: mov %bx,0x2c(%rcx) | |
0x00002aaaab42bfff: mov %si,0x2e(%rcx) | |
0x00002aaaab42c003: test %r9d,%r9d | |
0x00002aaaab42c006: jl 0x00002aaaab42c9c5 | |
;; B7: # B49 B8 <- B6 Freq: 0.999999 | |
0x00002aaaab42c00c: movslq %edi,%rbp | |
0x00002aaaab42c00f: shl %rbp | |
0x00002aaaab42c012: cmp $0x80000,%r9d | |
0x00002aaaab42c019: ja 0x00002aaaab42c8b0 | |
;; B8: # B49 B9 <- B7 Freq: 0.999998 | |
0x00002aaaab42c01f: mov 0x70(%r15),%r10 | |
0x00002aaaab42c023: mov %rbp,%rbx | |
0x00002aaaab42c026: add $0x43,%rbx | |
0x00002aaaab42c02a: and $0xfffffffffffffff8,%rbx | |
0x00002aaaab42c02e: mov %r10,%rdi | |
0x00002aaaab42c031: add %rbx,%rdi | |
0x00002aaaab42c034: cmp 0x80(%r15),%rdi | |
0x00002aaaab42c03b: jae 0x00002aaaab42c8b0 | |
;; B9: # B10 <- B8 Freq: 0.999898 | |
0x00002aaaab42c041: mov %rdi,0x70(%r15) | |
0x00002aaaab42c045: prefetchnta 0xc0(%rdi) | |
0x00002aaaab42c04c: movq $0x1,(%r10) | |
0x00002aaaab42c053: prefetchnta 0x100(%rdi) | |
0x00002aaaab42c05a: movl $0xc08000bf,0x8(%r10) ; {oop({type array char})} | |
0x00002aaaab42c062: mov %r9d,0xc(%r10) | |
0x00002aaaab42c066: prefetchnta 0x140(%rdi) | |
0x00002aaaab42c06d: prefetchnta 0x180(%rdi) | |
0x00002aaaab42c074: mov %rcx,0x8(%rsp) | |
0x00002aaaab42c079: mov %r11d,0x10(%rsp) | |
0x00002aaaab42c07e: mov %r8d,0x14(%rsp) | |
0x00002aaaab42c083: mov %r9d,0x18(%rsp) | |
;; B10: # B47 B11 <- B50 B9 Freq: 0.999999 | |
0x00002aaaab42c088: mov %r10,%rsi | |
0x00002aaaab42c08b: add $0x10,%rsi | |
0x00002aaaab42c08f: mov %r10,0x20(%rsp) | |
0x00002aaaab42c094: mov $0x30,%r13d | |
0x00002aaaab42c09a: mov $0x15,%edx | |
0x00002aaaab42c09f: mov $0x75866c628,%rdi ; {oop([C)} | |
0x00002aaaab42c0a9: add $0x10,%rdi | |
0x00002aaaab42c0ad: mov $0x2aaaab40c960,%r10 | |
0x00002aaaab42c0b7: callq *%r10 | |
0x00002aaaab42c0ba: mov 0x20(%rsp),%r10 | |
0x00002aaaab42c0bf: mov %r13w,0x3a(%r10,%rbp,1) | |
0x00002aaaab42c0c5: mov 0x70(%r15),%rdx | |
0x00002aaaab42c0c9: mov %rdx,%r10 | |
0x00002aaaab42c0cc: add $0x20,%r10 | |
0x00002aaaab42c0d0: cmp 0x80(%r15),%r10 | |
0x00002aaaab42c0d7: jae 0x00002aaaab42c894 | |
;; B11: # B12 <- B10 Freq: 0.999899 | |
0x00002aaaab42c0dd: mov %r10,0x70(%r15) | |
0x00002aaaab42c0e1: prefetchnta 0xc0(%r10) | |
0x00002aaaab42c0e9: mov $0xc080165d,%r10d ; {oop('java/lang/String')} | |
0x00002aaaab42c0ef: mov 0xb0(%r12,%r10,8),%r10 | |
0x00002aaaab42c0f7: mov %r10,(%rdx) | |
0x00002aaaab42c0fa: movl $0xc080165d,0x8(%rdx) ; {oop('java/lang/String')} | |
0x00002aaaab42c101: mov %r12d,0xc(%rdx) | |
0x00002aaaab42c105: mov %r12,0x10(%rdx) | |
0x00002aaaab42c109: mov %r12,0x18(%rdx) | |
;; B12: # B59 B13 <- B48 B11 Freq: 0.999999 | |
0x00002aaaab42c10d: mov 0x18(%rsp),%r11d | |
0x00002aaaab42c112: mov %r11d,0x14(%rdx) | |
0x00002aaaab42c116: mov 0x20(%rsp),%r10 | |
0x00002aaaab42c11b: push %r10 | |
0x00002aaaab42c11d: mov $0x2b7541d6d950,%r10 ; {external_word} | |
0x00002aaaab42c127: cmp (%r10),%r12 | |
0x00002aaaab42c12a: je 0x00002aaaab42c1af | |
0x00002aaaab42c130: mov %rsp,-0x28(%rsp) | |
0x00002aaaab42c135: sub $0x80,%rsp | |
0x00002aaaab42c13c: mov %rax,0x78(%rsp) | |
0x00002aaaab42c141: mov %rcx,0x70(%rsp) | |
0x00002aaaab42c146: mov %rdx,0x68(%rsp) | |
0x00002aaaab42c14b: mov %rbx,0x60(%rsp) | |
0x00002aaaab42c150: mov %rbp,0x50(%rsp) | |
0x00002aaaab42c155: mov %rsi,0x48(%rsp) | |
0x00002aaaab42c15a: mov %rdi,0x40(%rsp) | |
0x00002aaaab42c15f: mov %r8,0x38(%rsp) | |
0x00002aaaab42c164: mov %r9,0x30(%rsp) | |
0x00002aaaab42c169: mov %r10,0x28(%rsp) | |
0x00002aaaab42c16e: mov %r11,0x20(%rsp) | |
0x00002aaaab42c173: mov %r12,0x18(%rsp) | |
0x00002aaaab42c178: mov %r13,0x10(%rsp) | |
0x00002aaaab42c17d: mov %r14,0x8(%rsp) | |
0x00002aaaab42c182: mov %r15,(%rsp) | |
0x00002aaaab42c186: mov $0x2b754183d868,%rdi ; {external_word} | |
0x00002aaaab42c190: mov $0x2aaaab42c130,%rsi ; {internal_word} | |
0x00002aaaab42c19a: mov %rsp,%rdx | |
0x00002aaaab42c19d: and $0xfffffffffffffff0,%rsp | |
0x00002aaaab42c1a1: mov $0x2b7540d56110,%r10 ; {runtime_call} | |
0x00002aaaab42c1ab: callq *%r10 | |
0x00002aaaab42c1ae: hlt | |
0x00002aaaab42c1af: pop %r10 | |
0x00002aaaab42c1b1: test %r10,%r10 | |
0x00002aaaab42c1b4: jne 0x00002aaaab42c239 | |
0x00002aaaab42c1ba: mov %rsp,-0x28(%rsp) | |
0x00002aaaab42c1bf: sub $0x80,%rsp | |
0x00002aaaab42c1c6: mov %rax,0x78(%rsp) | |
0x00002aaaab42c1cb: mov %rcx,0x70(%rsp) | |
0x00002aaaab42c1d0: mov %rdx,0x68(%rsp) | |
0x00002aaaab42c1d5: mov %rbx,0x60(%rsp) | |
0x00002aaaab42c1da: mov %rbp,0x50(%rsp) | |
0x00002aaaab42c1df: mov %rsi,0x48(%rsp) | |
0x00002aaaab42c1e4: mov %rdi,0x40(%rsp) | |
0x00002aaaab42c1e9: mov %r8,0x38(%rsp) | |
0x00002aaaab42c1ee: mov %r9,0x30(%rsp) | |
0x00002aaaab42c1f3: mov %r10,0x28(%rsp) | |
0x00002aaaab42c1f8: mov %r11,0x20(%rsp) | |
0x00002aaaab42c1fd: mov %r12,0x18(%rsp) | |
0x00002aaaab42c202: mov %r13,0x10(%rsp) | |
0x00002aaaab42c207: mov %r14,0x8(%rsp) | |
0x00002aaaab42c20c: mov %r15,(%rsp) | |
0x00002aaaab42c210: mov $0x2b754183d8a8,%rdi ; {external_word} | |
0x00002aaaab42c21a: mov $0x2aaaab42c1ba,%rsi ; {internal_word} | |
0x00002aaaab42c224: mov %rsp,%rdx | |
0x00002aaaab42c227: and $0xfffffffffffffff0,%rsp | |
0x00002aaaab42c22b: mov $0x2b7540d56110,%r10 ; {runtime_call} | |
0x00002aaaab42c235: callq *%r10 | |
0x00002aaaab42c238: hlt | |
0x00002aaaab42c239: shr $0x3,%r10 | |
0x00002aaaab42c23d: mov %r10d,0xc(%rdx) | |
0x00002aaaab42c241: mov 0x1c(%rsp),%r11d | |
0x00002aaaab42c246: test %r11d,%r11d | |
0x00002aaaab42c249: je 0x00002aaaab42c958 ;*invokevirtual println | |
; - Main::foo@140 (line 24) | |
;; B13: # B75 B14 <- B12 Freq: 0.999998 | |
0x00002aaaab42c24f: lea (%r12,%r11,8),%rsi | |
0x00002aaaab42c253: callq 0x00002aaaab401de0 ; OopMap{[0]=Derived_oop_[8] [8]=Oop off=888} | |
;*invokevirtual println | |
; - Main::foo@140 (line 24) | |
; {optimized virtual_call} | |
;; B14: # B16 <- B13 Freq: 0.999978 | |
0x00002aaaab42c258: xor %r8d,%r8d | |
0x00002aaaab42c25b: mov $0x1,%r10d | |
0x00002aaaab42c261: jmp 0x00002aaaab42c26f | |
;; B15: # B16 <- B16 top-of-loop Freq: 986872 | |
0x00002aaaab42c263: mov %r10d,%r11d | |
0x00002aaaab42c266: inc %r11d | |
0x00002aaaab42c269: mov %r10d,%r8d | |
0x00002aaaab42c26c: mov %r11d,%r10d | |
;; B16: # B15 B17 <- B14 B15 Loop: B16-B15 inner Freq: 986873 | |
0x00002aaaab42c26f: mov $0x758628a38,%r11 ; {oop([I)} | |
0x00002aaaab42c279: mov 0x10(%r11,%r8,4),%r11d | |
0x00002aaaab42c27e: cmp $0x10,%r11d | |
0x00002aaaab42c282: jl 0x00002aaaab42c263 | |
;; B17: # B64 B18 <- B16 Freq: 0.999978 | |
0x00002aaaab42c284: mov $0x758600d08,%r11 ; {oop(a 'java/lang/Class' = 'java/lang/System')} | |
0x00002aaaab42c28e: mov 0x74(%r11),%r9d ;*getstatic out | |
; - Main::foo@143 (line 25) | |
0x00002aaaab42c292: mov %r9d,0x20(%rsp) | |
0x00002aaaab42c297: mov %r8d,%ebp | |
0x00002aaaab42c29a: add $0x12,%ebp | |
0x00002aaaab42c29d: test %ebp,%ebp | |
0x00002aaaab42c29f: jl 0x00002aaaab42c9e1 | |
;; B18: # B64 B19 <- B17 Freq: 0.999977 | |
0x00002aaaab42c2a5: mov %r8d,%r11d | |
0x00002aaaab42c2a8: add $0x16,%r11d | |
0x00002aaaab42c2ac: test %r11d,%r11d | |
0x00002aaaab42c2af: jl 0x00002aaaab42c9e1 | |
;; B19: # B21 <- B18 Freq: 0.999976 | |
0x00002aaaab42c2b5: xor %r11d,%r11d | |
0x00002aaaab42c2b8: jmp 0x00002aaaab42c2c3 | |
0x00002aaaab42c2ba: nop | |
0x00002aaaab42c2bb: nop | |
0x00002aaaab42c2bc: nop | |
0x00002aaaab42c2bd: nop | |
0x00002aaaab42c2be: nop | |
0x00002aaaab42c2bf: nop | |
;; B20: # B21 <- B21 top-of-loop Freq: 986870 | |
0x00002aaaab42c2c0: inc %r11d | |
;; B21: # B20 B22 <- B19 B20 Loop: B21-B20 inner Freq: 986871 | |
0x00002aaaab42c2c3: mov $0x758628a38,%r9 ; {oop([I)} | |
0x00002aaaab42c2cd: mov 0x10(%r9,%r11,4),%ecx | |
0x00002aaaab42c2d2: cmp $0x20,%ecx | |
0x00002aaaab42c2d5: jl 0x00002aaaab42c2c0 | |
;; B22: # B64 B23 <- B21 Freq: 0.999976 | |
0x00002aaaab42c2d7: add %r11d,%r8d | |
0x00002aaaab42c2da: mov %r8d,%r11d | |
0x00002aaaab42c2dd: add $0x17,%r11d | |
0x00002aaaab42c2e1: test %r11d,%r11d | |
0x00002aaaab42c2e4: jl 0x00002aaaab42c9e1 | |
;; B23: # B53 B24 <- B22 Freq: 0.999975 | |
0x00002aaaab42c2ea: cmp $0x80000,%r11d | |
0x00002aaaab42c2f1: ja 0x00002aaaab42c8ff | |
;; B24: # B53 B25 <- B23 Freq: 0.999974 | |
0x00002aaaab42c2f7: mov 0x70(%r15),%r13 | |
0x00002aaaab42c2fb: inc %r8d | |
0x00002aaaab42c2fe: movslq %r8d,%r8 | |
0x00002aaaab42c301: shl %r8 | |
0x00002aaaab42c304: add $0x43,%r8 | |
0x00002aaaab42c308: and $0xfffffffffffffff8,%r8 | |
0x00002aaaab42c30c: mov %r13,%r9 | |
0x00002aaaab42c30f: add %r8,%r9 | |
0x00002aaaab42c312: cmp 0x80(%r15),%r9 | |
0x00002aaaab42c319: jae 0x00002aaaab42c8ff | |
;; B25: # B26 <- B24 Freq: 0.999874 | |
0x00002aaaab42c31f: mov %r9,0x70(%r15) | |
0x00002aaaab42c323: prefetchnta 0xc0(%r9) | |
0x00002aaaab42c32b: movq $0x1,0x0(%r13) | |
0x00002aaaab42c333: prefetchnta 0x100(%r9) | |
0x00002aaaab42c33b: movl $0xc08000bf,0x8(%r13) ; {oop({type array char})} | |
0x00002aaaab42c343: mov %r11d,0xc(%r13) | |
0x00002aaaab42c347: prefetchnta 0x140(%r9) | |
0x00002aaaab42c34f: prefetchnta 0x180(%r9) | |
0x00002aaaab42c357: mov %r10d,0x18(%rsp) | |
0x00002aaaab42c35c: mov %r11d,0x1c(%rsp) | |
;; B26: # B28 <- B54 B25 Freq: 0.999975 | |
0x00002aaaab42c361: mov %r13,%rsi | |
0x00002aaaab42c364: add $0x10,%rsi | |
0x00002aaaab42c368: mov $0x11,%edx | |
0x00002aaaab42c36d: mov $0x75866c688,%rdi ; {oop([C)} | |
0x00002aaaab42c377: add $0x10,%rdi | |
0x00002aaaab42c37b: mov $0x2aaaab40c960,%r10 | |
0x00002aaaab42c385: callq *%r10 | |
0x00002aaaab42c388: xor %r11d,%r11d | |
0x00002aaaab42c38b: jmp 0x00002aaaab42c39e | |
0x00002aaaab42c38d: nop | |
0x00002aaaab42c38e: nop | |
0x00002aaaab42c38f: nop | |
;; B27: # B28 <- B28 top-of-loop Freq: 8.99977 | |
0x00002aaaab42c390: mov %r9d,%r11d | |
0x00002aaaab42c393: sar $0x1f,%r11d | |
0x00002aaaab42c397: dec %ebp | |
0x00002aaaab42c399: mov %r9d,0x10(%rsp) | |
;; B28: # B27 B29 <- B26 B27 Loop: B28-B27 inner Freq: 9.99975 | |
0x00002aaaab42c39e: movslq 0x10(%rsp),%r10 | |
0x00002aaaab42c3a3: imul $0x66666667,%r10,%r10 | |
0x00002aaaab42c3aa: sar $0x22,%r10 | |
0x00002aaaab42c3ae: mov %r10d,%r10d | |
0x00002aaaab42c3b1: mov %r10d,%r9d | |
0x00002aaaab42c3b4: sub %r11d,%r9d | |
0x00002aaaab42c3b7: mov %r9d,%r8d | |
0x00002aaaab42c3ba: shl $0x3,%r8d | |
0x00002aaaab42c3be: mov %r9d,%ebx | |
0x00002aaaab42c3c1: shl %ebx | |
0x00002aaaab42c3c3: add %r8d,%ebx | |
0x00002aaaab42c3c6: mov 0x10(%rsp),%r8d | |
0x00002aaaab42c3cb: sub %ebx,%r8d | |
0x00002aaaab42c3ce: add $0x30,%r8d | |
0x00002aaaab42c3d2: mov %r8w,0xe(%r13,%rbp,2) | |
0x00002aaaab42c3d8: cmp %r11d,%r10d | |
0x00002aaaab42c3db: jne 0x00002aaaab42c390 | |
;; B29: # B31 <- B28 Freq: 0.999975 | |
0x00002aaaab42c3dd: movslq 0x18(%rsp),%r8 | |
0x00002aaaab42c3e2: mov $0x20,%ebx | |
0x00002aaaab42c3e7: mov %bx,0x32(%r13,%r8,2) | |
0x00002aaaab42c3ed: mov $0x3e,%r10d | |
0x00002aaaab42c3f3: mov $0x3c,%r11d | |
0x00002aaaab42c3f9: mov %r11w,0x34(%r13,%r8,2) | |
0x00002aaaab42c3ff: mov %r10w,0x36(%r13,%r8,2) | |
0x00002aaaab42c405: mov %bx,0x38(%r13,%r8,2) | |
0x00002aaaab42c40b: mov 0x1c(%rsp),%r10d | |
0x00002aaaab42c410: jmp 0x00002aaaab42c424 | |
;; B30: # B31 <- B31 top-of-loop Freq: 8.99977 | |
0x00002aaaab42c412: mov %r11d,%r9d | |
0x00002aaaab42c415: sar $0x1f,%r9d | |
0x00002aaaab42c419: dec %r10d | |
0x00002aaaab42c41c: mov %r11d,%ebx | |
0x00002aaaab42c41f: mov %r9d,0x14(%rsp) | |
;; B31: # B30 B32 <- B29 B30 Loop: B31-B30 inner Freq: 9.99975 | |
0x00002aaaab42c424: movslq %ebx,%r11 | |
0x00002aaaab42c427: imul $0x66666667,%r11,%r11 | |
0x00002aaaab42c42e: sar $0x22,%r11 | |
0x00002aaaab42c432: mov %r11d,%r8d | |
0x00002aaaab42c435: mov %r8d,%r11d | |
0x00002aaaab42c438: sub 0x14(%rsp),%r11d | |
0x00002aaaab42c43d: mov %r11d,%ecx | |
0x00002aaaab42c440: shl $0x3,%ecx | |
0x00002aaaab42c443: mov %r11d,%r9d | |
0x00002aaaab42c446: shl %r9d | |
0x00002aaaab42c449: add %ecx,%r9d | |
0x00002aaaab42c44c: sub %r9d,%ebx | |
0x00002aaaab42c44f: add $0x30,%ebx | |
0x00002aaaab42c452: mov %bx,0xe(%r13,%r10,2) | |
0x00002aaaab42c458: cmp 0x14(%rsp),%r8d | |
0x00002aaaab42c45d: jne 0x00002aaaab42c412 | |
;; B32: # B51 B33 <- B31 Freq: 0.999975 | |
0x00002aaaab42c45f: mov 0x70(%r15),%rdx | |
0x00002aaaab42c463: mov %rdx,%r10 | |
0x00002aaaab42c466: add $0x20,%r10 | |
0x00002aaaab42c46a: cmp 0x80(%r15),%r10 | |
0x00002aaaab42c471: jae 0x00002aaaab42c8e0 | |
;; B33: # B34 <- B32 Freq: 0.999875 | |
0x00002aaaab42c477: mov %r10,0x70(%r15) | |
0x00002aaaab42c47b: prefetchnta 0xc0(%r10) | |
0x00002aaaab42c483: mov $0xc080165d,%r10d ; {oop('java/lang/String')} | |
0x00002aaaab42c489: mov 0xb0(%r12,%r10,8),%r10 | |
0x00002aaaab42c491: mov %r10,(%rdx) | |
0x00002aaaab42c494: movl $0xc080165d,0x8(%rdx) ; {oop('java/lang/String')} | |
0x00002aaaab42c49b: mov %r12d,0xc(%rdx) | |
0x00002aaaab42c49f: mov %r12,0x10(%rdx) | |
0x00002aaaab42c4a3: mov %r12,0x18(%rdx) | |
;; B34: # B60 B35 <- B52 B33 Freq: 0.999975 | |
0x00002aaaab42c4a7: mov 0x1c(%rsp),%r11d | |
0x00002aaaab42c4ac: mov %r11d,0x14(%rdx) | |
0x00002aaaab42c4b0: push %r10 | |
0x00002aaaab42c4b2: mov $0x2b7541d6d950,%r10 ; {external_word} | |
0x00002aaaab42c4bc: cmp (%r10),%r12 | |
0x00002aaaab42c4bf: je 0x00002aaaab42c544 | |
0x00002aaaab42c4c5: mov %rsp,-0x28(%rsp) | |
0x00002aaaab42c4ca: sub $0x80,%rsp | |
0x00002aaaab42c4d1: mov %rax,0x78(%rsp) | |
0x00002aaaab42c4d6: mov %rcx,0x70(%rsp) | |
0x00002aaaab42c4db: mov %rdx,0x68(%rsp) | |
0x00002aaaab42c4e0: mov %rbx,0x60(%rsp) | |
0x00002aaaab42c4e5: mov %rbp,0x50(%rsp) | |
0x00002aaaab42c4ea: mov %rsi,0x48(%rsp) | |
0x00002aaaab42c4ef: mov %rdi,0x40(%rsp) | |
0x00002aaaab42c4f4: mov %r8,0x38(%rsp) | |
0x00002aaaab42c4f9: mov %r9,0x30(%rsp) | |
0x00002aaaab42c4fe: mov %r10,0x28(%rsp) | |
0x00002aaaab42c503: mov %r11,0x20(%rsp) | |
0x00002aaaab42c508: mov %r12,0x18(%rsp) | |
0x00002aaaab42c50d: mov %r13,0x10(%rsp) | |
0x00002aaaab42c512: mov %r14,0x8(%rsp) | |
0x00002aaaab42c517: mov %r15,(%rsp) | |
0x00002aaaab42c51b: mov $0x2b754183d868,%rdi ; {external_word} | |
0x00002aaaab42c525: mov $0x2aaaab42c4c5,%rsi ; {internal_word} | |
0x00002aaaab42c52f: mov %rsp,%rdx | |
0x00002aaaab42c532: and $0xfffffffffffffff0,%rsp | |
0x00002aaaab42c536: mov $0x2b7540d56110,%r10 ; {runtime_call} | |
0x00002aaaab42c540: callq *%r10 | |
0x00002aaaab42c543: hlt | |
0x00002aaaab42c544: pop %r10 | |
0x00002aaaab42c546: test %r13,%r13 | |
0x00002aaaab42c549: jne 0x00002aaaab42c5ce | |
0x00002aaaab42c54f: mov %rsp,-0x28(%rsp) | |
0x00002aaaab42c554: sub $0x80,%rsp | |
0x00002aaaab42c55b: mov %rax,0x78(%rsp) | |
0x00002aaaab42c560: mov %rcx,0x70(%rsp) | |
0x00002aaaab42c565: mov %rdx,0x68(%rsp) | |
0x00002aaaab42c56a: mov %rbx,0x60(%rsp) | |
0x00002aaaab42c56f: mov %rbp,0x50(%rsp) | |
0x00002aaaab42c574: mov %rsi,0x48(%rsp) | |
0x00002aaaab42c579: mov %rdi,0x40(%rsp) | |
0x00002aaaab42c57e: mov %r8,0x38(%rsp) | |
0x00002aaaab42c583: mov %r9,0x30(%rsp) | |
0x00002aaaab42c588: mov %r10,0x28(%rsp) | |
0x00002aaaab42c58d: mov %r11,0x20(%rsp) | |
0x00002aaaab42c592: mov %r12,0x18(%rsp) | |
0x00002aaaab42c597: mov %r13,0x10(%rsp) | |
0x00002aaaab42c59c: mov %r14,0x8(%rsp) | |
0x00002aaaab42c5a1: mov %r15,(%rsp) | |
0x00002aaaab42c5a5: mov $0x2b754183d8a8,%rdi ; {external_word} | |
0x00002aaaab42c5af: mov $0x2aaaab42c54f,%rsi ; {internal_word} | |
0x00002aaaab42c5b9: mov %rsp,%rdx | |
0x00002aaaab42c5bc: and $0xfffffffffffffff0,%rsp | |
0x00002aaaab42c5c0: mov $0x2b7540d56110,%r10 ; {runtime_call} | |
0x00002aaaab42c5ca: callq *%r10 | |
0x00002aaaab42c5cd: hlt | |
0x00002aaaab42c5ce: mov %r13,%r10 | |
0x00002aaaab42c5d1: shr $0x3,%r10 | |
0x00002aaaab42c5d5: mov %r10d,0xc(%rdx) | |
0x00002aaaab42c5d9: mov 0x20(%rsp),%r10d | |
0x00002aaaab42c5de: test %r10d,%r10d | |
0x00002aaaab42c5e1: je 0x00002aaaab42c975 ;*invokevirtual println | |
; - Main::foo@177 (line 25) | |
;; B35: # B76 B36 <- B34 Freq: 0.999974 | |
0x00002aaaab42c5e7: lea (%r12,%r10,8),%rsi | |
0x00002aaaab42c5eb: callq 0x00002aaaab401de0 ; OopMap{[0]=Derived_oop_[8] [8]=Oop off=1808} | |
;*invokevirtual println | |
; - Main::foo@177 (line 25) | |
; {optimized virtual_call} | |
;; B36: # B61 B37 <- B35 Freq: 0.999954 | |
0x00002aaaab42c5f0: mov $0x758600d08,%r10 ; {oop(a 'java/lang/Class' = 'java/lang/System')} | |
0x00002aaaab42c5fa: mov 0x74(%r10),%r10d ;*getstatic out | |
; - Main::foo@180 (line 26) | |
0x00002aaaab42c5fe: test %r10d,%r10d | |
0x00002aaaab42c601: je 0x00002aaaab42c991 ;*invokevirtual println | |
; - Main::foo@185 (line 26) | |
;; B37: # B77 B38 <- B36 Freq: 0.999953 | |
0x00002aaaab42c607: lea (%r12,%r10,8),%rsi ;*getstatic out | |
; - Main::foo@180 (line 26) | |
0x00002aaaab42c60b: mov $0x75866c6f8,%rdx ; {oop("Expected: "testtesttesttesttesttesttesttest"")} | |
0x00002aaaab42c615: nop | |
0x00002aaaab42c616: nop | |
0x00002aaaab42c617: callq 0x00002aaaab401de0 ; OopMap{[0]=Derived_oop_[8] [8]=Oop off=1852} | |
;*invokevirtual println | |
; - Main::foo@185 (line 26) | |
; {optimized virtual_call} | |
;; B38: # B55 B39 <- B37 Freq: 0.999933 | |
0x00002aaaab42c61c: mov 0x70(%r15),%r11 | |
0x00002aaaab42c620: mov $0x758600d08,%r10 ; {oop(a 'java/lang/Class' = 'java/lang/System')} | |
0x00002aaaab42c62a: mov 0x74(%r10),%ebp ;*getstatic out | |
; - Main::foo@188 (line 28) | |
0x00002aaaab42c62e: mov %r11,%r10 | |
0x00002aaaab42c631: add $0x48,%r10 | |
0x00002aaaab42c635: cmp 0x80(%r15),%r10 | |
0x00002aaaab42c63c: jae 0x00002aaaab42c924 | |
;; B39: # B40 <- B38 Freq: 0.999833 | |
0x00002aaaab42c642: mov %r10,0x70(%r15) | |
0x00002aaaab42c646: prefetchnta 0xc0(%r10) | |
0x00002aaaab42c64e: movq $0x1,(%r11) | |
0x00002aaaab42c655: prefetchnta 0x100(%r10) | |
0x00002aaaab42c65d: movl $0xc08000bf,0x8(%r11) ; {oop({type array char})} | |
0x00002aaaab42c665: prefetchnta 0x140(%r10) | |
0x00002aaaab42c66d: movl $0x1c,0xc(%r11) | |
0x00002aaaab42c675: prefetchnta 0x180(%r10) | |
;; B40: # B57 B41 <- B56 B39 Freq: 0.999933 | |
0x00002aaaab42c67d: mov %r11,%r13 | |
0x00002aaaab42c680: add $0x26,%r13 | |
0x00002aaaab42c684: mov %r11,%rsi | |
0x00002aaaab42c687: add $0x10,%rsi | |
0x00002aaaab42c68b: mov %r11,0x10(%rsp) | |
0x00002aaaab42c690: mov $0x22,%ebx | |
0x00002aaaab42c695: mov $0x75866c7a0,%rdi ; {oop([C)} | |
0x00002aaaab42c69f: add $0x10,%rdi | |
0x00002aaaab42c6a3: mov $0xb,%edx | |
0x00002aaaab42c6a8: mov $0x2aaaab40c960,%r10 | |
0x00002aaaab42c6b2: callq *%r10 | |
0x00002aaaab42c6b5: mov (%rsp),%rdi | |
0x00002aaaab42c6b9: mov %r13,%rsi | |
0x00002aaaab42c6bc: mov $0x10,%edx | |
0x00002aaaab42c6c1: mov $0x2aaaab40c960,%r10 | |
0x00002aaaab42c6cb: callq *%r10 | |
0x00002aaaab42c6ce: mov 0x10(%rsp),%r10 | |
0x00002aaaab42c6d3: mov %bx,0x46(%r10) | |
0x00002aaaab42c6d8: mov 0x70(%r15),%rdx | |
0x00002aaaab42c6dc: mov %rdx,%r10 | |
0x00002aaaab42c6df: add $0x20,%r10 | |
0x00002aaaab42c6e3: cmp 0x80(%r15),%r10 | |
0x00002aaaab42c6ea: jae 0x00002aaaab42c940 | |
;; B41: # B42 <- B40 Freq: 0.999833 | |
0x00002aaaab42c6f0: mov %r10,0x70(%r15) | |
0x00002aaaab42c6f4: prefetchnta 0xc0(%r10) | |
0x00002aaaab42c6fc: mov $0xc080165d,%r11d ; {oop('java/lang/String')} | |
0x00002aaaab42c702: mov 0xb0(%r12,%r11,8),%r10 | |
0x00002aaaab42c70a: mov %r10,(%rdx) | |
0x00002aaaab42c70d: movl $0xc080165d,0x8(%rdx) ; {oop('java/lang/String')} | |
0x00002aaaab42c714: mov %r12d,0xc(%rdx) | |
0x00002aaaab42c718: mov %r12,0x18(%rdx) | |
;; B42: # B62 B43 <- B58 B41 Freq: 0.999933 | |
0x00002aaaab42c71c: mov 0x10(%rsp),%r10 | |
0x00002aaaab42c721: push %r10 | |
0x00002aaaab42c723: mov $0x2b7541d6d950,%r10 ; {external_word} | |
0x00002aaaab42c72d: cmp (%r10),%r12 | |
0x00002aaaab42c730: je 0x00002aaaab42c7b5 | |
0x00002aaaab42c736: mov %rsp,-0x28(%rsp) | |
0x00002aaaab42c73b: sub $0x80,%rsp | |
0x00002aaaab42c742: mov %rax,0x78(%rsp) | |
0x00002aaaab42c747: mov %rcx,0x70(%rsp) | |
0x00002aaaab42c74c: mov %rdx,0x68(%rsp) | |
0x00002aaaab42c751: mov %rbx,0x60(%rsp) | |
0x00002aaaab42c756: mov %rbp,0x50(%rsp) | |
0x00002aaaab42c75b: mov %rsi,0x48(%rsp) | |
0x00002aaaab42c760: mov %rdi,0x40(%rsp) | |
0x00002aaaab42c765: mov %r8,0x38(%rsp) | |
0x00002aaaab42c76a: mov %r9,0x30(%rsp) | |
0x00002aaaab42c76f: mov %r10,0x28(%rsp) | |
0x00002aaaab42c774: mov %r11,0x20(%rsp) | |
0x00002aaaab42c779: mov %r12,0x18(%rsp) | |
0x00002aaaab42c77e: mov %r13,0x10(%rsp) | |
0x00002aaaab42c783: mov %r14,0x8(%rsp) | |
0x00002aaaab42c788: mov %r15,(%rsp) | |
0x00002aaaab42c78c: mov $0x2b754183d868,%rdi ; {external_word} | |
0x00002aaaab42c796: mov $0x2aaaab42c736,%rsi ; {internal_word} | |
0x00002aaaab42c7a0: mov %rsp,%rdx | |
0x00002aaaab42c7a3: and $0xfffffffffffffff0,%rsp | |
0x00002aaaab42c7a7: mov $0x2b7540d56110,%r10 ; {runtime_call} | |
0x00002aaaab42c7b1: callq *%r10 | |
0x00002aaaab42c7b4: hlt | |
0x00002aaaab42c7b5: pop %r10 | |
0x00002aaaab42c7b7: test %r10,%r10 | |
0x00002aaaab42c7ba: jne 0x00002aaaab42c83f | |
0x00002aaaab42c7c0: mov %rsp,-0x28(%rsp) | |
0x00002aaaab42c7c5: sub $0x80,%rsp | |
0x00002aaaab42c7cc: mov %rax,0x78(%rsp) | |
0x00002aaaab42c7d1: mov %rcx,0x70(%rsp) | |
0x00002aaaab42c7d6: mov %rdx,0x68(%rsp) | |
0x00002aaaab42c7db: mov %rbx,0x60(%rsp) | |
0x00002aaaab42c7e0: mov %rbp,0x50(%rsp) | |
0x00002aaaab42c7e5: mov %rsi,0x48(%rsp) | |
0x00002aaaab42c7ea: mov %rdi,0x40(%rsp) | |
0x00002aaaab42c7ef: mov %r8,0x38(%rsp) | |
0x00002aaaab42c7f4: mov %r9,0x30(%rsp) | |
0x00002aaaab42c7f9: mov %r10,0x28(%rsp) | |
0x00002aaaab42c7fe: mov %r11,0x20(%rsp) | |
0x00002aaaab42c803: mov %r12,0x18(%rsp) | |
0x00002aaaab42c808: mov %r13,0x10(%rsp) | |
0x00002aaaab42c80d: mov %r14,0x8(%rsp) | |
0x00002aaaab42c812: mov %r15,(%rsp) | |
0x00002aaaab42c816: mov $0x2b754183d8a8,%rdi ; {external_word} | |
0x00002aaaab42c820: mov $0x2aaaab42c7c0,%rsi ; {internal_word} | |
0x00002aaaab42c82a: mov %rsp,%rdx | |
0x00002aaaab42c82d: and $0xfffffffffffffff0,%rsp | |
0x00002aaaab42c831: mov $0x2b7540d56110,%r10 ; {runtime_call} | |
0x00002aaaab42c83b: callq *%r10 | |
0x00002aaaab42c83e: hlt | |
0x00002aaaab42c83f: mov %r10,%r11 | |
0x00002aaaab42c842: shr $0x3,%r11 | |
0x00002aaaab42c846: mov $0x1c00000000,%r10 | |
0x00002aaaab42c850: mov %r10,0x10(%rdx) | |
0x00002aaaab42c854: mov %r11d,0xc(%rdx) | |
0x00002aaaab42c858: test %ebp,%ebp | |
0x00002aaaab42c85a: je 0x00002aaaab42c9a9 ;*invokevirtual println | |
; - Main::foo@215 (line 28) | |
;; B43: # B78 B44 <- B42 Freq: 0.999932 | |
0x00002aaaab42c860: lea (%r12,%rbp,8),%rsi ;*getstatic out | |
; - Main::foo@188 (line 28) | |
0x00002aaaab42c864: nop | |
0x00002aaaab42c865: nop | |
0x00002aaaab42c866: nop | |
0x00002aaaab42c867: callq 0x00002aaaab401de0 ; OopMap{off=2444} | |
;*invokevirtual println | |
; - Main::foo@215 (line 28) | |
; {optimized virtual_call} | |
;; B44: # N1 <- B43 Freq: 0.999912 | |
0x00002aaaab42c86c: add $0x40,%rsp | |
0x00002aaaab42c870: pop %rbp | |
0x00002aaaab42c871: test %eax,-0x532877(%rip) # 0x00002aaaaaefa000 | |
; {poll_return} | |
0x00002aaaab42c877: retq | |
;; B45: # B65 B46 <- B1 Freq: 0.000100017 | |
0x00002aaaab42c878: mov $0x6040005f8,%rsi ; {oop({type array char})} | |
0x00002aaaab42c882: mov $0x10,%edx | |
0x00002aaaab42c887: callq 0x00002aaaab401660 ; OopMap{off=2476} | |
;*new ; - Main::foo@41 (line 14) | |
; {runtime_call} | |
;; B46: # B3 <- B45 Freq: 0.000100015 | |
0x00002aaaab42c88c: mov %rax,%rbx | |
0x00002aaaab42c88f: jmpq 0x00002aaaab42bf3d | |
;; B47: # B73 B48 <- B10 Freq: 0.000100016 | |
0x00002aaaab42c894: mov $0x60400b2e8,%rsi ; {oop('java/lang/String')} | |
0x00002aaaab42c89e: mov 0x1c(%rsp),%ebp | |
0x00002aaaab42c8a2: nop | |
0x00002aaaab42c8a3: callq 0x00002aaaab338ee0 ; OopMap{rbp=NarrowOop [0]=Derived_oop_[8] [8]=Oop [28]=NarrowOop [32]=Oop off=2504} | |
;*new ; - Main::foo@121 (line 24) | |
; {runtime_call} | |
;; B48: # B12 <- B47 Freq: 0.000100014 | |
0x00002aaaab42c8a8: mov %rax,%rdx | |
0x00002aaaab42c8ab: jmpq 0x00002aaaab42c10d | |
;; B49: # B72 B50 <- B7 B8 Freq: 0.00010103 | |
0x00002aaaab42c8b0: mov %r9d,0x18(%rsp) | |
0x00002aaaab42c8b5: mov %r8d,0x14(%rsp) | |
0x00002aaaab42c8ba: mov %r11d,0x10(%rsp) | |
0x00002aaaab42c8bf: mov %rcx,0x8(%rsp) | |
0x00002aaaab42c8c4: mov $0x6040005f8,%rsi ; {oop({type array char})} | |
0x00002aaaab42c8ce: mov %r9d,%edx | |
0x00002aaaab42c8d1: nop | |
0x00002aaaab42c8d2: nop | |
0x00002aaaab42c8d3: callq 0x00002aaaab401660 ; OopMap{[0]=Derived_oop_[8] [8]=Oop [28]=NarrowOop off=2552} | |
;*new ; - Main::foo@121 (line 24) | |
; {runtime_call} | |
;; B50: # B10 <- B49 Freq: 0.000101028 | |
0x00002aaaab42c8d8: mov %rax,%r10 | |
0x00002aaaab42c8db: jmpq 0x00002aaaab42c088 | |
;; B51: # B70 B52 <- B32 Freq: 0.000100014 | |
0x00002aaaab42c8e0: mov %r13,%rbp | |
0x00002aaaab42c8e3: mov $0x60400b2e8,%rsi ; {oop('java/lang/String')} | |
0x00002aaaab42c8ed: nop | |
0x00002aaaab42c8ee: nop | |
0x00002aaaab42c8ef: callq 0x00002aaaab338ee0 ; OopMap{rbp=Oop [0]=Derived_oop_[8] [8]=Oop [32]=NarrowOop off=2580} | |
;*new ; - Main::foo@146 (line 25) | |
; {runtime_call} | |
;; B52: # B34 <- B51 Freq: 0.000100012 | |
0x00002aaaab42c8f4: mov %rbp,%r13 | |
0x00002aaaab42c8f7: mov %rax,%rdx | |
0x00002aaaab42c8fa: jmpq 0x00002aaaab42c4a7 | |
;; B53: # B69 B54 <- B23 B24 Freq: 0.000101027 | |
0x00002aaaab42c8ff: mov %r11d,0x1c(%rsp) | |
0x00002aaaab42c904: mov %r10d,0x18(%rsp) | |
0x00002aaaab42c909: mov $0x6040005f8,%rsi ; {oop({type array char})} | |
0x00002aaaab42c913: mov %r11d,%edx | |
0x00002aaaab42c916: nop | |
0x00002aaaab42c917: callq 0x00002aaaab401660 ; OopMap{[0]=Derived_oop_[8] [8]=Oop [32]=NarrowOop off=2620} | |
;*new ; - Main::foo@146 (line 25) | |
; {runtime_call} | |
;; B54: # B26 <- B53 Freq: 0.000101025 | |
0x00002aaaab42c91c: mov %rax,%r13 | |
0x00002aaaab42c91f: jmpq 0x00002aaaab42c361 | |
;; B55: # B67 B56 <- B38 Freq: 0.00010001 | |
0x00002aaaab42c924: mov $0x6040005f8,%rsi ; {oop({type array char})} | |
0x00002aaaab42c92e: mov $0x1c,%edx | |
0x00002aaaab42c933: callq 0x00002aaaab401660 ; OopMap{rbp=NarrowOop [0]=Derived_oop_[8] [8]=Oop off=2648} | |
;*new ; - Main::foo@191 (line 28) | |
; {runtime_call} | |
;; B56: # B40 <- B55 Freq: 0.000100008 | |
0x00002aaaab42c938: mov %rax,%r11 | |
0x00002aaaab42c93b: jmpq 0x00002aaaab42c67d | |
;; B57: # B66 B58 <- B40 Freq: 0.00010001 | |
0x00002aaaab42c940: mov $0x60400b2e8,%rsi ; {oop('java/lang/String')} | |
0x00002aaaab42c94a: nop | |
0x00002aaaab42c94b: callq 0x00002aaaab338ee0 ; OopMap{rbp=NarrowOop [8]=Oop [16]=Oop off=2672} | |
;*new ; - Main::foo@191 (line 28) | |
; {runtime_call} | |
;; B58: # B42 <- B57 Freq: 0.000100008 | |
0x00002aaaab42c950: mov %rax,%rdx | |
0x00002aaaab42c953: jmpq 0x00002aaaab42c71c | |
;; B59: # N1 <- B12 Freq: 1.01328e-06 | |
0x00002aaaab42c958: mov $0xfffffff6,%esi | |
0x00002aaaab42c95d: mov %rdx,%rbp | |
0x00002aaaab42c960: nop | |
0x00002aaaab42c961: nop | |
0x00002aaaab42c962: nop | |
0x00002aaaab42c963: callq 0x00002aaaab402b20 ; OopMap{rbp=Oop off=2696} | |
;*invokevirtual println | |
; - Main::foo@140 (line 24) | |
; {runtime_call} | |
0x00002aaaab42c968: mov $0x2b75415a0f70,%r10 ; {runtime_call} | |
0x00002aaaab42c972: callq *%r10 ;*invokevirtual println | |
; - Main::foo@140 (line 24) | |
;; B60: # N1 <- B34 Freq: 1.01325e-06 | |
0x00002aaaab42c975: mov $0xfffffff6,%esi | |
0x00002aaaab42c97a: mov %rdx,%rbp | |
0x00002aaaab42c97d: nop | |
0x00002aaaab42c97e: nop | |
0x00002aaaab42c97f: callq 0x00002aaaab402b20 ; OopMap{rbp=Oop off=2724} | |
;*invokevirtual println | |
; - Main::foo@177 (line 25) | |
; {runtime_call} | |
0x00002aaaab42c984: mov $0x2b75415a0f70,%r10 ; {runtime_call} | |
0x00002aaaab42c98e: callq *%r10 ;*invokevirtual println | |
; - Main::foo@177 (line 25) | |
;; B61: # N1 <- B36 Freq: 1.01323e-06 | |
0x00002aaaab42c991: mov $0xfffffff6,%esi | |
0x00002aaaab42c996: nop | |
0x00002aaaab42c997: callq 0x00002aaaab402b20 ; OopMap{off=2748} | |
;*invokevirtual println | |
; - Main::foo@185 (line 26) | |
; {runtime_call} | |
0x00002aaaab42c99c: mov $0x2b75415a0f70,%r10 ; {runtime_call} | |
0x00002aaaab42c9a6: callq *%r10 ;*invokevirtual println | |
; - Main::foo@185 (line 26) | |
;; B62: # N1 <- B42 Freq: 1.01321e-06 | |
0x00002aaaab42c9a9: mov $0xfffffff6,%esi | |
0x00002aaaab42c9ae: mov %rdx,%rbp | |
0x00002aaaab42c9b1: nop | |
0x00002aaaab42c9b2: nop | |
0x00002aaaab42c9b3: callq 0x00002aaaab402b20 ; OopMap{rbp=Oop off=2776} | |
;*invokevirtual println | |
; - Main::foo@215 (line 28) | |
; {runtime_call} | |
0x00002aaaab42c9b8: mov $0x2b75415a0f70,%r10 ; {runtime_call} | |
0x00002aaaab42c9c2: callq *%r10 ;*invokevirtual println | |
; - Main::foo@215 (line 28) | |
;; B63: # N1 <- B6 Freq: 1e-06 | |
0x00002aaaab42c9c5: mov $0xffffffcc,%esi | |
0x00002aaaab42c9ca: mov %rcx,%rbp | |
0x00002aaaab42c9cd: nop | |
0x00002aaaab42c9ce: nop | |
0x00002aaaab42c9cf: callq 0x00002aaaab402b20 ; OopMap{rbp=Oop [28]=NarrowOop off=2804} | |
;*new ; - Main::foo@121 (line 24) | |
; {runtime_call} | |
0x00002aaaab42c9d4: mov $0x2b75415a0f70,%r10 ; {runtime_call} | |
0x00002aaaab42c9de: callq *%r10 | |
;; B64: # N1 <- B17 B18 B22 Freq: 2.99993e-06 | |
0x00002aaaab42c9e1: mov $0xffffffcc,%esi | |
0x00002aaaab42c9e6: mov 0x20(%rsp),%ebp | |
0x00002aaaab42c9ea: nop | |
0x00002aaaab42c9eb: callq 0x00002aaaab402b20 ; OopMap{rbp=NarrowOop [8]=Oop off=2832} | |
;*new ; - Main::foo@146 (line 25) | |
; {runtime_call} | |
0x00002aaaab42c9f0: mov $0x2b75415a0f70,%r10 ; {runtime_call} | |
0x00002aaaab42c9fa: callq *%r10 | |
;; B65: # B79 <- B45 Freq: 1.00017e-09 | |
0x00002aaaab42c9fd: mov %rax,%rsi | |
0x00002aaaab42ca00: jmp 0x00002aaaab42ca29 | |
;; B66: # B68 <- B57 Freq: 1.0001e-09 | |
0x00002aaaab42ca02: jmp 0x00002aaaab42ca04 | |
;; B67: # B68 <- B55 Freq: 1.0001e-09 | |
;; B68: # B79 <- B67 B66 Freq: 2.0002e-09 | |
0x00002aaaab42ca04: mov %rax,%rsi | |
0x00002aaaab42ca07: jmp 0x00002aaaab42ca29 | |
;; B69: # B71 <- B53 Freq: 1.01027e-09 | |
0x00002aaaab42ca09: jmp 0x00002aaaab42ca0b | |
;; B70: # B71 <- B51 Freq: 1.00014e-09 | |
;; B71: # B79 <- B69 B70 Freq: 2.01041e-09 | |
0x00002aaaab42ca0b: mov %rax,%rsi | |
0x00002aaaab42ca0e: jmp 0x00002aaaab42ca29 | |
;; B72: # B74 <- B49 Freq: 1.0103e-09 | |
0x00002aaaab42ca10: jmp 0x00002aaaab42ca12 | |
;; B73: # B74 <- B47 Freq: 1.00016e-09 | |
;; B74: # B79 <- B72 B73 Freq: 2.01046e-09 | |
0x00002aaaab42ca12: mov %rax,%rsi | |
0x00002aaaab42ca15: jmp 0x00002aaaab42ca29 ;*invokevirtual println | |
; - Main::foo@140 (line 24) | |
;; B75: # B79 <- B13 Freq: 9.99998e-06 | |
0x00002aaaab42ca17: mov %rax,%rsi | |
0x00002aaaab42ca1a: jmp 0x00002aaaab42ca29 ;*invokevirtual println | |
; - Main::foo@177 (line 25) | |
;; B76: # B79 <- B35 Freq: 9.99974e-06 | |
0x00002aaaab42ca1c: mov %rax,%rsi | |
0x00002aaaab42ca1f: jmp 0x00002aaaab42ca29 ;*invokevirtual println | |
; - Main::foo@185 (line 26) | |
;; B77: # B79 <- B37 Freq: 9.99953e-06 | |
0x00002aaaab42ca21: mov %rax,%rsi | |
0x00002aaaab42ca24: jmp 0x00002aaaab42ca29 ;*invokevirtual println | |
; - Main::foo@215 (line 28) | |
;; B78: # B79 <- B43 Freq: 9.99932e-06 | |
0x00002aaaab42ca26: mov %rax,%rsi ;*invokespecial <init> | |
; - Main::foo@49 (line 14) | |
;; B79: # N1 <- B65 B78 B68 B77 B76 B71 B75 B74 Freq: 4.00056e-05 | |
0x00002aaaab42ca29: add $0x40,%rsp | |
0x00002aaaab42ca2d: pop %rbp | |
0x00002aaaab42ca2e: jmpq 0x00002aaaab4283a0 ; {runtime_call} | |
0x00002aaaab42ca33: hlt | |
0x00002aaaab42ca34: hlt | |
0x00002aaaab42ca35: hlt | |
0x00002aaaab42ca36: hlt | |
0x00002aaaab42ca37: hlt | |
0x00002aaaab42ca38: hlt | |
0x00002aaaab42ca39: hlt | |
0x00002aaaab42ca3a: hlt | |
0x00002aaaab42ca3b: hlt | |
0x00002aaaab42ca3c: hlt | |
0x00002aaaab42ca3d: hlt | |
0x00002aaaab42ca3e: hlt | |
0x00002aaaab42ca3f: hlt | |
[Stub Code] | |
0x00002aaaab42ca40: mov $0x0,%rbx ; {no_reloc} | |
0x00002aaaab42ca4a: jmpq 0x00002aaaab42ca4a ; {runtime_call} | |
0x00002aaaab42ca4f: mov $0x0,%rbx ; {static_stub} | |
0x00002aaaab42ca59: jmpq 0x00002aaaab42ca59 ; {runtime_call} | |
0x00002aaaab42ca5e: mov $0x0,%rbx ; {static_stub} | |
0x00002aaaab42ca68: jmpq 0x00002aaaab42ca68 ; {runtime_call} | |
0x00002aaaab42ca6d: mov $0x0,%rbx ; {static_stub} | |
0x00002aaaab42ca77: jmpq 0x00002aaaab42ca77 ; {runtime_call} | |
[Exception Handler] | |
0x00002aaaab42ca7c: jmpq 0x00002aaaab4029e0 ; {runtime_call} | |
[Deopt Handler Code] | |
0x00002aaaab42ca81: callq 0x00002aaaab42ca86 | |
0x00002aaaab42ca86: subq $0x5,(%rsp) | |
0x00002aaaab42ca8b: jmpq 0x00002aaaab403720 ; {runtime_call} | |
Failed at iteration: 17 | |
Length mismatch: 16 <> 32 | |
Expected: "testtesttesttesttesttesttesttest" | |
Actual: "nullnulltesttest" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Java Version: 23.0-b21-internal-fastdebug | |
try OSR compilation | |
471 1 % b Main::foo @ 15 (225 bytes) | |
considering toString call in Main::foo @ bci:212 | |
fusion would succeed (3 0) for Main::foo @ bci:191 | |
1081 ConP === 0 [[ 1082 1242 ]] #java/lang/String:exact * Oop:java/lang/String:exact * | |
573 Proj === 555 [[ 595 607 1108 1100 627 1082 647 1064 665 1044 683 1013 714 982 745 951 776 920 796 889 814 857 851 1242 ]] #5 Oop:java/lang/String:exact * !jvms: Main::foo @ bci:102 | |
1131 ConP === 0 [[ 1132 1140 1242 ]] #java/lang/String:exact * Oop:java/lang/String:exact * | |
0--> 1132 CallStaticJava === 1138 1126 1127 8 1 ( 1145 1131 1 1 1 1 1 1 1 1042 ) [[ 1146 1147 1148 1150 1159 1158 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:209 !jvms: Main::foo @ bci:209 | |
1--> 1100 CallStaticJava === 1106 1095 1096 8 1 ( 1113 573 1 1 1 1 1 1 1 1042 ) [[ 1114 1115 1116 1118 1127 1126 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:204 !jvms: Main::foo @ bci:204 | |
2--> 1082 CallStaticJava === 1071 1076 1077 8 1 ( 1061 1081 1 1 573 1 1 1 1 1042 ) [[ 1083 1084 1085 1087 1096 1095 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:200 !jvms: Main::foo @ bci:200 | |
3--> 1163 CallStaticJava === 1169 1158 1159 8 1 ( 1176 1 1 1 1 1 1 1 1042 ) [[ 1177 1178 1179 1181 1190 1189 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:212 !jvms: Main::foo @ bci:212 | |
4--> 1064 CallStaticJava === 1058 1055 1043 8 1 ( 1061 1 1 573 1 1 1 1 1042 1061 ) [[ 1065 1066 1067 1077 1076 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:195 !jvms: Main::foo @ bci:195 | |
5--> 1044 Allocate === 1033 1028 1029 8 1 ( 36 202 20 1 1 1 573 1 1 1 1 1042 ) [[ 1045 1046 1047 1054 1055 1056 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:191 !jvms: Main::foo @ bci:191 | |
6--> 1169 IfTrue === 1168 [[ 1163 1176 ]] #1 !jvms: Main::foo @ bci:212 | |
7--> 1138 IfTrue === 1137 [[ 1132 1145 ]] #1 !jvms: Main::foo @ bci:209 | |
8--> 1106 IfTrue === 1105 [[ 1100 1113 ]] #1 !jvms: Main::foo @ bci:204 | |
considering toString call in Main::foo @ bci:56 | |
fusion would succeed (1 0) for Main::foo @ bci:41 | |
186 ConP === 0 [[ 275 258 258 204 1243 1243 ]] #java/lang/String:exact * Oop:java/lang/String:exact * | |
186 ConP === 0 [[ 275 258 258 204 1243 1243 ]] #java/lang/String:exact * Oop:java/lang/String:exact * | |
0--> 275 CallStaticJava === 265 270 271 8 1 ( 221 186 51 133 1 200 1 1 1 ) [[ 276 277 278 280 289 288 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:53 !jvms: Main::foo @ bci:53 | |
1--> 297 CallStaticJava === 303 288 289 8 1 ( 310 51 133 1 200 1 1 1 ) [[ 311 312 313 315 324 323 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:56 !jvms: Main::foo @ bci:56 | |
2--> 258 CallStaticJava === 218 215 229 8 1 ( 221 186 51 133 186 200 1 1 1 221 ) [[ 259 260 261 271 270 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:49 !jvms: Main::foo @ bci:49 | |
3--> 204 Allocate === 143 130 192 8 1 ( 36 202 20 1 51 133 186 200 1 1 1 ) [[ 205 206 207 214 215 216 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:41 !jvms: Main::foo @ bci:41 | |
4--> 303 IfTrue === 302 [[ 297 310 ]] #1 !jvms: Main::foo @ bci:56 | |
considering toString call in Main::foo @ bci:79 | |
fusion would succeed (1 0) for Main::foo @ bci:64 | |
390 Phi === 376 372 375 [[ 394 1244 ]] #java/lang/String:NotNull:exact * Oop:java/lang/String:NotNull:exact * !jvms: String::valueOf @ bci:13 Main::foo @ bci:69 | |
315 Proj === 297 [[ 411 331 394 366 372 1244 ]] #5 Oop:java/lang/String:exact * !jvms: Main::foo @ bci:56 | |
0--> 411 CallStaticJava === 401 406 407 8 1 ( 348 315 51 133 1 329 1 1 1 ) [[ 412 413 414 416 425 424 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:76 !jvms: Main::foo @ bci:76 | |
1--> 429 CallStaticJava === 435 424 425 8 1 ( 442 51 133 1 329 1 1 1 ) [[ 443 444 445 447 456 455 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:79 !jvms: Main::foo @ bci:79 | |
2--> 394 CallStaticJava === 376 342 361 8 1 ( 348 390 51 133 315 329 1 1 1 348 ) [[ 395 396 397 407 406 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:72 !jvms: Main::foo @ bci:72 | |
3--> 331 Allocate === 318 323 324 8 1 ( 36 202 20 1 51 133 315 329 1 1 1 ) [[ 332 333 334 341 342 343 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:64 !jvms: Main::foo @ bci:64 | |
4--> 435 IfTrue === 434 [[ 429 442 ]] #1 !jvms: Main::foo @ bci:79 | |
considering toString call in Main::foo @ bci:102 | |
fusion would succeed (1 0) for Main::foo @ bci:87 | |
516 Phi === 502 499 375 [[ 520 1245 ]] #java/lang/String:NotNull:exact * Oop:java/lang/String:NotNull:exact * !jvms: String::valueOf @ bci:13 Main::foo @ bci:92 | |
447 Proj === 429 [[ 537 463 520 493 499 1245 ]] #5 Oop:java/lang/String:exact * !jvms: Main::foo @ bci:79 | |
0--> 537 CallStaticJava === 527 532 533 8 1 ( 480 447 51 133 1 461 1 1 1 ) [[ 538 539 540 542 551 550 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:99 !jvms: Main::foo @ bci:99 | |
1--> 555 CallStaticJava === 561 550 551 8 1 ( 568 51 133 1 461 1 1 1 ) [[ 569 570 571 573 582 581 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:102 !jvms: Main::foo @ bci:102 | |
2--> 520 CallStaticJava === 502 474 488 8 1 ( 480 516 51 133 447 461 1 1 1 480 ) [[ 521 522 523 533 532 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:95 !jvms: Main::foo @ bci:95 | |
3--> 463 Allocate === 450 455 456 8 1 ( 36 202 20 1 51 133 447 461 1 1 1 ) [[ 464 465 466 473 474 475 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:87 !jvms: Main::foo @ bci:87 | |
4--> 561 IfTrue === 560 [[ 555 568 ]] #1 !jvms: Main::foo @ bci:102 | |
considering toString call in Main::foo @ bci:137 | |
fusion would succeed (2 0) for Main::foo @ bci:121 | |
664 ConP === 0 [[ 665 1246 ]] #java/lang/String:exact * Oop:java/lang/String:exact * | |
133 Phi === 129 1221 133 98 [[ 683 691 665 171 184 133 647 204 627 1221 258 555 275 537 297 520 331 463 429 394 411 1246 ]] #int !jvms: Main::foo @ bci:15 | |
0--> 683 CallStaticJava === 689 678 679 8 1 ( 696 133 1 1 573 587 1 1 1 625 ) [[ 697 698 699 701 710 709 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, int ) Main::foo @ bci:134 !jvms: Main::foo @ bci:134 | |
1--> 665 CallStaticJava === 654 659 660 8 1 ( 644 664 1 133 573 587 1 1 1 625 ) [[ 666 667 668 670 679 678 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:130 !jvms: Main::foo @ bci:130 | |
2--> 714 CallStaticJava === 720 709 710 8 1 ( 727 1 1 573 587 1 1 1 625 ) [[ 728 729 730 732 741 740 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:137 !jvms: Main::foo @ bci:137 | |
3--> 647 CallStaticJava === 641 638 626 8 1 ( 644 1 133 573 587 1 1 1 625 644 ) [[ 648 649 650 660 659 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:125 !jvms: Main::foo @ bci:125 | |
4--> 627 Allocate === 616 581 582 8 1 ( 36 202 20 1 1 133 573 587 1 1 1 625 ) [[ 628 629 630 637 638 639 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:121 !jvms: Main::foo @ bci:121 | |
5--> 720 IfTrue === 719 [[ 714 727 ]] #1 !jvms: Main::foo @ bci:137 | |
6--> 689 IfTrue === 688 [[ 683 696 ]] #1 !jvms: Main::foo @ bci:134 | |
considering toString call in Main::foo @ bci:174 | |
fusion would succeed (4 1) for Main::foo @ bci:146 | |
813 ConP === 0 [[ 814 1247 ]] #java/lang/String:exact * Oop:java/lang/String:exact * | |
856 LoadI === _ 828 855 [[ 857 865 1247 ]] @java/lang/String:exact+20 *, name=count, idx=7; #int !jvms: String::length @ bci:1 Main::foo @ bci:159 | |
888 ConP === 0 [[ 889 897 1247 ]] #java/lang/String:exact * Oop:java/lang/String:exact * | |
587 ConI === 0 [[ 920 928 889 613 627 857 647 814 665 796 683 776 714 745 1247 ]] #int:32 | |
0--> 920 CallStaticJava === 926 915 916 8 1 ( 933 587 1 1 573 1 1 1 1 774 ) [[ 934 935 936 938 947 946 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, int ) Main::foo @ bci:171 !jvms: Main::foo @ bci:171 | |
1--> 889 CallStaticJava === 895 883 884 8 1 ( 902 888 1 1 573 587 1 1 1 774 ) [[ 903 904 905 907 916 915 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:167 !jvms: Main::foo @ bci:167 | |
2--> 857 CallStaticJava === 863 827 828 8 1 ( 870 856 1 1 573 587 1 1 1 774 ) [[ 871 872 873 875 884 883 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, int ) Main::foo @ bci:162 !jvms: Main::foo @ bci:162 | |
3--> 814 CallStaticJava === 803 808 809 8 1 ( 793 813 1 1 573 587 1 1 1 774 ) [[ 815 816 817 819 828 827 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:155 !jvms: Main::foo @ bci:155 | |
4--> 951 CallStaticJava === 957 946 947 8 1 ( 964 1 1 573 1 1 1 1 774 ) [[ 965 966 967 969 978 977 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:174 !jvms: Main::foo @ bci:174 | |
5--> 796 CallStaticJava === 790 787 775 8 1 ( 793 1 1 573 587 1 1 1 774 793 ) [[ 797 798 799 809 808 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:150 !jvms: Main::foo @ bci:150 | |
6--> 776 Allocate === 765 760 761 8 1 ( 36 202 20 1 1 1 573 587 1 1 1 774 ) [[ 777 778 779 786 787 788 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:146 !jvms: Main::foo @ bci:146 | |
7--> 957 IfTrue === 956 [[ 951 964 ]] #1 !jvms: Main::foo @ bci:174 | |
8--> 926 IfTrue === 925 [[ 920 933 ]] #1 !jvms: Main::foo @ bci:171 | |
9--> 895 IfTrue === 894 [[ 889 902 ]] #1 !jvms: Main::foo @ bci:167 | |
10--> 863 IfTrue === 862 [[ 857 870 ]] #1 !jvms: Main::foo @ bci:162 | |
considering stacked concats | |
fusion would fail for | |
463 Allocate === 450 455 456 8 1 ( 36 202 20 1 51 133 447 461 1 1 1 ) [[ 464 465 466 473 474 475 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:87 !jvms: Main::foo @ bci:87 | |
1033 CatchProj === 1032 [[ 1044 ]] #0@bci -1 !jvms: Main::foo @ bci:185 | |
1032 Catch === 1027 1028 [[ 1033 1034 ]] !jvms: Main::foo @ bci:185 | |
1027 Proj === 1013 [[ 1032 ]] #0 !jvms: Main::foo @ bci:185 | |
1013 CallStaticJava === 1019 997 998 8 1 ( 1026 1012 1 1 573 1 1 1 1 ) [[ 1027 1028 1029 ]] # Static java.io.PrintStream::println void ( java/io/PrintStream:NotNull *, java/lang/String:exact * ) Main::foo @ bci:185 !jvms: Main::foo @ bci:185 | |
1002 CatchProj === 1001 [[ 1018 ]] #0@bci -1 !jvms: Main::foo @ bci:177 | |
1001 Catch === 996 997 [[ 1002 1003 ]] !jvms: Main::foo @ bci:177 | |
996 Proj === 982 [[ 1001 ]] #0 !jvms: Main::foo @ bci:177 | |
982 CallStaticJava === 988 977 978 8 1 ( 995 969 1 1 573 1 1 1 1 ) [[ 996 997 998 ]] # Static java.io.PrintStream::println void ( java/io/PrintStream:NotNull *, java/lang/String:exact * ) Main::foo @ bci:177 !jvms: Main::foo @ bci:177 | |
972 CatchProj === 971 [[ 987 ]] #0@bci -1 !jvms: Main::foo @ bci:174 | |
971 Catch === 965 966 [[ 972 973 ]] !jvms: Main::foo @ bci:174 | |
965 Proj === 951 [[ 971 ]] #0 !jvms: Main::foo @ bci:174 | |
951 CallStaticJava === 957 946 947 8 1 ( 964 1 1 573 1 1 1 1 774 ) [[ 965 966 967 969 978 977 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:174 !jvms: Main::foo @ bci:174 | |
941 CatchProj === 940 [[ 956 ]] #0@bci -1 !jvms: Main::foo @ bci:171 | |
940 Catch === 934 935 [[ 941 942 ]] !jvms: Main::foo @ bci:171 | |
934 Proj === 920 [[ 940 ]] #0 !jvms: Main::foo @ bci:171 | |
920 CallStaticJava === 926 915 916 8 1 ( 933 587 1 1 573 1 1 1 1 774 ) [[ 934 935 936 938 947 946 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, int ) Main::foo @ bci:171 !jvms: Main::foo @ bci:171 | |
910 CatchProj === 909 [[ 925 ]] #0@bci -1 !jvms: Main::foo @ bci:167 | |
909 Catch === 903 904 [[ 910 911 ]] !jvms: Main::foo @ bci:167 | |
903 Proj === 889 [[ 909 ]] #0 !jvms: Main::foo @ bci:167 | |
889 CallStaticJava === 895 883 884 8 1 ( 902 888 1 1 573 587 1 1 1 774 ) [[ 903 904 905 907 916 915 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:167 !jvms: Main::foo @ bci:167 | |
878 CatchProj === 877 [[ 894 ]] #0@bci -1 !jvms: Main::foo @ bci:162 | |
877 Catch === 871 872 [[ 878 879 ]] !jvms: Main::foo @ bci:162 | |
871 Proj === 857 [[ 877 ]] #0 !jvms: Main::foo @ bci:162 | |
857 CallStaticJava === 863 827 828 8 1 ( 870 856 1 1 573 587 1 1 1 774 ) [[ 871 872 873 875 884 883 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, int ) Main::foo @ bci:162 !jvms: Main::foo @ bci:162 | |
822 CatchProj === 821 [[ 843 ]] #0@bci -1 !jvms: Main::foo @ bci:155 | |
821 Catch === 815 816 [[ 822 823 ]] !jvms: Main::foo @ bci:155 | |
815 Proj === 814 [[ 821 ]] #0 !jvms: Main::foo @ bci:155 | |
814 CallStaticJava === 803 808 809 8 1 ( 793 813 1 1 573 587 1 1 1 774 ) [[ 815 816 817 819 828 827 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:155 !jvms: Main::foo @ bci:155 | |
803 CatchProj === 802 [[ 814 ]] #0@bci -1 !jvms: Main::foo @ bci:150 | |
802 Catch === 797 798 [[ 803 804 ]] !jvms: Main::foo @ bci:150 | |
797 Proj === 796 [[ 802 ]] #0 !jvms: Main::foo @ bci:150 | |
796 CallStaticJava === 790 787 775 8 1 ( 793 1 1 573 587 1 1 1 774 793 ) [[ 797 798 799 809 808 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:150 !jvms: Main::foo @ bci:150 | |
781 CatchProj === 780 [[ 789 ]] #0@bci -1 !jvms: Main::foo @ bci:146 | |
780 Catch === 777 779 [[ 781 782 ]] !jvms: Main::foo @ bci:146 | |
777 Proj === 776 [[ 780 ]] #0 !jvms: Main::foo @ bci:146 | |
776 Allocate === 765 760 761 8 1 ( 36 202 20 1 1 1 573 587 1 1 1 774 ) [[ 777 778 779 786 787 788 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:146 !jvms: Main::foo @ bci:146 | |
765 CatchProj === 764 [[ 776 ]] #0@bci -1 !jvms: Main::foo @ bci:140 | |
764 Catch === 759 760 [[ 765 766 ]] !jvms: Main::foo @ bci:140 | |
759 Proj === 745 [[ 764 ]] #0 !jvms: Main::foo @ bci:140 | |
745 CallStaticJava === 751 740 741 8 1 ( 758 732 1 1 573 587 1 1 1 ) [[ 759 760 761 ]] # Static java.io.PrintStream::println void ( java/io/PrintStream:NotNull *, java/lang/String:exact * ) Main::foo @ bci:140 !jvms: Main::foo @ bci:140 | |
735 CatchProj === 734 [[ 750 ]] #0@bci -1 !jvms: Main::foo @ bci:137 | |
734 Catch === 728 729 [[ 735 736 ]] !jvms: Main::foo @ bci:137 | |
728 Proj === 714 [[ 734 ]] #0 !jvms: Main::foo @ bci:137 | |
714 CallStaticJava === 720 709 710 8 1 ( 727 1 1 573 587 1 1 1 625 ) [[ 728 729 730 732 741 740 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:137 !jvms: Main::foo @ bci:137 | |
704 CatchProj === 703 [[ 719 ]] #0@bci -1 !jvms: Main::foo @ bci:134 | |
703 Catch === 697 698 [[ 704 705 ]] !jvms: Main::foo @ bci:134 | |
697 Proj === 683 [[ 703 ]] #0 !jvms: Main::foo @ bci:134 | |
683 CallStaticJava === 689 678 679 8 1 ( 696 133 1 1 573 587 1 1 1 625 ) [[ 697 698 699 701 710 709 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, int ) Main::foo @ bci:134 !jvms: Main::foo @ bci:134 | |
673 CatchProj === 672 [[ 688 ]] #0@bci -1 !jvms: Main::foo @ bci:130 | |
672 Catch === 666 667 [[ 673 674 ]] !jvms: Main::foo @ bci:130 | |
666 Proj === 665 [[ 672 ]] #0 !jvms: Main::foo @ bci:130 | |
665 CallStaticJava === 654 659 660 8 1 ( 644 664 1 133 573 587 1 1 1 625 ) [[ 666 667 668 670 679 678 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:130 !jvms: Main::foo @ bci:130 | |
654 CatchProj === 653 [[ 665 ]] #0@bci -1 !jvms: Main::foo @ bci:125 | |
653 Catch === 648 649 [[ 654 655 ]] !jvms: Main::foo @ bci:125 | |
648 Proj === 647 [[ 653 ]] #0 !jvms: Main::foo @ bci:125 | |
647 CallStaticJava === 641 638 626 8 1 ( 644 1 133 573 587 1 1 1 625 644 ) [[ 648 649 650 660 659 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:125 !jvms: Main::foo @ bci:125 | |
632 CatchProj === 631 [[ 640 ]] #0@bci -1 !jvms: Main::foo @ bci:121 | |
631 Catch === 628 630 [[ 632 633 ]] !jvms: Main::foo @ bci:121 | |
628 Proj === 627 [[ 631 ]] #0 !jvms: Main::foo @ bci:121 | |
627 Allocate === 616 581 582 8 1 ( 36 202 20 1 1 133 573 587 1 1 1 625 ) [[ 628 629 630 637 638 639 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:121 !jvms: Main::foo @ bci:121 | |
failing with unknown test | |
614 Bool === _ 613 [[ 615 ]] [ne] !jvms: Main::foo @ bci:115 | |
613 CmpI === _ 612 587 [[ 614 ]] !jvms: Main::foo @ bci:115 | |
612 LoadI === _ 582 611 [[ 613 ]] @java/lang/String:exact+20 *, name=count, idx=7; #int !jvms: String::length @ bci:1 Main::foo @ bci:111 | |
587 ConI === 0 [[ 920 928 889 613 627 857 647 814 665 796 683 776 714 745 1247 ]] #int:32 | |
stacking would fail | |
considering stacked concats | |
fusion would succeed (2 0) for Main::foo @ bci:41 | |
390 Phi === 376 372 375 [[ 394 1244 1249 ]] #java/lang/String:NotNull:exact * Oop:java/lang/String:NotNull:exact * !jvms: String::valueOf @ bci:13 Main::foo @ bci:69 | |
186 ConP === 0 [[ 275 258 258 204 1243 1243 1249 1249 ]] #java/lang/String:exact * Oop:java/lang/String:exact * | |
186 ConP === 0 [[ 275 258 258 204 1243 1243 1249 1249 ]] #java/lang/String:exact * Oop:java/lang/String:exact * | |
0--> 411 CallStaticJava === 401 406 407 8 1 ( 348 315 51 133 1 329 1 1 1 ) [[ 412 413 414 416 425 424 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:76 !jvms: Main::foo @ bci:76 | |
1--> 429 CallStaticJava === 435 424 425 8 1 ( 442 51 133 1 329 1 1 1 ) [[ 443 444 445 447 456 455 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:79 !jvms: Main::foo @ bci:79 | |
2--> 394 CallStaticJava === 376 342 361 8 1 ( 348 390 51 133 315 329 1 1 1 348 ) [[ 395 396 397 407 406 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:72 !jvms: Main::foo @ bci:72 | |
3--> 331 Allocate === 318 323 324 8 1 ( 36 202 20 1 51 133 315 329 1 1 1 ) [[ 332 333 334 341 342 343 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:64 !jvms: Main::foo @ bci:64 | |
4--> 275 CallStaticJava === 265 270 271 8 1 ( 221 186 51 133 1 200 1 1 1 ) [[ 276 277 278 280 289 288 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:53 !jvms: Main::foo @ bci:53 | |
5--> 297 CallStaticJava === 303 288 289 8 1 ( 310 51 133 1 200 1 1 1 ) [[ 311 312 313 315 324 323 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:56 !jvms: Main::foo @ bci:56 | |
6--> 258 CallStaticJava === 218 215 229 8 1 ( 221 186 51 133 186 200 1 1 1 221 ) [[ 259 260 261 271 270 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:49 !jvms: Main::foo @ bci:49 | |
7--> 204 Allocate === 143 130 192 8 1 ( 36 202 20 1 51 133 186 200 1 1 1 ) [[ 205 206 207 214 215 216 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:41 !jvms: Main::foo @ bci:41 | |
8--> 435 IfTrue === 434 [[ 429 442 ]] #1 !jvms: Main::foo @ bci:79 | |
9--> 303 IfTrue === 302 [[ 297 310 ]] #1 !jvms: Main::foo @ bci:56 | |
stacking would succeed | |
considering stacked concats | |
fusion would fail for | |
463 Allocate === 450 455 456 8 1 ( 36 202 20 1 51 133 447 461 1 1 1 ) [[ 464 465 466 473 474 475 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:87 !jvms: Main::foo @ bci:87 | |
1033 CatchProj === 1032 [[ 1044 ]] #0@bci -1 !jvms: Main::foo @ bci:185 | |
1032 Catch === 1027 1028 [[ 1033 1034 ]] !jvms: Main::foo @ bci:185 | |
1027 Proj === 1013 [[ 1032 ]] #0 !jvms: Main::foo @ bci:185 | |
1013 CallStaticJava === 1019 997 998 8 1 ( 1026 1012 1 1 573 1 1 1 1 ) [[ 1027 1028 1029 ]] # Static java.io.PrintStream::println void ( java/io/PrintStream:NotNull *, java/lang/String:exact * ) Main::foo @ bci:185 !jvms: Main::foo @ bci:185 | |
1002 CatchProj === 1001 [[ 1018 ]] #0@bci -1 !jvms: Main::foo @ bci:177 | |
1001 Catch === 996 997 [[ 1002 1003 ]] !jvms: Main::foo @ bci:177 | |
996 Proj === 982 [[ 1001 ]] #0 !jvms: Main::foo @ bci:177 | |
982 CallStaticJava === 988 977 978 8 1 ( 995 969 1 1 573 1 1 1 1 ) [[ 996 997 998 ]] # Static java.io.PrintStream::println void ( java/io/PrintStream:NotNull *, java/lang/String:exact * ) Main::foo @ bci:177 !jvms: Main::foo @ bci:177 | |
972 CatchProj === 971 [[ 987 ]] #0@bci -1 !jvms: Main::foo @ bci:174 | |
971 Catch === 965 966 [[ 972 973 ]] !jvms: Main::foo @ bci:174 | |
965 Proj === 951 [[ 971 ]] #0 !jvms: Main::foo @ bci:174 | |
951 CallStaticJava === 957 946 947 8 1 ( 964 1 1 573 1 1 1 1 774 ) [[ 965 966 967 969 978 977 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:174 !jvms: Main::foo @ bci:174 | |
941 CatchProj === 940 [[ 956 ]] #0@bci -1 !jvms: Main::foo @ bci:171 | |
940 Catch === 934 935 [[ 941 942 ]] !jvms: Main::foo @ bci:171 | |
934 Proj === 920 [[ 940 ]] #0 !jvms: Main::foo @ bci:171 | |
920 CallStaticJava === 926 915 916 8 1 ( 933 587 1 1 573 1 1 1 1 774 ) [[ 934 935 936 938 947 946 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, int ) Main::foo @ bci:171 !jvms: Main::foo @ bci:171 | |
910 CatchProj === 909 [[ 925 ]] #0@bci -1 !jvms: Main::foo @ bci:167 | |
909 Catch === 903 904 [[ 910 911 ]] !jvms: Main::foo @ bci:167 | |
903 Proj === 889 [[ 909 ]] #0 !jvms: Main::foo @ bci:167 | |
889 CallStaticJava === 895 883 884 8 1 ( 902 888 1 1 573 587 1 1 1 774 ) [[ 903 904 905 907 916 915 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:167 !jvms: Main::foo @ bci:167 | |
878 CatchProj === 877 [[ 894 ]] #0@bci -1 !jvms: Main::foo @ bci:162 | |
877 Catch === 871 872 [[ 878 879 ]] !jvms: Main::foo @ bci:162 | |
871 Proj === 857 [[ 877 ]] #0 !jvms: Main::foo @ bci:162 | |
857 CallStaticJava === 863 827 828 8 1 ( 870 856 1 1 573 587 1 1 1 774 ) [[ 871 872 873 875 884 883 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, int ) Main::foo @ bci:162 !jvms: Main::foo @ bci:162 | |
822 CatchProj === 821 [[ 843 ]] #0@bci -1 !jvms: Main::foo @ bci:155 | |
821 Catch === 815 816 [[ 822 823 ]] !jvms: Main::foo @ bci:155 | |
815 Proj === 814 [[ 821 ]] #0 !jvms: Main::foo @ bci:155 | |
814 CallStaticJava === 803 808 809 8 1 ( 793 813 1 1 573 587 1 1 1 774 ) [[ 815 816 817 819 828 827 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:155 !jvms: Main::foo @ bci:155 | |
803 CatchProj === 802 [[ 814 ]] #0@bci -1 !jvms: Main::foo @ bci:150 | |
802 Catch === 797 798 [[ 803 804 ]] !jvms: Main::foo @ bci:150 | |
797 Proj === 796 [[ 802 ]] #0 !jvms: Main::foo @ bci:150 | |
796 CallStaticJava === 790 787 775 8 1 ( 793 1 1 573 587 1 1 1 774 793 ) [[ 797 798 799 809 808 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:150 !jvms: Main::foo @ bci:150 | |
781 CatchProj === 780 [[ 789 ]] #0@bci -1 !jvms: Main::foo @ bci:146 | |
780 Catch === 777 779 [[ 781 782 ]] !jvms: Main::foo @ bci:146 | |
777 Proj === 776 [[ 780 ]] #0 !jvms: Main::foo @ bci:146 | |
776 Allocate === 765 760 761 8 1 ( 36 202 20 1 1 1 573 587 1 1 1 774 ) [[ 777 778 779 786 787 788 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:146 !jvms: Main::foo @ bci:146 | |
765 CatchProj === 764 [[ 776 ]] #0@bci -1 !jvms: Main::foo @ bci:140 | |
764 Catch === 759 760 [[ 765 766 ]] !jvms: Main::foo @ bci:140 | |
759 Proj === 745 [[ 764 ]] #0 !jvms: Main::foo @ bci:140 | |
745 CallStaticJava === 751 740 741 8 1 ( 758 732 1 1 573 587 1 1 1 ) [[ 759 760 761 ]] # Static java.io.PrintStream::println void ( java/io/PrintStream:NotNull *, java/lang/String:exact * ) Main::foo @ bci:140 !jvms: Main::foo @ bci:140 | |
735 CatchProj === 734 [[ 750 ]] #0@bci -1 !jvms: Main::foo @ bci:137 | |
734 Catch === 728 729 [[ 735 736 ]] !jvms: Main::foo @ bci:137 | |
728 Proj === 714 [[ 734 ]] #0 !jvms: Main::foo @ bci:137 | |
714 CallStaticJava === 720 709 710 8 1 ( 727 1 1 573 587 1 1 1 625 ) [[ 728 729 730 732 741 740 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:137 !jvms: Main::foo @ bci:137 | |
704 CatchProj === 703 [[ 719 ]] #0@bci -1 !jvms: Main::foo @ bci:134 | |
703 Catch === 697 698 [[ 704 705 ]] !jvms: Main::foo @ bci:134 | |
697 Proj === 683 [[ 703 ]] #0 !jvms: Main::foo @ bci:134 | |
683 CallStaticJava === 689 678 679 8 1 ( 696 133 1 1 573 587 1 1 1 625 ) [[ 697 698 699 701 710 709 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, int ) Main::foo @ bci:134 !jvms: Main::foo @ bci:134 | |
673 CatchProj === 672 [[ 688 ]] #0@bci -1 !jvms: Main::foo @ bci:130 | |
672 Catch === 666 667 [[ 673 674 ]] !jvms: Main::foo @ bci:130 | |
666 Proj === 665 [[ 672 ]] #0 !jvms: Main::foo @ bci:130 | |
665 CallStaticJava === 654 659 660 8 1 ( 644 664 1 133 573 587 1 1 1 625 ) [[ 666 667 668 670 679 678 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:130 !jvms: Main::foo @ bci:130 | |
654 CatchProj === 653 [[ 665 ]] #0@bci -1 !jvms: Main::foo @ bci:125 | |
653 Catch === 648 649 [[ 654 655 ]] !jvms: Main::foo @ bci:125 | |
648 Proj === 647 [[ 653 ]] #0 !jvms: Main::foo @ bci:125 | |
647 CallStaticJava === 641 638 626 8 1 ( 644 1 133 573 587 1 1 1 625 644 ) [[ 648 649 650 660 659 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:125 !jvms: Main::foo @ bci:125 | |
632 CatchProj === 631 [[ 640 ]] #0@bci -1 !jvms: Main::foo @ bci:121 | |
631 Catch === 628 630 [[ 632 633 ]] !jvms: Main::foo @ bci:121 | |
628 Proj === 627 [[ 631 ]] #0 !jvms: Main::foo @ bci:121 | |
627 Allocate === 616 581 582 8 1 ( 36 202 20 1 1 133 573 587 1 1 1 625 ) [[ 628 629 630 637 638 639 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:121 !jvms: Main::foo @ bci:121 | |
failing with unknown test | |
614 Bool === _ 613 [[ 615 ]] [ne] !jvms: Main::foo @ bci:115 | |
613 CmpI === _ 612 587 [[ 614 ]] !jvms: Main::foo @ bci:115 | |
612 LoadI === _ 582 611 [[ 613 ]] @java/lang/String:exact+20 *, name=count, idx=7; #int !jvms: String::length @ bci:1 Main::foo @ bci:111 | |
587 ConI === 0 [[ 920 928 889 613 627 857 647 814 665 796 683 776 714 745 1247 ]] #int:32 | |
stacking would fail | |
considering stacked concats | |
fusion would succeed (3 0) for Main::foo @ bci:41 | |
516 Phi === 502 499 375 [[ 520 1245 1248 1250 1251 ]] #java/lang/String:NotNull:exact * Oop:java/lang/String:NotNull:exact * !jvms: String::valueOf @ bci:13 Main::foo @ bci:92 | |
390 Phi === 376 372 375 [[ 394 1244 1249 1251 ]] #java/lang/String:NotNull:exact * Oop:java/lang/String:NotNull:exact * !jvms: String::valueOf @ bci:13 Main::foo @ bci:69 | |
186 ConP === 0 [[ 275 258 258 204 1243 1243 1249 1249 1251 1251 ]] #java/lang/String:exact * Oop:java/lang/String:exact * | |
186 ConP === 0 [[ 275 258 258 204 1243 1243 1249 1249 1251 1251 ]] #java/lang/String:exact * Oop:java/lang/String:exact * | |
0--> 537 CallStaticJava === 527 532 533 8 1 ( 480 447 51 133 1 461 1 1 1 ) [[ 538 539 540 542 551 550 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:99 !jvms: Main::foo @ bci:99 | |
1--> 555 CallStaticJava === 561 550 551 8 1 ( 568 51 133 1 461 1 1 1 ) [[ 569 570 571 573 582 581 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:102 !jvms: Main::foo @ bci:102 | |
2--> 520 CallStaticJava === 502 474 488 8 1 ( 480 516 51 133 447 461 1 1 1 480 ) [[ 521 522 523 533 532 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:95 !jvms: Main::foo @ bci:95 | |
3--> 463 Allocate === 450 455 456 8 1 ( 36 202 20 1 51 133 447 461 1 1 1 ) [[ 464 465 466 473 474 475 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:87 !jvms: Main::foo @ bci:87 | |
4--> 411 CallStaticJava === 401 406 407 8 1 ( 348 315 51 133 1 329 1 1 1 ) [[ 412 413 414 416 425 424 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:76 !jvms: Main::foo @ bci:76 | |
5--> 429 CallStaticJava === 435 424 425 8 1 ( 442 51 133 1 329 1 1 1 ) [[ 443 444 445 447 456 455 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:79 !jvms: Main::foo @ bci:79 | |
6--> 394 CallStaticJava === 376 342 361 8 1 ( 348 390 51 133 315 329 1 1 1 348 ) [[ 395 396 397 407 406 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:72 !jvms: Main::foo @ bci:72 | |
7--> 331 Allocate === 318 323 324 8 1 ( 36 202 20 1 51 133 315 329 1 1 1 ) [[ 332 333 334 341 342 343 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:64 !jvms: Main::foo @ bci:64 | |
8--> 275 CallStaticJava === 265 270 271 8 1 ( 221 186 51 133 1 200 1 1 1 ) [[ 276 277 278 280 289 288 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:53 !jvms: Main::foo @ bci:53 | |
9--> 297 CallStaticJava === 303 288 289 8 1 ( 310 51 133 1 200 1 1 1 ) [[ 311 312 313 315 324 323 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:56 !jvms: Main::foo @ bci:56 | |
10--> 258 CallStaticJava === 218 215 229 8 1 ( 221 186 51 133 186 200 1 1 1 221 ) [[ 259 260 261 271 270 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:49 !jvms: Main::foo @ bci:49 | |
11--> 204 Allocate === 143 130 192 8 1 ( 36 202 20 1 51 133 186 200 1 1 1 ) [[ 205 206 207 214 215 216 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:41 !jvms: Main::foo @ bci:41 | |
12--> 561 IfTrue === 560 [[ 555 568 ]] #1 !jvms: Main::foo @ bci:102 | |
13--> 435 IfTrue === 434 [[ 429 442 ]] #1 !jvms: Main::foo @ bci:79 | |
14--> 303 IfTrue === 302 [[ 297 310 ]] #1 !jvms: Main::foo @ bci:56 | |
stacking would succeed | |
considering stacked concats | |
fusion would fail for | |
204 Allocate === 143 130 192 8 1 ( 36 202 20 1 51 133 186 200 1 1 1 ) [[ 205 206 207 214 215 216 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:41 !jvms: Main::foo @ bci:41 | |
1033 CatchProj === 1032 [[ 1044 ]] #0@bci -1 !jvms: Main::foo @ bci:185 | |
1032 Catch === 1027 1028 [[ 1033 1034 ]] !jvms: Main::foo @ bci:185 | |
1027 Proj === 1013 [[ 1032 ]] #0 !jvms: Main::foo @ bci:185 | |
1013 CallStaticJava === 1019 997 998 8 1 ( 1026 1012 1 1 573 1 1 1 1 ) [[ 1027 1028 1029 ]] # Static java.io.PrintStream::println void ( java/io/PrintStream:NotNull *, java/lang/String:exact * ) Main::foo @ bci:185 !jvms: Main::foo @ bci:185 | |
1002 CatchProj === 1001 [[ 1018 ]] #0@bci -1 !jvms: Main::foo @ bci:177 | |
1001 Catch === 996 997 [[ 1002 1003 ]] !jvms: Main::foo @ bci:177 | |
996 Proj === 982 [[ 1001 ]] #0 !jvms: Main::foo @ bci:177 | |
982 CallStaticJava === 988 977 978 8 1 ( 995 969 1 1 573 1 1 1 1 ) [[ 996 997 998 ]] # Static java.io.PrintStream::println void ( java/io/PrintStream:NotNull *, java/lang/String:exact * ) Main::foo @ bci:177 !jvms: Main::foo @ bci:177 | |
972 CatchProj === 971 [[ 987 ]] #0@bci -1 !jvms: Main::foo @ bci:174 | |
971 Catch === 965 966 [[ 972 973 ]] !jvms: Main::foo @ bci:174 | |
965 Proj === 951 [[ 971 ]] #0 !jvms: Main::foo @ bci:174 | |
951 CallStaticJava === 957 946 947 8 1 ( 964 1 1 573 1 1 1 1 774 ) [[ 965 966 967 969 978 977 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:174 !jvms: Main::foo @ bci:174 | |
941 CatchProj === 940 [[ 956 ]] #0@bci -1 !jvms: Main::foo @ bci:171 | |
940 Catch === 934 935 [[ 941 942 ]] !jvms: Main::foo @ bci:171 | |
934 Proj === 920 [[ 940 ]] #0 !jvms: Main::foo @ bci:171 | |
920 CallStaticJava === 926 915 916 8 1 ( 933 587 1 1 573 1 1 1 1 774 ) [[ 934 935 936 938 947 946 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, int ) Main::foo @ bci:171 !jvms: Main::foo @ bci:171 | |
910 CatchProj === 909 [[ 925 ]] #0@bci -1 !jvms: Main::foo @ bci:167 | |
909 Catch === 903 904 [[ 910 911 ]] !jvms: Main::foo @ bci:167 | |
903 Proj === 889 [[ 909 ]] #0 !jvms: Main::foo @ bci:167 | |
889 CallStaticJava === 895 883 884 8 1 ( 902 888 1 1 573 587 1 1 1 774 ) [[ 903 904 905 907 916 915 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:167 !jvms: Main::foo @ bci:167 | |
878 CatchProj === 877 [[ 894 ]] #0@bci -1 !jvms: Main::foo @ bci:162 | |
877 Catch === 871 872 [[ 878 879 ]] !jvms: Main::foo @ bci:162 | |
871 Proj === 857 [[ 877 ]] #0 !jvms: Main::foo @ bci:162 | |
857 CallStaticJava === 863 827 828 8 1 ( 870 856 1 1 573 587 1 1 1 774 ) [[ 871 872 873 875 884 883 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, int ) Main::foo @ bci:162 !jvms: Main::foo @ bci:162 | |
822 CatchProj === 821 [[ 843 ]] #0@bci -1 !jvms: Main::foo @ bci:155 | |
821 Catch === 815 816 [[ 822 823 ]] !jvms: Main::foo @ bci:155 | |
815 Proj === 814 [[ 821 ]] #0 !jvms: Main::foo @ bci:155 | |
814 CallStaticJava === 803 808 809 8 1 ( 793 813 1 1 573 587 1 1 1 774 ) [[ 815 816 817 819 828 827 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:155 !jvms: Main::foo @ bci:155 | |
803 CatchProj === 802 [[ 814 ]] #0@bci -1 !jvms: Main::foo @ bci:150 | |
802 Catch === 797 798 [[ 803 804 ]] !jvms: Main::foo @ bci:150 | |
797 Proj === 796 [[ 802 ]] #0 !jvms: Main::foo @ bci:150 | |
796 CallStaticJava === 790 787 775 8 1 ( 793 1 1 573 587 1 1 1 774 793 ) [[ 797 798 799 809 808 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:150 !jvms: Main::foo @ bci:150 | |
781 CatchProj === 780 [[ 789 ]] #0@bci -1 !jvms: Main::foo @ bci:146 | |
780 Catch === 777 779 [[ 781 782 ]] !jvms: Main::foo @ bci:146 | |
777 Proj === 776 [[ 780 ]] #0 !jvms: Main::foo @ bci:146 | |
776 Allocate === 765 760 761 8 1 ( 36 202 20 1 1 1 573 587 1 1 1 774 ) [[ 777 778 779 786 787 788 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:146 !jvms: Main::foo @ bci:146 | |
765 CatchProj === 764 [[ 776 ]] #0@bci -1 !jvms: Main::foo @ bci:140 | |
764 Catch === 759 760 [[ 765 766 ]] !jvms: Main::foo @ bci:140 | |
759 Proj === 745 [[ 764 ]] #0 !jvms: Main::foo @ bci:140 | |
745 CallStaticJava === 751 740 741 8 1 ( 758 732 1 1 573 587 1 1 1 ) [[ 759 760 761 ]] # Static java.io.PrintStream::println void ( java/io/PrintStream:NotNull *, java/lang/String:exact * ) Main::foo @ bci:140 !jvms: Main::foo @ bci:140 | |
735 CatchProj === 734 [[ 750 ]] #0@bci -1 !jvms: Main::foo @ bci:137 | |
734 Catch === 728 729 [[ 735 736 ]] !jvms: Main::foo @ bci:137 | |
728 Proj === 714 [[ 734 ]] #0 !jvms: Main::foo @ bci:137 | |
714 CallStaticJava === 720 709 710 8 1 ( 727 1 1 573 587 1 1 1 625 ) [[ 728 729 730 732 741 740 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:137 !jvms: Main::foo @ bci:137 | |
704 CatchProj === 703 [[ 719 ]] #0@bci -1 !jvms: Main::foo @ bci:134 | |
703 Catch === 697 698 [[ 704 705 ]] !jvms: Main::foo @ bci:134 | |
697 Proj === 683 [[ 703 ]] #0 !jvms: Main::foo @ bci:134 | |
683 CallStaticJava === 689 678 679 8 1 ( 696 133 1 1 573 587 1 1 1 625 ) [[ 697 698 699 701 710 709 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, int ) Main::foo @ bci:134 !jvms: Main::foo @ bci:134 | |
673 CatchProj === 672 [[ 688 ]] #0@bci -1 !jvms: Main::foo @ bci:130 | |
672 Catch === 666 667 [[ 673 674 ]] !jvms: Main::foo @ bci:130 | |
666 Proj === 665 [[ 672 ]] #0 !jvms: Main::foo @ bci:130 | |
665 CallStaticJava === 654 659 660 8 1 ( 644 664 1 133 573 587 1 1 1 625 ) [[ 666 667 668 670 679 678 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:130 !jvms: Main::foo @ bci:130 | |
654 CatchProj === 653 [[ 665 ]] #0@bci -1 !jvms: Main::foo @ bci:125 | |
653 Catch === 648 649 [[ 654 655 ]] !jvms: Main::foo @ bci:125 | |
648 Proj === 647 [[ 653 ]] #0 !jvms: Main::foo @ bci:125 | |
647 CallStaticJava === 641 638 626 8 1 ( 644 1 133 573 587 1 1 1 625 644 ) [[ 648 649 650 660 659 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:125 !jvms: Main::foo @ bci:125 | |
632 CatchProj === 631 [[ 640 ]] #0@bci -1 !jvms: Main::foo @ bci:121 | |
631 Catch === 628 630 [[ 632 633 ]] !jvms: Main::foo @ bci:121 | |
628 Proj === 627 [[ 631 ]] #0 !jvms: Main::foo @ bci:121 | |
627 Allocate === 616 581 582 8 1 ( 36 202 20 1 1 133 573 587 1 1 1 625 ) [[ 628 629 630 637 638 639 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:121 !jvms: Main::foo @ bci:121 | |
failing with unknown test | |
614 Bool === _ 613 [[ 615 ]] [ne] !jvms: Main::foo @ bci:115 | |
613 CmpI === _ 612 587 [[ 614 ]] !jvms: Main::foo @ bci:115 | |
612 LoadI === _ 582 611 [[ 613 ]] @java/lang/String:exact+20 *, name=count, idx=7; #int !jvms: String::length @ bci:1 Main::foo @ bci:111 | |
587 ConI === 0 [[ 920 928 889 613 627 857 647 814 665 796 683 776 714 745 1247 ]] #int:32 | |
stacking would fail | |
Failed at iteration: 241 | |
Length mismatch: 16 <> 32 | |
Expected: "testtesttesttesttesttesttesttest" | |
Actual: "nullnulltesttest" | |
try standard compilation | |
566 1 b Main::foo (225 bytes) | |
considering toString call in Main::foo @ bci:212 | |
fusion would succeed (3 0) for Main::foo @ bci:191 | |
1049 ConP === 0 [[ 1050 1196 ]] #java/lang/String:exact * Oop:java/lang/String:exact * | |
541 Proj === 523 [[ 563 575 1076 1068 595 1050 615 1032 633 1012 651 981 682 950 713 919 744 888 764 857 782 825 819 1196 ]] #5 Oop:java/lang/String:exact * !jvms: Main::foo @ bci:102 | |
1099 ConP === 0 [[ 1100 1108 1196 ]] #java/lang/String:exact * Oop:java/lang/String:exact * | |
0--> 1100 CallStaticJava === 1106 1094 1095 8 1 ( 1113 1099 1 1 1 1 1 1 1 1010 ) [[ 1114 1115 1116 1118 1127 1126 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:209 !jvms: Main::foo @ bci:209 | |
1--> 1068 CallStaticJava === 1074 1063 1064 8 1 ( 1081 541 1 1 1 1 1 1 1 1010 ) [[ 1082 1083 1084 1086 1095 1094 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:204 !jvms: Main::foo @ bci:204 | |
2--> 1050 CallStaticJava === 1039 1044 1045 8 1 ( 1029 1049 1 1 541 1 1 1 1 1010 ) [[ 1051 1052 1053 1055 1064 1063 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:200 !jvms: Main::foo @ bci:200 | |
3--> 1131 CallStaticJava === 1137 1126 1127 8 1 ( 1144 1 1 1 1 1 1 1 1010 ) [[ 1145 1146 1147 1149 1158 1157 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:212 !jvms: Main::foo @ bci:212 | |
4--> 1032 CallStaticJava === 1026 1023 1011 8 1 ( 1029 1 1 541 1 1 1 1 1010 1029 ) [[ 1033 1034 1035 1045 1044 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:195 !jvms: Main::foo @ bci:195 | |
5--> 1012 Allocate === 1001 996 997 8 1 ( 168 167 26 1 1 1 541 1 1 1 1 1010 ) [[ 1013 1014 1015 1022 1023 1024 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:191 !jvms: Main::foo @ bci:191 | |
6--> 1137 IfTrue === 1136 [[ 1131 1144 ]] #1 !jvms: Main::foo @ bci:212 | |
7--> 1106 IfTrue === 1105 [[ 1100 1113 ]] #1 !jvms: Main::foo @ bci:209 | |
8--> 1074 IfTrue === 1073 [[ 1068 1081 ]] #1 !jvms: Main::foo @ bci:204 | |
considering toString call in Main::foo @ bci:56 | |
fusion would succeed (1 0) for Main::foo @ bci:41 | |
150 ConP === 0 [[ 249 232 232 170 1197 1197 ]] #java/lang/String:exact * Oop:java/lang/String:exact * | |
150 ConP === 0 [[ 249 232 232 170 1197 1197 ]] #java/lang/String:exact * Oop:java/lang/String:exact * | |
0--> 249 CallStaticJava === 239 244 245 8 1 ( 187 150 53 97 1 164 1 1 1 ) [[ 250 251 252 254 263 262 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:53 !jvms: Main::foo @ bci:53 | |
1--> 271 CallStaticJava === 277 262 263 8 1 ( 284 53 97 1 164 1 1 1 ) [[ 285 286 287 289 298 297 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:56 !jvms: Main::foo @ bci:56 | |
2--> 232 CallStaticJava === 184 181 201 8 1 ( 187 150 53 97 150 164 1 1 1 187 ) [[ 233 234 235 245 244 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:49 !jvms: Main::foo @ bci:49 | |
3--> 170 Allocate === 107 93 156 8 1 ( 168 167 26 1 53 97 150 164 1 1 1 ) [[ 171 172 173 180 181 182 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:41 !jvms: Main::foo @ bci:41 | |
4--> 277 IfTrue === 276 [[ 271 284 ]] #1 !jvms: Main::foo @ bci:56 | |
considering toString call in Main::foo @ bci:79 | |
fusion would succeed (1 0) for Main::foo @ bci:64 | |
359 Phi === 345 341 344 [[ 363 1198 ]] #java/lang/String:NotNull:exact * Oop:java/lang/String:NotNull:exact * !jvms: String::valueOf @ bci:13 Main::foo @ bci:69 | |
289 Proj === 271 [[ 380 305 363 335 341 1198 ]] #5 Oop:java/lang/String:exact * !jvms: Main::foo @ bci:56 | |
0--> 380 CallStaticJava === 370 375 376 8 1 ( 322 289 53 97 1 303 1 1 1 ) [[ 381 382 383 385 394 393 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:76 !jvms: Main::foo @ bci:76 | |
1--> 398 CallStaticJava === 404 393 394 8 1 ( 411 53 97 1 303 1 1 1 ) [[ 412 413 414 416 425 424 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:79 !jvms: Main::foo @ bci:79 | |
2--> 363 CallStaticJava === 345 316 330 8 1 ( 322 359 53 97 289 303 1 1 1 322 ) [[ 364 365 366 376 375 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:72 !jvms: Main::foo @ bci:72 | |
3--> 305 Allocate === 292 297 298 8 1 ( 168 167 26 1 53 97 289 303 1 1 1 ) [[ 306 307 308 315 316 317 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:64 !jvms: Main::foo @ bci:64 | |
4--> 404 IfTrue === 403 [[ 398 411 ]] #1 !jvms: Main::foo @ bci:79 | |
considering toString call in Main::foo @ bci:102 | |
fusion would succeed (1 0) for Main::foo @ bci:87 | |
484 Phi === 470 467 344 [[ 488 1199 ]] #java/lang/String:NotNull:exact * Oop:java/lang/String:NotNull:exact * !jvms: String::valueOf @ bci:13 Main::foo @ bci:92 | |
416 Proj === 398 [[ 505 431 488 461 467 1199 ]] #5 Oop:java/lang/String:exact * !jvms: Main::foo @ bci:79 | |
0--> 505 CallStaticJava === 495 500 501 8 1 ( 448 416 53 97 1 27 1 1 1 ) [[ 506 507 508 510 519 518 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:99 !jvms: Main::foo @ bci:99 | |
1--> 523 CallStaticJava === 529 518 519 8 1 ( 536 53 97 1 27 1 1 1 ) [[ 537 538 539 541 550 549 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:102 !jvms: Main::foo @ bci:102 | |
2--> 488 CallStaticJava === 470 442 456 8 1 ( 448 484 53 97 416 27 1 1 1 448 ) [[ 489 490 491 501 500 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:95 !jvms: Main::foo @ bci:95 | |
3--> 431 Allocate === 419 424 425 8 1 ( 168 167 26 1 53 97 416 27 1 1 1 ) [[ 432 433 434 441 442 443 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:87 !jvms: Main::foo @ bci:87 | |
4--> 529 IfTrue === 528 [[ 523 536 ]] #1 !jvms: Main::foo @ bci:102 | |
considering toString call in Main::foo @ bci:137 | |
fusion would succeed (2 0) for Main::foo @ bci:121 | |
632 ConP === 0 [[ 633 1200 ]] #java/lang/String:exact * Oop:java/lang/String:exact * | |
97 Phi === 92 1189 97 61 [[ 651 659 633 136 148 97 615 170 595 1189 232 523 249 505 271 488 305 431 398 363 380 1200 ]] #int !jvms: Main::foo @ bci:15 | |
0--> 651 CallStaticJava === 657 646 647 8 1 ( 664 97 1 1 541 555 1 1 1 593 ) [[ 665 666 667 669 678 677 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, int ) Main::foo @ bci:134 !jvms: Main::foo @ bci:134 | |
1--> 633 CallStaticJava === 622 627 628 8 1 ( 612 632 1 97 541 555 1 1 1 593 ) [[ 634 635 636 638 647 646 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:130 !jvms: Main::foo @ bci:130 | |
2--> 682 CallStaticJava === 688 677 678 8 1 ( 695 1 1 541 555 1 1 1 593 ) [[ 696 697 698 700 709 708 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:137 !jvms: Main::foo @ bci:137 | |
3--> 615 CallStaticJava === 609 606 594 8 1 ( 612 1 97 541 555 1 1 1 593 612 ) [[ 616 617 618 628 627 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:125 !jvms: Main::foo @ bci:125 | |
4--> 595 Allocate === 584 549 550 8 1 ( 168 167 26 1 1 97 541 555 1 1 1 593 ) [[ 596 597 598 605 606 607 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:121 !jvms: Main::foo @ bci:121 | |
5--> 688 IfTrue === 687 [[ 682 695 ]] #1 !jvms: Main::foo @ bci:137 | |
6--> 657 IfTrue === 656 [[ 651 664 ]] #1 !jvms: Main::foo @ bci:134 | |
considering toString call in Main::foo @ bci:174 | |
fusion would succeed (4 1) for Main::foo @ bci:146 | |
781 ConP === 0 [[ 782 1201 ]] #java/lang/String:exact * Oop:java/lang/String:exact * | |
824 LoadI === _ 796 823 [[ 825 833 1201 ]] @java/lang/String:exact+20 *, name=count, idx=6; #int !jvms: String::length @ bci:1 Main::foo @ bci:159 | |
856 ConP === 0 [[ 857 865 1201 ]] #java/lang/String:exact * Oop:java/lang/String:exact * | |
555 ConI === 0 [[ 888 896 857 581 595 825 615 782 633 764 651 744 682 713 1201 ]] #int:32 | |
0--> 888 CallStaticJava === 894 883 884 8 1 ( 901 555 1 1 541 1 1 1 1 742 ) [[ 902 903 904 906 915 914 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, int ) Main::foo @ bci:171 !jvms: Main::foo @ bci:171 | |
1--> 857 CallStaticJava === 863 851 852 8 1 ( 870 856 1 1 541 555 1 1 1 742 ) [[ 871 872 873 875 884 883 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:167 !jvms: Main::foo @ bci:167 | |
2--> 825 CallStaticJava === 831 795 796 8 1 ( 838 824 1 1 541 555 1 1 1 742 ) [[ 839 840 841 843 852 851 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, int ) Main::foo @ bci:162 !jvms: Main::foo @ bci:162 | |
3--> 782 CallStaticJava === 771 776 777 8 1 ( 761 781 1 1 541 555 1 1 1 742 ) [[ 783 784 785 787 796 795 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:155 !jvms: Main::foo @ bci:155 | |
4--> 919 CallStaticJava === 925 914 915 8 1 ( 932 1 1 541 1 1 1 1 742 ) [[ 933 934 935 937 946 945 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:174 !jvms: Main::foo @ bci:174 | |
5--> 764 CallStaticJava === 758 755 743 8 1 ( 761 1 1 541 555 1 1 1 742 761 ) [[ 765 766 767 777 776 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:150 !jvms: Main::foo @ bci:150 | |
6--> 744 Allocate === 733 728 729 8 1 ( 168 167 26 1 1 1 541 555 1 1 1 742 ) [[ 745 746 747 754 755 756 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:146 !jvms: Main::foo @ bci:146 | |
7--> 925 IfTrue === 924 [[ 919 932 ]] #1 !jvms: Main::foo @ bci:174 | |
8--> 894 IfTrue === 893 [[ 888 901 ]] #1 !jvms: Main::foo @ bci:171 | |
9--> 863 IfTrue === 862 [[ 857 870 ]] #1 !jvms: Main::foo @ bci:167 | |
10--> 831 IfTrue === 830 [[ 825 838 ]] #1 !jvms: Main::foo @ bci:162 | |
considering stacked concats | |
fusion would fail for | |
431 Allocate === 419 424 425 8 1 ( 168 167 26 1 53 97 416 27 1 1 1 ) [[ 432 433 434 441 442 443 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:87 !jvms: Main::foo @ bci:87 | |
1001 CatchProj === 1000 [[ 1012 ]] #0@bci -1 !jvms: Main::foo @ bci:185 | |
1000 Catch === 995 996 [[ 1001 1002 ]] !jvms: Main::foo @ bci:185 | |
995 Proj === 981 [[ 1000 ]] #0 !jvms: Main::foo @ bci:185 | |
981 CallStaticJava === 987 965 966 8 1 ( 994 980 1 1 541 1 1 1 1 ) [[ 995 996 997 ]] # Static java.io.PrintStream::println void ( java/io/PrintStream:NotNull *, java/lang/String:exact * ) Main::foo @ bci:185 !jvms: Main::foo @ bci:185 | |
970 CatchProj === 969 [[ 986 ]] #0@bci -1 !jvms: Main::foo @ bci:177 | |
969 Catch === 964 965 [[ 970 971 ]] !jvms: Main::foo @ bci:177 | |
964 Proj === 950 [[ 969 ]] #0 !jvms: Main::foo @ bci:177 | |
950 CallStaticJava === 956 945 946 8 1 ( 963 937 1 1 541 1 1 1 1 ) [[ 964 965 966 ]] # Static java.io.PrintStream::println void ( java/io/PrintStream:NotNull *, java/lang/String:exact * ) Main::foo @ bci:177 !jvms: Main::foo @ bci:177 | |
940 CatchProj === 939 [[ 955 ]] #0@bci -1 !jvms: Main::foo @ bci:174 | |
939 Catch === 933 934 [[ 940 941 ]] !jvms: Main::foo @ bci:174 | |
933 Proj === 919 [[ 939 ]] #0 !jvms: Main::foo @ bci:174 | |
919 CallStaticJava === 925 914 915 8 1 ( 932 1 1 541 1 1 1 1 742 ) [[ 933 934 935 937 946 945 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:174 !jvms: Main::foo @ bci:174 | |
909 CatchProj === 908 [[ 924 ]] #0@bci -1 !jvms: Main::foo @ bci:171 | |
908 Catch === 902 903 [[ 909 910 ]] !jvms: Main::foo @ bci:171 | |
902 Proj === 888 [[ 908 ]] #0 !jvms: Main::foo @ bci:171 | |
888 CallStaticJava === 894 883 884 8 1 ( 901 555 1 1 541 1 1 1 1 742 ) [[ 902 903 904 906 915 914 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, int ) Main::foo @ bci:171 !jvms: Main::foo @ bci:171 | |
878 CatchProj === 877 [[ 893 ]] #0@bci -1 !jvms: Main::foo @ bci:167 | |
877 Catch === 871 872 [[ 878 879 ]] !jvms: Main::foo @ bci:167 | |
871 Proj === 857 [[ 877 ]] #0 !jvms: Main::foo @ bci:167 | |
857 CallStaticJava === 863 851 852 8 1 ( 870 856 1 1 541 555 1 1 1 742 ) [[ 871 872 873 875 884 883 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:167 !jvms: Main::foo @ bci:167 | |
846 CatchProj === 845 [[ 862 ]] #0@bci -1 !jvms: Main::foo @ bci:162 | |
845 Catch === 839 840 [[ 846 847 ]] !jvms: Main::foo @ bci:162 | |
839 Proj === 825 [[ 845 ]] #0 !jvms: Main::foo @ bci:162 | |
825 CallStaticJava === 831 795 796 8 1 ( 838 824 1 1 541 555 1 1 1 742 ) [[ 839 840 841 843 852 851 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, int ) Main::foo @ bci:162 !jvms: Main::foo @ bci:162 | |
790 CatchProj === 789 [[ 811 ]] #0@bci -1 !jvms: Main::foo @ bci:155 | |
789 Catch === 783 784 [[ 790 791 ]] !jvms: Main::foo @ bci:155 | |
783 Proj === 782 [[ 789 ]] #0 !jvms: Main::foo @ bci:155 | |
782 CallStaticJava === 771 776 777 8 1 ( 761 781 1 1 541 555 1 1 1 742 ) [[ 783 784 785 787 796 795 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:155 !jvms: Main::foo @ bci:155 | |
771 CatchProj === 770 [[ 782 ]] #0@bci -1 !jvms: Main::foo @ bci:150 | |
770 Catch === 765 766 [[ 771 772 ]] !jvms: Main::foo @ bci:150 | |
765 Proj === 764 [[ 770 ]] #0 !jvms: Main::foo @ bci:150 | |
764 CallStaticJava === 758 755 743 8 1 ( 761 1 1 541 555 1 1 1 742 761 ) [[ 765 766 767 777 776 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:150 !jvms: Main::foo @ bci:150 | |
749 CatchProj === 748 [[ 757 ]] #0@bci -1 !jvms: Main::foo @ bci:146 | |
748 Catch === 745 747 [[ 749 750 ]] !jvms: Main::foo @ bci:146 | |
745 Proj === 744 [[ 748 ]] #0 !jvms: Main::foo @ bci:146 | |
744 Allocate === 733 728 729 8 1 ( 168 167 26 1 1 1 541 555 1 1 1 742 ) [[ 745 746 747 754 755 756 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:146 !jvms: Main::foo @ bci:146 | |
733 CatchProj === 732 [[ 744 ]] #0@bci -1 !jvms: Main::foo @ bci:140 | |
732 Catch === 727 728 [[ 733 734 ]] !jvms: Main::foo @ bci:140 | |
727 Proj === 713 [[ 732 ]] #0 !jvms: Main::foo @ bci:140 | |
713 CallStaticJava === 719 708 709 8 1 ( 726 700 1 1 541 555 1 1 1 ) [[ 727 728 729 ]] # Static java.io.PrintStream::println void ( java/io/PrintStream:NotNull *, java/lang/String:exact * ) Main::foo @ bci:140 !jvms: Main::foo @ bci:140 | |
703 CatchProj === 702 [[ 718 ]] #0@bci -1 !jvms: Main::foo @ bci:137 | |
702 Catch === 696 697 [[ 703 704 ]] !jvms: Main::foo @ bci:137 | |
696 Proj === 682 [[ 702 ]] #0 !jvms: Main::foo @ bci:137 | |
682 CallStaticJava === 688 677 678 8 1 ( 695 1 1 541 555 1 1 1 593 ) [[ 696 697 698 700 709 708 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:137 !jvms: Main::foo @ bci:137 | |
672 CatchProj === 671 [[ 687 ]] #0@bci -1 !jvms: Main::foo @ bci:134 | |
671 Catch === 665 666 [[ 672 673 ]] !jvms: Main::foo @ bci:134 | |
665 Proj === 651 [[ 671 ]] #0 !jvms: Main::foo @ bci:134 | |
651 CallStaticJava === 657 646 647 8 1 ( 664 97 1 1 541 555 1 1 1 593 ) [[ 665 666 667 669 678 677 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, int ) Main::foo @ bci:134 !jvms: Main::foo @ bci:134 | |
641 CatchProj === 640 [[ 656 ]] #0@bci -1 !jvms: Main::foo @ bci:130 | |
640 Catch === 634 635 [[ 641 642 ]] !jvms: Main::foo @ bci:130 | |
634 Proj === 633 [[ 640 ]] #0 !jvms: Main::foo @ bci:130 | |
633 CallStaticJava === 622 627 628 8 1 ( 612 632 1 97 541 555 1 1 1 593 ) [[ 634 635 636 638 647 646 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:130 !jvms: Main::foo @ bci:130 | |
622 CatchProj === 621 [[ 633 ]] #0@bci -1 !jvms: Main::foo @ bci:125 | |
621 Catch === 616 617 [[ 622 623 ]] !jvms: Main::foo @ bci:125 | |
616 Proj === 615 [[ 621 ]] #0 !jvms: Main::foo @ bci:125 | |
615 CallStaticJava === 609 606 594 8 1 ( 612 1 97 541 555 1 1 1 593 612 ) [[ 616 617 618 628 627 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:125 !jvms: Main::foo @ bci:125 | |
600 CatchProj === 599 [[ 608 ]] #0@bci -1 !jvms: Main::foo @ bci:121 | |
599 Catch === 596 598 [[ 600 601 ]] !jvms: Main::foo @ bci:121 | |
596 Proj === 595 [[ 599 ]] #0 !jvms: Main::foo @ bci:121 | |
595 Allocate === 584 549 550 8 1 ( 168 167 26 1 1 97 541 555 1 1 1 593 ) [[ 596 597 598 605 606 607 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:121 !jvms: Main::foo @ bci:121 | |
failing with unknown test | |
582 Bool === _ 581 [[ 583 ]] [ne] !jvms: Main::foo @ bci:115 | |
581 CmpI === _ 580 555 [[ 582 ]] !jvms: Main::foo @ bci:115 | |
580 LoadI === _ 550 579 [[ 581 ]] @java/lang/String:exact+20 *, name=count, idx=6; #int !jvms: String::length @ bci:1 Main::foo @ bci:111 | |
555 ConI === 0 [[ 888 896 857 581 595 825 615 782 633 764 651 744 682 713 1201 ]] #int:32 | |
stacking would fail | |
considering stacked concats | |
fusion would succeed (2 0) for Main::foo @ bci:41 | |
359 Phi === 345 341 344 [[ 363 1198 1203 ]] #java/lang/String:NotNull:exact * Oop:java/lang/String:NotNull:exact * !jvms: String::valueOf @ bci:13 Main::foo @ bci:69 | |
150 ConP === 0 [[ 249 232 232 170 1197 1197 1203 1203 ]] #java/lang/String:exact * Oop:java/lang/String:exact * | |
150 ConP === 0 [[ 249 232 232 170 1197 1197 1203 1203 ]] #java/lang/String:exact * Oop:java/lang/String:exact * | |
0--> 380 CallStaticJava === 370 375 376 8 1 ( 322 289 53 97 1 303 1 1 1 ) [[ 381 382 383 385 394 393 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:76 !jvms: Main::foo @ bci:76 | |
1--> 398 CallStaticJava === 404 393 394 8 1 ( 411 53 97 1 303 1 1 1 ) [[ 412 413 414 416 425 424 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:79 !jvms: Main::foo @ bci:79 | |
2--> 363 CallStaticJava === 345 316 330 8 1 ( 322 359 53 97 289 303 1 1 1 322 ) [[ 364 365 366 376 375 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:72 !jvms: Main::foo @ bci:72 | |
3--> 305 Allocate === 292 297 298 8 1 ( 168 167 26 1 53 97 289 303 1 1 1 ) [[ 306 307 308 315 316 317 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:64 !jvms: Main::foo @ bci:64 | |
4--> 249 CallStaticJava === 239 244 245 8 1 ( 187 150 53 97 1 164 1 1 1 ) [[ 250 251 252 254 263 262 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:53 !jvms: Main::foo @ bci:53 | |
5--> 271 CallStaticJava === 277 262 263 8 1 ( 284 53 97 1 164 1 1 1 ) [[ 285 286 287 289 298 297 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:56 !jvms: Main::foo @ bci:56 | |
6--> 232 CallStaticJava === 184 181 201 8 1 ( 187 150 53 97 150 164 1 1 1 187 ) [[ 233 234 235 245 244 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:49 !jvms: Main::foo @ bci:49 | |
7--> 170 Allocate === 107 93 156 8 1 ( 168 167 26 1 53 97 150 164 1 1 1 ) [[ 171 172 173 180 181 182 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:41 !jvms: Main::foo @ bci:41 | |
8--> 404 IfTrue === 403 [[ 398 411 ]] #1 !jvms: Main::foo @ bci:79 | |
9--> 277 IfTrue === 276 [[ 271 284 ]] #1 !jvms: Main::foo @ bci:56 | |
stacking would succeed | |
considering stacked concats | |
fusion would fail for | |
431 Allocate === 419 424 425 8 1 ( 168 167 26 1 53 97 416 27 1 1 1 ) [[ 432 433 434 441 442 443 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:87 !jvms: Main::foo @ bci:87 | |
1001 CatchProj === 1000 [[ 1012 ]] #0@bci -1 !jvms: Main::foo @ bci:185 | |
1000 Catch === 995 996 [[ 1001 1002 ]] !jvms: Main::foo @ bci:185 | |
995 Proj === 981 [[ 1000 ]] #0 !jvms: Main::foo @ bci:185 | |
981 CallStaticJava === 987 965 966 8 1 ( 994 980 1 1 541 1 1 1 1 ) [[ 995 996 997 ]] # Static java.io.PrintStream::println void ( java/io/PrintStream:NotNull *, java/lang/String:exact * ) Main::foo @ bci:185 !jvms: Main::foo @ bci:185 | |
970 CatchProj === 969 [[ 986 ]] #0@bci -1 !jvms: Main::foo @ bci:177 | |
969 Catch === 964 965 [[ 970 971 ]] !jvms: Main::foo @ bci:177 | |
964 Proj === 950 [[ 969 ]] #0 !jvms: Main::foo @ bci:177 | |
950 CallStaticJava === 956 945 946 8 1 ( 963 937 1 1 541 1 1 1 1 ) [[ 964 965 966 ]] # Static java.io.PrintStream::println void ( java/io/PrintStream:NotNull *, java/lang/String:exact * ) Main::foo @ bci:177 !jvms: Main::foo @ bci:177 | |
940 CatchProj === 939 [[ 955 ]] #0@bci -1 !jvms: Main::foo @ bci:174 | |
939 Catch === 933 934 [[ 940 941 ]] !jvms: Main::foo @ bci:174 | |
933 Proj === 919 [[ 939 ]] #0 !jvms: Main::foo @ bci:174 | |
919 CallStaticJava === 925 914 915 8 1 ( 932 1 1 541 1 1 1 1 742 ) [[ 933 934 935 937 946 945 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:174 !jvms: Main::foo @ bci:174 | |
909 CatchProj === 908 [[ 924 ]] #0@bci -1 !jvms: Main::foo @ bci:171 | |
908 Catch === 902 903 [[ 909 910 ]] !jvms: Main::foo @ bci:171 | |
902 Proj === 888 [[ 908 ]] #0 !jvms: Main::foo @ bci:171 | |
888 CallStaticJava === 894 883 884 8 1 ( 901 555 1 1 541 1 1 1 1 742 ) [[ 902 903 904 906 915 914 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, int ) Main::foo @ bci:171 !jvms: Main::foo @ bci:171 | |
878 CatchProj === 877 [[ 893 ]] #0@bci -1 !jvms: Main::foo @ bci:167 | |
877 Catch === 871 872 [[ 878 879 ]] !jvms: Main::foo @ bci:167 | |
871 Proj === 857 [[ 877 ]] #0 !jvms: Main::foo @ bci:167 | |
857 CallStaticJava === 863 851 852 8 1 ( 870 856 1 1 541 555 1 1 1 742 ) [[ 871 872 873 875 884 883 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:167 !jvms: Main::foo @ bci:167 | |
846 CatchProj === 845 [[ 862 ]] #0@bci -1 !jvms: Main::foo @ bci:162 | |
845 Catch === 839 840 [[ 846 847 ]] !jvms: Main::foo @ bci:162 | |
839 Proj === 825 [[ 845 ]] #0 !jvms: Main::foo @ bci:162 | |
825 CallStaticJava === 831 795 796 8 1 ( 838 824 1 1 541 555 1 1 1 742 ) [[ 839 840 841 843 852 851 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, int ) Main::foo @ bci:162 !jvms: Main::foo @ bci:162 | |
790 CatchProj === 789 [[ 811 ]] #0@bci -1 !jvms: Main::foo @ bci:155 | |
789 Catch === 783 784 [[ 790 791 ]] !jvms: Main::foo @ bci:155 | |
783 Proj === 782 [[ 789 ]] #0 !jvms: Main::foo @ bci:155 | |
782 CallStaticJava === 771 776 777 8 1 ( 761 781 1 1 541 555 1 1 1 742 ) [[ 783 784 785 787 796 795 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:155 !jvms: Main::foo @ bci:155 | |
771 CatchProj === 770 [[ 782 ]] #0@bci -1 !jvms: Main::foo @ bci:150 | |
770 Catch === 765 766 [[ 771 772 ]] !jvms: Main::foo @ bci:150 | |
765 Proj === 764 [[ 770 ]] #0 !jvms: Main::foo @ bci:150 | |
764 CallStaticJava === 758 755 743 8 1 ( 761 1 1 541 555 1 1 1 742 761 ) [[ 765 766 767 777 776 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:150 !jvms: Main::foo @ bci:150 | |
749 CatchProj === 748 [[ 757 ]] #0@bci -1 !jvms: Main::foo @ bci:146 | |
748 Catch === 745 747 [[ 749 750 ]] !jvms: Main::foo @ bci:146 | |
745 Proj === 744 [[ 748 ]] #0 !jvms: Main::foo @ bci:146 | |
744 Allocate === 733 728 729 8 1 ( 168 167 26 1 1 1 541 555 1 1 1 742 ) [[ 745 746 747 754 755 756 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:146 !jvms: Main::foo @ bci:146 | |
733 CatchProj === 732 [[ 744 ]] #0@bci -1 !jvms: Main::foo @ bci:140 | |
732 Catch === 727 728 [[ 733 734 ]] !jvms: Main::foo @ bci:140 | |
727 Proj === 713 [[ 732 ]] #0 !jvms: Main::foo @ bci:140 | |
713 CallStaticJava === 719 708 709 8 1 ( 726 700 1 1 541 555 1 1 1 ) [[ 727 728 729 ]] # Static java.io.PrintStream::println void ( java/io/PrintStream:NotNull *, java/lang/String:exact * ) Main::foo @ bci:140 !jvms: Main::foo @ bci:140 | |
703 CatchProj === 702 [[ 718 ]] #0@bci -1 !jvms: Main::foo @ bci:137 | |
702 Catch === 696 697 [[ 703 704 ]] !jvms: Main::foo @ bci:137 | |
696 Proj === 682 [[ 702 ]] #0 !jvms: Main::foo @ bci:137 | |
682 CallStaticJava === 688 677 678 8 1 ( 695 1 1 541 555 1 1 1 593 ) [[ 696 697 698 700 709 708 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:137 !jvms: Main::foo @ bci:137 | |
672 CatchProj === 671 [[ 687 ]] #0@bci -1 !jvms: Main::foo @ bci:134 | |
671 Catch === 665 666 [[ 672 673 ]] !jvms: Main::foo @ bci:134 | |
665 Proj === 651 [[ 671 ]] #0 !jvms: Main::foo @ bci:134 | |
651 CallStaticJava === 657 646 647 8 1 ( 664 97 1 1 541 555 1 1 1 593 ) [[ 665 666 667 669 678 677 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, int ) Main::foo @ bci:134 !jvms: Main::foo @ bci:134 | |
641 CatchProj === 640 [[ 656 ]] #0@bci -1 !jvms: Main::foo @ bci:130 | |
640 Catch === 634 635 [[ 641 642 ]] !jvms: Main::foo @ bci:130 | |
634 Proj === 633 [[ 640 ]] #0 !jvms: Main::foo @ bci:130 | |
633 CallStaticJava === 622 627 628 8 1 ( 612 632 1 97 541 555 1 1 1 593 ) [[ 634 635 636 638 647 646 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:130 !jvms: Main::foo @ bci:130 | |
622 CatchProj === 621 [[ 633 ]] #0@bci -1 !jvms: Main::foo @ bci:125 | |
621 Catch === 616 617 [[ 622 623 ]] !jvms: Main::foo @ bci:125 | |
616 Proj === 615 [[ 621 ]] #0 !jvms: Main::foo @ bci:125 | |
615 CallStaticJava === 609 606 594 8 1 ( 612 1 97 541 555 1 1 1 593 612 ) [[ 616 617 618 628 627 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:125 !jvms: Main::foo @ bci:125 | |
600 CatchProj === 599 [[ 608 ]] #0@bci -1 !jvms: Main::foo @ bci:121 | |
599 Catch === 596 598 [[ 600 601 ]] !jvms: Main::foo @ bci:121 | |
596 Proj === 595 [[ 599 ]] #0 !jvms: Main::foo @ bci:121 | |
595 Allocate === 584 549 550 8 1 ( 168 167 26 1 1 97 541 555 1 1 1 593 ) [[ 596 597 598 605 606 607 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:121 !jvms: Main::foo @ bci:121 | |
failing with unknown test | |
582 Bool === _ 581 [[ 583 ]] [ne] !jvms: Main::foo @ bci:115 | |
581 CmpI === _ 580 555 [[ 582 ]] !jvms: Main::foo @ bci:115 | |
580 LoadI === _ 550 579 [[ 581 ]] @java/lang/String:exact+20 *, name=count, idx=6; #int !jvms: String::length @ bci:1 Main::foo @ bci:111 | |
555 ConI === 0 [[ 888 896 857 581 595 825 615 782 633 764 651 744 682 713 1201 ]] #int:32 | |
stacking would fail | |
considering stacked concats | |
fusion would succeed (3 0) for Main::foo @ bci:41 | |
484 Phi === 470 467 344 [[ 488 1199 1202 1204 1205 ]] #java/lang/String:NotNull:exact * Oop:java/lang/String:NotNull:exact * !jvms: String::valueOf @ bci:13 Main::foo @ bci:92 | |
359 Phi === 345 341 344 [[ 363 1198 1203 1205 ]] #java/lang/String:NotNull:exact * Oop:java/lang/String:NotNull:exact * !jvms: String::valueOf @ bci:13 Main::foo @ bci:69 | |
150 ConP === 0 [[ 249 232 232 170 1197 1197 1203 1203 1205 1205 ]] #java/lang/String:exact * Oop:java/lang/String:exact * | |
150 ConP === 0 [[ 249 232 232 170 1197 1197 1203 1203 1205 1205 ]] #java/lang/String:exact * Oop:java/lang/String:exact * | |
0--> 505 CallStaticJava === 495 500 501 8 1 ( 448 416 53 97 1 27 1 1 1 ) [[ 506 507 508 510 519 518 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:99 !jvms: Main::foo @ bci:99 | |
1--> 523 CallStaticJava === 529 518 519 8 1 ( 536 53 97 1 27 1 1 1 ) [[ 537 538 539 541 550 549 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:102 !jvms: Main::foo @ bci:102 | |
2--> 488 CallStaticJava === 470 442 456 8 1 ( 448 484 53 97 416 27 1 1 1 448 ) [[ 489 490 491 501 500 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:95 !jvms: Main::foo @ bci:95 | |
3--> 431 Allocate === 419 424 425 8 1 ( 168 167 26 1 53 97 416 27 1 1 1 ) [[ 432 433 434 441 442 443 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:87 !jvms: Main::foo @ bci:87 | |
4--> 380 CallStaticJava === 370 375 376 8 1 ( 322 289 53 97 1 303 1 1 1 ) [[ 381 382 383 385 394 393 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:76 !jvms: Main::foo @ bci:76 | |
5--> 398 CallStaticJava === 404 393 394 8 1 ( 411 53 97 1 303 1 1 1 ) [[ 412 413 414 416 425 424 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:79 !jvms: Main::foo @ bci:79 | |
6--> 363 CallStaticJava === 345 316 330 8 1 ( 322 359 53 97 289 303 1 1 1 322 ) [[ 364 365 366 376 375 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:72 !jvms: Main::foo @ bci:72 | |
7--> 305 Allocate === 292 297 298 8 1 ( 168 167 26 1 53 97 289 303 1 1 1 ) [[ 306 307 308 315 316 317 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:64 !jvms: Main::foo @ bci:64 | |
8--> 249 CallStaticJava === 239 244 245 8 1 ( 187 150 53 97 1 164 1 1 1 ) [[ 250 251 252 254 263 262 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:53 !jvms: Main::foo @ bci:53 | |
9--> 271 CallStaticJava === 277 262 263 8 1 ( 284 53 97 1 164 1 1 1 ) [[ 285 286 287 289 298 297 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:56 !jvms: Main::foo @ bci:56 | |
10--> 232 CallStaticJava === 184 181 201 8 1 ( 187 150 53 97 150 164 1 1 1 187 ) [[ 233 234 235 245 244 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:49 !jvms: Main::foo @ bci:49 | |
11--> 170 Allocate === 107 93 156 8 1 ( 168 167 26 1 53 97 150 164 1 1 1 ) [[ 171 172 173 180 181 182 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:41 !jvms: Main::foo @ bci:41 | |
12--> 529 IfTrue === 528 [[ 523 536 ]] #1 !jvms: Main::foo @ bci:102 | |
13--> 404 IfTrue === 403 [[ 398 411 ]] #1 !jvms: Main::foo @ bci:79 | |
14--> 277 IfTrue === 276 [[ 271 284 ]] #1 !jvms: Main::foo @ bci:56 | |
stacking would succeed | |
considering stacked concats | |
fusion would fail for | |
170 Allocate === 107 93 156 8 1 ( 168 167 26 1 53 97 150 164 1 1 1 ) [[ 171 172 173 180 181 182 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:41 !jvms: Main::foo @ bci:41 | |
1001 CatchProj === 1000 [[ 1012 ]] #0@bci -1 !jvms: Main::foo @ bci:185 | |
1000 Catch === 995 996 [[ 1001 1002 ]] !jvms: Main::foo @ bci:185 | |
995 Proj === 981 [[ 1000 ]] #0 !jvms: Main::foo @ bci:185 | |
981 CallStaticJava === 987 965 966 8 1 ( 994 980 1 1 541 1 1 1 1 ) [[ 995 996 997 ]] # Static java.io.PrintStream::println void ( java/io/PrintStream:NotNull *, java/lang/String:exact * ) Main::foo @ bci:185 !jvms: Main::foo @ bci:185 | |
970 CatchProj === 969 [[ 986 ]] #0@bci -1 !jvms: Main::foo @ bci:177 | |
969 Catch === 964 965 [[ 970 971 ]] !jvms: Main::foo @ bci:177 | |
964 Proj === 950 [[ 969 ]] #0 !jvms: Main::foo @ bci:177 | |
950 CallStaticJava === 956 945 946 8 1 ( 963 937 1 1 541 1 1 1 1 ) [[ 964 965 966 ]] # Static java.io.PrintStream::println void ( java/io/PrintStream:NotNull *, java/lang/String:exact * ) Main::foo @ bci:177 !jvms: Main::foo @ bci:177 | |
940 CatchProj === 939 [[ 955 ]] #0@bci -1 !jvms: Main::foo @ bci:174 | |
939 Catch === 933 934 [[ 940 941 ]] !jvms: Main::foo @ bci:174 | |
933 Proj === 919 [[ 939 ]] #0 !jvms: Main::foo @ bci:174 | |
919 CallStaticJava === 925 914 915 8 1 ( 932 1 1 541 1 1 1 1 742 ) [[ 933 934 935 937 946 945 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:174 !jvms: Main::foo @ bci:174 | |
909 CatchProj === 908 [[ 924 ]] #0@bci -1 !jvms: Main::foo @ bci:171 | |
908 Catch === 902 903 [[ 909 910 ]] !jvms: Main::foo @ bci:171 | |
902 Proj === 888 [[ 908 ]] #0 !jvms: Main::foo @ bci:171 | |
888 CallStaticJava === 894 883 884 8 1 ( 901 555 1 1 541 1 1 1 1 742 ) [[ 902 903 904 906 915 914 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, int ) Main::foo @ bci:171 !jvms: Main::foo @ bci:171 | |
878 CatchProj === 877 [[ 893 ]] #0@bci -1 !jvms: Main::foo @ bci:167 | |
877 Catch === 871 872 [[ 878 879 ]] !jvms: Main::foo @ bci:167 | |
871 Proj === 857 [[ 877 ]] #0 !jvms: Main::foo @ bci:167 | |
857 CallStaticJava === 863 851 852 8 1 ( 870 856 1 1 541 555 1 1 1 742 ) [[ 871 872 873 875 884 883 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:167 !jvms: Main::foo @ bci:167 | |
846 CatchProj === 845 [[ 862 ]] #0@bci -1 !jvms: Main::foo @ bci:162 | |
845 Catch === 839 840 [[ 846 847 ]] !jvms: Main::foo @ bci:162 | |
839 Proj === 825 [[ 845 ]] #0 !jvms: Main::foo @ bci:162 | |
825 CallStaticJava === 831 795 796 8 1 ( 838 824 1 1 541 555 1 1 1 742 ) [[ 839 840 841 843 852 851 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, int ) Main::foo @ bci:162 !jvms: Main::foo @ bci:162 | |
790 CatchProj === 789 [[ 811 ]] #0@bci -1 !jvms: Main::foo @ bci:155 | |
789 Catch === 783 784 [[ 790 791 ]] !jvms: Main::foo @ bci:155 | |
783 Proj === 782 [[ 789 ]] #0 !jvms: Main::foo @ bci:155 | |
782 CallStaticJava === 771 776 777 8 1 ( 761 781 1 1 541 555 1 1 1 742 ) [[ 783 784 785 787 796 795 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:155 !jvms: Main::foo @ bci:155 | |
771 CatchProj === 770 [[ 782 ]] #0@bci -1 !jvms: Main::foo @ bci:150 | |
770 Catch === 765 766 [[ 771 772 ]] !jvms: Main::foo @ bci:150 | |
765 Proj === 764 [[ 770 ]] #0 !jvms: Main::foo @ bci:150 | |
764 CallStaticJava === 758 755 743 8 1 ( 761 1 1 541 555 1 1 1 742 761 ) [[ 765 766 767 777 776 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:150 !jvms: Main::foo @ bci:150 | |
749 CatchProj === 748 [[ 757 ]] #0@bci -1 !jvms: Main::foo @ bci:146 | |
748 Catch === 745 747 [[ 749 750 ]] !jvms: Main::foo @ bci:146 | |
745 Proj === 744 [[ 748 ]] #0 !jvms: Main::foo @ bci:146 | |
744 Allocate === 733 728 729 8 1 ( 168 167 26 1 1 1 541 555 1 1 1 742 ) [[ 745 746 747 754 755 756 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:146 !jvms: Main::foo @ bci:146 | |
733 CatchProj === 732 [[ 744 ]] #0@bci -1 !jvms: Main::foo @ bci:140 | |
732 Catch === 727 728 [[ 733 734 ]] !jvms: Main::foo @ bci:140 | |
727 Proj === 713 [[ 732 ]] #0 !jvms: Main::foo @ bci:140 | |
713 CallStaticJava === 719 708 709 8 1 ( 726 700 1 1 541 555 1 1 1 ) [[ 727 728 729 ]] # Static java.io.PrintStream::println void ( java/io/PrintStream:NotNull *, java/lang/String:exact * ) Main::foo @ bci:140 !jvms: Main::foo @ bci:140 | |
703 CatchProj === 702 [[ 718 ]] #0@bci -1 !jvms: Main::foo @ bci:137 | |
702 Catch === 696 697 [[ 703 704 ]] !jvms: Main::foo @ bci:137 | |
696 Proj === 682 [[ 702 ]] #0 !jvms: Main::foo @ bci:137 | |
682 CallStaticJava === 688 677 678 8 1 ( 695 1 1 541 555 1 1 1 593 ) [[ 696 697 698 700 709 708 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:137 !jvms: Main::foo @ bci:137 | |
672 CatchProj === 671 [[ 687 ]] #0@bci -1 !jvms: Main::foo @ bci:134 | |
671 Catch === 665 666 [[ 672 673 ]] !jvms: Main::foo @ bci:134 | |
665 Proj === 651 [[ 671 ]] #0 !jvms: Main::foo @ bci:134 | |
651 CallStaticJava === 657 646 647 8 1 ( 664 97 1 1 541 555 1 1 1 593 ) [[ 665 666 667 669 678 677 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, int ) Main::foo @ bci:134 !jvms: Main::foo @ bci:134 | |
641 CatchProj === 640 [[ 656 ]] #0@bci -1 !jvms: Main::foo @ bci:130 | |
640 Catch === 634 635 [[ 641 642 ]] !jvms: Main::foo @ bci:130 | |
634 Proj === 633 [[ 640 ]] #0 !jvms: Main::foo @ bci:130 | |
633 CallStaticJava === 622 627 628 8 1 ( 612 632 1 97 541 555 1 1 1 593 ) [[ 634 635 636 638 647 646 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Main::foo @ bci:130 !jvms: Main::foo @ bci:130 | |
622 CatchProj === 621 [[ 633 ]] #0@bci -1 !jvms: Main::foo @ bci:125 | |
621 Catch === 616 617 [[ 622 623 ]] !jvms: Main::foo @ bci:125 | |
616 Proj === 615 [[ 621 ]] #0 !jvms: Main::foo @ bci:125 | |
615 CallStaticJava === 609 606 594 8 1 ( 612 1 97 541 555 1 1 1 593 612 ) [[ 616 617 618 628 627 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact * ) Main::foo @ bci:125 !jvms: Main::foo @ bci:125 | |
600 CatchProj === 599 [[ 608 ]] #0@bci -1 !jvms: Main::foo @ bci:121 | |
599 Catch === 596 598 [[ 600 601 ]] !jvms: Main::foo @ bci:121 | |
596 Proj === 595 [[ 599 ]] #0 !jvms: Main::foo @ bci:121 | |
595 Allocate === 584 549 550 8 1 ( 168 167 26 1 1 97 541 555 1 1 1 593 ) [[ 596 597 598 605 606 607 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Main::foo @ bci:121 !jvms: Main::foo @ bci:121 | |
failing with unknown test | |
582 Bool === _ 581 [[ 583 ]] [ne] !jvms: Main::foo @ bci:115 | |
581 CmpI === _ 580 555 [[ 582 ]] !jvms: Main::foo @ bci:115 | |
580 LoadI === _ 550 579 [[ 581 ]] @java/lang/String:exact+20 *, name=count, idx=6; #int !jvms: String::length @ bci:1 Main::foo @ bci:111 | |
555 ConI === 0 [[ 888 896 857 581 595 825 615 782 633 764 651 744 682 713 1201 ]] #int:32 | |
stacking would fail | |
Failed at iteration: 17 | |
Length mismatch: 16 <> 32 | |
Expected: "testtesttesttesttesttesttesttest" | |
Actual: "nullnulltesttest" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Java Version: 23.0-b21-internal-fastdebug | |
try OSR compilation | |
470 1 % b Main::foo @ 15 (225 bytes) | |
{method} | |
- klass: {other class} | |
- this oop: 0x0000000604249508 | |
- method holder: 'Main' | |
- constants: 0x0000000604248e28 constant pool [104] for 'Main' cache=0x00000006042498f8 | |
- access: 0xc100000a private static | |
- name: 'foo' | |
- signature: '()V' | |
- max stack: 3 | |
- max locals: 7 | |
- size of params: 0 | |
- method size: 17 | |
- vtable index: -2 | |
- i2i entry: 0x00002aaaab3541a0 | |
- adapter: 0x0000000004e81178 | |
- compiled entry 0x00002aaaab40242d | |
- code size: 225 | |
- code start: 0x00000006042493a8 | |
- code end (excl): 0x0000000604249489 | |
- method data: 0x000000060424a308 | |
- checked ex length: 0 | |
- linenumber start: 0x0000000604249489 | |
- localvar length: 8 | |
- localvar start: 0x00000006042494a6 | |
# | |
# void ( rawptr:BotPTR ) | |
# | |
#r018 rsi:rsi : parm 0: rawptr:BotPTR | |
# -- Old rsp -- Framesize: 96 -- | |
#r089 rsp+92: in_preserve | |
#r088 rsp+88: return address | |
#r087 rsp+84: in_preserve | |
#r086 rsp+80: saved fp register | |
#r085 rsp+76: pad2, stack alignment | |
#r084 rsp+72: pad2, stack alignment | |
#r083 rsp+68: Fixed slot 1 | |
#r082 rsp+64: Fixed slot 0 | |
#r105 rsp+60: spill | |
#r104 rsp+56: spill | |
#r103 rsp+52: spill | |
#r102 rsp+48: spill | |
#r101 rsp+44: spill | |
#r100 rsp+40: spill | |
#r099 rsp+36: spill | |
#r098 rsp+32: spill | |
#r097 rsp+28: spill | |
#r096 rsp+24: spill | |
#r095 rsp+20: spill | |
#r094 rsp+16: spill | |
#r093 rsp+12: spill | |
#r092 rsp+ 8: spill | |
#r091 rsp+ 4: spill | |
#r090 rsp+ 0: spill | |
# | |
000 N1517: # B1 <- BLOCK HEAD IS JUNK Freq: 1 | |
000 # breakpoint | |
nop # 3 bytes pad for loops and calls | |
010 B1: # B76 B2 <- BLOCK HEAD IS JUNK Freq: 1 | |
010 # stack bang | |
pushq rbp # Save rbp | |
subq rsp, #80 # Create frame | |
01c movl R13, [RSI + #16 (8-bit)] # int | |
020 movl R10, [RSI + #24 (8-bit)] # int | |
024 movl [rsp + #4], R10 # spill | |
029 movq RBP, [RSI + #48 (8-bit)] # ptr | |
02d movq RBX, [RSI + #32 (8-bit)] # ptr | |
031 movl R11, [RSI + #40 (8-bit)] # int | |
035 movl [rsp + #16], R11 # spill | |
03a movq RDI, RSI # spill | |
03d call_leaf,runtime OSR_migration_end | |
No JVM State Info | |
# | |
04a testq RBP, RBP # ptr | |
04d je B76 P=0.001000 C=-1.000000 | |
04d | |
053 B2: # B103 B3 <- B1 Freq: 0.999 | |
053 movq R9, RBP # spill | |
056 movl R11, [RBP + #8 (8-bit)] # compressed klass ptr | |
05a cmpl R11, narrowoop: precise klass [J: 0x0000000004f4f988:Constant:exact * # compressed ptr | |
061 jne,u B103 P=0.000001 C=-1.000000 | |
061 | |
067 B3: # B4 <- B2 Freq: 0.998999 | |
067 movq R8, RBP # spill | |
06a # checkcastPP of R8 | |
06a | |
06a B4: # B77 B5 <- B3 B76 Freq: 0.999999 | |
06a testq RBX, RBX # ptr | |
06d je B77 P=0.001000 C=-1.000000 | |
06d | |
073 B5: # B103 B6 <- B4 Freq: 0.998999 | |
073 movl R10, [RBX + #8 (8-bit)] # compressed klass ptr | |
077 cmpl R10, narrowoop: precise klass [J: 0x0000000004f4f988:Constant:exact * # compressed ptr | |
07e jne,u B103 P=0.000001 C=-1.000000 | |
07e | |
084 B6: # B7 <- B5 Freq: 0.998998 | |
084 # checkcastPP of RBX | |
084 movq R10, RBX # spill | |
087 addq R10, #12 # ptr | |
08b | |
08b B7: # B75 B8 <- B6 B77 Freq: 0.999998 | |
08b cmpl R13, [RSP + #4 (32-bit)] | |
090 jge B75 P=0.016330 C=11451.000000 | |
090 | |
096 B8: # B9 <- B7 Freq: 0.983668 | |
096 movl RCX, R13 # spill | |
099 incl RCX # int | |
09b xorl R9, R9 # int | |
09e xorl RDI, RDI # int | |
0a0 cmpl RCX, R9 | |
0a3 cmovllt RCX, RDI # max | |
0a6 cmpl RCX, [RSP + #4 (32-bit)] | |
0aa movl RDI, [rsp + #4] # spill | |
0ae cmovlgt RCX, RDI # min | |
0ae | |
0b1 B9: # B94 B10 <- B8 B11 Loop: B9-B11 inner pre of N2716 Freq: 1.96733 | |
0b1 testq RBX, RBX # ptr | |
0b4 je B94 P=0.000001 C=-1.000000 | |
0b4 | |
0ba B10: # B95 B11 <- B9 Freq: 1.96733 | |
0ba movl R11, [R10] # range | |
0bd cmpl R13, R11 # unsigned | |
0c0 jnb,u B95 P=0.000001 C=-1.000000 | |
0c0 | |
0c6 B11: # B9 B12 <- B10 Freq: 1.96733 | |
0c6 incl R13 # int | |
0c9 cmpl R13, RCX | |
0cc jl,s B9 # loop end P=0.500000 C=11451.000000 | |
0cc | |
0ce B12: # B15 B13 <- B11 Freq: 0.983664 | |
0ce cmpl RDI, R11 | |
0d1 movl R10, RDI # spill | |
0d4 cmovlgt R10, R11 # min | |
0d8 movslq RCX, R13 # i2l | |
0db movl RAX, R10 # spill | |
0de decl RAX # int | |
0e0 movl RDX, #-2147483648 # int | |
0e5 cmpl R10, RAX | |
0e8 cmovll RAX, RDX # signed, int | |
0eb cmpl R13, RAX # cmpLTMask | |
setlt R10 | |
movzbl R10, R10 | |
negl R10 | |
0f9 movslq RDX, RAX # i2l | |
0fc subq RDX, RCX # long | |
0ff addq RDX, #1 # long | |
103 andq RDX, #-2 # long | |
107 movl RBP, RDX # l2i | |
109 andl RBP, R10 # int | |
10c addl RBP, R13 # int | |
10f movl R10, RDI # spill | |
112 cmpl RBP, R10 | |
115 jge,s B15 P=0.500000 C=-1.000000 | |
nop # 1 bytes pad for loops and calls | |
118 B13: # B96 B14 <- B12 B14 Loop: B13-B14 inner post of N2716 Freq: 0.983663 | |
118 cmpl RBP, R11 # unsigned | |
11b jnb,u B96 P=0.000001 C=-1.000000 | |
11b | |
121 B14: # B13 B15 <- B13 Freq: 0.983662 | |
121 incl RBP # int | |
123 movl R10, RDI # spill | |
126 cmpl RBP, R10 | |
129 jl,s B13 # loop end P=0.500000 C=11451.000000 | |
129 | |
12b B15: # B78 B16 <- B75 B12 B14 Freq: 0.999993 | |
12b | |
12b | |
12b # TLS is in R15 | |
12b movq R11, [R15 + #112 (8-bit)] # ptr | |
12f movq R10, R11 # spill | |
132 addq R10, #48 # ptr | |
136 # TLS is in R15 | |
136 cmpq R10, [R15 + #128 (32-bit)] # raw ptr | |
13d jnb,u B78 P=0.000100 C=-1.000000 | |
13d | |
143 B16: # B17 <- B15 Freq: 0.999893 | |
143 # TLS is in R15 | |
143 movq [R15 + #112 (8-bit)], R10 # ptr | |
147 PREFETCHNTA [R10 + #192 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
14f movq [R11], 0x0000000000000001 # ptr | |
156 PREFETCHNTA [R10 + #256 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
15e movl [R11 + #8 (8-bit)], narrowoop: precise klass [C: 0x0000000004f4f778:Constant:exact * # compressed ptr | |
166 PREFETCHNTA [R10 + #320 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
16e movl [R11 + #12 (8-bit)], #16 # int | |
176 PREFETCHNTA [R10 + #384 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
17e movl [rsp + #0], R9 # spill | |
17e | |
182 B17: # B41 B18 <- B79 B16 Freq: 0.999993 | |
182 | |
182 # checkcastPP of R11 | |
182 movq RBX, R11 # spill | |
185 addq RBX, #24 # ptr | |
189 movq R10, R11 # spill | |
18c addq R10, #16 # ptr | |
190 movq [rsp + #24], R10 # spill | |
195 movq [rsp + #8], R11 # spill | |
19a movl R10, [rsp + #16] # spill | |
19f negl R10 # int | |
1a2 movl [rsp + #4], R10 # spill | |
1a7 movl R10, narrowoop: char[int:4]<ciTypeArray length=4 type=<ciTypeArrayKlass name=[C ident=708 PERM address=0x4f4f778> ident=759 SCAVENGABLE address=0x4fe88c8> * # compressed ptr | |
1ad decode_heap_oop_not_null R11,R10 | |
1b1 leaq RBP, [R12 + R10 << 3 + #16] (compressed oop addressing) # ptr compressedoopoff32 | |
1b6 movq RDI, RBP # spill | |
1b9 movq RSI, [rsp + #24] # spill | |
1be movl RDX, #4 # long (unsigned 32-bit) | |
1c3 call_leaf_nofp,runtime jshort_disjoint_arraycopy | |
No JVM State Info | |
# | |
1d0 movq RDI, RBP # spill | |
1d3 movq RSI, RBX # spill | |
1d6 movl RDX, #4 # long (unsigned 32-bit) | |
1db call_leaf_nofp,runtime jshort_disjoint_arraycopy | |
No JVM State Info | |
# | |
1e8 movl R11, [rsp + #16] # spill | |
1ed cmpl R11, #-2147483648 | |
1f4 jne B41 P=0.500000 C=-1.000000 | |
1f4 | |
1fa B18: # B22 <- B17 Freq: 0.499997 | |
1fa movl RBX, #11 # int | |
1ff movl R10, #16 # int | |
205 movl R8, #1 # int | |
20b movl R9, #32 # int | |
211 movl R11, #32 # int | |
217 movl [rsp + #44], R10 # spill | |
21c movl [rsp + #40], R8 # spill | |
221 movl [rsp + #48], R9 # spill | |
226 jmp,s B22 | |
nop # 8 bytes pad for loops and calls | |
230 B19: # B20 <- B20 top-of-loop Freq: 499996 | |
230 incl R8 # int | |
233 | |
233 B20: # B19 B21 <- B43 B19 Loop: B20-B19 inner Freq: 499996 | |
233 movq RBX, int[int:10]<ciTypeArray length=10 type=<ciTypeArrayKlass name=[I ident=713 PERM address=0x4f4f948> ident=750 SCAVENGABLE address=0x4fe8568> * # ptr | |
23d movl RBX, [RBX + #16 + R8 << #2] # int | |
242 cmpl R10, RBX | |
245 jg,s B19 P=0.999999 C=-1.000000 | |
245 | |
247 B21: # B22 <- B20 Freq: 0.499997 | |
247 addl RCX, R8 # int | |
24a movl RBX, RCX # spill | |
24c incl RBX # int | |
24e addl RCX, #22 # int | |
251 movl [rsp + #16], R11 # spill | |
256 movl [rsp + #44], R9 # spill | |
25b movl [rsp + #40], RDI # spill | |
25f movl [rsp + #48], RSI # spill | |
263 movl R11, RCX # spill | |
263 | |
266 B22: # B101 B23 <- B18 B21 Freq: 0.999993 | |
266 movl R10, #116 # int | |
26c movq R9, [rsp + #8] # spill | |
271 movw [R9 + #32 (8-bit)], R10 # char/short | |
276 movl R8, #101 # int | |
27c movw [R9 + #34 (8-bit)], R8 # char/short | |
281 movq R9, java/lang/Class:exact * # ptr | |
28b movl RBP, [R9 + #116 (8-bit)] # compressed ptr ! Field java/lang/System.out | |
28f movl R9, #115 # int | |
295 movq RCX, [rsp + #8] # spill | |
29a movw [RCX + #36 (8-bit)], R9 # char/short | |
29f movw [RCX + #38 (8-bit)], R10 # char/short | |
2a4 movw [RCX + #40 (8-bit)], R10 # char/short | |
2a9 movw [RCX + #42 (8-bit)], R8 # char/short | |
2ae movw [RCX + #44 (8-bit)], R9 # char/short | |
2b3 movw [RCX + #46 (8-bit)], R10 # char/short | |
2b8 testl R11, R11 | |
2bb jl B101 P=0.000001 C=-1.000000 | |
2bb | |
2c1 B23: # B82 B24 <- B22 Freq: 0.999992 | |
2c1 cmpl R11, #524288 # unsigned | |
2c8 jnbe,u B82 P=0.000001 C=-1.000000 | |
2c8 | |
2ce B24: # B83 B25 <- B23 Freq: 0.999991 | |
2ce movl [rsp + #20], R11 # spill | |
2d3 # TLS is in R15 | |
2d3 movq R8, [R15 + #112 (8-bit)] # ptr | |
2d7 movslq R10, RBX # i2l | |
2da salq R10, #1 | |
2dd addq R10, #65 # long | |
2e1 andq R10, #-8 # long | |
2e5 movq R11, R8 # spill | |
2e8 addq R11, R10 # ptr | |
2eb # TLS is in R15 | |
2eb cmpq R11, [R15 + #128 (32-bit)] # raw ptr | |
2f2 jnb,u B83 P=0.000100 C=-1.000000 | |
2f2 | |
2f8 B25: # B26 <- B24 Freq: 0.999891 | |
2f8 # TLS is in R15 | |
2f8 movq [R15 + #112 (8-bit)], R11 # ptr | |
2fc PREFETCHNTA [R11 + #192 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
304 movq [R8], 0x0000000000000001 # ptr | |
30b PREFETCHNTA [R11 + #256 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
313 movl [R8 + #8 (8-bit)], narrowoop: precise klass [C: 0x0000000004f4f778:Constant:exact * # compressed ptr | |
31b movl R10, [rsp + #20] # spill | |
320 movl [R8 + #12 (8-bit)], R10 # int | |
324 PREFETCHNTA [R11 + #320 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
32c PREFETCHNTA [R11 + #384 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
32c | |
334 B26: # B31 B27 <- B84 B25 Freq: 0.999992 | |
334 | |
334 MEMBAR-storestore (empty encoding) | |
334 # checkcastPP of R8 | |
334 movq RSI, R8 # spill | |
337 addq RSI, #16 # ptr | |
33b movq [rsp + #32], R8 # spill | |
340 movl RDX, #21 # long (unsigned 32-bit) | |
345 movq RDI, char[int:21]<ciTypeArray length=21 type=<ciTypeArrayKlass name=[C ident=708 PERM address=0x4f4f778> ident=754 SCAVENGABLE address=0x4fe86e8> * # ptr | |
34f addq RDI, #16 # ptr | |
353 call_leaf_nofp,runtime jshort_disjoint_arraycopy | |
No JVM State Info | |
# | |
360 movl R10, [rsp + #16] # spill | |
365 cmpl R10, #-2147483648 | |
36c je,s B31 P=0.500000 C=-1.000000 | |
36c | |
36e B27: # B30 B28 <- B26 Freq: 0.499996 | |
36e testl R10, R10 | |
371 jge,s B30 P=0.500000 C=-1.000000 | |
371 | |
373 B28: # B29 <- B27 Freq: 0.249998 | |
373 movl R11, #45 # int | |
373 | |
379 B29: # B33 <- B28 B30 Freq: 0.499996 | |
379 movl RCX, [rsp + #20] # spill | |
37d jmp,s B33 | |
37d | |
37f B30: # B29 <- B27 Freq: 0.249998 | |
37f movq [rsp - #8], rax # 32-bit mem-mem spill | |
movl rax, [rsp + #16] | |
movl [rsp + #4], rax | |
movq rax, [rsp - #8] | |
391 xorl R11, R11 # int | |
394 jmp,s B29 | |
394 | |
396 B31: # B36 <- B26 Freq: 0.499996 | |
396 movq RSI, [rsp + #32] # spill | |
39b addq RSI, #58 # ptr | |
39f movq RDI, char[int:11]<ciTypeArray length=11 type=<ciTypeArrayKlass name=[C ident=708 PERM address=0x4f4f778> ident=756 SCAVENGABLE address=0x4fe87a8> * # ptr | |
3a9 addq RDI, #16 # ptr | |
3ad movl RDX, #11 # long (unsigned 32-bit) | |
3b2 call_leaf_nofp,runtime jshort_disjoint_arraycopy | |
No JVM State Info | |
# | |
3bf jmp,s B36 | |
nop # 15 bytes pad for loops and calls | |
3d0 B32: # B33 <- B33 top-of-loop Freq: 4.49996 | |
3d0 decl RCX # int | |
3d2 movl [rsp + #4], R8 # spill | |
3d2 | |
3d7 B33: # B32 B34 <- B29 B32 Loop: B33-B32 inner Freq: 4.99996 | |
3d7 movl R9, [rsp + #4] # spill | |
3dc sarl R9, #31 | |
3e0 movslq R10, [RSP + #4 (32-bit)] # int -> long | |
3e5 imulq R10, R10, #1717986919 # long | |
3ec sarq R10, #34 | |
3f0 movl R10, R10 # l2i | |
3f3 movl R8, R10 # spill | |
3f6 subl R8, R9 # int | |
3f9 movl RDI, R8 # spill | |
3fc sall RDI, #3 | |
3ff movl RDX, R8 # spill | |
402 sall RDX, #1 | |
404 addl RDX, RDI # int | |
406 movl RBX, [rsp + #4] # spill | |
40a subl RBX, RDX # int | |
40c addl RBX, #48 # int | |
40f movq RDI, [rsp + #32] # spill | |
414 movw [RDI + #14 + RCX << #1], RBX # char/short | |
419 cmpl R10, R9 | |
41c jne,s B32 P=0.900000 C=-1.000000 | |
41c | |
41e B34: # B36 B35 <- B33 Freq: 0.499996 | |
41e testl R11, R11 | |
421 je,s B36 P=0.500000 C=-1.000000 | |
421 | |
423 B35: # B36 <- B34 Freq: 0.249998 | |
423 addl RCX, #-2 # int | |
426 movw [RDI + #16 + RCX << #1], R11 # char/short | |
426 | |
42c B36: # B80 B37 <- B35 B34 B31 Freq: 0.999992 | |
42c # TLS is in R15 | |
42c movq R10, [R15 + #112 (8-bit)] # ptr | |
430 movq RDX, R10 # spill | |
433 addq R10, #32 # ptr | |
437 # TLS is in R15 | |
437 cmpq R10, [R15 + #128 (32-bit)] # raw ptr | |
43e jnb,u B80 P=0.000100 C=-1.000000 | |
43e | |
444 B37: # B38 <- B36 Freq: 0.999892 | |
444 # TLS is in R15 | |
444 movq [R15 + #112 (8-bit)], R10 # ptr | |
448 PREFETCHNTA [R10 + #192 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
450 movl R11, narrowoop: precise klass java/lang/String: 0x0000000004dacaf8:Constant:exact * # compressed ptr | |
456 movq R10, [R12 + R11 << 3 + #176] (compressed oop addressing) # ptr | |
45e movq [RDX], R10 # ptr | |
461 movl [RDX + #8 (8-bit)], narrowoop: precise klass java/lang/String: 0x0000000004dacaf8:Constant:exact * # compressed ptr | |
468 movl [RDX + #12 (8-bit)], R12 # int (R12_heapbase==0) | |
46c movq [RDX + #16 (8-bit)], R12 # long (R12_heapbase==0) | |
470 movq [RDX + #24 (8-bit)], R12 # long (R12_heapbase==0) | |
470 | |
474 B38: # B97 B39 <- B81 B37 Freq: 0.999992 | |
474 | |
474 MEMBAR-storestore (empty encoding) | |
474 # checkcastPP of RDX | |
474 movl R10, [rsp + #20] # spill | |
479 movl [RDX + #20 (8-bit)], R10 # int ! Field java/lang/String.count | |
47d movq R10, [rsp + #32] # spill | |
482 encode_heap_oop_not_null R10,R10 | |
5a4 movl [RDX + #12 (8-bit)], R10 # compressed ptr ! Field java/lang/String.value | |
5a8 testl RBP, RBP # compressed ptr | |
5aa je B97 P=0.000001 C=-1.000000 | |
5aa | |
5b0 B39: # B114 B40 <- B38 Freq: 0.999991 | |
5b0 decode_heap_oop_not_null RSI,RBP | |
nop # 3 bytes pad for loops and calls | |
5b7 call,static java.io.PrintStream::println | |
# Main::foo @ bci:140 L[0]=_ L[1]=_ L[2]=#ScObj0 L[3]=#32 L[4]=_ L[5]=_ L[6]=_ | |
# ScObj0 java/lang/String={ [value :0]=rsp + #8, [offset :1]=#0, [count :2]=#16, [hash :3]=#0 } | |
# OopMap{[8]=Oop [24]=Derived_oop_[8] off=1468} | |
5bc | |
5bc B40: # B46 <- B39 Freq: 0.999971 | |
# Block is sole successor of call | |
5bc xorl R9, R9 # int | |
5bf jmp,s B46 | |
5bf | |
5c1 B41: # B44 B42 <- B17 Freq: 0.499997 | |
5c1 testl R11, R11 | |
5c4 jge,s B44 P=0.500000 C=-1.000000 | |
5c4 | |
5c6 B42: # B43 <- B41 Freq: 0.249998 | |
5c6 movl R10, [rsp + #4] # spill | |
5cb movl RCX, #1 # int | |
5cb | |
5d0 B43: # B20 <- B42 B44 Freq: 0.499997 | |
5d0 xorl R8, R8 # int | |
5d3 movl R9, #16 # int | |
5d9 movl RDI, #1 # int | |
5de movl RSI, #32 # int | |
5e3 jmp B20 | |
5e3 | |
5e8 B44: # B43 <- B41 Freq: 0.249998 | |
5e8 movl R10, R11 # spill | |
5eb xorl RCX, RCX # int | |
5ed jmp,s B43 | |
nop # 1 bytes pad for loops and calls | |
5f0 B45: # B46 <- B46 top-of-loop Freq: 986865 | |
5f0 movl R10, [rsp + #40] # spill | |
5f5 incl R10 # int | |
5f8 movl R9, [rsp + #40] # spill | |
5fd movl [rsp + #40], R10 # spill | |
5fd | |
602 B46: # B45 B47 <- B40 B45 Loop: B46-B45 inner Freq: 986866 | |
602 movq R10, int[int:10]<ciTypeArray length=10 type=<ciTypeArrayKlass name=[I ident=713 PERM address=0x4f4f948> ident=750 SCAVENGABLE address=0x4fe8568> * # ptr | |
60c movl R10, [R10 + #16 + R9 << #2] # int | |
611 cmpl R10, #16 | |
615 jl,s B45 P=0.999999 C=-1.000000 | |
615 | |
617 B47: # B102 B48 <- B46 Freq: 0.999971 | |
617 movq R10, java/lang/Class:exact * # ptr | |
621 movl R10, [R10 + #116 (8-bit)] # compressed ptr ! Field java/lang/System.out | |
625 movl [rsp + #16], R10 # spill | |
62a movl RBP, R9 # spill | |
62d addl RBP, #18 # int | |
630 testl RBP, RBP | |
632 jl B102 P=0.000001 C=-1.000000 | |
632 | |
638 B48: # B102 B49 <- B47 Freq: 0.99997 | |
638 movl R10, R9 # spill | |
63b addl R10, #22 # int | |
63f testl R10, R10 | |
642 jl B102 P=0.000001 C=-1.000000 | |
642 | |
648 B49: # B51 <- B48 Freq: 0.999969 | |
648 xorl R11, R11 # int | |
64b jmp,s B51 | |
nop # 3 bytes pad for loops and calls | |
650 B50: # B51 <- B51 top-of-loop Freq: 986863 | |
650 incl R11 # int | |
653 | |
653 B51: # B50 B52 <- B49 B50 Loop: B51-B50 inner Freq: 986864 | |
653 movq R10, int[int:10]<ciTypeArray length=10 type=<ciTypeArrayKlass name=[I ident=713 PERM address=0x4f4f948> ident=750 SCAVENGABLE address=0x4fe8568> * # ptr | |
65d movl R10, [R10 + #16 + R11 << #2] # int | |
662 cmpl R10, #32 | |
666 jl,s B50 P=0.999999 C=-1.000000 | |
666 | |
668 B52: # B102 B53 <- B51 Freq: 0.999969 | |
668 addl R9, R11 # int | |
66b movl R10, R9 # spill | |
66e addl R10, #23 # int | |
672 testl R10, R10 | |
675 jl B102 P=0.000001 C=-1.000000 | |
675 | |
67b B53: # B87 B54 <- B52 Freq: 0.999968 | |
67b cmpl R10, #524288 # unsigned | |
682 jnbe,u B87 P=0.000001 C=-1.000000 | |
682 | |
688 B54: # B88 B55 <- B53 Freq: 0.999967 | |
688 movl [rsp + #4], R10 # spill | |
68d # TLS is in R15 | |
68d movq RBX, [R15 + #112 (8-bit)] # ptr | |
691 incl R9 # int | |
694 movslq R10, R9 # i2l | |
697 salq R10, #1 | |
69a addq R10, #67 # long | |
69e andq R10, #-8 # long | |
6a2 movq R11, RBX # spill | |
6a5 addq R11, R10 # ptr | |
6a8 # TLS is in R15 | |
6a8 cmpq R11, [R15 + #128 (32-bit)] # raw ptr | |
6af jnb,u B88 P=0.000100 C=-1.000000 | |
6af | |
6b5 B55: # B56 <- B54 Freq: 0.999867 | |
6b5 # TLS is in R15 | |
6b5 movq [R15 + #112 (8-bit)], R11 # ptr | |
6b9 PREFETCHNTA [R11 + #192 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
6c1 movq [RBX], 0x0000000000000001 # ptr | |
6c8 PREFETCHNTA [R11 + #256 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
6d0 movl [RBX + #8 (8-bit)], narrowoop: precise klass [C: 0x0000000004f4f778:Constant:exact * # compressed ptr | |
6d7 movl R8, [rsp + #4] # spill | |
6dc movl [RBX + #12 (8-bit)], R8 # int | |
6e0 PREFETCHNTA [R11 + #320 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
6e8 PREFETCHNTA [R11 + #384 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
6e8 | |
6f0 B56: # B58 <- B89 B55 Freq: 0.999968 | |
6f0 | |
6f0 MEMBAR-storestore (empty encoding) | |
6f0 # checkcastPP of RBX | |
6f0 movq RSI, RBX # spill | |
6f3 addq RSI, #16 # ptr | |
6f7 movl RDX, #17 # long (unsigned 32-bit) | |
6fc movq RDI, char[int:17]<ciTypeArray length=17 type=<ciTypeArrayKlass name=[C ident=708 PERM address=0x4f4f778> ident=757 SCAVENGABLE address=0x4fe8808> * # ptr | |
706 addq RDI, #16 # ptr | |
70a call_leaf_nofp,runtime jshort_disjoint_arraycopy | |
No JVM State Info | |
# | |
717 xorl R9, R9 # int | |
71a jmp,s B58 | |
nop # 4 bytes pad for loops and calls | |
720 B57: # B58 <- B58 top-of-loop Freq: 8.99971 | |
720 movl R9, R10 # spill | |
723 sarl R9, #31 | |
727 decl RBP # int | |
729 movl [rsp + #44], R10 # spill | |
729 | |
72e B58: # B57 B59 <- B56 B57 Loop: B58-B57 inner Freq: 9.99968 | |
72e movslq R10, [RSP + #44 (32-bit)] # int -> long | |
733 imulq R10, R10, #1717986919 # long | |
73a sarq R10, #34 | |
73e movl R11, R10 # l2i | |
741 movl R10, R11 # spill | |
744 subl R10, R9 # int | |
747 movl R8, R10 # spill | |
74a sall R8, #3 | |
74e movl RDI, R10 # spill | |
751 sall RDI, #1 | |
753 addl RDI, R8 # int | |
756 movl RCX, [rsp + #44] # spill | |
75a subl RCX, RDI # int | |
75c addl RCX, #48 # int | |
75f movw [RBX + #14 + RBP << #1], RCX # char/short | |
764 cmpl R11, R9 | |
767 jne,s B57 P=0.900000 C=-1.000000 | |
767 | |
769 B59: # B61 <- B58 Freq: 0.999968 | |
769 movslq R10, [RSP + #40 (32-bit)] # int -> long | |
76e movl R9, [rsp + #48] # spill | |
773 movw [RBX + #50 + R10 << #1], R9 # char/short | |
779 movl R8, #62 # int | |
77f movl R11, #60 # int | |
785 movw [RBX + #52 + R10 << #1], R11 # char/short | |
78b movw [RBX + #54 + R10 << #1], R8 # char/short | |
791 movw [RBX + #56 + R10 << #1], R9 # char/short | |
797 movl RCX, [rsp + #4] # spill | |
79b movq RBP, RBX # spill | |
79e jmp,s B61 | |
79e | |
7a0 B60: # B61 <- B61 top-of-loop Freq: 8.99971 | |
7a0 movl R8, R10 # spill | |
7a3 sarl R8, #31 | |
7a7 decl RCX # int | |
7a9 movl [rsp + #0], R8 # spill | |
7ad movl R9, R10 # spill | |
7ad | |
7b0 B61: # B60 B62 <- B59 B60 Loop: B61-B60 inner Freq: 9.99968 | |
7b0 movl R8, R9 # spill | |
7b3 movslq R10, R9 # i2l | |
7b6 imulq R10, R10, #1717986919 # long | |
7bd sarq R10, #34 | |
7c1 movl R11, R10 # l2i | |
7c4 movl R10, R11 # spill | |
7c7 subl R10, [RSP + #0 (32-bit)] # int | |
7cb movl R9, R10 # spill | |
7ce sall R9, #3 | |
7d2 movl RBX, R10 # spill | |
7d5 sall RBX, #1 | |
7d7 addl RBX, R9 # int | |
7da subl R8, RBX # int | |
7dd addl R8, #48 # int | |
7e1 movw [RBP + #14 + RCX << #1], R8 # char/short | |
7e7 cmpl R11, [RSP + #0 (32-bit)] | |
7eb jne,s B60 P=0.900000 C=-1.000000 | |
7eb | |
7ed B62: # B85 B63 <- B61 Freq: 0.999968 | |
7ed # TLS is in R15 | |
7ed movq RDX, [R15 + #112 (8-bit)] # ptr | |
7f1 movq R10, RDX # spill | |
7f4 addq R10, #32 # ptr | |
7f8 # TLS is in R15 | |
7f8 cmpq R10, [R15 + #128 (32-bit)] # raw ptr | |
7ff jnb,u B85 P=0.000100 C=-1.000000 | |
7ff | |
805 B63: # B64 <- B62 Freq: 0.999868 | |
805 # TLS is in R15 | |
805 movq [R15 + #112 (8-bit)], R10 # ptr | |
809 PREFETCHNTA [R10 + #192 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
811 movl R10, narrowoop: precise klass java/lang/String: 0x0000000004dacaf8:Constant:exact * # compressed ptr | |
817 movq R10, [R12 + R10 << 3 + #176] (compressed oop addressing) # ptr | |
81f movq [RDX], R10 # ptr | |
822 movl [RDX + #8 (8-bit)], narrowoop: precise klass java/lang/String: 0x0000000004dacaf8:Constant:exact * # compressed ptr | |
829 movl [RDX + #12 (8-bit)], R12 # int (R12_heapbase==0) | |
82d movq [RDX + #16 (8-bit)], R12 # long (R12_heapbase==0) | |
831 movq [RDX + #24 (8-bit)], R12 # long (R12_heapbase==0) | |
831 | |
835 B64: # B98 B65 <- B86 B63 Freq: 0.999968 | |
835 | |
835 MEMBAR-storestore (empty encoding) | |
835 # checkcastPP of RDX | |
835 movl R11, [rsp + #4] # spill | |
83a movl [RDX + #20 (8-bit)], R11 # int ! Field java/lang/String.count | |
83e encode_heap_oop_not_null R10,RBP | |
963 movl [RDX + #12 (8-bit)], R10 # compressed ptr ! Field java/lang/String.value | |
967 movl R10, [rsp + #16] # spill | |
96c testl R10, R10 # compressed ptr | |
96f je B98 P=0.000001 C=-1.000000 | |
96f | |
975 B65: # B115 B66 <- B64 Freq: 0.999967 | |
975 decode_heap_oop_not_null RSI,R10 | |
nop # 2 bytes pad for loops and calls | |
97b call,static java.io.PrintStream::println | |
# Main::foo @ bci:177 L[0]=_ L[1]=_ L[2]=#ScObj0 L[3]=_ L[4]=_ L[5]=_ L[6]=_ | |
# ScObj0 java/lang/String={ [value :0]=rsp + #8, [offset :1]=#0, [count :2]=#16, [hash :3]=#0 } | |
# OopMap{[8]=Oop [24]=Derived_oop_[8] off=2432} | |
980 | |
980 B66: # B99 B67 <- B65 Freq: 0.999947 | |
# Block is sole successor of call | |
980 movq R10, java/lang/Class:exact * # ptr | |
98a movl R10, [R10 + #116 (8-bit)] # compressed ptr ! Field java/lang/System.out | |
98e testl R10, R10 # compressed ptr | |
991 je B99 P=0.000001 C=-1.000000 | |
991 | |
997 B67: # B116 B68 <- B66 Freq: 0.999946 | |
997 decode_heap_oop_not_null RSI,R10 | |
99b movq RDX, java/lang/String:exact * # ptr | |
nop # 2 bytes pad for loops and calls | |
9a7 call,static java.io.PrintStream::println | |
# Main::foo @ bci:185 L[0]=_ L[1]=_ L[2]=#ScObj0 L[3]=_ L[4]=_ L[5]=_ L[6]=_ | |
# ScObj0 java/lang/String={ [value :0]=rsp + #8, [offset :1]=#0, [count :2]=#16, [hash :3]=#0 } | |
# OopMap{[8]=Oop [24]=Derived_oop_[8] off=2476} | |
9ac | |
9ac B68: # B90 B69 <- B67 Freq: 0.999926 | |
# Block is sole successor of call | |
9ac # TLS is in R15 | |
9ac movq R11, [R15 + #112 (8-bit)] # ptr | |
9b0 movq R10, java/lang/Class:exact * # ptr | |
9ba movl RBP, [R10 + #116 (8-bit)] # compressed ptr ! Field java/lang/System.out | |
9be movq R10, R11 # spill | |
9c1 addq R10, #72 # ptr | |
9c5 # TLS is in R15 | |
9c5 cmpq R10, [R15 + #128 (32-bit)] # raw ptr | |
9cc jnb,u B90 P=0.000100 C=-1.000000 | |
9cc | |
9d2 B69: # B70 <- B68 Freq: 0.999826 | |
9d2 # TLS is in R15 | |
9d2 movq [R15 + #112 (8-bit)], R10 # ptr | |
9d6 PREFETCHNTA [R10 + #192 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
9de movq [R11], 0x0000000000000001 # ptr | |
9e5 PREFETCHNTA [R10 + #256 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
9ed movl [R11 + #8 (8-bit)], narrowoop: precise klass [C: 0x0000000004f4f778:Constant:exact * # compressed ptr | |
9f5 PREFETCHNTA [R10 + #320 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
9fd movl [R11 + #12 (8-bit)], #28 # int | |
a05 PREFETCHNTA [R10 + #384 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
a05 | |
a0d B70: # B92 B71 <- B91 B69 Freq: 0.999926 | |
a0d | |
a0d MEMBAR-storestore (empty encoding) | |
a0d # checkcastPP of R11 | |
a0d movq R13, R11 # spill | |
a10 addq R13, #38 # ptr | |
a14 movq RSI, R11 # spill | |
a17 addq RSI, #16 # ptr | |
a1b movq [rsp + #0], R11 # spill | |
a1f movl RBX, #34 # int | |
a24 movq RDI, char[int:11]<ciTypeArray length=11 type=<ciTypeArrayKlass name=[C ident=708 PERM address=0x4f4f778> ident=751 SCAVENGABLE address=0x4fe85c8> * # ptr | |
a2e addq RDI, #16 # ptr | |
a32 movl RDX, #11 # long (unsigned 32-bit) | |
a37 call_leaf_nofp,runtime jshort_disjoint_arraycopy | |
No JVM State Info | |
# | |
a44 movq RDI, [rsp + #24] # spill | |
a49 movq RSI, R13 # spill | |
a4c movl RDX, #16 # long (unsigned 32-bit) | |
a51 call_leaf_nofp,runtime jshort_disjoint_arraycopy | |
No JVM State Info | |
# | |
a5e movq R10, [rsp + #0] # spill | |
a62 movw [R10 + #70 (8-bit)], RBX # char/short | |
a67 # TLS is in R15 | |
a67 movq RDX, [R15 + #112 (8-bit)] # ptr | |
a6b movq R10, RDX # spill | |
a6e addq R10, #32 # ptr | |
a72 # TLS is in R15 | |
a72 cmpq R10, [R15 + #128 (32-bit)] # raw ptr | |
a79 jnb,u B92 P=0.000100 C=-1.000000 | |
a79 | |
a7f B71: # B72 <- B70 Freq: 0.999826 | |
a7f # TLS is in R15 | |
a7f movq [R15 + #112 (8-bit)], R10 # ptr | |
a83 PREFETCHNTA [R10 + #192 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
a8b movl R11, narrowoop: precise klass java/lang/String: 0x0000000004dacaf8:Constant:exact * # compressed ptr | |
a91 movq R10, [R12 + R11 << 3 + #176] (compressed oop addressing) # ptr | |
a99 movq [RDX], R10 # ptr | |
a9c movl [RDX + #8 (8-bit)], narrowoop: precise klass java/lang/String: 0x0000000004dacaf8:Constant:exact * # compressed ptr | |
aa3 movl [RDX + #12 (8-bit)], R12 # int (R12_heapbase==0) | |
aa7 movq [RDX + #24 (8-bit)], R12 # long (R12_heapbase==0) | |
aa7 | |
aab B72: # B100 B73 <- B93 B71 Freq: 0.999926 | |
aab movq R10, [rsp + #0] # spill | |
aaf encode_heap_oop_not_null R11,R10 | |
bd4 movq R10, #120259084288 # long | |
bde movq [RDX + #16 (8-bit)], R10 # long | |
be2 | |
be2 MEMBAR-storestore (empty encoding) | |
be2 # checkcastPP of RDX | |
be2 movl [RDX + #12 (8-bit)], R11 # compressed ptr ! Field java/lang/String.value | |
be6 testl RBP, RBP # compressed ptr | |
be8 je B100 P=0.000001 C=-1.000000 | |
be8 | |
bee B73: # B117 B74 <- B72 Freq: 0.999925 | |
bee decode_heap_oop_not_null RSI,RBP | |
nop # 1 bytes pad for loops and calls | |
bf3 call,static java.io.PrintStream::println | |
# Main::foo @ bci:215 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ | |
# OopMap{off=3064} | |
bf8 | |
bf8 B74: # N1517 <- B73 Freq: 0.999905 | |
# Block is sole successor of call | |
bf8 addq rsp, 80 # Destroy frame | |
popq rbp | |
testl rax, [rip + #offset_to_poll_page] # Safepoint: poll for GC | |
c03 ret | |
c03 | |
c04 B75: # B15 <- B7 Freq: 0.0163304 | |
c04 xorl R9, R9 # int | |
c07 jmp B15 | |
c07 | |
c0c B76: # B4 <- B1 Freq: 0.000999987 | |
c0c xorl R8, R8 # ptr | |
c0f movq R9, RBP # spill | |
c12 jmp B4 | |
c12 | |
c17 B77: # B7 <- B4 Freq: 0.000999986 | |
c17 movl R10, NULL+12 # ptr (positive 32-bit) | |
c1d xorl RBX, RBX # ptr | |
c1f jmp B7 | |
c1f | |
c24 B78: # B104 B79 <- B15 Freq: 0.000100016 | |
c24 movl [rsp + #0], R9 # spill | |
c28 movq RBP, R8 # spill | |
c2b movq RSI, precise klass [C: 0x0000000004f4f778:Constant:exact * # ptr | |
c35 movl RDX, #16 # int | |
nop # 1 bytes pad for loops and calls | |
c3b call,static wrapper for: _new_array_Java | |
# Main::foo @ bci:41 L[0]=RBP L[1]=rsp + #16 L[2]=#Ptr0x0000000004f89b88 L[3]=#4 L[4]=_ L[5]=_ L[6]=_ | |
# OopMap{rbp=Oop off=3136} | |
c40 | |
c40 B79: # B17 <- B78 Freq: 0.000100014 | |
# Block is sole successor of call | |
c40 movq R11, RAX # spill | |
c43 jmp B17 | |
c43 | |
c48 B80: # B112 B81 <- B36 Freq: 0.000100016 | |
c48 movq RSI, precise klass java/lang/String: 0x0000000004dacaf8:Constant:exact * # ptr | |
nop # 1 bytes pad for loops and calls | |
c53 call,static wrapper for: _new_instance_Java | |
# Main::foo @ bci:121 L[0]=_ L[1]=rsp + #16 L[2]=#ScObj0 L[3]=#32 L[4]=_ L[5]=_ L[6]=_ STK[0]=RBP | |
# ScObj0 java/lang/String={ [value :0]=rsp + #8, [offset :1]=#0, [count :2]=#16, [hash :3]=#0 } | |
# OopMap{rbp=NarrowOop [8]=Oop [24]=Derived_oop_[8] [32]=Oop off=3160} | |
c58 | |
c58 B81: # B38 <- B80 Freq: 0.000100014 | |
# Block is sole successor of call | |
c58 movq RDX, RAX # spill | |
c5b jmp B38 | |
c5b | |
c60 B82: # B83 <- B23 Freq: 1.01327e-06 | |
c60 movl [rsp + #20], R11 # spill | |
c60 | |
c65 B83: # B111 B84 <- B82 B24 Freq: 0.000101029 | |
c65 movq RSI, precise klass [C: 0x0000000004f4f778:Constant:exact * # ptr | |
c6f movl RDX, [rsp + #20] # spill | |
c73 call,static wrapper for: _new_array_Java | |
# Main::foo @ bci:121 L[0]=_ L[1]=rsp + #16 L[2]=#ScObj0 L[3]=#32 L[4]=_ L[5]=_ L[6]=_ STK[0]=RBP | |
# ScObj0 java/lang/String={ [value :0]=rsp + #8, [offset :1]=#0, [count :2]=#16, [hash :3]=#0 } | |
# OopMap{rbp=NarrowOop [8]=Oop [24]=Derived_oop_[8] off=3192} | |
c78 | |
c78 B84: # B26 <- B83 Freq: 0.000101027 | |
# Block is sole successor of call | |
c78 movq R8, RAX # spill | |
c7b jmp B26 | |
c7b | |
c80 B85: # B109 B86 <- B62 Freq: 0.000100013 | |
c80 movq RSI, precise klass java/lang/String: 0x0000000004dacaf8:Constant:exact * # ptr | |
nop # 1 bytes pad for loops and calls | |
c8b call,static wrapper for: _new_instance_Java | |
# Main::foo @ bci:146 L[0]=_ L[1]=_ L[2]=#ScObj0 L[3]=#32 L[4]=_ L[5]=_ L[6]=_ STK[0]=rsp + #16 | |
# ScObj0 java/lang/String={ [value :0]=rsp + #8, [offset :1]=#0, [count :2]=#16, [hash :3]=#0 } | |
# OopMap{rbp=Oop [8]=Oop [16]=NarrowOop [24]=Derived_oop_[8] off=3216} | |
c90 | |
c90 B86: # B64 <- B85 Freq: 0.000100011 | |
# Block is sole successor of call | |
c90 movq RDX, RAX # spill | |
c93 jmp B64 | |
c93 | |
c98 B87: # B88 <- B53 Freq: 1.01325e-06 | |
c98 movl [rsp + #4], R10 # spill | |
c98 | |
c9d B88: # B108 B89 <- B87 B54 Freq: 0.000101027 | |
c9d movq RSI, precise klass [C: 0x0000000004f4f778:Constant:exact * # ptr | |
ca7 movl RDX, [rsp + #4] # spill | |
cab call,static wrapper for: _new_array_Java | |
# Main::foo @ bci:146 L[0]=_ L[1]=_ L[2]=#ScObj0 L[3]=#32 L[4]=_ L[5]=_ L[6]=_ STK[0]=rsp + #16 | |
# ScObj0 java/lang/String={ [value :0]=rsp + #8, [offset :1]=#0, [count :2]=#16, [hash :3]=#0 } | |
# OopMap{[8]=Oop [16]=NarrowOop [24]=Derived_oop_[8] off=3248} | |
cb0 | |
cb0 B89: # B56 <- B88 Freq: 0.000101025 | |
# Block is sole successor of call | |
cb0 movq RBX, RAX # spill | |
cb3 jmp B56 | |
cb3 | |
cb8 B90: # B106 B91 <- B68 Freq: 0.000100009 | |
cb8 movq RSI, precise klass [C: 0x0000000004f4f778:Constant:exact * # ptr | |
cc2 movl RDX, #28 # int | |
cc7 call,static wrapper for: _new_array_Java | |
# Main::foo @ bci:191 L[0]=_ L[1]=_ L[2]=#ScObj0 L[3]=_ L[4]=_ L[5]=_ L[6]=_ STK[0]=RBP | |
# ScObj0 java/lang/String={ [value :0]=rsp + #8, [offset :1]=#0, [count :2]=#16, [hash :3]=#0 } | |
# OopMap{rbp=NarrowOop [8]=Oop [24]=Derived_oop_[8] off=3276} | |
ccc | |
ccc B91: # B70 <- B90 Freq: 0.000100007 | |
# Block is sole successor of call | |
ccc movq R11, RAX # spill | |
ccf jmp B70 | |
ccf | |
cd4 B92: # B105 B93 <- B70 Freq: 0.000100009 | |
cd4 movq RSI, precise klass java/lang/String: 0x0000000004dacaf8:Constant:exact * # ptr | |
nop # 1 bytes pad for loops and calls | |
cdf call,static wrapper for: _new_instance_Java | |
# Main::foo @ bci:191 L[0]=_ L[1]=_ L[2]=#ScObj0 L[3]=_ L[4]=_ L[5]=_ L[6]=_ STK[0]=RBP | |
# ScObj0 java/lang/String={ [value :0]=rsp + #8, [offset :1]=#0, [count :2]=#16, [hash :3]=#0 } | |
# OopMap{rbp=NarrowOop [0]=Oop [8]=Oop off=3300} | |
ce4 | |
ce4 B93: # B72 <- B92 Freq: 0.000100007 | |
# Block is sole successor of call | |
ce4 movq RDX, RAX # spill | |
ce7 jmp B72 | |
ce7 | |
cec B94: # N1517 <- B9 Freq: 1.99346e-06 | |
cec movl RSI, #-10 # int | |
cf1 movl RBP, R13 # spill | |
nop # 3 bytes pad for loops and calls | |
cf7 call,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile') | |
# Main::foo @ bci:24 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ STK[0]=#NULL STK[1]=RBP | |
# OopMap{off=3324} | |
cfc int3 # ShouldNotReachHere | |
cfc | |
d09 B95: # B96 <- B10 Freq: 1.99345e-06 | |
d09 movl RBP, R13 # spill | |
d09 | |
d0c B96: # N1517 <- B13 B95 Freq: 2.99018e-06 | |
d0c movl RSI, #-28 # int | |
d11 movq [rsp + #8], RBX # spill | |
d16 movq [rsp + #24], R8 # spill | |
d1b movl [rsp + #20], RDI # spill | |
d1f call,static wrapper for: uncommon_trap(reason='range_check' action='make_not_entrant') | |
# Main::foo @ bci:24 L[0]=rsp + #24 L[1]=rsp + #16 L[2]=rsp + #8 L[3]=rsp + #20 L[4]=RBP L[5]=_ L[6]=_ STK[0]=rsp + #8 STK[1]=RBP | |
# OopMap{[8]=Oop [24]=Oop off=3364} | |
d24 int3 # ShouldNotReachHere | |
d24 | |
d31 B97: # N1517 <- B38 Freq: 1.01327e-06 | |
d31 movl RSI, #-10 # int | |
d36 movq RBP, RDX # spill | |
nop # 2 bytes pad for loops and calls | |
d3b call,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile') | |
# Main::foo @ bci:140 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ STK[0]=#NULL STK[1]=RBP | |
# OopMap{rbp=Oop off=3392} | |
d40 int3 # ShouldNotReachHere | |
d40 | |
d4d B98: # N1517 <- B64 Freq: 1.01325e-06 | |
d4d movl RSI, #-10 # int | |
d52 movq RBP, RDX # spill | |
nop # 2 bytes pad for loops and calls | |
d57 call,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile') | |
# Main::foo @ bci:177 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ STK[0]=#NULL STK[1]=RBP | |
# OopMap{rbp=Oop off=3420} | |
d5c int3 # ShouldNotReachHere | |
d5c | |
d69 B99: # N1517 <- B66 Freq: 1.01323e-06 | |
d69 movl RSI, #-10 # int | |
nop # 1 bytes pad for loops and calls | |
d6f call,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile') | |
# Main::foo @ bci:185 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ STK[0]=#NULL STK[1]=#Ptr0x0000000004f8b228 | |
# OopMap{off=3444} | |
d74 int3 # ShouldNotReachHere | |
d74 | |
d81 B100: # N1517 <- B72 Freq: 1.0132e-06 | |
d81 movl RSI, #-10 # int | |
d86 movq RBP, RDX # spill | |
nop # 2 bytes pad for loops and calls | |
d8b call,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile') | |
# Main::foo @ bci:215 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ STK[0]=#NULL STK[1]=RBP | |
# OopMap{rbp=Oop off=3472} | |
d90 int3 # ShouldNotReachHere | |
d90 | |
d9d B101: # N1517 <- B22 Freq: 9.99993e-07 | |
d9d movl RSI, #-52 # int | |
nop # 1 bytes pad for loops and calls | |
da3 call,static wrapper for: uncommon_trap(reason='intrinsic' action='make_not_entrant') | |
# Main::foo @ bci:121 L[0]=_ L[1]=rsp + #16 L[2]=#ScObj0 L[3]=#32 L[4]=_ L[5]=_ L[6]=_ STK[0]=RBP | |
# ScObj0 java/lang/String={ [value :0]=rsp + #8, [offset :1]=#0, [count :2]=#16, [hash :3]=#0 } | |
# OopMap{rbp=NarrowOop [8]=Oop off=3496} | |
da8 int3 # ShouldNotReachHere | |
da8 | |
db5 B102: # N1517 <- B47 B48 B52 Freq: 2.99991e-06 | |
db5 movl RSI, #-52 # int | |
dba movl RBP, [rsp + #16] # spill | |
nop # 1 bytes pad for loops and calls | |
dbf call,static wrapper for: uncommon_trap(reason='intrinsic' action='make_not_entrant') | |
# Main::foo @ bci:146 L[0]=_ L[1]=_ L[2]=#ScObj0 L[3]=#32 L[4]=_ L[5]=_ L[6]=_ STK[0]=RBP | |
# ScObj0 java/lang/String={ [value :0]=rsp + #8, [offset :1]=#0, [count :2]=#16, [hash :3]=#0 } | |
# OopMap{rbp=NarrowOop [8]=Oop off=3524} | |
dc4 int3 # ShouldNotReachHere | |
dc4 | |
dd1 B103: # N1517 <- B2 B5 Freq: 1.998e-06 | |
dd1 movl RSI, #-83 # int | |
dd6 movq RBP, RBX # spill | |
dd9 movl [rsp + #0], R13 # spill | |
ddd movq [rsp + #8], R9 # spill | |
nop # 1 bytes pad for loops and calls | |
de3 call,static wrapper for: uncommon_trap(reason='unreached' action='reinterpret') | |
# Main::foo @ bci:15 L[0]=rsp + #8 L[1]=rsp + #16 L[2]=RBP L[3]=rsp + #4 L[4]=rsp + #0 L[5]=_ L[6]=_ | |
# OopMap{rbp=Oop [8]=Oop off=3560} | |
de8 int3 # ShouldNotReachHere | |
de8 | |
df5 B104: # B118 <- B78 Freq: 1.00016e-09 | |
df5 # exception oop is in rax; no code emitted | |
df5 movq RSI, RAX # spill | |
df8 jmp,s B118 | |
df8 | |
dfa B105: # B107 <- B92 Freq: 1.00009e-09 | |
dfa # exception oop is in rax; no code emitted | |
dfa jmp,s B107 | |
dfa | |
dfc B106: # B107 <- B90 Freq: 1.00009e-09 | |
dfc # exception oop is in rax; no code emitted | |
dfc | |
dfc B107: # B118 <- B106 B105 Freq: 2.00018e-09 | |
dfc movq RSI, RAX # spill | |
dff jmp,s B118 | |
dff | |
e01 B108: # B110 <- B88 Freq: 1.01027e-09 | |
e01 # exception oop is in rax; no code emitted | |
e01 jmp,s B110 | |
e01 | |
e03 B109: # B110 <- B85 Freq: 1.00013e-09 | |
e03 # exception oop is in rax; no code emitted | |
e03 | |
e03 B110: # B118 <- B108 B109 Freq: 2.0104e-09 | |
e03 movq RSI, RAX # spill | |
e06 jmp,s B118 | |
e06 | |
e08 B111: # B113 <- B83 Freq: 1.01029e-09 | |
e08 # exception oop is in rax; no code emitted | |
e08 jmp,s B113 | |
e08 | |
e0a B112: # B113 <- B80 Freq: 1.00016e-09 | |
e0a # exception oop is in rax; no code emitted | |
e0a | |
e0a B113: # B118 <- B111 B112 Freq: 2.01045e-09 | |
e0a movq RSI, RAX # spill | |
e0d jmp,s B118 | |
e0d | |
e0f B114: # B118 <- B39 Freq: 9.99991e-06 | |
e0f # exception oop is in rax; no code emitted | |
e0f movq RSI, RAX # spill | |
e12 jmp,s B118 | |
e12 | |
e14 B115: # B118 <- B65 Freq: 9.99967e-06 | |
e14 # exception oop is in rax; no code emitted | |
e14 movq RSI, RAX # spill | |
e17 jmp,s B118 | |
e17 | |
e19 B116: # B118 <- B67 Freq: 9.99946e-06 | |
e19 # exception oop is in rax; no code emitted | |
e19 movq RSI, RAX # spill | |
e1c jmp,s B118 | |
e1c | |
e1e B117: # B118 <- B73 Freq: 9.99925e-06 | |
e1e # exception oop is in rax; no code emitted | |
e1e movq RSI, RAX # spill | |
e1e | |
e21 B118: # N1517 <- B117 B107 B116 B115 B110 B114 B113 B104 Freq: 4.00053e-05 | |
e21 addq rsp, 80 # Destroy frame | |
popq rbp | |
e26 jmp rethrow_stub | |
e26 | |
Failed at iteration: 241 | |
Length mismatch: 16 <> 32 | |
Expected: "testtesttesttesttesttesttesttest" | |
Actual: "nullnulltesttest" | |
try standard compilation | |
559 1 b Main::foo (225 bytes) | |
{method} | |
- klass: {other class} | |
- this oop: 0x0000000604249508 | |
- method holder: 'Main' | |
- constants: 0x0000000604248e28 constant pool [104] for 'Main' cache=0x00000006042498f8 | |
- access: 0xc100000a private static | |
- name: 'foo' | |
- signature: '()V' | |
- max stack: 3 | |
- max locals: 7 | |
- size of params: 0 | |
- method size: 17 | |
- vtable index: -2 | |
- i2i entry: 0x00002aaaab3541a0 | |
- adapter: 0x0000000004e81178 | |
- compiled entry 0x00002aaaab40242d | |
- code size: 225 | |
- code start: 0x00000006042493a8 | |
- code end (excl): 0x0000000604249489 | |
- method data: 0x000000060424a308 | |
- checked ex length: 0 | |
- linenumber start: 0x0000000604249489 | |
- localvar length: 8 | |
- localvar start: 0x00000006042494a6 | |
# | |
# void ( ) | |
# | |
# -- Old rsp -- Framesize: 80 -- | |
#r089 rsp+76: in_preserve | |
#r088 rsp+72: return address | |
#r087 rsp+68: in_preserve | |
#r086 rsp+64: saved fp register | |
#r085 rsp+60: pad2, stack alignment | |
#r084 rsp+56: pad2, stack alignment | |
#r083 rsp+52: Fixed slot 1 | |
#r082 rsp+48: Fixed slot 0 | |
#r101 rsp+44: spill | |
#r100 rsp+40: spill | |
#r099 rsp+36: spill | |
#r098 rsp+32: spill | |
#r097 rsp+28: spill | |
#r096 rsp+24: spill | |
#r095 rsp+20: spill | |
#r094 rsp+16: spill | |
#r093 rsp+12: spill | |
#r092 rsp+ 8: spill | |
#r091 rsp+ 4: spill | |
#r090 rsp+ 0: spill | |
# | |
abababab N1: # B1 <- B62 B59 B64 B44 B61 B60 B63 B79 Freq: 1 | |
abababab | |
000 B1: # B45 B2 <- BLOCK HEAD IS JUNK Freq: 1 | |
000 # stack bang | |
pushq rbp # Save rbp | |
subq rsp, #64 # Create frame | |
00c | |
00c | |
00c # TLS is in R15 | |
00c movq RBX, [R15 + #112 (8-bit)] # ptr | |
010 movq R10, RBX # spill | |
013 addq R10, #48 # ptr | |
017 # TLS is in R15 | |
017 cmpq R10, [R15 + #128 (32-bit)] # raw ptr | |
01e jnb,u B45 P=0.000100 C=-1.000000 | |
01e | |
024 B2: # B3 <- B1 Freq: 0.9999 | |
024 # TLS is in R15 | |
024 movq [R15 + #112 (8-bit)], R10 # ptr | |
028 PREFETCHNTA [R10 + #192 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
030 movq [RBX], 0x0000000000000001 # ptr | |
037 PREFETCHNTA [R10 + #256 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
03f movl [RBX + #8 (8-bit)], narrowoop: precise klass [C: 0x0000000004f4f778:Constant:exact * # compressed ptr | |
046 PREFETCHNTA [R10 + #320 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
04e movl [RBX + #12 (8-bit)], #16 # int | |
055 PREFETCHNTA [R10 + #384 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
055 | |
05d B3: # B5 <- B46 B2 Freq: 1 | |
05d | |
05d # checkcastPP of RBX | |
05d movq RBP, RBX # spill | |
060 addq RBP, #24 # ptr | |
064 movq R10, RBX # spill | |
067 addq R10, #16 # ptr | |
06b movq [rsp + #0], R10 # spill | |
06f movl R10, narrowoop: char[int:4]<ciTypeArray length=4 type=<ciTypeArrayKlass name=[C ident=708 PERM address=0x4f4f778> ident=759 SCAVENGABLE address=0x51fb3c8> * # compressed ptr | |
075 decode_heap_oop_not_null R11,R10 | |
079 leaq R13, [R12 + R10 << 3 + #16] (compressed oop addressing) # ptr compressedoopoff32 | |
07e movq RDI, R13 # spill | |
081 movq RSI, [rsp + #0] # spill | |
085 movl RDX, #4 # long (unsigned 32-bit) | |
08a call_leaf_nofp,runtime jshort_disjoint_arraycopy | |
No JVM State Info | |
# | |
097 movq RDI, R13 # spill | |
09a movq RSI, RBP # spill | |
09d movl RDX, #4 # long (unsigned 32-bit) | |
0a2 call_leaf_nofp,runtime jshort_disjoint_arraycopy | |
No JVM State Info | |
# | |
0af xorl RDI, RDI # int | |
0b1 movl R11, #16 # int | |
0b7 xorl R8, R8 # int | |
0ba jmp,s B5 | |
nop # 4 bytes pad for loops and calls | |
0c0 B4: # B5 <- B5 top-of-loop Freq: 986894 | |
0c0 incl RDI # int | |
0c2 | |
0c2 B5: # B4 B6 <- B3 B4 Loop: B5-B4 inner Freq: 986895 | |
0c2 movq R10, int[int:10]<ciTypeArray length=10 type=<ciTypeArrayKlass name=[I ident=713 PERM address=0x4f4f948> ident=750 SCAVENGABLE address=0x51fb068> * # ptr | |
0cc movl R10, [R10 + #16 + RDI << #2] # int | |
0d1 testl R10, R10 | |
0d4 jl,s B4 P=0.999999 C=-1.000000 | |
0d4 | |
0d6 B6: # B63 B7 <- B5 Freq: 1 | |
0d6 movl R9, RDI # spill | |
0d9 addl R9, #22 # int | |
0dd movl RSI, #116 # int | |
0e2 movq RCX, RBX # spill | |
0e5 movw [RBX + #32 (8-bit)], RSI # char/short | |
0e9 movl R10, #101 # int | |
0ef movw [RBX + #34 (8-bit)], R10 # char/short | |
0f4 movq RBX, java/lang/Class:exact * # ptr | |
0fe movl RDX, [RBX + #116 (8-bit)] # compressed ptr ! Field java/lang/System.out | |
101 movl [rsp + #28], RDX # spill | |
105 movl RBX, #115 # int | |
10a movw [RCX + #36 (8-bit)], RBX # char/short | |
10e movw [RCX + #38 (8-bit)], RSI # char/short | |
112 movw [RCX + #40 (8-bit)], RSI # char/short | |
116 movw [RCX + #42 (8-bit)], R10 # char/short | |
11b movw [RCX + #44 (8-bit)], RBX # char/short | |
11f movw [RCX + #46 (8-bit)], RSI # char/short | |
123 testl R9, R9 | |
126 jl B63 P=0.000001 C=-1.000000 | |
126 | |
12c B7: # B49 B8 <- B6 Freq: 0.999999 | |
12c movslq RBP, RDI # i2l | |
12f salq RBP, #1 | |
132 cmpl R9, #524288 # unsigned | |
139 jnbe,u B49 P=0.000001 C=-1.000000 | |
139 | |
13f B8: # B49 B9 <- B7 Freq: 0.999998 | |
13f # TLS is in R15 | |
13f movq R10, [R15 + #112 (8-bit)] # ptr | |
143 movq RBX, RBP # spill | |
146 addq RBX, #67 # long | |
14a andq RBX, #-8 # long | |
14e movq RDI, R10 # spill | |
151 addq RDI, RBX # ptr | |
154 # TLS is in R15 | |
154 cmpq RDI, [R15 + #128 (32-bit)] # raw ptr | |
15b jnb,u B49 P=0.000100 C=-1.000000 | |
15b | |
161 B9: # B10 <- B8 Freq: 0.999898 | |
161 # TLS is in R15 | |
161 movq [R15 + #112 (8-bit)], RDI # ptr | |
165 PREFETCHNTA [RDI + #192 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
16c movq [R10], 0x0000000000000001 # ptr | |
173 PREFETCHNTA [RDI + #256 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
17a movl [R10 + #8 (8-bit)], narrowoop: precise klass [C: 0x0000000004f4f778:Constant:exact * # compressed ptr | |
182 movl [R10 + #12 (8-bit)], R9 # int | |
186 PREFETCHNTA [RDI + #320 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
18d PREFETCHNTA [RDI + #384 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
194 movq [rsp + #8], RCX # spill | |
199 movl [rsp + #16], R11 # spill | |
19e movl [rsp + #20], R8 # spill | |
1a3 movl [rsp + #24], R9 # spill | |
1a3 | |
1a8 B10: # B47 B11 <- B50 B9 Freq: 0.999999 | |
1a8 | |
1a8 MEMBAR-storestore (empty encoding) | |
1a8 # checkcastPP of R10 | |
1a8 movq RSI, R10 # spill | |
1ab addq RSI, #16 # ptr | |
1af movq [rsp + #32], R10 # spill | |
1b4 movl R13, #48 # int | |
1ba movl RDX, #21 # long (unsigned 32-bit) | |
1bf movq RDI, char[int:21]<ciTypeArray length=21 type=<ciTypeArrayKlass name=[C ident=708 PERM address=0x4f4f778> ident=754 SCAVENGABLE address=0x51fb1e8> * # ptr | |
1c9 addq RDI, #16 # ptr | |
1cd call_leaf_nofp,runtime jshort_disjoint_arraycopy | |
No JVM State Info | |
# | |
1da movq R10, [rsp + #32] # spill | |
1df movw [R10 + #58 + RBP], R13 # char/short | |
1e5 # TLS is in R15 | |
1e5 movq RDX, [R15 + #112 (8-bit)] # ptr | |
1e9 movq R10, RDX # spill | |
1ec addq R10, #32 # ptr | |
1f0 # TLS is in R15 | |
1f0 cmpq R10, [R15 + #128 (32-bit)] # raw ptr | |
1f7 jnb,u B47 P=0.000100 C=-1.000000 | |
1f7 | |
1fd B11: # B12 <- B10 Freq: 0.999899 | |
1fd # TLS is in R15 | |
1fd movq [R15 + #112 (8-bit)], R10 # ptr | |
201 PREFETCHNTA [R10 + #192 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
209 movl R10, narrowoop: precise klass java/lang/String: 0x0000000004dacaf8:Constant:exact * # compressed ptr | |
20f movq R10, [R12 + R10 << 3 + #176] (compressed oop addressing) # ptr | |
217 movq [RDX], R10 # ptr | |
21a movl [RDX + #8 (8-bit)], narrowoop: precise klass java/lang/String: 0x0000000004dacaf8:Constant:exact * # compressed ptr | |
221 movl [RDX + #12 (8-bit)], R12 # int (R12_heapbase==0) | |
225 movq [RDX + #16 (8-bit)], R12 # long (R12_heapbase==0) | |
229 movq [RDX + #24 (8-bit)], R12 # long (R12_heapbase==0) | |
229 | |
22d B12: # B59 B13 <- B48 B11 Freq: 0.999999 | |
22d | |
22d MEMBAR-storestore (empty encoding) | |
22d # checkcastPP of RDX | |
22d movl R11, [rsp + #24] # spill | |
232 movl [RDX + #20 (8-bit)], R11 # int ! Field java/lang/String.count | |
236 movq R10, [rsp + #32] # spill | |
23b encode_heap_oop_not_null R10,R10 | |
35d movl [RDX + #12 (8-bit)], R10 # compressed ptr ! Field java/lang/String.value | |
361 movl R11, [rsp + #28] # spill | |
366 testl R11, R11 # compressed ptr | |
369 je B59 P=0.000001 C=-1.000000 | |
369 | |
36f B13: # B75 B14 <- B12 Freq: 0.999998 | |
36f decode_heap_oop_not_null RSI,R11 | |
373 call,static java.io.PrintStream::println | |
# Main::foo @ bci:140 L[0]=_ L[1]=_ L[2]=#ScObj0 L[3]=#32 L[4]=_ L[5]=_ L[6]=_ | |
# ScObj0 java/lang/String={ [value :0]=rsp + #8, [offset :1]=#0, [count :2]=#16, [hash :3]=#0 } | |
# OopMap{[0]=Derived_oop_[8] [8]=Oop off=888} | |
378 | |
378 B14: # B16 <- B13 Freq: 0.999978 | |
# Block is sole successor of call | |
378 xorl R8, R8 # int | |
37b movl R10, #1 # int | |
381 jmp,s B16 | |
381 | |
383 B15: # B16 <- B16 top-of-loop Freq: 986872 | |
383 movl R11, R10 # spill | |
386 incl R11 # int | |
389 movl R8, R10 # spill | |
38c movl R10, R11 # spill | |
38c | |
38f B16: # B15 B17 <- B14 B15 Loop: B16-B15 inner Freq: 986873 | |
38f movq R11, int[int:10]<ciTypeArray length=10 type=<ciTypeArrayKlass name=[I ident=713 PERM address=0x4f4f948> ident=750 SCAVENGABLE address=0x51fb068> * # ptr | |
399 movl R11, [R11 + #16 + R8 << #2] # int | |
39e cmpl R11, #16 | |
3a2 jl,s B15 P=0.999999 C=-1.000000 | |
3a2 | |
3a4 B17: # B64 B18 <- B16 Freq: 0.999978 | |
3a4 movq R11, java/lang/Class:exact * # ptr | |
3ae movl R9, [R11 + #116 (8-bit)] # compressed ptr ! Field java/lang/System.out | |
3b2 movl [rsp + #32], R9 # spill | |
3b7 movl RBP, R8 # spill | |
3ba addl RBP, #18 # int | |
3bd testl RBP, RBP | |
3bf jl B64 P=0.000001 C=-1.000000 | |
3bf | |
3c5 B18: # B64 B19 <- B17 Freq: 0.999977 | |
3c5 movl R11, R8 # spill | |
3c8 addl R11, #22 # int | |
3cc testl R11, R11 | |
3cf jl B64 P=0.000001 C=-1.000000 | |
3cf | |
3d5 B19: # B21 <- B18 Freq: 0.999976 | |
3d5 xorl R11, R11 # int | |
3d8 jmp,s B21 | |
nop # 6 bytes pad for loops and calls | |
3e0 B20: # B21 <- B21 top-of-loop Freq: 986870 | |
3e0 incl R11 # int | |
3e3 | |
3e3 B21: # B20 B22 <- B19 B20 Loop: B21-B20 inner Freq: 986871 | |
3e3 movq R9, int[int:10]<ciTypeArray length=10 type=<ciTypeArrayKlass name=[I ident=713 PERM address=0x4f4f948> ident=750 SCAVENGABLE address=0x51fb068> * # ptr | |
3ed movl RCX, [R9 + #16 + R11 << #2] # int | |
3f2 cmpl RCX, #32 | |
3f5 jl,s B20 P=0.999999 C=-1.000000 | |
3f5 | |
3f7 B22: # B64 B23 <- B21 Freq: 0.999976 | |
3f7 addl R8, R11 # int | |
3fa movl R11, R8 # spill | |
3fd addl R11, #23 # int | |
401 testl R11, R11 | |
404 jl B64 P=0.000001 C=-1.000000 | |
404 | |
40a B23: # B53 B24 <- B22 Freq: 0.999975 | |
40a cmpl R11, #524288 # unsigned | |
411 jnbe,u B53 P=0.000001 C=-1.000000 | |
411 | |
417 B24: # B53 B25 <- B23 Freq: 0.999974 | |
417 # TLS is in R15 | |
417 movq R13, [R15 + #112 (8-bit)] # ptr | |
41b incl R8 # int | |
41e movslq R8, R8 # i2l | |
421 salq R8, #1 | |
424 addq R8, #67 # long | |
428 andq R8, #-8 # long | |
42c movq R9, R13 # spill | |
42f addq R9, R8 # ptr | |
432 # TLS is in R15 | |
432 cmpq R9, [R15 + #128 (32-bit)] # raw ptr | |
439 jnb,u B53 P=0.000100 C=-1.000000 | |
439 | |
43f B25: # B26 <- B24 Freq: 0.999874 | |
43f # TLS is in R15 | |
43f movq [R15 + #112 (8-bit)], R9 # ptr | |
443 PREFETCHNTA [R9 + #192 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
44b movq [R13], 0x0000000000000001 # ptr | |
453 PREFETCHNTA [R9 + #256 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
45b movl [R13 + #8 (8-bit)], narrowoop: precise klass [C: 0x0000000004f4f778:Constant:exact * # compressed ptr | |
463 movl [R13 + #12 (8-bit)], R11 # int | |
467 PREFETCHNTA [R9 + #320 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
46f PREFETCHNTA [R9 + #384 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
477 movl [rsp + #24], R10 # spill | |
47c movl [rsp + #28], R11 # spill | |
47c | |
481 B26: # B28 <- B54 B25 Freq: 0.999975 | |
481 | |
481 MEMBAR-storestore (empty encoding) | |
481 # checkcastPP of R13 | |
481 movq RSI, R13 # spill | |
484 addq RSI, #16 # ptr | |
488 movl RDX, #17 # long (unsigned 32-bit) | |
48d movq RDI, char[int:17]<ciTypeArray length=17 type=<ciTypeArrayKlass name=[C ident=708 PERM address=0x4f4f778> ident=757 SCAVENGABLE address=0x51fb308> * # ptr | |
497 addq RDI, #16 # ptr | |
49b call_leaf_nofp,runtime jshort_disjoint_arraycopy | |
No JVM State Info | |
# | |
4a8 xorl R11, R11 # int | |
4ab jmp,s B28 | |
nop # 3 bytes pad for loops and calls | |
4b0 B27: # B28 <- B28 top-of-loop Freq: 8.99977 | |
4b0 movl R11, R9 # spill | |
4b3 sarl R11, #31 | |
4b7 decl RBP # int | |
4b9 movl [rsp + #16], R9 # spill | |
4b9 | |
4be B28: # B27 B29 <- B26 B27 Loop: B28-B27 inner Freq: 9.99975 | |
4be movslq R10, [RSP + #16 (32-bit)] # int -> long | |
4c3 imulq R10, R10, #1717986919 # long | |
4ca sarq R10, #34 | |
4ce movl R10, R10 # l2i | |
4d1 movl R9, R10 # spill | |
4d4 subl R9, R11 # int | |
4d7 movl R8, R9 # spill | |
4da sall R8, #3 | |
4de movl RBX, R9 # spill | |
4e1 sall RBX, #1 | |
4e3 addl RBX, R8 # int | |
4e6 movl R8, [rsp + #16] # spill | |
4eb subl R8, RBX # int | |
4ee addl R8, #48 # int | |
4f2 movw [R13 + #14 + RBP << #1], R8 # char/short | |
4f8 cmpl R10, R11 | |
4fb jne,s B27 P=0.900000 C=-1.000000 | |
4fb | |
4fd B29: # B31 <- B28 Freq: 0.999975 | |
4fd movslq R8, [RSP + #24 (32-bit)] # int -> long | |
502 movl RBX, #32 # int | |
507 movw [R13 + #50 + R8 << #1], RBX # char/short | |
50d movl R10, #62 # int | |
513 movl R11, #60 # int | |
519 movw [R13 + #52 + R8 << #1], R11 # char/short | |
51f movw [R13 + #54 + R8 << #1], R10 # char/short | |
525 movw [R13 + #56 + R8 << #1], RBX # char/short | |
52b movl R10, [rsp + #28] # spill | |
530 jmp,s B31 | |
530 | |
532 B30: # B31 <- B31 top-of-loop Freq: 8.99977 | |
532 movl R9, R11 # spill | |
535 sarl R9, #31 | |
539 decl R10 # int | |
53c movl RBX, R11 # spill | |
53f movl [rsp + #20], R9 # spill | |
53f | |
544 B31: # B30 B32 <- B29 B30 Loop: B31-B30 inner Freq: 9.99975 | |
544 movslq R11, RBX # i2l | |
547 imulq R11, R11, #1717986919 # long | |
54e sarq R11, #34 | |
552 movl R8, R11 # l2i | |
555 movl R11, R8 # spill | |
558 subl R11, [RSP + #20 (32-bit)] # int | |
55d movl RCX, R11 # spill | |
560 sall RCX, #3 | |
563 movl R9, R11 # spill | |
566 sall R9, #1 | |
569 addl R9, RCX # int | |
56c subl RBX, R9 # int | |
56f addl RBX, #48 # int | |
572 movw [R13 + #14 + R10 << #1], RBX # char/short | |
578 cmpl R8, [RSP + #20 (32-bit)] | |
57d jne,s B30 P=0.900000 C=-1.000000 | |
57d | |
57f B32: # B51 B33 <- B31 Freq: 0.999975 | |
57f # TLS is in R15 | |
57f movq RDX, [R15 + #112 (8-bit)] # ptr | |
583 movq R10, RDX # spill | |
586 addq R10, #32 # ptr | |
58a # TLS is in R15 | |
58a cmpq R10, [R15 + #128 (32-bit)] # raw ptr | |
591 jnb,u B51 P=0.000100 C=-1.000000 | |
591 | |
597 B33: # B34 <- B32 Freq: 0.999875 | |
597 # TLS is in R15 | |
597 movq [R15 + #112 (8-bit)], R10 # ptr | |
59b PREFETCHNTA [R10 + #192 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
5a3 movl R10, narrowoop: precise klass java/lang/String: 0x0000000004dacaf8:Constant:exact * # compressed ptr | |
5a9 movq R10, [R12 + R10 << 3 + #176] (compressed oop addressing) # ptr | |
5b1 movq [RDX], R10 # ptr | |
5b4 movl [RDX + #8 (8-bit)], narrowoop: precise klass java/lang/String: 0x0000000004dacaf8:Constant:exact * # compressed ptr | |
5bb movl [RDX + #12 (8-bit)], R12 # int (R12_heapbase==0) | |
5bf movq [RDX + #16 (8-bit)], R12 # long (R12_heapbase==0) | |
5c3 movq [RDX + #24 (8-bit)], R12 # long (R12_heapbase==0) | |
5c3 | |
5c7 B34: # B60 B35 <- B52 B33 Freq: 0.999975 | |
5c7 | |
5c7 MEMBAR-storestore (empty encoding) | |
5c7 # checkcastPP of RDX | |
5c7 movl R11, [rsp + #28] # spill | |
5cc movl [RDX + #20 (8-bit)], R11 # int ! Field java/lang/String.count | |
5d0 encode_heap_oop_not_null R10,R13 | |
6f5 movl [RDX + #12 (8-bit)], R10 # compressed ptr ! Field java/lang/String.value | |
6f9 movl R10, [rsp + #32] # spill | |
6fe testl R10, R10 # compressed ptr | |
701 je B60 P=0.000001 C=-1.000000 | |
701 | |
707 B35: # B76 B36 <- B34 Freq: 0.999974 | |
707 decode_heap_oop_not_null RSI,R10 | |
70b call,static java.io.PrintStream::println | |
# Main::foo @ bci:177 L[0]=_ L[1]=_ L[2]=#ScObj0 L[3]=_ L[4]=_ L[5]=_ L[6]=_ | |
# ScObj0 java/lang/String={ [value :0]=rsp + #8, [offset :1]=#0, [count :2]=#16, [hash :3]=#0 } | |
# OopMap{[0]=Derived_oop_[8] [8]=Oop off=1808} | |
710 | |
710 B36: # B61 B37 <- B35 Freq: 0.999954 | |
# Block is sole successor of call | |
710 movq R10, java/lang/Class:exact * # ptr | |
71a movl R10, [R10 + #116 (8-bit)] # compressed ptr ! Field java/lang/System.out | |
71e testl R10, R10 # compressed ptr | |
721 je B61 P=0.000001 C=-1.000000 | |
721 | |
727 B37: # B77 B38 <- B36 Freq: 0.999953 | |
727 decode_heap_oop_not_null RSI,R10 | |
72b movq RDX, java/lang/String:exact * # ptr | |
nop # 2 bytes pad for loops and calls | |
737 call,static java.io.PrintStream::println | |
# Main::foo @ bci:185 L[0]=_ L[1]=_ L[2]=#ScObj0 L[3]=_ L[4]=_ L[5]=_ L[6]=_ | |
# ScObj0 java/lang/String={ [value :0]=rsp + #8, [offset :1]=#0, [count :2]=#16, [hash :3]=#0 } | |
# OopMap{[0]=Derived_oop_[8] [8]=Oop off=1852} | |
73c | |
73c B38: # B55 B39 <- B37 Freq: 0.999933 | |
# Block is sole successor of call | |
73c # TLS is in R15 | |
73c movq R11, [R15 + #112 (8-bit)] # ptr | |
740 movq R10, java/lang/Class:exact * # ptr | |
74a movl RBP, [R10 + #116 (8-bit)] # compressed ptr ! Field java/lang/System.out | |
74e movq R10, R11 # spill | |
751 addq R10, #72 # ptr | |
755 # TLS is in R15 | |
755 cmpq R10, [R15 + #128 (32-bit)] # raw ptr | |
75c jnb,u B55 P=0.000100 C=-1.000000 | |
75c | |
762 B39: # B40 <- B38 Freq: 0.999833 | |
762 # TLS is in R15 | |
762 movq [R15 + #112 (8-bit)], R10 # ptr | |
766 PREFETCHNTA [R10 + #192 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
76e movq [R11], 0x0000000000000001 # ptr | |
775 PREFETCHNTA [R10 + #256 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
77d movl [R11 + #8 (8-bit)], narrowoop: precise klass [C: 0x0000000004f4f778:Constant:exact * # compressed ptr | |
785 PREFETCHNTA [R10 + #320 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
78d movl [R11 + #12 (8-bit)], #28 # int | |
795 PREFETCHNTA [R10 + #384 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
795 | |
79d B40: # B57 B41 <- B56 B39 Freq: 0.999933 | |
79d | |
79d MEMBAR-storestore (empty encoding) | |
79d # checkcastPP of R11 | |
79d movq R13, R11 # spill | |
7a0 addq R13, #38 # ptr | |
7a4 movq RSI, R11 # spill | |
7a7 addq RSI, #16 # ptr | |
7ab movq [rsp + #16], R11 # spill | |
7b0 movl RBX, #34 # int | |
7b5 movq RDI, char[int:11]<ciTypeArray length=11 type=<ciTypeArrayKlass name=[C ident=708 PERM address=0x4f4f778> ident=751 SCAVENGABLE address=0x51fb0c8> * # ptr | |
7bf addq RDI, #16 # ptr | |
7c3 movl RDX, #11 # long (unsigned 32-bit) | |
7c8 call_leaf_nofp,runtime jshort_disjoint_arraycopy | |
No JVM State Info | |
# | |
7d5 movq RDI, [rsp + #0] # spill | |
7d9 movq RSI, R13 # spill | |
7dc movl RDX, #16 # long (unsigned 32-bit) | |
7e1 call_leaf_nofp,runtime jshort_disjoint_arraycopy | |
No JVM State Info | |
# | |
7ee movq R10, [rsp + #16] # spill | |
7f3 movw [R10 + #70 (8-bit)], RBX # char/short | |
7f8 # TLS is in R15 | |
7f8 movq RDX, [R15 + #112 (8-bit)] # ptr | |
7fc movq R10, RDX # spill | |
7ff addq R10, #32 # ptr | |
803 # TLS is in R15 | |
803 cmpq R10, [R15 + #128 (32-bit)] # raw ptr | |
80a jnb,u B57 P=0.000100 C=-1.000000 | |
80a | |
810 B41: # B42 <- B40 Freq: 0.999833 | |
810 # TLS is in R15 | |
810 movq [R15 + #112 (8-bit)], R10 # ptr | |
814 PREFETCHNTA [R10 + #192 (32-bit)] # Prefetch allocation to non-temporal cache for write | |
81c movl R11, narrowoop: precise klass java/lang/String: 0x0000000004dacaf8:Constant:exact * # compressed ptr | |
822 movq R10, [R12 + R11 << 3 + #176] (compressed oop addressing) # ptr | |
82a movq [RDX], R10 # ptr | |
82d movl [RDX + #8 (8-bit)], narrowoop: precise klass java/lang/String: 0x0000000004dacaf8:Constant:exact * # compressed ptr | |
834 movl [RDX + #12 (8-bit)], R12 # int (R12_heapbase==0) | |
838 movq [RDX + #24 (8-bit)], R12 # long (R12_heapbase==0) | |
838 | |
83c B42: # B62 B43 <- B58 B41 Freq: 0.999933 | |
83c movq R10, [rsp + #16] # spill | |
841 encode_heap_oop_not_null R11,R10 | |
966 movq R10, #120259084288 # long | |
970 movq [RDX + #16 (8-bit)], R10 # long | |
974 | |
974 MEMBAR-storestore (empty encoding) | |
974 # checkcastPP of RDX | |
974 movl [RDX + #12 (8-bit)], R11 # compressed ptr ! Field java/lang/String.value | |
978 testl RBP, RBP # compressed ptr | |
97a je B62 P=0.000001 C=-1.000000 | |
97a | |
980 B43: # B78 B44 <- B42 Freq: 0.999932 | |
980 decode_heap_oop_not_null RSI,RBP | |
nop # 3 bytes pad for loops and calls | |
987 call,static java.io.PrintStream::println | |
# Main::foo @ bci:215 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ | |
# OopMap{off=2444} | |
98c | |
98c B44: # N1 <- B43 Freq: 0.999912 | |
# Block is sole successor of call | |
98c addq rsp, 64 # Destroy frame | |
popq rbp | |
testl rax, [rip + #offset_to_poll_page] # Safepoint: poll for GC | |
997 ret | |
997 | |
998 B45: # B65 B46 <- B1 Freq: 0.000100017 | |
998 movq RSI, precise klass [C: 0x0000000004f4f778:Constant:exact * # ptr | |
9a2 movl RDX, #16 # int | |
9a7 call,static wrapper for: _new_array_Java | |
# Main::foo @ bci:41 L[0]=#ScObj0 L[1]=#0 L[2]=#Ptr0x00000000052ced68 L[3]=#4 L[4]=_ L[5]=_ L[6]=_ | |
# ScObj0 long[60]={ [0]=#0 , [1]=#0 , [2]=#0 , [3]=#0 , [4]=#0 , [5]=#0 , [6]=#0 , [7]=#0 , [8]=#0 , [9]=#0 , [10]=#0 , [11]=#0 , [12]=#0 , [13]=#0 , [14]=#0 , [15]=#0 , [16]=#0 , [17]=#0 , [18]=#0 , [19]=#0 , [20]=#0 , [21]=#0 , [22]=#0 , [23]=#0 , [24]=#0 , [25]=#0 , [26]=#0 , [27]=#0 , [28]=#0 , [29]=#0 , [30]=#0 , [31]=#0 , [32]=#0 , [33]=#0 , [34]=#0 , [35]=#0 , [36]=#0 , [37]=#0 , [38]=#0 , [39]=#0 , [40]=#0 , [41]=#0 , [42]=#0 , [43]=#0 , [44]=#0 , [45]=#0 , [46]=#0 , [47]=#0 , [48]=#0 , [49]=#0 , [50]=#0 , [51]=#0 , [52]=#0 , [53]=#0 , [54]=#0 , [55]=#0 , [56]=#0 , [57]=#0 , [58]=#0 , [59]=#0 } | |
# OopMap{off=2476} | |
9ac | |
9ac B46: # B3 <- B45 Freq: 0.000100015 | |
# Block is sole successor of call | |
9ac movq RBX, RAX # spill | |
9af jmp B3 | |
9af | |
9b4 B47: # B73 B48 <- B10 Freq: 0.000100016 | |
9b4 movq RSI, precise klass java/lang/String: 0x0000000004dacaf8:Constant:exact * # ptr | |
9be movl RBP, [rsp + #28] # spill | |
nop # 1 bytes pad for loops and calls | |
9c3 call,static wrapper for: _new_instance_Java | |
# Main::foo @ bci:121 L[0]=_ L[1]=#0 L[2]=#ScObj0 L[3]=#32 L[4]=_ L[5]=_ L[6]=_ STK[0]=RBP | |
# ScObj0 java/lang/String={ [value :0]=rsp + #8, [offset :1]=#0, [count :2]=#16, [hash :3]=#0 } | |
# OopMap{rbp=NarrowOop [0]=Derived_oop_[8] [8]=Oop [28]=NarrowOop [32]=Oop off=2504} | |
9c8 | |
9c8 B48: # B12 <- B47 Freq: 0.000100014 | |
# Block is sole successor of call | |
9c8 movq RDX, RAX # spill | |
9cb jmp B12 | |
9cb | |
9d0 B49: # B72 B50 <- B7 B8 Freq: 0.00010103 | |
9d0 movl [rsp + #24], R9 # spill | |
9d5 movl [rsp + #20], R8 # spill | |
9da movl [rsp + #16], R11 # spill | |
9df movq [rsp + #8], RCX # spill | |
9e4 movq RSI, precise klass [C: 0x0000000004f4f778:Constant:exact * # ptr | |
9ee movl RDX, R9 # spill | |
nop # 2 bytes pad for loops and calls | |
9f3 call,static wrapper for: _new_array_Java | |
# Main::foo @ bci:121 L[0]=_ L[1]=#0 L[2]=#ScObj0 L[3]=#32 L[4]=_ L[5]=_ L[6]=_ STK[0]=rsp + #28 | |
# ScObj0 java/lang/String={ [value :0]=rsp + #8, [offset :1]=#0, [count :2]=#16, [hash :3]=#0 } | |
# OopMap{[0]=Derived_oop_[8] [8]=Oop [28]=NarrowOop off=2552} | |
9f8 | |
9f8 B50: # B10 <- B49 Freq: 0.000101028 | |
# Block is sole successor of call | |
9f8 movq R10, RAX # spill | |
9fb jmp B10 | |
9fb | |
a00 B51: # B70 B52 <- B32 Freq: 0.000100014 | |
a00 movq RBP, R13 # spill | |
a03 movq RSI, precise klass java/lang/String: 0x0000000004dacaf8:Constant:exact * # ptr | |
nop # 2 bytes pad for loops and calls | |
a0f call,static wrapper for: _new_instance_Java | |
# Main::foo @ bci:146 L[0]=_ L[1]=_ L[2]=#ScObj0 L[3]=#32 L[4]=_ L[5]=_ L[6]=_ STK[0]=rsp + #32 | |
# ScObj0 java/lang/String={ [value :0]=rsp + #8, [offset :1]=#0, [count :2]=#16, [hash :3]=#0 } | |
# OopMap{rbp=Oop [0]=Derived_oop_[8] [8]=Oop [32]=NarrowOop off=2580} | |
a14 | |
a14 B52: # B34 <- B51 Freq: 0.000100012 | |
# Block is sole successor of call | |
a14 movq R13, RBP # spill | |
a17 movq RDX, RAX # spill | |
a1a jmp B34 | |
a1a | |
a1f B53: # B69 B54 <- B23 B24 Freq: 0.000101027 | |
a1f movl [rsp + #28], R11 # spill | |
a24 movl [rsp + #24], R10 # spill | |
a29 movq RSI, precise klass [C: 0x0000000004f4f778:Constant:exact * # ptr | |
a33 movl RDX, R11 # spill | |
nop # 1 bytes pad for loops and calls | |
a37 call,static wrapper for: _new_array_Java | |
# Main::foo @ bci:146 L[0]=_ L[1]=_ L[2]=#ScObj0 L[3]=#32 L[4]=_ L[5]=_ L[6]=_ STK[0]=rsp + #32 | |
# ScObj0 java/lang/String={ [value :0]=rsp + #8, [offset :1]=#0, [count :2]=#16, [hash :3]=#0 } | |
# OopMap{[0]=Derived_oop_[8] [8]=Oop [32]=NarrowOop off=2620} | |
a3c | |
a3c B54: # B26 <- B53 Freq: 0.000101025 | |
# Block is sole successor of call | |
a3c movq R13, RAX # spill | |
a3f jmp B26 | |
a3f | |
a44 B55: # B67 B56 <- B38 Freq: 0.00010001 | |
a44 movq RSI, precise klass [C: 0x0000000004f4f778:Constant:exact * # ptr | |
a4e movl RDX, #28 # int | |
a53 call,static wrapper for: _new_array_Java | |
# Main::foo @ bci:191 L[0]=_ L[1]=_ L[2]=#ScObj0 L[3]=_ L[4]=_ L[5]=_ L[6]=_ STK[0]=RBP | |
# ScObj0 java/lang/String={ [value :0]=rsp + #8, [offset :1]=#0, [count :2]=#16, [hash :3]=#0 } | |
# OopMap{rbp=NarrowOop [0]=Derived_oop_[8] [8]=Oop off=2648} | |
a58 | |
a58 B56: # B40 <- B55 Freq: 0.000100008 | |
# Block is sole successor of call | |
a58 movq R11, RAX # spill | |
a5b jmp B40 | |
a5b | |
a60 B57: # B66 B58 <- B40 Freq: 0.00010001 | |
a60 movq RSI, precise klass java/lang/String: 0x0000000004dacaf8:Constant:exact * # ptr | |
nop # 1 bytes pad for loops and calls | |
a6b call,static wrapper for: _new_instance_Java | |
# Main::foo @ bci:191 L[0]=_ L[1]=_ L[2]=#ScObj0 L[3]=_ L[4]=_ L[5]=_ L[6]=_ STK[0]=RBP | |
# ScObj0 java/lang/String={ [value :0]=rsp + #8, [offset :1]=#0, [count :2]=#16, [hash :3]=#0 } | |
# OopMap{rbp=NarrowOop [8]=Oop [16]=Oop off=2672} | |
a70 | |
a70 B58: # B42 <- B57 Freq: 0.000100008 | |
# Block is sole successor of call | |
a70 movq RDX, RAX # spill | |
a73 jmp B42 | |
a73 | |
a78 B59: # N1 <- B12 Freq: 1.01328e-06 | |
a78 movl RSI, #-10 # int | |
a7d movq RBP, RDX # spill | |
nop # 3 bytes pad for loops and calls | |
a83 call,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile') | |
# Main::foo @ bci:140 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ STK[0]=#NULL STK[1]=RBP | |
# OopMap{rbp=Oop off=2696} | |
a88 int3 # ShouldNotReachHere | |
a88 | |
a95 B60: # N1 <- B34 Freq: 1.01325e-06 | |
a95 movl RSI, #-10 # int | |
a9a movq RBP, RDX # spill | |
nop # 2 bytes pad for loops and calls | |
a9f call,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile') | |
# Main::foo @ bci:177 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ STK[0]=#NULL STK[1]=RBP | |
# OopMap{rbp=Oop off=2724} | |
aa4 int3 # ShouldNotReachHere | |
aa4 | |
ab1 B61: # N1 <- B36 Freq: 1.01323e-06 | |
ab1 movl RSI, #-10 # int | |
nop # 1 bytes pad for loops and calls | |
ab7 call,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile') | |
# Main::foo @ bci:185 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ STK[0]=#NULL STK[1]=#Ptr0x00000000052d0408 | |
# OopMap{off=2748} | |
abc int3 # ShouldNotReachHere | |
abc | |
ac9 B62: # N1 <- B42 Freq: 1.01321e-06 | |
ac9 movl RSI, #-10 # int | |
ace movq RBP, RDX # spill | |
nop # 2 bytes pad for loops and calls | |
ad3 call,static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile') | |
# Main::foo @ bci:215 L[0]=_ L[1]=_ L[2]=_ L[3]=_ L[4]=_ L[5]=_ L[6]=_ STK[0]=#NULL STK[1]=RBP | |
# OopMap{rbp=Oop off=2776} | |
ad8 int3 # ShouldNotReachHere | |
ad8 | |
ae5 B63: # N1 <- B6 Freq: 1e-06 | |
ae5 movl RSI, #-52 # int | |
aea movq RBP, RCX # spill | |
nop # 2 bytes pad for loops and calls | |
aef call,static wrapper for: uncommon_trap(reason='intrinsic' action='make_not_entrant') | |
# Main::foo @ bci:121 L[0]=_ L[1]=#0 L[2]=#ScObj0 L[3]=#32 L[4]=_ L[5]=_ L[6]=_ STK[0]=rsp + #28 | |
# ScObj0 java/lang/String={ [value :0]=RBP, [offset :1]=#0, [count :2]=#16, [hash :3]=#0 } | |
# OopMap{rbp=Oop [28]=NarrowOop off=2804} | |
af4 int3 # ShouldNotReachHere | |
af4 | |
b01 B64: # N1 <- B17 B18 B22 Freq: 2.99993e-06 | |
b01 movl RSI, #-52 # int | |
b06 movl RBP, [rsp + #32] # spill | |
nop # 1 bytes pad for loops and calls | |
b0b call,static wrapper for: uncommon_trap(reason='intrinsic' action='make_not_entrant') | |
# Main::foo @ bci:146 L[0]=_ L[1]=_ L[2]=#ScObj0 L[3]=#32 L[4]=_ L[5]=_ L[6]=_ STK[0]=RBP | |
# ScObj0 java/lang/String={ [value :0]=rsp + #8, [offset :1]=#0, [count :2]=#16, [hash :3]=#0 } | |
# OopMap{rbp=NarrowOop [8]=Oop off=2832} | |
b10 int3 # ShouldNotReachHere | |
b10 | |
b1d B65: # B79 <- B45 Freq: 1.00017e-09 | |
b1d # exception oop is in rax; no code emitted | |
b1d movq RSI, RAX # spill | |
b20 jmp,s B79 | |
b20 | |
b22 B66: # B68 <- B57 Freq: 1.0001e-09 | |
b22 # exception oop is in rax; no code emitted | |
b22 jmp,s B68 | |
b22 | |
b24 B67: # B68 <- B55 Freq: 1.0001e-09 | |
b24 # exception oop is in rax; no code emitted | |
b24 | |
b24 B68: # B79 <- B67 B66 Freq: 2.0002e-09 | |
b24 movq RSI, RAX # spill | |
b27 jmp,s B79 | |
b27 | |
b29 B69: # B71 <- B53 Freq: 1.01027e-09 | |
b29 # exception oop is in rax; no code emitted | |
b29 jmp,s B71 | |
b29 | |
b2b B70: # B71 <- B51 Freq: 1.00014e-09 | |
b2b # exception oop is in rax; no code emitted | |
b2b | |
b2b B71: # B79 <- B69 B70 Freq: 2.01041e-09 | |
b2b movq RSI, RAX # spill | |
b2e jmp,s B79 | |
b2e | |
b30 B72: # B74 <- B49 Freq: 1.0103e-09 | |
b30 # exception oop is in rax; no code emitted | |
b30 jmp,s B74 | |
b30 | |
b32 B73: # B74 <- B47 Freq: 1.00016e-09 | |
b32 # exception oop is in rax; no code emitted | |
b32 | |
b32 B74: # B79 <- B72 B73 Freq: 2.01046e-09 | |
b32 movq RSI, RAX # spill | |
b35 jmp,s B79 | |
b35 | |
b37 B75: # B79 <- B13 Freq: 9.99998e-06 | |
b37 # exception oop is in rax; no code emitted | |
b37 movq RSI, RAX # spill | |
b3a jmp,s B79 | |
b3a | |
b3c B76: # B79 <- B35 Freq: 9.99974e-06 | |
b3c # exception oop is in rax; no code emitted | |
b3c movq RSI, RAX # spill | |
b3f jmp,s B79 | |
b3f | |
b41 B77: # B79 <- B37 Freq: 9.99953e-06 | |
b41 # exception oop is in rax; no code emitted | |
b41 movq RSI, RAX # spill | |
b44 jmp,s B79 | |
b44 | |
b46 B78: # B79 <- B43 Freq: 9.99932e-06 | |
b46 # exception oop is in rax; no code emitted | |
b46 movq RSI, RAX # spill | |
b46 | |
b49 B79: # N1 <- B65 B78 B68 B77 B76 B71 B75 B74 Freq: 4.00056e-05 | |
b49 addq rsp, 64 # Destroy frame | |
popq rbp | |
b4e jmp rethrow_stub | |
b4e | |
Failed at iteration: 17 | |
Length mismatch: 16 <> 32 | |
Expected: "testtesttesttesttesttesttesttest" | |
Actual: "nullnulltesttest" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ java -version | |
java version "1.7.0_04" | |
Java(TM) SE Runtime Environment (build 1.7.0_04-b20) | |
OpenJDK 64-Bit Server VM (build 23.0-b21-internal-fastdebug, mixed mode) | |
$ java Main | |
Java Version: 23.0-b21-internal-fastdebug | |
try OSR compilation | |
474 1 % b Main::foo @ 15 (225 bytes) | |
Failed at iteration: 241 | |
Length mismatch: 16 <> 32 | |
Expected: "testtesttesttesttesttesttesttest" | |
Actual: "nullnulltesttest" | |
try standard compilation | |
3769 1 b Main::foo (225 bytes) | |
Failed at iteration: 17 | |
Length mismatch: 16 <> 32 | |
Expected: "testtesttesttesttesttesttesttest" | |
Actual: "nullnulltesttest" | |
$ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private static void foo(); | |
flags: ACC_PRIVATE, ACC_STATIC | |
Code: | |
stack=3, locals=7, args_size=0 | |
0: bipush 60 | |
2: newarray long | |
4: astore_0 | |
5: iconst_0 | |
6: istore_1 | |
7: aload_0 | |
8: astore_2 | |
9: aload_2 | |
10: arraylength | |
11: istore_3 | |
12: iconst_0 | |
13: istore 4 | |
15: iload 4 | |
17: iload_3 | |
18: if_icmpge 33 | |
21: aload_2 | |
22: iload 4 | |
24: laload | |
25: lstore 5 | |
27: iinc 4, 1 | |
30: goto 15 | |
33: ldc #2 // String test | |
35: astore_2 | |
36: aload_2 | |
37: invokevirtual #3 // Method java/lang/String.length:()I | |
40: istore_3 | |
41: new #4 // class java/lang/StringBuilder | |
44: dup | |
45: aload_2 | |
46: invokestatic #5 // Method java/lang/String.valueOf:(Ljava/lang/Object;)Ljava/lang/String; | |
49: invokespecial #6 // Method java/lang/StringBuilder."<init>":(Ljava/lang/String;)V | |
52: aload_2 | |
53: invokevirtual #7 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | |
56: invokevirtual #8 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; | |
59: astore_2 | |
60: iload_3 | |
61: iload_3 | |
62: iadd | |
63: istore_3 | |
64: new #4 // class java/lang/StringBuilder | |
67: dup | |
68: aload_2 | |
69: invokestatic #5 // Method java/lang/String.valueOf:(Ljava/lang/Object;)Ljava/lang/String; | |
72: invokespecial #6 // Method java/lang/StringBuilder."<init>":(Ljava/lang/String;)V | |
75: aload_2 | |
76: invokevirtual #7 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | |
79: invokevirtual #8 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; | |
82: astore_2 | |
83: iload_3 | |
84: iload_3 | |
85: iadd | |
86: istore_3 | |
87: new #4 // class java/lang/StringBuilder | |
90: dup | |
91: aload_2 | |
92: invokestatic #5 // Method java/lang/String.valueOf:(Ljava/lang/Object;)Ljava/lang/String; | |
95: invokespecial #6 // Method java/lang/StringBuilder."<init>":(Ljava/lang/String;)V | |
98: aload_2 | |
99: invokevirtual #7 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | |
102: invokevirtual #8 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; | |
105: astore_2 | |
106: iload_3 | |
107: iload_3 | |
108: iadd | |
109: istore_3 | |
110: aload_2 | |
111: invokevirtual #3 // Method java/lang/String.length:()I | |
114: iload_3 | |
115: if_icmpeq 219 | |
118: getstatic #9 // Field java/lang/System.out:Ljava/io/PrintStream; | |
121: new #4 // class java/lang/StringBuilder | |
124: dup | |
125: invokespecial #10 // Method java/lang/StringBuilder."<init>":()V | |
128: ldc #11 // String Failed at iteration: | |
130: invokevirtual #7 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | |
133: iload_1 | |
134: invokevirtual #12 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; | |
137: invokevirtual #8 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; | |
140: invokevirtual #13 // Method java/io/PrintStream.println:(Ljava/lang/String;)V | |
143: getstatic #9 // Field java/lang/System.out:Ljava/io/PrintStream; | |
146: new #4 // class java/lang/StringBuilder | |
149: dup | |
150: invokespecial #10 // Method java/lang/StringBuilder."<init>":()V | |
153: ldc #14 // String Length mismatch: | |
155: invokevirtual #7 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | |
158: aload_2 | |
159: invokevirtual #3 // Method java/lang/String.length:()I | |
162: invokevirtual #12 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; | |
165: ldc #15 // String <> | |
167: invokevirtual #7 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | |
170: iload_3 | |
171: invokevirtual #12 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder; | |
174: invokevirtual #8 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; | |
177: invokevirtual #13 // Method java/io/PrintStream.println:(Ljava/lang/String;)V | |
180: getstatic #9 // Field java/lang/System.out:Ljava/io/PrintStream; | |
183: ldc #16 // String Expected: \"testtesttesttesttesttesttesttest\" | |
185: invokevirtual #13 // Method java/io/PrintStream.println:(Ljava/lang/String;)V | |
188: getstatic #9 // Field java/lang/System.out:Ljava/io/PrintStream; | |
191: new #4 // class java/lang/StringBuilder | |
194: dup | |
195: invokespecial #10 // Method java/lang/StringBuilder."<init>":()V | |
198: ldc #17 // String Actual: \" | |
200: invokevirtual #7 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | |
203: aload_2 | |
204: invokevirtual #7 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | |
207: ldc #18 // String \" | |
209: invokevirtual #7 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | |
212: invokevirtual #8 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; | |
215: invokevirtual #13 // Method java/io/PrintStream.println:(Ljava/lang/String;)V | |
218: return | |
219: iinc 1, 1 | |
222: goto 7 | |
LineNumberTable: | |
line 3: 0 | |
line 4: 5 | |
line 6: 7 | |
line 11: 33 | |
line 12: 36 | |
line 14: 41 | |
line 15: 60 | |
line 17: 64 | |
line 18: 83 | |
line 20: 87 | |
line 21: 106 | |
line 23: 110 | |
line 24: 118 | |
line 25: 143 | |
line 26: 180 | |
line 28: 188 | |
line 29: 218 | |
line 4: 219 | |
LocalVariableTable: | |
Start Length Slot Name Signature | |
27 0 5 duration J | |
9 24 2 arr$ [J | |
12 21 3 len$ I | |
15 18 4 i$ I | |
36 183 2 s Ljava/lang/String; | |
41 178 3 len I | |
7 218 1 i I | |
5 220 0 durations [J | |
StackMapTable: number_of_entries = 4 | |
frame_type = 253 /* append */ | |
offset_delta = 7 | |
locals = [ class "[J", int ] | |
frame_type = 254 /* append */ | |
offset_delta = 7 | |
locals = [ class "[J", int, int ] | |
frame_type = 248 /* chop */ | |
offset_delta = 17 | |
frame_type = 251 /* same_frame_extended */ | |
offset_delta = 185 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class Main { | |
private static void foo() { | |
long[] durations = new long[60]; | |
for (int i = 0; true; i++) { | |
// this empty for-loop is required to reproduce this bug | |
for (long duration : durations) { | |
// do nothing | |
} | |
{ | |
String s = "test"; | |
int len = s.length(); | |
s = new StringBuilder(String.valueOf(s)).append(s).toString(); | |
len = len + len; | |
s = new StringBuilder(String.valueOf(s)).append(s).toString(); | |
len = len + len; | |
s = new StringBuilder(String.valueOf(s)).append(s).toString(); | |
len = len + len; | |
if (s.length() != len) { | |
System.out.println("Failed at iteration: " + i); | |
System.out.println("Length mismatch: " + s.length() + " <> " + len); | |
System.out.println("Expected: \"" + "test" + "test" + "test" + "test" + "test" + "test" + "test" + "test" | |
+ "\""); | |
System.out.println("Actual: \"" + s + "\""); | |
return; | |
} | |
} | |
} | |
} | |
public static void main(String[] args) throws Exception { | |
System.out.println("Java Version: " + System.getProperty("java.vm.version")); | |
System.out.println("try OSR compilation"); | |
foo(); | |
System.out.println("try standard compilation"); | |
foo(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment