Skip to content

Instantly share code, notes, and snippets.

@rednaxelafx
Created August 29, 2011 09:15
Show Gist options
  • Save rednaxelafx/1178066 to your computer and use it in GitHub Desktop.
Save rednaxelafx/1178066 to your computer and use it in GitHub Desktop.
OptimizeStringConcat on HotSpot 22.0-b02
+UnlockDiagnosticVMOptions
+LogCompilation
+PrintCompilation
+AggressiveOpts
OpenJDK 64-Bit Server VM warning: PrintAssembly is enabled; turning on DebugNonSafepoints to gain additional output
VM option '+UnlockDiagnosticVMOptions'
VM option '+LogCompilation'
VM option '+PrintCompilation'
VM option '+AggressiveOpts'
VM option '+PrintAssembly'
CompilerOracle: exclude *.main
Loaded disassembler from /home/sajia/jdk/6u25_x64/jre/lib/amd64/server/hsdis-amd64.so
Decoding compiled method 0x00002aaaab117510:
Code:
[Disassembling for mach='i386:x86-64']
[Entry Point]
# {method} 'arraycopy' '(Ljava/lang/Object;ILjava/lang/Object;II)V' in 'java/lang/System'
# parm0: rsi:rsi = 'java/lang/Object'
# parm1: rdx = int
# parm2: rcx:rcx = 'java/lang/Object'
# parm3: r8 = int
# parm4: r9 = int
# [sp+0x60] (sp of caller)
0x00002aaaab1176a0: mov 0x8(%rsi),%r10d
0x00002aaaab1176a4: cmp %r10,%rax
0x00002aaaab1176a7: je 0x00002aaaab1176b2
0x00002aaaab1176ad: jmpq 0x00002aaaab0f2920 ; {runtime_call}
0x00002aaaab1176b2: nop
0x00002aaaab1176b3: nop
0x00002aaaab1176b4: nop
0x00002aaaab1176b5: nop
0x00002aaaab1176b6: nop
0x00002aaaab1176b7: nop
[Verified Entry Point]
0x00002aaaab1176b8: mov %eax,-0x8000(%rsp)
0x00002aaaab1176bf: push %rbp
0x00002aaaab1176c0: mov %rsp,%rbp
0x00002aaaab1176c3: sub $0x50,%rsp
0x00002aaaab1176c7: mov %rsp,%rax
0x00002aaaab1176ca: and $0xfffffffffffffff0,%rax
0x00002aaaab1176ce: cmp %rsp,%rax
0x00002aaaab1176d1: je 0x00002aaaab117756
0x00002aaaab1176d7: mov %rsp,-0x28(%rsp)
0x00002aaaab1176dc: sub $0x80,%rsp
0x00002aaaab1176e3: mov %rax,0x78(%rsp)
0x00002aaaab1176e8: mov %rcx,0x70(%rsp)
0x00002aaaab1176ed: mov %rdx,0x68(%rsp)
0x00002aaaab1176f2: mov %rbx,0x60(%rsp)
0x00002aaaab1176f7: mov %rbp,0x50(%rsp)
0x00002aaaab1176fc: mov %rsi,0x48(%rsp)
0x00002aaaab117701: mov %rdi,0x40(%rsp)
0x00002aaaab117706: mov %r8,0x38(%rsp)
0x00002aaaab11770b: mov %r9,0x30(%rsp)
0x00002aaaab117710: mov %r10,0x28(%rsp)
0x00002aaaab117715: mov %r11,0x20(%rsp)
0x00002aaaab11771a: mov %r12,0x18(%rsp)
0x00002aaaab11771f: mov %r13,0x10(%rsp)
0x00002aaaab117724: mov %r14,0x8(%rsp)
0x00002aaaab117729: mov %r15,(%rsp)
0x00002aaaab11772d: mov $0x2ae74d6d4c26,%rdi ; {external_word}
0x00002aaaab117737: mov $0x2aaaab1176d7,%rsi ; {internal_word}
0x00002aaaab117741: mov %rsp,%rdx
0x00002aaaab117744: and $0xfffffffffffffff0,%rsp
0x00002aaaab117748: mov $0x2ae74cb3f860,%r10 ; {runtime_call}
0x00002aaaab117752: rex.WB callq *%r10
0x00002aaaab117755: hlt
0x00002aaaab117756: mov %r9,(%rsp)
0x00002aaaab11775a: mov %r8,%r9
0x00002aaaab11775d: mov %rcx,0x18(%rsp)
0x00002aaaab117762: cmp $0x0,%rcx
0x00002aaaab117766: lea 0x18(%rsp),%r8
0x00002aaaab11776b: cmove 0x18(%rsp),%r8
0x00002aaaab117771: mov %rdx,%rcx
0x00002aaaab117774: mov %rsi,0x8(%rsp)
0x00002aaaab117779: cmp $0x0,%rsi
0x00002aaaab11777d: lea 0x8(%rsp),%rdx
0x00002aaaab117782: cmove 0x8(%rsp),%rdx
0x00002aaaab117788: mov $0xedc00d08,%r14 ; {oop(a 'java/lang/Class' = 'java/lang/System')}
0x00002aaaab117792: mov %r14,0x38(%rsp)
0x00002aaaab117797: lea 0x38(%rsp),%r14
0x00002aaaab11779c: mov %r14,%rsi ; OopMap{[24]=Oop [8]=Oop [56]=Oop off=255}
0x00002aaaab11779f: mov $0x2aaaab11779f,%r10 ; {section_word}
0x00002aaaab1177a9: mov %r10,0x1e8(%r15)
0x00002aaaab1177b0: mov %rsp,0x1e0(%r15)
0x00002aaaab1177b7: mov $0x2ae74db32d12,%r10 ; {external_word}
0x00002aaaab1177c1: cmpb $0x0,(%r10)
0x00002aaaab1177c5: je 0x00002aaaab117819
0x00002aaaab1177cb: push %rsi
0x00002aaaab1177cc: push %rdx
0x00002aaaab1177cd: push %rcx
0x00002aaaab1177ce: push %r8
0x00002aaaab1177d0: push %r9
0x00002aaaab1177d2: mov $0xc421ede0,%rsi ; {oop({method} 'arraycopy' '(Ljava/lang/Object;ILjava/lang/Object;II)V' in 'java/lang/System')}
0x00002aaaab1177dc: mov %r15,%rdi
0x00002aaaab1177df: test $0xf,%esp
0x00002aaaab1177e5: je 0x00002aaaab117805
0x00002aaaab1177eb: sub $0x8,%rsp
0x00002aaaab1177ef: mov $0x2ae74d439480,%r10 ; {runtime_call}
0x00002aaaab1177f9: rex.WB callq *%r10
0x00002aaaab1177fc: add $0x8,%rsp
0x00002aaaab117800: jmpq 0x00002aaaab117812
0x00002aaaab117805: mov $0x2ae74d439480,%r10 ; {runtime_call}
0x00002aaaab11780f: rex.WB callq *%r10
0x00002aaaab117812: pop %r9
0x00002aaaab117814: pop %r8
0x00002aaaab117816: pop %rcx
0x00002aaaab117817: pop %rdx
0x00002aaaab117818: pop %rsi
0x00002aaaab117819: lea 0x200(%r15),%rdi
0x00002aaaab117820: movl $0x4,0x278(%r15)
0x00002aaaab11782b: mov $0x2ae74d0a99d0,%r10 ; {runtime_call}
0x00002aaaab117835: rex.WB callq *%r10
0x00002aaaab117838: movl $0x5,0x278(%r15)
0x00002aaaab117843: mov %r15d,%ecx
0x00002aaaab117846: shr $0x4,%ecx
0x00002aaaab117849: and $0xffc,%ecx
0x00002aaaab11784f: mov $0x2aaaaacf9000,%r10 ; {external_word}
0x00002aaaab117859: mov %ecx,(%r10,%rcx,1)
0x00002aaaab11785d: mov $0x2ae74db42080,%r10 ; {external_word}
0x00002aaaab117867: cmpl $0x0,(%r10)
0x00002aaaab11786e: jne 0x00002aaaab117882
0x00002aaaab117874: cmpl $0x0,0x30(%r15)
0x00002aaaab11787c: je 0x00002aaaab1178ad
0x00002aaaab117882: mov %r15,%rdi
0x00002aaaab117885: mov %rsp,%r12
0x00002aaaab117888: sub $0x0,%rsp
0x00002aaaab11788c: and $0xfffffffffffffff0,%rsp
0x00002aaaab117890: mov $0x2ae74d50c1b0,%r10 ; {runtime_call}
0x00002aaaab11789a: rex.WB callq *%r10
0x00002aaaab11789d: mov %r12,%rsp
0x00002aaaab1178a0: mov $0x2ae74dadc700,%r10 ; {external_word}
0x00002aaaab1178aa: mov (%r10),%r12
0x00002aaaab1178ad: movl $0x8,0x278(%r15)
0x00002aaaab1178b8: cmpl $0x1,0x2a0(%r15)
0x00002aaaab1178c3: je 0x00002aaaab117963
0x00002aaaab1178c9: mov $0x2ae74db32d12,%r10 ; {external_word}
0x00002aaaab1178d3: cmpb $0x0,(%r10)
0x00002aaaab1178d7: je 0x00002aaaab11791d
0x00002aaaab1178dd: mov $0xc421ede0,%rsi ; {oop({method} 'arraycopy' '(Ljava/lang/Object;ILjava/lang/Object;II)V' in 'java/lang/System')}
0x00002aaaab1178e7: mov %r15,%rdi
0x00002aaaab1178ea: test $0xf,%esp
0x00002aaaab1178f0: je 0x00002aaaab117910
0x00002aaaab1178f6: sub $0x8,%rsp
0x00002aaaab1178fa: mov $0x2ae74d4395d0,%r10 ; {runtime_call}
0x00002aaaab117904: rex.WB callq *%r10
0x00002aaaab117907: add $0x8,%rsp
0x00002aaaab11790b: jmpq 0x00002aaaab11791d
0x00002aaaab117910: mov $0x2ae74d4395d0,%r10 ; {runtime_call}
0x00002aaaab11791a: rex.WB callq *%r10
0x00002aaaab11791d: mov $0x0,%r10
0x00002aaaab117927: mov %r10,0x1e0(%r15)
0x00002aaaab11792e: mov $0x0,%r10
0x00002aaaab117938: mov %r10,0x1e8(%r15)
0x00002aaaab11793f: mov 0x38(%r15),%rcx
0x00002aaaab117943: movq $0x0,0x108(%rcx)
0x00002aaaab11794e: leaveq
0x00002aaaab11794f: cmpq $0x0,0x8(%r15)
0x00002aaaab117957: jne 0x00002aaaab11795e
0x00002aaaab11795d: retq
0x00002aaaab11795e: jmpq Stub::forward exception ; {runtime_call}
0x00002aaaab117963: mov %rsp,%r12
0x00002aaaab117966: sub $0x0,%rsp
0x00002aaaab11796a: and $0xfffffffffffffff0,%rsp
0x00002aaaab11796e: mov $0x2ae74d438530,%r10 ; {runtime_call}
0x00002aaaab117978: rex.WB callq *%r10
0x00002aaaab11797b: mov %r12,%rsp
0x00002aaaab11797e: mov $0x2ae74dadc700,%r10 ; {external_word}
0x00002aaaab117988: mov (%r10),%r12
0x00002aaaab11798b: jmpq 0x00002aaaab1178c9
460 2 n java.lang.System::arraycopy (0 bytes) (static)
480 1 java.lang.Object::<init> (1 bytes)
Decoding compiled method 0x00002aaaab1194d0:
Code:
[Entry Point]
[Constants]
# {method} '<init>' '()V' in 'java/lang/Object'
# [sp+0x20] (sp of caller)
;; N44: # B1 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab119600: mov 0x8(%rsi),%r10d
0x00002aaaab119604: cmp %r10,%rax
0x00002aaaab119607: jne 0x00002aaaab0f2920 ; {runtime_call}
0x00002aaaab11960d: nop
0x00002aaaab11960e: nop
0x00002aaaab11960f: nop
[Verified Entry Point]
;; B1: # B3 B2 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab119610: mov %eax,-0x8000(%rsp)
0x00002aaaab119617: push %rbp
0x00002aaaab119618: sub $0x10,%rsp ;*synchronization entry
; - java.lang.Object::<init>@-1 (line 20)
0x00002aaaab11961c: mov 0x8(%rsi),%r10d
0x00002aaaab119620: mov $0x40000000,%r8d
0x00002aaaab119626: test %r8d,0x9c(%r10)
0x00002aaaab11962d: je 0x00002aaaab119638 ;*return
; - java.lang.Object::<init>@0 (line 20)
;; B2: # B4 B3 <- B1 Freq: 0.999999
0x00002aaaab11962f: mov %rsi,%rbp
0x00002aaaab119632: nop
0x00002aaaab119633: callq 0x00002aaaab11b120 ; OopMap{rbp=Oop off=56}
;*return
; - java.lang.Object::<init>@0 (line 20)
; {runtime_call}
;; B3: # N44 <- B1 B2 Freq: 0.99998
0x00002aaaab119638: add $0x10,%rsp
0x00002aaaab11963c: pop %rbp
0x00002aaaab11963d: test %eax,-0x421643(%rip) # 0x00002aaaaacf8000
; {poll_return}
0x00002aaaab119643: retq ;*return
; - java.lang.Object::<init>@0 (line 20)
;; B4: # N44 <- B2 Freq: 9.99999e-06
0x00002aaaab119644: mov %rax,%rsi
0x00002aaaab119647: add $0x10,%rsp
0x00002aaaab11964b: pop %rbp
0x00002aaaab11964c: jmpq 0x00002aaaab117a20 ; {runtime_call}
0x00002aaaab119651: hlt
0x00002aaaab119652: hlt
0x00002aaaab119653: hlt
0x00002aaaab119654: hlt
0x00002aaaab119655: hlt
0x00002aaaab119656: hlt
0x00002aaaab119657: hlt
0x00002aaaab119658: hlt
0x00002aaaab119659: hlt
0x00002aaaab11965a: hlt
0x00002aaaab11965b: hlt
0x00002aaaab11965c: hlt
0x00002aaaab11965d: hlt
0x00002aaaab11965e: hlt
0x00002aaaab11965f: hlt
[Exception Handler]
[Stub Code]
0x00002aaaab119660: jmpq 0x00002aaaab101c20 ; {no_reloc}
[Deopt Handler Code]
0x00002aaaab119665: callq 0x00002aaaab11966a
0x00002aaaab11966a: subq $0x5,(%rsp)
0x00002aaaab11966f: jmpq 0x00002aaaab0f3ae0 ; {runtime_call}
0x00002aaaab119674: int3
0x00002aaaab119675: int3
0x00002aaaab119676: int3
0x00002aaaab119677: int3
499 3 java.lang.AbstractStringBuilder::stringSizeOfInt (21 bytes)
Decoding compiled method 0x00002aaaab119110:
Code:
[Entry Point]
[Verified Entry Point]
[Constants]
# {method} 'stringSizeOfInt' '(I)I' in 'java/lang/AbstractStringBuilder'
# parm0: rsi = int
# [sp+0x30] (sp of caller)
;; N1: # B1 <- B21 B22 Freq: 1
;; B1: # B20 B2 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab119240: mov %eax,-0x8000(%rsp)
0x00002aaaab119247: push %rbp
0x00002aaaab119248: sub $0x20,%rsp ;*synchronization entry
; - java.lang.AbstractStringBuilder::stringSizeOfInt@-1 (line 608)
0x00002aaaab11924c: mov $0xedc022f8,%r10 ; {oop(a 'java/lang/Class' = 'java/lang/AbstractStringBuilder')}
0x00002aaaab119256: mov 0x70(%r10),%r9d ;*getstatic sizeTable
; - java.lang.AbstractStringBuilder::stringSizeOfInt@3 (line 609)
0x00002aaaab11925a: mov 0x10(%r9),%r10d
0x00002aaaab11925e: cmp %r10d,%esi
0x00002aaaab119261: jle 0x00002aaaab1192fb
;; B2: # B19 B3 <- B1 Freq: 0.499949
0x00002aaaab119267: mov 0x14(%r9),%r11d
0x00002aaaab11926b: cmp %r11d,%esi
0x00002aaaab11926e: jle 0x00002aaaab1192f4
;; B3: # B18 B4 <- B2 Freq: 0.249949
0x00002aaaab119274: mov 0x18(%r9),%r11d
0x00002aaaab119278: cmp %r11d,%esi
0x00002aaaab11927b: jle 0x00002aaaab1192ed
;; B4: # B17 B5 <- B3 Freq: 0.124962
0x00002aaaab11927d: mov 0x1c(%r9),%r11d
0x00002aaaab119281: cmp %r11d,%esi
0x00002aaaab119284: jle 0x00002aaaab1192e6
;; B5: # B16 B6 <- B4 Freq: 0.0624747
0x00002aaaab119286: mov 0x20(%r9),%r11d
0x00002aaaab11928a: cmp %r11d,%esi
0x00002aaaab11928d: jle 0x00002aaaab1192df ;*if_icmpgt
; - java.lang.AbstractStringBuilder::stringSizeOfInt@8 (line 609)
;; B6: # B15 B7 <- B5 Freq: 0.0312342
0x00002aaaab11928f: mov 0x24(%r9),%r11d ;*iaload
; - java.lang.AbstractStringBuilder::stringSizeOfInt@7 (line 609)
0x00002aaaab119293: cmp %r11d,%esi
0x00002aaaab119296: jle 0x00002aaaab1192d8 ;*if_icmpgt
; - java.lang.AbstractStringBuilder::stringSizeOfInt@8 (line 609)
;; B7: # B14 B8 <- B6 Freq: 0.0156155
0x00002aaaab119298: mov 0x28(%r9),%r11d ;*iaload
; - java.lang.AbstractStringBuilder::stringSizeOfInt@7 (line 609)
0x00002aaaab11929c: cmp %r11d,%esi
0x00002aaaab11929f: jle 0x00002aaaab1192d1 ;*if_icmpgt
; - java.lang.AbstractStringBuilder::stringSizeOfInt@8 (line 609)
;; B8: # B13 B9 <- B7 Freq: 0.00780696
0x00002aaaab1192a1: mov 0x2c(%r9),%r11d ;*iaload
; - java.lang.AbstractStringBuilder::stringSizeOfInt@7 (line 609)
0x00002aaaab1192a5: cmp %r11d,%esi
0x00002aaaab1192a8: jle 0x00002aaaab1192ca ;*if_icmpgt
; - java.lang.AbstractStringBuilder::stringSizeOfInt@8 (line 609)
;; B9: # B12 B10 <- B8 Freq: 0.00390308
0x00002aaaab1192aa: mov 0x30(%r9),%r11d ;*iaload
; - java.lang.AbstractStringBuilder::stringSizeOfInt@7 (line 609)
0x00002aaaab1192ae: cmp %r11d,%esi
0x00002aaaab1192b1: jle 0x00002aaaab1192c3 ;*if_icmpgt
; - java.lang.AbstractStringBuilder::stringSizeOfInt@8 (line 609)
;; B10: # B22 B11 <- B9 Freq: 0.00195134
0x00002aaaab1192b3: mov 0x34(%r9),%r10d ;*iaload
; - java.lang.AbstractStringBuilder::stringSizeOfInt@7 (line 609)
0x00002aaaab1192b7: cmp %r10d,%esi
0x00002aaaab1192ba: jg 0x00002aaaab11930c ;*if_icmpgt
; - java.lang.AbstractStringBuilder::stringSizeOfInt@8 (line 609)
;; B11: # B21 <- B10 Freq: 0.00195134
0x00002aaaab1192bc: mov $0xa,%eax
0x00002aaaab1192c1: jmp 0x00002aaaab119300
;; B12: # B21 <- B9 Freq: 0.00195174
0x00002aaaab1192c3: mov $0x9,%eax
0x00002aaaab1192c8: jmp 0x00002aaaab119300
;; B13: # B21 <- B8 Freq: 0.00390388
0x00002aaaab1192ca: mov $0x8,%eax
0x00002aaaab1192cf: jmp 0x00002aaaab119300
;; B14: # B21 <- B7 Freq: 0.00780854
0x00002aaaab1192d1: mov $0x7,%eax
0x00002aaaab1192d6: jmp 0x00002aaaab119300
;; B15: # B21 <- B6 Freq: 0.0156187
0x00002aaaab1192d8: mov $0x6,%eax
0x00002aaaab1192dd: jmp 0x00002aaaab119300
;; B16: # B21 <- B5 Freq: 0.0312405
0x00002aaaab1192df: mov $0x5,%eax
0x00002aaaab1192e4: jmp 0x00002aaaab119300
;; B17: # B21 <- B4 Freq: 0.0624873
0x00002aaaab1192e6: mov $0x4,%eax
0x00002aaaab1192eb: jmp 0x00002aaaab119300
;; B18: # B21 <- B3 Freq: 0.124987
0x00002aaaab1192ed: mov $0x3,%eax
0x00002aaaab1192f2: jmp 0x00002aaaab119300
;; B19: # B21 <- B2 Freq: 0.25
0x00002aaaab1192f4: mov $0x2,%eax
0x00002aaaab1192f9: jmp 0x00002aaaab119300
;; B20: # B21 <- B1 Freq: 0.500051
0x00002aaaab1192fb: mov $0x1,%eax ;*iadd
; - java.lang.AbstractStringBuilder::stringSizeOfInt@13 (line 610)
;; B21: # N1 <- B19 B18 B14 B16 B12 B17 B13 B15 B11 B20 Freq: 1
0x00002aaaab119300: add $0x20,%rsp
0x00002aaaab119304: pop %rbp
0x00002aaaab119305: test %eax,-0x42130b(%rip) # 0x00002aaaaacf8000
; {poll_return}
0x00002aaaab11930b: retq
;; B22: # N1 <- B10 Freq: 1.97726e-09
0x00002aaaab11930c: mov %esi,(%rsp)
0x00002aaaab11930f: mov %r9d,0x4(%rsp)
0x00002aaaab119314: mov $0xffffffe4,%esi
0x00002aaaab119319: nop
0x00002aaaab11931a: nop
0x00002aaaab11931b: callq 0x00002aaaab0f3fa0 ; OopMap{[4]=NarrowOop off=224}
;*iaload
; - java.lang.AbstractStringBuilder::stringSizeOfInt@7 (line 609)
; {runtime_call}
0x00002aaaab119320: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11932a: rex.WB callq *%r10 ;*iinc
; - java.lang.AbstractStringBuilder::stringSizeOfInt@15 (line 608)
0x00002aaaab11932d: hlt
0x00002aaaab11932e: hlt
0x00002aaaab11932f: hlt
0x00002aaaab119330: hlt
0x00002aaaab119331: hlt
0x00002aaaab119332: hlt
0x00002aaaab119333: hlt
0x00002aaaab119334: hlt
0x00002aaaab119335: hlt
0x00002aaaab119336: hlt
0x00002aaaab119337: hlt
0x00002aaaab119338: hlt
0x00002aaaab119339: hlt
0x00002aaaab11933a: hlt
0x00002aaaab11933b: hlt
0x00002aaaab11933c: hlt
0x00002aaaab11933d: hlt
0x00002aaaab11933e: hlt
0x00002aaaab11933f: hlt
[Exception Handler]
[Stub Code]
0x00002aaaab119340: jmpq 0x00002aaaab101c20 ; {no_reloc}
[Deopt Handler Code]
0x00002aaaab119345: callq 0x00002aaaab11934a
0x00002aaaab11934a: subq $0x5,(%rsp)
0x00002aaaab11934f: jmpq 0x00002aaaab0f3ae0 ; {runtime_call}
0x00002aaaab119354: int3
0x00002aaaab119355: int3
0x00002aaaab119356: int3
0x00002aaaab119357: int3
514 4 java.lang.Integer::getChars (131 bytes)
Decoding compiled method 0x00002aaaab11bbd0:
Code:
[Entry Point]
[Verified Entry Point]
[Constants]
# {method} 'getChars' '(II[C)V' in 'java/lang/Integer'
# parm0: rsi = int
# parm1: rdx = int
# parm2: rcx:rcx = '[C'
# [sp+0x50] (sp of caller)
;; N1: # B1 <- B61 B19 B31 B37 B33 B15 B36 B16 B60 B17 B18 Freq: 1
;; B1: # B20 B2 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab11bd40: mov %eax,-0x8000(%rsp)
0x00002aaaab11bd47: push %rbp
0x00002aaaab11bd48: sub $0x40,%rsp ;*synchronization entry
; - java.lang.Integer::getChars@-1 (line 324)
0x00002aaaab11bd4c: mov %rcx,0x18(%rsp)
0x00002aaaab11bd51: test %esi,%esi
0x00002aaaab11bd53: jl 0x00002aaaab11bf2d ;*ifge
; - java.lang.Integer::getChars@7 (line 327)
;; B2: # B3 <- B1 Freq: 1
0x00002aaaab11bd59: xor %r14d,%r14d ;*iload_0
; - java.lang.Integer::getChars@17 (line 333)
;; B3: # B21 B4 <- B20 B2 Freq: 1
0x00002aaaab11bd5c: mov %edx,%ecx
0x00002aaaab11bd5e: dec %ecx ;*iinc
; - java.lang.Integer::getChars@47 (line 338)
0x00002aaaab11bd60: mov $0xedc02b00,%r9 ; {oop(a 'java/lang/Class' = 'java/lang/Integer')}
0x00002aaaab11bd6a: cmp $0x10000,%esi
0x00002aaaab11bd70: jge 0x00002aaaab11bf3a ;*if_icmplt
; - java.lang.Integer::getChars@20 (line 333)
;; B4: # B16 B5 <- B27 B3 Freq: 1
0x00002aaaab11bd76: mov 0x74(%r9),%edi ;*getstatic digits
; - java.lang.Integer::getChars@100 (line 347)
0x00002aaaab11bd7a: imul $0xcccd,%esi,%eax
0x00002aaaab11bd80: shr $0x13,%eax ;*iushr
; - java.lang.Integer::getChars@81 (line 345)
0x00002aaaab11bd83: mov %eax,%r11d
0x00002aaaab11bd86: shl %r11d ;*ishl
; - java.lang.Integer::getChars@89 (line 346)
0x00002aaaab11bd89: mov %eax,%r9d
0x00002aaaab11bd8c: shl $0x3,%r9d ;*ishl
; - java.lang.Integer::getChars@86 (line 346)
0x00002aaaab11bd90: mov %r9d,%ebx
0x00002aaaab11bd93: add %r11d,%ebx
0x00002aaaab11bd96: mov %esi,%r8d
0x00002aaaab11bd99: sub %ebx,%r8d ;*isub
; - java.lang.Integer::getChars@91 (line 346)
0x00002aaaab11bd9c: cmp $0x24,%r8d
0x00002aaaab11bda0: jae 0x00002aaaab11be5a
;; B5: # B60 B6 <- B4 Freq: 0.999999
0x00002aaaab11bda6: movslq %r9d,%r10
0x00002aaaab11bda9: movslq %r11d,%r11
0x00002aaaab11bdac: add %r11,%r10
0x00002aaaab11bdaf: movslq %esi,%r11
0x00002aaaab11bdb2: sub %r10,%r11
0x00002aaaab11bdb5: movzwl 0x10(%rdi,%r11,2),%r8d ;*caload
; - java.lang.Integer::getChars@105 (line 347)
0x00002aaaab11bdbb: mov 0x18(%rsp),%r10
0x00002aaaab11bdc0: mov 0xc(%r10),%r10d ; implicit exception: dispatches to 0x00002aaaab11c29d
;; B6: # B17 B7 <- B5 Freq: 0.999998
0x00002aaaab11bdc4: cmp %r10d,%ecx
0x00002aaaab11bdc7: jae 0x00002aaaab11be91
;; B7: # B10 B8 <- B6 Freq: 0.999997
0x00002aaaab11bdcd: mov 0x18(%rsp),%r11
0x00002aaaab11bdd2: mov %r8w,0xe(%r11,%rdx,2) ;*castore
; - java.lang.Integer::getChars@106 (line 347)
0x00002aaaab11bdd8: test %eax,%eax
0x00002aaaab11bdda: jne 0x00002aaaab11bde3 ;*ifne
; - java.lang.Integer::getChars@110 (line 349)
;; B8: # B14 <- B7 Freq: 0.500043
0x00002aaaab11bddc: jmp 0x00002aaaab11be45
;; B9: # B10 <- B12 Freq: 0.499862
0x00002aaaab11bdde: mov %ebx,%eax
0x00002aaaab11bde0: mov %r9d,%ecx ;*iload_0
; - java.lang.Integer::getChars@75 (line 345)
;; B10: # B18 B11 <- B7 B9 Loop: B10-B9 inner partial_peel_failed Freq: 0.999815
0x00002aaaab11bde3: imul $0xcccd,%eax,%ebx
0x00002aaaab11bde9: mov %ecx,%r9d
0x00002aaaab11bdec: dec %r9d ;*iinc
; - java.lang.Integer::getChars@95 (line 347)
0x00002aaaab11bdef: shr $0x13,%ebx ;*iushr
; - java.lang.Integer::getChars@81 (line 345)
0x00002aaaab11bdf2: mov %ebx,%ebp
0x00002aaaab11bdf4: shl %ebp ;*ishl
; - java.lang.Integer::getChars@89 (line 346)
0x00002aaaab11bdf6: mov %ebx,%edx
0x00002aaaab11bdf8: shl $0x3,%edx ;*ishl
; - java.lang.Integer::getChars@86 (line 346)
0x00002aaaab11bdfb: mov %edx,%esi
0x00002aaaab11bdfd: add %ebp,%esi
0x00002aaaab11bdff: mov %eax,%r11d
0x00002aaaab11be02: sub %esi,%r11d ;*isub
; - java.lang.Integer::getChars@91 (line 346)
0x00002aaaab11be05: cmp $0x24,%r11d
0x00002aaaab11be09: jae 0x00002aaaab11bec1
;; B11: # B19 B12 <- B10 Freq: 0.999814
0x00002aaaab11be0f: movslq %edx,%r11
0x00002aaaab11be12: movslq %eax,%r8
0x00002aaaab11be15: movslq %ebp,%rdx
0x00002aaaab11be18: add %rdx,%r11
0x00002aaaab11be1b: sub %r11,%r8
0x00002aaaab11be1e: movzwl 0x10(%rdi,%r8,2),%r8d ;*caload
; - java.lang.Integer::getChars@105 (line 347)
0x00002aaaab11be24: cmp %r10d,%r9d
0x00002aaaab11be27: jae 0x00002aaaab11bef9
;; B12: # B9 B13 <- B11 Freq: 0.999813
0x00002aaaab11be2d: mov 0x18(%rsp),%r11
0x00002aaaab11be32: mov %r8w,0xe(%r11,%rcx,2) ; OopMap{rdi=NarrowOop [24]=Oop off=248}
;*ifne
; - java.lang.Integer::getChars@110 (line 349)
0x00002aaaab11be38: test %eax,-0x423e3e(%rip) # 0x00002aaaaacf8000
; {poll}
0x00002aaaab11be3e: test %ebx,%ebx
0x00002aaaab11be40: jne 0x00002aaaab11bdde ;*ifne
; - java.lang.Integer::getChars@110 (line 349)
;; B13: # B14 <- B12 Freq: 0.499951
0x00002aaaab11be42: mov %r9d,%ecx ;*goto
; - java.lang.Integer::getChars@113 (line 349)
;; B14: # B28 B15 <- B13 B8 Freq: 0.999995
0x00002aaaab11be45: test %r14d,%r14d
0x00002aaaab11be48: jne 0x00002aaaab11bfe5 ;*synchronization entry
; - java.lang.Integer::getChars@-1 (line 324)
;; B15: # N1 <- B29 B14 Freq: 0.999995
0x00002aaaab11be4e: add $0x40,%rsp
0x00002aaaab11be52: pop %rbp
0x00002aaaab11be53: test %eax,-0x423e59(%rip) # 0x00002aaaaacf8000
; {poll_return}
0x00002aaaab11be59: retq
;; B16: # N1 <- B4 Freq: 1.01328e-06
0x00002aaaab11be5a: mov $0xffffffe4,%esi
0x00002aaaab11be5f: mov %eax,(%rsp)
0x00002aaaab11be62: mov %r14d,0x8(%rsp)
0x00002aaaab11be67: pushq 0x18(%rsp)
0x00002aaaab11be6b: popq 0x10(%rsp)
0x00002aaaab11be6f: mov %ecx,0xc(%rsp)
0x00002aaaab11be73: mov %edi,0x18(%rsp)
0x00002aaaab11be77: mov %r8d,0x1c(%rsp)
0x00002aaaab11be7c: nop
0x00002aaaab11be7d: nop
0x00002aaaab11be7e: nop
0x00002aaaab11be7f: callq 0x00002aaaab0f3fa0 ; OopMap{[16]=Oop [24]=NarrowOop off=324}
;*caload
; - java.lang.Integer::getChars@105 (line 347)
; {runtime_call}
0x00002aaaab11be84: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11be8e: rex.WB callq *%r10
;; B17: # N1 <- B6 Freq: 1.01328e-06
0x00002aaaab11be91: mov $0xffffffe4,%esi
0x00002aaaab11be96: mov %eax,(%rsp)
0x00002aaaab11be99: mov %r14d,0x8(%rsp)
0x00002aaaab11be9e: pushq 0x18(%rsp)
0x00002aaaab11bea2: popq 0x10(%rsp)
0x00002aaaab11bea6: mov %ecx,0xc(%rsp)
0x00002aaaab11beaa: mov %r8d,0x18(%rsp)
0x00002aaaab11beaf: callq 0x00002aaaab0f3fa0 ; OopMap{[16]=Oop off=372}
;*castore
; - java.lang.Integer::getChars@106 (line 347)
; {runtime_call}
0x00002aaaab11beb4: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11bebe: rex.WB callq *%r10
;; B18: # N1 <- B10 Freq: 1.01309e-06
0x00002aaaab11bec1: mov $0xffffffe4,%esi
0x00002aaaab11bec6: mov %ebx,(%rsp)
0x00002aaaab11bec9: mov %r14d,0x8(%rsp)
0x00002aaaab11bece: pushq 0x18(%rsp)
0x00002aaaab11bed2: popq 0x10(%rsp)
0x00002aaaab11bed6: mov %r9d,0xc(%rsp)
0x00002aaaab11bedb: mov %edi,0x18(%rsp)
0x00002aaaab11bedf: mov %r11d,0x1c(%rsp)
0x00002aaaab11bee4: nop
0x00002aaaab11bee5: nop
0x00002aaaab11bee6: nop
0x00002aaaab11bee7: callq 0x00002aaaab0f3fa0 ; OopMap{[16]=Oop [24]=NarrowOop off=428}
;*caload
; - java.lang.Integer::getChars@105 (line 347)
; {runtime_call}
0x00002aaaab11beec: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11bef6: rex.WB callq *%r10
;; B19: # N1 <- B11 Freq: 1.01309e-06
0x00002aaaab11bef9: mov $0xffffffe4,%esi
0x00002aaaab11befe: mov %ebx,(%rsp)
0x00002aaaab11bf01: mov %r14d,0x8(%rsp)
0x00002aaaab11bf06: pushq 0x18(%rsp)
0x00002aaaab11bf0a: popq 0x10(%rsp)
0x00002aaaab11bf0e: mov %r9d,0xc(%rsp)
0x00002aaaab11bf13: mov %r8d,0x18(%rsp)
0x00002aaaab11bf18: nop
0x00002aaaab11bf19: nop
0x00002aaaab11bf1a: nop
0x00002aaaab11bf1b: callq 0x00002aaaab0f3fa0 ; OopMap{[16]=Oop off=480}
;*castore
; - java.lang.Integer::getChars@106 (line 347)
; {runtime_call}
0x00002aaaab11bf20: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11bf2a: rex.WB callq *%r10 ;*castore
; - java.lang.Integer::getChars@106 (line 347)
;; B20: # B3 <- B1 Freq: 4.76837e-07
0x00002aaaab11bf2d: neg %esi ;*ineg
; - java.lang.Integer::getChars@15 (line 329)
0x00002aaaab11bf2f: mov $0x2d,%r14d
0x00002aaaab11bf35: jmpq 0x00002aaaab11bd5c
;; B21: # B61 B22 <- B3 Freq: 4.76837e-07
0x00002aaaab11bf3a: mov 0x18(%rsp),%r10
0x00002aaaab11bf3f: mov 0xc(%r10),%ebx ;*castore
; - java.lang.Integer::getChars@58 (line 338)
; implicit exception: dispatches to 0x00002aaaab11c2bd
;; B22: # B30 B23 <- B21 Freq: 4.76837e-07
0x00002aaaab11bf43: mov 0x7c(%r9),%r8d ;*getstatic DigitOnes
; - java.lang.Integer::getChars@52 (line 338)
0x00002aaaab11bf47: movslq %esi,%r11
0x00002aaaab11bf4a: mov %esi,%r10d
0x00002aaaab11bf4d: sar $0x1f,%r10d
0x00002aaaab11bf51: imul $0x51eb851f,%r11,%r11
0x00002aaaab11bf58: sar $0x25,%r11
0x00002aaaab11bf5c: mov %r11d,%ebp
0x00002aaaab11bf5f: sub %r10d,%ebp ;*idiv
; - java.lang.Integer::getChars@26 (line 334)
0x00002aaaab11bf62: mov %ebp,%r10d
0x00002aaaab11bf65: shl $0x2,%r10d
0x00002aaaab11bf69: mov %ebp,%edi
0x00002aaaab11bf6b: shl $0x5,%edi
0x00002aaaab11bf6e: mov %ebp,%r11d
0x00002aaaab11bf71: shl $0x6,%r11d
0x00002aaaab11bf75: add %edi,%r11d
0x00002aaaab11bf78: add %r10d,%r11d
0x00002aaaab11bf7b: sub %r11d,%esi ;*isub
; - java.lang.Integer::getChars@41 (line 336)
0x00002aaaab11bf7e: cmp $0x64,%esi
0x00002aaaab11bf81: jae 0x00002aaaab11c002
;; B23: # B32 B24 <- B22 Freq: 4.76836e-07
0x00002aaaab11bf83: movzwl 0x10(%r8,%rsi,2),%r10d ;*caload
; - java.lang.Integer::getChars@57 (line 338)
0x00002aaaab11bf89: cmp %ebx,%ecx
0x00002aaaab11bf8b: jae 0x00002aaaab11c031
;; B24: # B34 B25 <- B23 Freq: 4.76836e-07
0x00002aaaab11bf91: mov 0x18(%rsp),%r11
0x00002aaaab11bf96: mov %r10w,0xe(%r11,%rdx,2) ;*castore
; - java.lang.Integer::getChars@58 (line 338)
0x00002aaaab11bf9c: mov 0x78(%r9),%r11d ;*getstatic DigitTens
; - java.lang.Integer::getChars@65 (line 339)
0x00002aaaab11bfa0: movzwl 0x10(%r11,%rsi,2),%ecx ;*caload
; - java.lang.Integer::getChars@70 (line 339)
0x00002aaaab11bfa6: mov %edx,%r13d
0x00002aaaab11bfa9: add $0xfffffffffffffffe,%r13d
;*iinc
; - java.lang.Integer::getChars@60 (line 339)
0x00002aaaab11bfad: test %r13d,%r13d
0x00002aaaab11bfb0: jl 0x00002aaaab11c05d ;*iload_0
; - java.lang.Integer::getChars@23 (line 334)
;; B25: # B36 B26 <- B24 B41 Loop: B25-B41 inner pre of N694 Freq: 4.76835e-07
0x00002aaaab11bfb6: cmp %ebx,%r13d
0x00002aaaab11bfb9: jae 0x00002aaaab11c061
;; B26: # B38 B27 <- B25 Freq: 4.76835e-07
0x00002aaaab11bfbf: mov 0x18(%rsp),%r10
0x00002aaaab11bfc4: mov %cx,0x10(%r10,%r13,2) ;*castore
; - java.lang.Integer::getChars@71 (line 339)
0x00002aaaab11bfca: mov %r13d,%ecx
0x00002aaaab11bfcd: dec %ecx ;*iinc
; - java.lang.Integer::getChars@47 (line 338)
0x00002aaaab11bfcf: cmp $0x10000,%ebp
0x00002aaaab11bfd5: jge 0x00002aaaab11c0ad ;*iinc
; - java.lang.Integer::getChars@95 (line 347)
;; B27: # B4 <- B50 B26 B44 Freq: 4.76835e-07
0x00002aaaab11bfdb: mov %r13d,%edx
0x00002aaaab11bfde: mov %ebp,%esi
0x00002aaaab11bfe0: jmpq 0x00002aaaab11bd76
;; B28: # B37 B29 <- B14 Freq: 4.76835e-07
0x00002aaaab11bfe5: mov %ecx,%ebp
0x00002aaaab11bfe7: dec %ebp ;*iinc
; - java.lang.Integer::getChars@122 (line 352)
0x00002aaaab11bfe9: cmp %r10d,%ebp
0x00002aaaab11bfec: jae 0x00002aaaab11c091
;; B29: # B15 <- B28 Freq: 4.76834e-07
0x00002aaaab11bff2: mov 0x18(%rsp),%r10
0x00002aaaab11bff7: mov %r14w,0xe(%r10,%rcx,2) ;*castore
; - java.lang.Integer::getChars@129 (line 352)
0x00002aaaab11bffd: jmpq 0x00002aaaab11be4e
;; B30: # B31 <- B22 Freq: 4.83169e-13
0x00002aaaab11c002: mov %ebp,%edi
0x00002aaaab11c004: mov %esi,%ebp
;; B31: # N1 <- B30 B51 B46 Freq: 4.83169e-13
0x00002aaaab11c006: mov $0xffffffe4,%esi
0x00002aaaab11c00b: mov %edi,(%rsp)
0x00002aaaab11c00e: mov %r14d,0x10(%rsp)
0x00002aaaab11c013: mov %ecx,0x14(%rsp)
0x00002aaaab11c017: mov %r8d,0x20(%rsp)
0x00002aaaab11c01c: nop
0x00002aaaab11c01d: nop
0x00002aaaab11c01e: nop
0x00002aaaab11c01f: callq 0x00002aaaab0f3fa0 ; OopMap{[24]=Oop [32]=NarrowOop off=740}
;*caload
; - java.lang.Integer::getChars@57 (line 338)
; {runtime_call}
0x00002aaaab11c024: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11c02e: rex.WB callq *%r10 ;*caload
; - java.lang.Integer::getChars@57 (line 338)
;; B32: # B33 <- B23 Freq: 4.83168e-13
0x00002aaaab11c031: mov %ebp,%edi
0x00002aaaab11c033: mov %esi,%ebp
;; B33: # N1 <- B32 B52 B39 Freq: 4.83168e-13
0x00002aaaab11c035: mov $0xffffffe4,%esi
0x00002aaaab11c03a: mov %edi,(%rsp)
0x00002aaaab11c03d: mov %r14d,0x10(%rsp)
0x00002aaaab11c042: mov %ecx,0x14(%rsp)
0x00002aaaab11c046: mov %r10d,0x20(%rsp)
0x00002aaaab11c04b: callq 0x00002aaaab0f3fa0 ; OopMap{[24]=Oop off=784}
;*castore
; - java.lang.Integer::getChars@58 (line 338)
; {runtime_call}
0x00002aaaab11c050: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11c05a: rex.WB callq *%r10 ;*castore
; - java.lang.Integer::getChars@58 (line 338)
;; B34: # B35 <- B24 Freq: 4.76836e-13
0x00002aaaab11c05d: mov %ebp,%edi
;; B35: # B36 <- B34 B53 B58 Freq: 4.76836e-13
0x00002aaaab11c05f: mov %edi,%ebp
;; B36: # N1 <- B49 B25 B35 Freq: 9.60003e-13
0x00002aaaab11c061: mov $0xffffffe4,%esi
0x00002aaaab11c066: mov %r14d,0xc(%rsp)
0x00002aaaab11c06b: pushq 0x18(%rsp)
0x00002aaaab11c06f: popq 0x10(%rsp)
0x00002aaaab11c073: mov %r13d,0x18(%rsp)
0x00002aaaab11c078: mov %ecx,0x1c(%rsp)
0x00002aaaab11c07c: nop
0x00002aaaab11c07d: nop
0x00002aaaab11c07e: nop
0x00002aaaab11c07f: callq 0x00002aaaab0f3fa0 ; OopMap{[16]=Oop off=836}
;*castore
; - java.lang.Integer::getChars@71 (line 339)
; {runtime_call}
0x00002aaaab11c084: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11c08e: rex.WB callq *%r10
;; B37: # N1 <- B28 Freq: 4.83167e-13
0x00002aaaab11c091: mov $0xffffffe4,%esi
0x00002aaaab11c096: mov %r14d,0x8(%rsp)
0x00002aaaab11c09b: callq 0x00002aaaab0f3fa0 ; OopMap{[24]=Oop off=864}
;*castore
; - java.lang.Integer::getChars@129 (line 352)
; {runtime_call}
0x00002aaaab11c0a0: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11c0aa: rex.WB callq *%r10 ;*iload_0
; - java.lang.Integer::getChars@23 (line 334)
;; B38: # B45 B39 <- B26 Freq: 2.27373e-13
0x00002aaaab11c0ad: mov %ebp,%esi
0x00002aaaab11c0af: sar $0x1f,%esi
0x00002aaaab11c0b2: movslq %ebp,%r10
0x00002aaaab11c0b5: imul $0x51eb851f,%r10,%r10
0x00002aaaab11c0bc: sar $0x25,%r10
0x00002aaaab11c0c0: mov %r10d,%edi
0x00002aaaab11c0c3: sub %esi,%edi ;*idiv
; - java.lang.Integer::getChars@26 (line 334)
0x00002aaaab11c0c5: mov %edi,%esi
0x00002aaaab11c0c7: shl $0x2,%esi
0x00002aaaab11c0ca: mov %edi,%r10d
0x00002aaaab11c0cd: shl $0x5,%r10d
0x00002aaaab11c0d1: mov %edi,%eax
0x00002aaaab11c0d3: shl $0x6,%eax
0x00002aaaab11c0d6: add %r10d,%eax
0x00002aaaab11c0d9: add %esi,%eax
0x00002aaaab11c0db: sub %eax,%ebp ;*isub
; - java.lang.Integer::getChars@41 (line 336)
0x00002aaaab11c0dd: cmp $0x64,%ebp
0x00002aaaab11c0e0: jae 0x00002aaaab11c15d
;; B39: # B33 B40 <- B38 Freq: 2.27372e-13
0x00002aaaab11c0e2: movzwl 0x10(%r8,%rbp,2),%r10d ;*caload
; - java.lang.Integer::getChars@57 (line 338)
0x00002aaaab11c0e8: cmp %ebx,%ecx
0x00002aaaab11c0ea: jae 0x00002aaaab11c035
;; B40: # B42 B41 <- B39 Freq: 2.27372e-13
0x00002aaaab11c0f0: mov 0x18(%rsp),%rcx
0x00002aaaab11c0f5: mov %r10w,0xe(%rcx,%r13,2) ;*castore
; - java.lang.Integer::getChars@58 (line 338)
0x00002aaaab11c0fb: movzwl 0x10(%r11,%rbp,2),%ecx ;*caload
; - java.lang.Integer::getChars@70 (line 339)
0x00002aaaab11c101: mov %r13d,%eax
0x00002aaaab11c104: add $0xfffffffffffffffe,%eax ;*iinc
; - java.lang.Integer::getChars@60 (line 339)
0x00002aaaab11c107: mov %ebx,%esi
0x00002aaaab11c109: dec %esi
0x00002aaaab11c10b: mov %edx,%r10d
0x00002aaaab11c10e: add $0xfffffffffffffffc,%r10d
0x00002aaaab11c112: cmp %esi,%r10d
0x00002aaaab11c115: cmovg %esi,%r10d
0x00002aaaab11c119: mov $0xffffffff,%ebp
0x00002aaaab11c11e: cmp %ebp,%r10d
0x00002aaaab11c121: cmovl %ebp,%r10d
0x00002aaaab11c125: cmp %r10d,%eax
0x00002aaaab11c128: jle 0x00002aaaab11c134
;; B41: # B25 <- B40 Freq: 2.04635e-13
0x00002aaaab11c12a: mov %edi,%ebp
0x00002aaaab11c12c: mov %eax,%r13d
0x00002aaaab11c12f: jmpq 0x00002aaaab11bfb6
;; B42: # B47 B43 <- B40 Freq: 2.27372e-14
0x00002aaaab11c134: test %eax,%eax
0x00002aaaab11c136: jle 0x00002aaaab11c176 ;*iload_0
; - java.lang.Integer::getChars@23 (line 334)
;; B43: # B55 B44 <- B42 B57 Loop: B43-B57 inner main of N175 Freq: 2.27372e-14
0x00002aaaab11c138: mov 0x18(%rsp),%r10
0x00002aaaab11c13d: mov %cx,0x10(%r10,%rax,2) ;*castore
; - java.lang.Integer::getChars@71 (line 339)
0x00002aaaab11c143: cmp $0x10000,%edi
0x00002aaaab11c149: jge 0x00002aaaab11c220 ;*if_icmplt
; - java.lang.Integer::getChars@20 (line 333)
;; B44: # B27 <- B43 Freq: 2.27372e-14
0x00002aaaab11c14f: mov %eax,%ecx
0x00002aaaab11c151: dec %ecx ;*iinc
; - java.lang.Integer::getChars@47 (line 338)
0x00002aaaab11c153: mov %eax,%r13d
0x00002aaaab11c156: mov %edi,%ebp
0x00002aaaab11c158: jmpq 0x00002aaaab11bfdb
;; B45: # B46 <- B38 Freq: 2.30392e-19
0x00002aaaab11c15d: mov %ecx,%eax
0x00002aaaab11c15f: mov %ebp,%r10d
0x00002aaaab11c162: mov %edi,%ebp
0x00002aaaab11c164: mov %r10d,%edi
;; B46: # B31 <- B45 B59 Freq: 2.30392e-19
0x00002aaaab11c167: mov %eax,%ecx
0x00002aaaab11c169: mov %edi,%r11d
0x00002aaaab11c16c: mov %ebp,%edi
0x00002aaaab11c16e: mov %r11d,%ebp
0x00002aaaab11c171: jmpq 0x00002aaaab11c006
;; B47: # B48 <- B42 Freq: 2.30391e-20
0x00002aaaab11c176: mov %edi,%ebp
0x00002aaaab11c178: mov %r13d,%r10d
0x00002aaaab11c17b: mov %eax,%r13d
0x00002aaaab11c17e: mov %r10d,%eax
;; B48: # B58 B49 <- B47 B56 Freq: 2.30392e-20
0x00002aaaab11c181: cmp $0xffffffffffffffff,%r13d
0x00002aaaab11c185: jle 0x00002aaaab11c288
0x00002aaaab11c18b: nop ;*iload_0
; - java.lang.Integer::getChars@23 (line 334)
;; B49: # B36 B50 <- B48 B54 Loop: B49-B54 inner post of N694 Freq: 2.30391e-20
0x00002aaaab11c18c: cmp %ebx,%r13d
0x00002aaaab11c18f: jae 0x00002aaaab11c061
;; B50: # B27 B51 <- B49 Freq: 2.30391e-20
0x00002aaaab11c195: mov 0x18(%rsp),%r10
0x00002aaaab11c19a: mov %cx,0x10(%r10,%r13,2) ;*castore
; - java.lang.Integer::getChars@71 (line 339)
0x00002aaaab11c1a0: mov %r13d,%ecx
0x00002aaaab11c1a3: dec %ecx ;*iinc
; - java.lang.Integer::getChars@47 (line 338)
0x00002aaaab11c1a5: cmp $0x10000,%ebp
0x00002aaaab11c1ab: jl 0x00002aaaab11bfdb ;*iload_0
; - java.lang.Integer::getChars@23 (line 334)
;; B51: # B31 B52 <- B50 Freq: 1.09859e-26
0x00002aaaab11c1b1: mov %ebp,%r10d
0x00002aaaab11c1b4: sar $0x1f,%r10d
0x00002aaaab11c1b8: movslq %ebp,%rdi
0x00002aaaab11c1bb: imul $0x51eb851f,%rdi,%rdi
0x00002aaaab11c1c2: sar $0x25,%rdi
0x00002aaaab11c1c6: mov %edi,%edi
0x00002aaaab11c1c8: sub %r10d,%edi ;*idiv
; - java.lang.Integer::getChars@26 (line 334)
0x00002aaaab11c1cb: mov %edi,%r10d
0x00002aaaab11c1ce: shl $0x2,%r10d
0x00002aaaab11c1d2: mov %edi,%esi
0x00002aaaab11c1d4: shl $0x5,%esi
0x00002aaaab11c1d7: mov %edi,%edx
0x00002aaaab11c1d9: shl $0x6,%edx
0x00002aaaab11c1dc: add %esi,%edx
0x00002aaaab11c1de: add %r10d,%edx
0x00002aaaab11c1e1: sub %edx,%ebp ;*isub
; - java.lang.Integer::getChars@41 (line 336)
0x00002aaaab11c1e3: cmp $0x64,%ebp
0x00002aaaab11c1e6: jae 0x00002aaaab11c006
;; B52: # B33 B53 <- B51 Freq: 1.09859e-26
0x00002aaaab11c1ec: movzwl 0x10(%r8,%rbp,2),%r10d ;*caload
; - java.lang.Integer::getChars@57 (line 338)
0x00002aaaab11c1f2: cmp %ebx,%ecx
0x00002aaaab11c1f4: jae 0x00002aaaab11c035
;; B53: # B35 B54 <- B52 Freq: 1.09859e-26
0x00002aaaab11c1fa: mov 0x18(%rsp),%rcx
0x00002aaaab11c1ff: mov %r10w,0xe(%rcx,%r13,2) ;*castore
; - java.lang.Integer::getChars@58 (line 338)
0x00002aaaab11c205: movzwl 0x10(%r11,%rbp,2),%ecx ;*caload
; - java.lang.Integer::getChars@70 (line 339)
0x00002aaaab11c20b: add $0xfffffffffffffffe,%r13d
;*iinc
; - java.lang.Integer::getChars@60 (line 339)
0x00002aaaab11c20f: cmp $0xffffffffffffffff,%r13d
0x00002aaaab11c213: jle 0x00002aaaab11c05f
;; B54: # B49 <- B53 Freq: 1.09859e-26
0x00002aaaab11c219: mov %edi,%ebp
0x00002aaaab11c21b: jmpq 0x00002aaaab11c18c ;*iload_0
; - java.lang.Integer::getChars@23 (line 334)
;; B55: # B59 B56 <- B43 Freq: 1.08419e-20
0x00002aaaab11c220: mov %edi,%r10d
0x00002aaaab11c223: sar $0x1f,%r10d
0x00002aaaab11c227: movslq %edi,%rcx
0x00002aaaab11c22a: imul $0x51eb851f,%rcx,%rcx
0x00002aaaab11c231: sar $0x25,%rcx
0x00002aaaab11c235: mov %ecx,%ebp
0x00002aaaab11c237: sub %r10d,%ebp ;*idiv
; - java.lang.Integer::getChars@26 (line 334)
0x00002aaaab11c23a: mov %ebp,%r10d
0x00002aaaab11c23d: shl $0x2,%r10d
0x00002aaaab11c241: mov %ebp,%ecx
0x00002aaaab11c243: shl $0x5,%ecx
0x00002aaaab11c246: mov %ebp,%esi
0x00002aaaab11c248: shl $0x6,%esi
0x00002aaaab11c24b: add %ecx,%esi
0x00002aaaab11c24d: add %r10d,%esi
0x00002aaaab11c250: sub %esi,%edi ;*isub
; - java.lang.Integer::getChars@41 (line 336)
0x00002aaaab11c252: cmp $0x64,%edi
0x00002aaaab11c255: jae 0x00002aaaab11c296 ;*caload
; - java.lang.Integer::getChars@57 (line 338)
;; B56: # B48 B57 <- B55 Freq: 1.08419e-20
0x00002aaaab11c257: movzwl 0x10(%r8,%rdi,2),%r10d
0x00002aaaab11c25d: mov 0x18(%rsp),%rcx
0x00002aaaab11c262: mov %r10w,0xe(%rcx,%rax,2) ;*castore
; - java.lang.Integer::getChars@58 (line 338)
0x00002aaaab11c268: movzwl 0x10(%r11,%rdi,2),%ecx ;*caload
; - java.lang.Integer::getChars@70 (line 339)
0x00002aaaab11c26e: mov %eax,%r13d
0x00002aaaab11c271: add $0xfffffffffffffffe,%r13d
0x00002aaaab11c275: test %r13d,%r13d
0x00002aaaab11c278: jle 0x00002aaaab11c181
;; B57: # B43 <- B56 Freq: 1.08419e-20
0x00002aaaab11c27e: mov %r13d,%eax
0x00002aaaab11c281: mov %ebp,%edi
0x00002aaaab11c283: jmpq 0x00002aaaab11c138
;; B58: # B35 <- B48 Freq: 2.30392e-26
0x00002aaaab11c288: mov %eax,%r13d
0x00002aaaab11c28b: add $0xfffffffffffffffe,%r13d
;*iinc
; - java.lang.Integer::getChars@60 (line 339)
0x00002aaaab11c28f: mov %ebp,%edi
0x00002aaaab11c291: jmpq 0x00002aaaab11c05f
;; B59: # B46 <- B55 Freq: 1.09859e-26
0x00002aaaab11c296: dec %eax ;*iinc
; - java.lang.Integer::getChars@47 (line 338)
0x00002aaaab11c298: jmpq 0x00002aaaab11c167
;; B60: # N1 <- B5 Freq: 1.01328e-06
0x00002aaaab11c29d: mov $0xfffffff6,%esi
0x00002aaaab11c2a2: mov %ecx,%ebp
0x00002aaaab11c2a4: mov %r8d,(%rsp)
0x00002aaaab11c2a8: nop
0x00002aaaab11c2a9: nop
0x00002aaaab11c2aa: nop
0x00002aaaab11c2ab: callq 0x00002aaaab0f3fa0 ; OopMap{off=1392}
;*castore
; - java.lang.Integer::getChars@106 (line 347)
; {runtime_call}
0x00002aaaab11c2b0: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11c2ba: rex.WB callq *%r10 ;*castore
; - java.lang.Integer::getChars@106 (line 347)
;; B61: # N1 <- B21 Freq: 4.83169e-13
0x00002aaaab11c2bd: mov %esi,%ebp
0x00002aaaab11c2bf: mov %edx,0x8(%rsp)
0x00002aaaab11c2c3: mov %r14d,0xc(%rsp)
0x00002aaaab11c2c8: mov $0xffffff86,%esi
0x00002aaaab11c2cd: nop
0x00002aaaab11c2ce: nop
0x00002aaaab11c2cf: callq 0x00002aaaab0f3fa0 ; OopMap{[24]=Oop off=1428}
;*iload_0
; - java.lang.Integer::getChars@23 (line 334)
; {runtime_call}
0x00002aaaab11c2d4: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11c2de: rex.WB callq *%r10 ;*iinc
; - java.lang.Integer::getChars@60 (line 339)
0x00002aaaab11c2e1: hlt
0x00002aaaab11c2e2: hlt
0x00002aaaab11c2e3: hlt
0x00002aaaab11c2e4: hlt
0x00002aaaab11c2e5: hlt
0x00002aaaab11c2e6: hlt
0x00002aaaab11c2e7: hlt
0x00002aaaab11c2e8: hlt
0x00002aaaab11c2e9: hlt
0x00002aaaab11c2ea: hlt
0x00002aaaab11c2eb: hlt
0x00002aaaab11c2ec: hlt
0x00002aaaab11c2ed: hlt
0x00002aaaab11c2ee: hlt
0x00002aaaab11c2ef: hlt
0x00002aaaab11c2f0: hlt
0x00002aaaab11c2f1: hlt
0x00002aaaab11c2f2: hlt
0x00002aaaab11c2f3: hlt
0x00002aaaab11c2f4: hlt
0x00002aaaab11c2f5: hlt
0x00002aaaab11c2f6: hlt
0x00002aaaab11c2f7: hlt
0x00002aaaab11c2f8: hlt
0x00002aaaab11c2f9: hlt
0x00002aaaab11c2fa: hlt
0x00002aaaab11c2fb: hlt
0x00002aaaab11c2fc: hlt
0x00002aaaab11c2fd: hlt
0x00002aaaab11c2fe: hlt
0x00002aaaab11c2ff: hlt
[Exception Handler]
[Stub Code]
0x00002aaaab11c300: jmpq 0x00002aaaab101c20 ; {no_reloc}
[Deopt Handler Code]
0x00002aaaab11c305: callq 0x00002aaaab11c30a
0x00002aaaab11c30a: subq $0x5,(%rsp)
0x00002aaaab11c30f: jmpq 0x00002aaaab0f3ae0 ; {runtime_call}
0x00002aaaab11c314: int3
0x00002aaaab11c315: int3
0x00002aaaab11c316: int3
0x00002aaaab11c317: int3
567 5 java.lang.String::length (5 bytes)
Decoding compiled method 0x00002aaaab11cdd0:
Code:
[Entry Point]
[Constants]
# {method} 'length' '()I' in 'java/lang/String'
# [sp+0x20] (sp of caller)
;; N16: # B1 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab11cf00: mov 0x8(%rsi),%r10d
0x00002aaaab11cf04: cmp %r10,%rax
0x00002aaaab11cf07: jne 0x00002aaaab0f2920 ; {runtime_call}
0x00002aaaab11cf0d: nop
0x00002aaaab11cf0e: nop
0x00002aaaab11cf0f: nop
[Verified Entry Point]
;; B1: # N16 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab11cf10: push %rbp
0x00002aaaab11cf11: sub $0x10,%rsp
0x00002aaaab11cf15: nop ;*synchronization entry
; - java.lang.String::length@-1 (line 651)
0x00002aaaab11cf16: mov 0x14(%rsi),%eax ;*getfield count
; - java.lang.String::length@1 (line 651)
0x00002aaaab11cf19: add $0x10,%rsp
0x00002aaaab11cf1d: pop %rbp
0x00002aaaab11cf1e: test %eax,-0x424f24(%rip) # 0x00002aaaaacf8000
; {poll_return}
0x00002aaaab11cf24: retq
0x00002aaaab11cf25: hlt
0x00002aaaab11cf26: hlt
0x00002aaaab11cf27: hlt
0x00002aaaab11cf28: hlt
0x00002aaaab11cf29: hlt
0x00002aaaab11cf2a: hlt
0x00002aaaab11cf2b: hlt
0x00002aaaab11cf2c: hlt
0x00002aaaab11cf2d: hlt
0x00002aaaab11cf2e: hlt
0x00002aaaab11cf2f: hlt
0x00002aaaab11cf30: hlt
0x00002aaaab11cf31: hlt
0x00002aaaab11cf32: hlt
0x00002aaaab11cf33: hlt
0x00002aaaab11cf34: hlt
0x00002aaaab11cf35: hlt
0x00002aaaab11cf36: hlt
0x00002aaaab11cf37: hlt
0x00002aaaab11cf38: hlt
0x00002aaaab11cf39: hlt
0x00002aaaab11cf3a: hlt
0x00002aaaab11cf3b: hlt
0x00002aaaab11cf3c: hlt
0x00002aaaab11cf3d: hlt
0x00002aaaab11cf3e: hlt
0x00002aaaab11cf3f: hlt
[Exception Handler]
[Stub Code]
0x00002aaaab11cf40: jmpq 0x00002aaaab101c20 ; {no_reloc}
[Deopt Handler Code]
0x00002aaaab11cf45: callq 0x00002aaaab11cf4a
0x00002aaaab11cf4a: subq $0x5,(%rsp)
0x00002aaaab11cf4f: jmpq 0x00002aaaab0f3ae0 ; {runtime_call}
0x00002aaaab11cf54: int3
0x00002aaaab11cf55: int3
0x00002aaaab11cf56: int3
0x00002aaaab11cf57: int3
573 6 java.lang.StringBuilder::append (8 bytes)
573 7 java.lang.AbstractStringBuilder::append (40 bytes)
Warning: TraceDependencies results may be inflated by VerifyDependencies
Decoding compiled method 0x00002aaaab11b750:
Code:
[Entry Point]
[Constants]
# {method} 'append' '(C)Ljava/lang/AbstractStringBuilder;' in 'java/lang/AbstractStringBuilder'
# this: rsi:rsi = 'java/lang/AbstractStringBuilder'
# parm0: rdx = char
# [sp+0x30] (sp of caller)
;; N120: # B1 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab11b8a0: mov 0x8(%rsi),%r10d
0x00002aaaab11b8a4: cmp %r10,%rax
0x00002aaaab11b8a7: jne 0x00002aaaab0f2920 ; {runtime_call}
0x00002aaaab11b8ad: nop
0x00002aaaab11b8ae: nop
0x00002aaaab11b8af: nop
[Verified Entry Point]
;; B1: # B10 B2 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab11b8b0: mov %eax,-0x8000(%rsp)
0x00002aaaab11b8b7: push %rbp
0x00002aaaab11b8b8: sub $0x20,%rsp ;*synchronization entry
; - java.lang.AbstractStringBuilder::append@-1 (line 570)
0x00002aaaab11b8bc: mov %edx,0xc(%rsp)
0x00002aaaab11b8c0: mov %rsi,(%rsp)
0x00002aaaab11b8c4: mov 0x10(%rsi),%r8d ;*getfield value
; - java.lang.AbstractStringBuilder::append@9 (line 571)
0x00002aaaab11b8c8: mov 0xc(%r8),%r10d ; implicit exception: dispatches to 0x00002aaaab11b959
;; B2: # B7 B3 <- B1 Freq: 0.999999
0x00002aaaab11b8cc: mov 0xc(%rsi),%ebp ;*getfield count
; - java.lang.AbstractStringBuilder::append@1 (line 570)
0x00002aaaab11b8cf: mov %ebp,%edx
0x00002aaaab11b8d1: inc %edx ;*iadd
; - java.lang.AbstractStringBuilder::append@5 (line 570)
0x00002aaaab11b8d3: cmp %r10d,%edx
0x00002aaaab11b8d6: jg 0x00002aaaab11b91d ;*if_icmple
; - java.lang.AbstractStringBuilder::append@13 (line 571)
;; B3: # B4 <- B2 Freq: 0.999999
0x00002aaaab11b8d8: mov %edx,0xc(%rsi) ;*putfield count
; - java.lang.AbstractStringBuilder::append@33 (line 573)
;; B4: # B6 B5 <- B8 B3 Freq: 0.999999
0x00002aaaab11b8db: mov 0xc(%r8),%r10d
0x00002aaaab11b8df: cmp %r10d,%ebp
0x00002aaaab11b8e2: jae 0x00002aaaab11b8ff
;; B5: # N120 <- B4 Freq: 0.999998
0x00002aaaab11b8e4: mov 0xc(%rsp),%r11d
0x00002aaaab11b8e9: mov %r11w,0x10(%r8,%rbp,2) ;*synchronization entry
; - java.lang.AbstractStringBuilder::append@-1 (line 570)
0x00002aaaab11b8ef: mov (%rsp),%rax
0x00002aaaab11b8f3: add $0x20,%rsp
0x00002aaaab11b8f7: pop %rbp
0x00002aaaab11b8f8: test %eax,-0x4238fe(%rip) # 0x00002aaaaacf8000
; {poll_return}
0x00002aaaab11b8fe: retq
;; B6: # N120 <- B4 Freq: 1.01328e-06
0x00002aaaab11b8ff: mov $0xffffffe4,%esi
0x00002aaaab11b904: mov %r8d,0x8(%rsp)
0x00002aaaab11b909: nop
0x00002aaaab11b90a: nop
0x00002aaaab11b90b: callq 0x00002aaaab0f3fa0 ; OopMap{[0]=Oop [8]=NarrowOop off=112}
;*castore
; - java.lang.AbstractStringBuilder::append@37 (line 573)
; {runtime_call}
0x00002aaaab11b910: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11b91a: rex.WB callq *%r10 ;*castore
; - java.lang.AbstractStringBuilder::append@37 (line 573)
;; B7: # B11 B8 <- B2 Freq: 4.76837e-07
0x00002aaaab11b91d: mov %rsi,%rbp
0x00002aaaab11b920: nop
0x00002aaaab11b921: nop
0x00002aaaab11b922: nop
0x00002aaaab11b923: callq 0x00002aaaab0f2b20 ; OopMap{rbp=Oop [0]=Oop off=136}
;*invokevirtual expandCapacity
; - java.lang.AbstractStringBuilder::append@18 (line 572)
; {optimized virtual_call}
;; B8: # B4 B9 <- B7 Freq: 4.76827e-07
0x00002aaaab11b928: mov 0xc(%rbp),%ebp ;*getfield count
; - java.lang.AbstractStringBuilder::append@27 (line 573)
0x00002aaaab11b92b: mov (%rsp),%r10
0x00002aaaab11b92f: mov 0x10(%r10),%r8d ;*getfield value
; - java.lang.AbstractStringBuilder::append@22 (line 573)
0x00002aaaab11b933: mov %ebp,%r11d
0x00002aaaab11b936: inc %r11d
0x00002aaaab11b939: mov %r11d,0xc(%r10) ;*putfield count
; - java.lang.AbstractStringBuilder::append@33 (line 573)
0x00002aaaab11b93d: test %r8d,%r8d
0x00002aaaab11b940: jne 0x00002aaaab11b8db
;; B9: # N120 <- B8 Freq: 4.83159e-13
0x00002aaaab11b942: mov $0xfffffff6,%esi
0x00002aaaab11b947: callq 0x00002aaaab0f3fa0 ; OopMap{off=172}
;*castore
; - java.lang.AbstractStringBuilder::append@37 (line 573)
; {runtime_call}
0x00002aaaab11b94c: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11b956: rex.WB callq *%r10 ;*castore
; - java.lang.AbstractStringBuilder::append@37 (line 573)
;; B10: # N120 <- B1 Freq: 1.01328e-06
0x00002aaaab11b959: mov $0xfffffff6,%esi
0x00002aaaab11b95e: nop
0x00002aaaab11b95f: callq 0x00002aaaab0f3fa0 ; OopMap{off=196}
;*arraylength
; - java.lang.AbstractStringBuilder::append@12 (line 571)
; {runtime_call}
0x00002aaaab11b964: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11b96e: rex.WB callq *%r10 ;*invokevirtual expandCapacity
; - java.lang.AbstractStringBuilder::append@18 (line 572)
;; B11: # N120 <- B7 Freq: 4.76837e-12
0x00002aaaab11b971: mov %rax,%rsi
0x00002aaaab11b974: add $0x20,%rsp
0x00002aaaab11b978: pop %rbp
0x00002aaaab11b979: jmpq 0x00002aaaab117a20 ; {runtime_call}
0x00002aaaab11b97e: hlt
0x00002aaaab11b97f: hlt
[Stub Code]
0x00002aaaab11b980: mov $0x0,%rbx ; {no_reloc}
0x00002aaaab11b98a: jmpq 0x00002aaaab11b98a ; {runtime_call}
[Exception Handler]
0x00002aaaab11b98f: jmpq 0x00002aaaab101c20 ; {runtime_call}
[Deopt Handler Code]
0x00002aaaab11b994: callq 0x00002aaaab11b999
0x00002aaaab11b999: subq $0x5,(%rsp)
0x00002aaaab11b99e: jmpq 0x00002aaaab0f3ae0 ; {runtime_call}
0x00002aaaab11b9a3: int3
0x00002aaaab11b9a4: int3
0x00002aaaab11b9a5: int3
0x00002aaaab11b9a6: int3
0x00002aaaab11b9a7: int3
Decoding compiled method 0x00002aaaab11b1d0:
Code:
[Entry Point]
[Constants]
# {method} 'append' '(C)Ljava/lang/StringBuilder;' in 'java/lang/StringBuilder'
# this: rsi:rsi = 'java/lang/StringBuilder'
# parm0: rdx = char
# [sp+0x40] (sp of caller)
;; N122: # B1 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab11b320: mov 0x8(%rsi),%r10d
0x00002aaaab11b324: cmp %r10,%rax
0x00002aaaab11b327: jne 0x00002aaaab0f2920 ; {runtime_call}
0x00002aaaab11b32d: nop
0x00002aaaab11b32e: nop
0x00002aaaab11b32f: nop
[Verified Entry Point]
;; B1: # B10 B2 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab11b330: mov %eax,-0x8000(%rsp)
0x00002aaaab11b337: push %rbp
0x00002aaaab11b338: sub $0x30,%rsp ;*synchronization entry
; - java.lang.StringBuilder::append@-1 (line 203)
0x00002aaaab11b33c: mov %edx,0x14(%rsp)
0x00002aaaab11b340: mov %rsi,(%rsp)
0x00002aaaab11b344: mov 0x10(%rsi),%r8d ;*getfield value
; - java.lang.AbstractStringBuilder::append@9 (line 571)
; - java.lang.StringBuilder::append@2 (line 203)
0x00002aaaab11b348: mov 0xc(%r8),%r10d ; implicit exception: dispatches to 0x00002aaaab11b3d9
;; B2: # B7 B3 <- B1 Freq: 0.999999
0x00002aaaab11b34c: mov 0xc(%rsi),%ebp ;*getfield count
; - java.lang.AbstractStringBuilder::append@1 (line 570)
; - java.lang.StringBuilder::append@2 (line 203)
0x00002aaaab11b34f: mov %ebp,%edx
0x00002aaaab11b351: inc %edx ;*iadd
; - java.lang.AbstractStringBuilder::append@5 (line 570)
; - java.lang.StringBuilder::append@2 (line 203)
0x00002aaaab11b353: cmp %r10d,%edx
0x00002aaaab11b356: jg 0x00002aaaab11b39d ;*if_icmple
; - java.lang.AbstractStringBuilder::append@13 (line 571)
; - java.lang.StringBuilder::append@2 (line 203)
;; B3: # B4 <- B2 Freq: 0.999999
0x00002aaaab11b358: mov %edx,0xc(%rsi) ;*putfield count
; - java.lang.AbstractStringBuilder::append@33 (line 573)
; - java.lang.StringBuilder::append@2 (line 203)
;; B4: # B6 B5 <- B8 B3 Freq: 0.999999
0x00002aaaab11b35b: mov 0xc(%r8),%r10d
0x00002aaaab11b35f: cmp %r10d,%ebp
0x00002aaaab11b362: jae 0x00002aaaab11b37f
;; B5: # N122 <- B4 Freq: 0.999998
0x00002aaaab11b364: mov 0x14(%rsp),%r11d
0x00002aaaab11b369: mov %r11w,0x10(%r8,%rbp,2) ;*synchronization entry
; - java.lang.StringBuilder::append@-1 (line 203)
0x00002aaaab11b36f: mov (%rsp),%rax
0x00002aaaab11b373: add $0x30,%rsp
0x00002aaaab11b377: pop %rbp
0x00002aaaab11b378: test %eax,-0x42337e(%rip) # 0x00002aaaaacf8000
; {poll_return}
0x00002aaaab11b37e: retq
;; B6: # N122 <- B4 Freq: 1.01328e-06
0x00002aaaab11b37f: mov $0xffffffe4,%esi
0x00002aaaab11b384: mov %r8d,0x10(%rsp)
0x00002aaaab11b389: nop
0x00002aaaab11b38a: nop
0x00002aaaab11b38b: callq 0x00002aaaab0f3fa0 ; OopMap{[0]=Oop [16]=NarrowOop off=112}
;*castore
; - java.lang.AbstractStringBuilder::append@37 (line 573)
; - java.lang.StringBuilder::append@2 (line 203)
; {runtime_call}
0x00002aaaab11b390: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11b39a: rex.WB callq *%r10 ;*castore
; - java.lang.AbstractStringBuilder::append@37 (line 573)
; - java.lang.StringBuilder::append@2 (line 203)
;; B7: # B11 B8 <- B2 Freq: 4.76837e-07
0x00002aaaab11b39d: mov %rsi,%rbp
0x00002aaaab11b3a0: nop
0x00002aaaab11b3a1: nop
0x00002aaaab11b3a2: nop
0x00002aaaab11b3a3: callq 0x00002aaaab0f2b20 ; OopMap{rbp=Oop [0]=Oop off=136}
;*invokevirtual expandCapacity
; - java.lang.AbstractStringBuilder::append@18 (line 572)
; - java.lang.StringBuilder::append@2 (line 203)
; {optimized virtual_call}
;; B8: # B4 B9 <- B7 Freq: 4.76827e-07
0x00002aaaab11b3a8: mov 0xc(%rbp),%ebp ;*getfield count
; - java.lang.AbstractStringBuilder::append@27 (line 573)
; - java.lang.StringBuilder::append@2 (line 203)
0x00002aaaab11b3ab: mov (%rsp),%r10
0x00002aaaab11b3af: mov 0x10(%r10),%r8d ;*getfield value
; - java.lang.AbstractStringBuilder::append@22 (line 573)
; - java.lang.StringBuilder::append@2 (line 203)
0x00002aaaab11b3b3: mov %ebp,%r11d
0x00002aaaab11b3b6: inc %r11d
0x00002aaaab11b3b9: mov %r11d,0xc(%r10) ;*putfield count
; - java.lang.AbstractStringBuilder::append@33 (line 573)
; - java.lang.StringBuilder::append@2 (line 203)
0x00002aaaab11b3bd: test %r8d,%r8d
0x00002aaaab11b3c0: jne 0x00002aaaab11b35b
;; B9: # N122 <- B8 Freq: 4.83159e-13
0x00002aaaab11b3c2: mov $0xfffffff6,%esi
0x00002aaaab11b3c7: callq 0x00002aaaab0f3fa0 ; OopMap{off=172}
;*castore
; - java.lang.AbstractStringBuilder::append@37 (line 573)
; - java.lang.StringBuilder::append@2 (line 203)
; {runtime_call}
0x00002aaaab11b3cc: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11b3d6: rex.WB callq *%r10 ;*castore
; - java.lang.AbstractStringBuilder::append@37 (line 573)
; - java.lang.StringBuilder::append@2 (line 203)
;; B10: # N122 <- B1 Freq: 1.01328e-06
0x00002aaaab11b3d9: mov $0xfffffff6,%esi
0x00002aaaab11b3de: nop
0x00002aaaab11b3df: callq 0x00002aaaab0f3fa0 ; OopMap{off=196}
;*arraylength
; - java.lang.AbstractStringBuilder::append@12 (line 571)
; - java.lang.StringBuilder::append@2 (line 203)
; {runtime_call}
0x00002aaaab11b3e4: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11b3ee: rex.WB callq *%r10 ;*invokevirtual expandCapacity
; - java.lang.AbstractStringBuilder::append@18 (line 572)
; - java.lang.StringBuilder::append@2 (line 203)
;; B11: # N122 <- B7 Freq: 4.76837e-12
0x00002aaaab11b3f1: mov %rax,%rsi
0x00002aaaab11b3f4: add $0x30,%rsp
0x00002aaaab11b3f8: pop %rbp
0x00002aaaab11b3f9: jmpq 0x00002aaaab117a20 ; {runtime_call}
0x00002aaaab11b3fe: hlt
0x00002aaaab11b3ff: hlt
[Stub Code]
0x00002aaaab11b400: mov $0x0,%rbx ; {no_reloc}
0x00002aaaab11b40a: jmpq 0x00002aaaab11b40a ; {runtime_call}
[Exception Handler]
0x00002aaaab11b40f: jmpq 0x00002aaaab101c20 ; {runtime_call}
[Deopt Handler Code]
0x00002aaaab11b414: callq 0x00002aaaab11b419
0x00002aaaab11b419: subq $0x5,(%rsp)
0x00002aaaab11b41e: jmpq 0x00002aaaab0f3ae0 ; {runtime_call}
0x00002aaaab11b423: int3
0x00002aaaab11b424: int3
0x00002aaaab11b425: int3
0x00002aaaab11b426: int3
0x00002aaaab11b427: int3
592 8 java.lang.Math::min (11 bytes)
Decoding compiled method 0x00002aaaab11cbd0:
Code:
[Entry Point]
[Verified Entry Point]
[Constants]
# {method} 'min' '(II)I' in 'java/lang/Math'
# parm0: rsi = int
# parm1: rdx = int
# [sp+0x20] (sp of caller)
;; N1: # B1 <- B3 Freq: 1
;; B1: # B4 B2 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab11cd00: push %rbp
0x00002aaaab11cd01: sub $0x10,%rsp
0x00002aaaab11cd05: nop ;*synchronization entry
; - java.lang.Math::min@-1 (line 863)
0x00002aaaab11cd06: cmp %edx,%esi
0x00002aaaab11cd08: jle 0x00002aaaab11cd18 ;*if_icmpgt
; - java.lang.Math::min@2 (line 863)
;; B2: # B3 <- B1 Freq: 1
0x00002aaaab11cd0a: mov %edx,%eax ;*ireturn
; - java.lang.Math::min@10 (line 863)
;; B3: # N1 <- B2 B4 Freq: 1
0x00002aaaab11cd0c: add $0x10,%rsp
0x00002aaaab11cd10: pop %rbp
0x00002aaaab11cd11: test %eax,-0x424d17(%rip) # 0x00002aaaaacf8000
; {poll_return}
0x00002aaaab11cd17: retq
;; B4: # B3 <- B1 Freq: 4.76837e-07
0x00002aaaab11cd18: mov %esi,%eax
0x00002aaaab11cd1a: jmp 0x00002aaaab11cd0c
0x00002aaaab11cd1c: hlt
0x00002aaaab11cd1d: hlt
0x00002aaaab11cd1e: hlt
0x00002aaaab11cd1f: hlt
[Exception Handler]
[Stub Code]
0x00002aaaab11cd20: jmpq 0x00002aaaab101c20 ; {no_reloc}
[Deopt Handler Code]
0x00002aaaab11cd25: callq 0x00002aaaab11cd2a
0x00002aaaab11cd2a: subq $0x5,(%rsp)
0x00002aaaab11cd2f: jmpq 0x00002aaaab0f3ae0 ; {runtime_call}
0x00002aaaab11cd34: int3
0x00002aaaab11cd35: int3
0x00002aaaab11cd36: int3
0x00002aaaab11cd37: int3
596 9 java.lang.String::getChars (66 bytes)
596 10 java.lang.AbstractStringBuilder::append (60 bytes)
Decoding compiled method 0x00002aaaab118bd0:
Code:
[Entry Point]
[Constants]
# {method} 'getChars' '(II[CI)V' in 'java/lang/String'
# this: rsi:rsi = 'java/lang/String'
# parm0: rdx = int
# parm1: rcx = int
# parm2: r8:r8 = '[C'
# parm3: r9 = int
# [sp+0x30] (sp of caller)
;; N201: # B1 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab118d20: mov 0x8(%rsi),%r10d
0x00002aaaab118d24: cmp %r10,%rax
0x00002aaaab118d27: jne 0x00002aaaab0f2920 ; {runtime_call}
0x00002aaaab118d2d: nop
0x00002aaaab118d2e: nop
0x00002aaaab118d2f: nop
[Verified Entry Point]
;; B1: # B16 B2 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab118d30: mov %eax,-0x8000(%rsp)
0x00002aaaab118d37: push %rbp
0x00002aaaab118d38: sub $0x20,%rsp ;*synchronization entry
; - java.lang.String::getChars@-1 (line 845)
0x00002aaaab118d3c: test %edx,%edx
0x00002aaaab118d3e: jl 0x00002aaaab118dce ;*ifge
; - java.lang.String::getChars@1 (line 845)
;; B2: # B17 B3 <- B1 Freq: 1
0x00002aaaab118d44: mov 0x14(%rsi),%r10d
0x00002aaaab118d48: cmp %r10d,%ecx
0x00002aaaab118d4b: jg 0x00002aaaab118de9 ;*if_icmple
; - java.lang.String::getChars@18 (line 848)
;; B3: # B18 B4 <- B2 Freq: 0.999999
0x00002aaaab118d51: cmp %ecx,%edx
0x00002aaaab118d53: jg 0x00002aaaab118e05 ;*if_icmple
; - java.lang.String::getChars@32 (line 851)
;; B4: # B19 B5 <- B3 Freq: 0.999999
0x00002aaaab118d59: mov %ecx,%r10d
0x00002aaaab118d5c: sub %edx,%r10d ;*isub
; - java.lang.String::getChars@61 (line 854)
0x00002aaaab118d5f: mov 0xc(%rsi),%ebp ;*getfield value
; - java.lang.String::getChars@47 (line 854)
0x00002aaaab118d62: mov 0x10(%rsi),%r11d ;*getfield offset
; - java.lang.String::getChars@51 (line 854)
0x00002aaaab118d66: add %r11d,%edx ;*iadd
; - java.lang.String::getChars@55 (line 854)
0x00002aaaab118d69: mov 0xc(%rbp),%eax ; implicit exception: dispatches to 0x00002aaaab118e21
;; B5: # B20 B6 <- B4 Freq: 0.999998
0x00002aaaab118d6c: mov 0xc(%r8),%ebx ; implicit exception: dispatches to 0x00002aaaab118e49
;; B6: # B14 B7 <- B5 Freq: 0.999997
0x00002aaaab118d70: mov %rbp,%rsi ;*getfield value
; - java.lang.String::getChars@47 (line 854)
0x00002aaaab118d73: test %edx,%edx
0x00002aaaab118d75: jl 0x00002aaaab118dbd
;; B7: # B14 B8 <- B6 Freq: 0.999996
0x00002aaaab118d77: test %r9d,%r9d
0x00002aaaab118d7a: jl 0x00002aaaab118dbd
;; B8: # B14 B9 <- B7 Freq: 0.999995
0x00002aaaab118d7c: add %r11d,%ecx
0x00002aaaab118d7f: cmp %ecx,%eax
0x00002aaaab118d81: jb 0x00002aaaab118dbd
;; B9: # B14 B10 <- B8 Freq: 0.999994
0x00002aaaab118d83: mov %r9d,%ecx
0x00002aaaab118d86: add %r10d,%ecx
0x00002aaaab118d89: cmp %ecx,%ebx
0x00002aaaab118d8b: jb 0x00002aaaab118dbd
;; B10: # B13 B11 <- B9 Freq: 0.999992
0x00002aaaab118d8d: test %r10d,%r10d
0x00002aaaab118d90: jle 0x00002aaaab118db8
;; B11: # B12 <- B10 Freq: 0.999991
0x00002aaaab118d92: lea 0x10(%rbp,%rdx,2),%rdi
0x00002aaaab118d97: lea 0x10(%r8,%r9,2),%rsi
0x00002aaaab118d9c: movslq %r10d,%rdx
0x00002aaaab118d9f: mov $0x2aaaab0fce80,%r10
0x00002aaaab118da9: callq *%r10
;; B12: # N201 <- B11 B13 B15 Freq: 0.999996
0x00002aaaab118dac: add $0x20,%rsp
0x00002aaaab118db0: pop %rbp
0x00002aaaab118db1: test %eax,-0x420db7(%rip) # 0x00002aaaaacf8000
; {poll_return}
0x00002aaaab118db7: retq
;; B13: # B12 B14 <- B10 Freq: 9.99992e-07
0x00002aaaab118db8: test %r10d,%r10d
0x00002aaaab118dbb: jge 0x00002aaaab118dac
;; B14: # B21 B15 <- B6 B7 B8 B9 B13 Freq: 3.99998e-06
0x00002aaaab118dbd: mov %r8,%rcx
0x00002aaaab118dc0: mov %r9d,%r8d
0x00002aaaab118dc3: mov %r10d,%r9d
0x00002aaaab118dc6: nop
0x00002aaaab118dc7: callq 0x00002aaaab11b020 ; OopMap{off=172}
;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
; {runtime_call}
;; B15: # B12 <- B14 Freq: 3.9999e-06
0x00002aaaab118dcc: jmp 0x00002aaaab118dac
;; B16: # N201 <- B1 Freq: 4.76837e-07
0x00002aaaab118dce: mov $0xce,%esi
0x00002aaaab118dd3: mov %edx,%ebp
0x00002aaaab118dd5: nop
0x00002aaaab118dd6: nop
0x00002aaaab118dd7: callq 0x00002aaaab0f3fa0 ; OopMap{off=188}
;*new ; - java.lang.String::getChars@4 (line 846)
; {runtime_call}
0x00002aaaab118ddc: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab118de6: rex.WB callq *%r10 ;*new ; - java.lang.String::getChars@4 (line 846)
;; B17: # N201 <- B2 Freq: 4.76837e-07
0x00002aaaab118de9: mov $0xce,%esi
0x00002aaaab118dee: mov %ecx,%ebp
0x00002aaaab118df0: nop
0x00002aaaab118df1: nop
0x00002aaaab118df2: nop
0x00002aaaab118df3: callq 0x00002aaaab0f3fa0 ; OopMap{off=216}
;*new ; - java.lang.String::getChars@21 (line 849)
; {runtime_call}
0x00002aaaab118df8: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab118e02: rex.WB callq *%r10 ;*new ; - java.lang.String::getChars@21 (line 849)
;; B18: # N201 <- B3 Freq: 4.76837e-07
0x00002aaaab118e05: mov $0xce,%esi
0x00002aaaab118e0a: mov %edx,%ebp
0x00002aaaab118e0c: mov %ecx,(%rsp)
0x00002aaaab118e0f: callq 0x00002aaaab0f3fa0 ; OopMap{off=244}
;*new ; - java.lang.String::getChars@35 (line 852)
; {runtime_call}
0x00002aaaab118e14: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab118e1e: rex.WB callq *%r10 ;*new ; - java.lang.String::getChars@35 (line 852)
;; B19: # N201 <- B4 Freq: 1.01328e-06
0x00002aaaab118e21: mov $0xfffffff6,%esi
0x00002aaaab118e26: mov %edx,%ebp
0x00002aaaab118e28: mov %r8,(%rsp)
0x00002aaaab118e2c: mov %r9d,0x8(%rsp)
0x00002aaaab118e31: mov %r10d,0xc(%rsp)
0x00002aaaab118e36: nop
0x00002aaaab118e37: callq 0x00002aaaab0f3fa0 ; OopMap{[0]=Oop off=284}
;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
; {runtime_call}
0x00002aaaab118e3c: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab118e46: rex.WB callq *%r10
;; B20: # N201 <- B5 Freq: 1.01328e-06
0x00002aaaab118e49: mov $0xfffffff6,%esi
0x00002aaaab118e4e: mov %edx,(%rsp)
0x00002aaaab118e51: mov %r9d,0x4(%rsp)
0x00002aaaab118e56: mov %r10d,0x8(%rsp)
0x00002aaaab118e5b: callq 0x00002aaaab0f3fa0 ; OopMap{rbp=NarrowOop off=320}
;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
; {runtime_call}
0x00002aaaab118e60: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab118e6a: rex.WB callq *%r10 ;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
;; B21: # N201 <- B14 Freq: 3.99998e-11
0x00002aaaab118e6d: mov %rax,%rsi
0x00002aaaab118e70: add $0x20,%rsp
0x00002aaaab118e74: pop %rbp
0x00002aaaab118e75: jmpq 0x00002aaaab117a20 ; {runtime_call}
0x00002aaaab118e7a: hlt
0x00002aaaab118e7b: hlt
0x00002aaaab118e7c: hlt
0x00002aaaab118e7d: hlt
0x00002aaaab118e7e: hlt
0x00002aaaab118e7f: hlt
[Exception Handler]
[Stub Code]
0x00002aaaab118e80: jmpq 0x00002aaaab101c20 ; {no_reloc}
[Deopt Handler Code]
0x00002aaaab118e85: callq 0x00002aaaab118e8a
0x00002aaaab118e8a: subq $0x5,(%rsp)
0x00002aaaab118e8f: jmpq 0x00002aaaab0f3ae0 ; {runtime_call}
0x00002aaaab118e94: int3
0x00002aaaab118e95: int3
0x00002aaaab118e96: int3
0x00002aaaab118e97: int3
Decoding compiled method 0x00002aaaab118450:
Code:
[Entry Point]
[Constants]
# {method} 'append' '(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder;' in 'java/lang/AbstractStringBuilder'
# this: rsi:rsi = 'java/lang/AbstractStringBuilder'
# parm0: rdx:rdx = 'java/lang/String'
# [sp+0x40] (sp of caller)
;; N291: # B1 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab1185c0: mov 0x8(%rsi),%r10d
0x00002aaaab1185c4: cmp %r10,%rax
0x00002aaaab1185c7: jne 0x00002aaaab0f2920 ; {runtime_call}
0x00002aaaab1185cd: nop
0x00002aaaab1185ce: nop
0x00002aaaab1185cf: nop
[Verified Entry Point]
;; B1: # B27 B2 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab1185d0: mov %eax,-0x8000(%rsp)
0x00002aaaab1185d7: push %rbp
0x00002aaaab1185d8: sub $0x30,%rsp ;*synchronization entry
; - java.lang.AbstractStringBuilder::append@-1 (line 385)
0x00002aaaab1185dc: mov %rsi,(%rsp)
0x00002aaaab1185e0: mov %rdx,%rbp
0x00002aaaab1185e3: mov 0x14(%rdx),%r10d ;*getfield count
; - java.lang.String::length@1 (line 651)
; - java.lang.AbstractStringBuilder::append@8 (line 386)
; implicit exception: dispatches to 0x00002aaaab11876d
;; B2: # B17 B3 <- B1 Freq: 1
0x00002aaaab1185e7: test %r10d,%r10d
0x00002aaaab1185ea: je 0x00002aaaab118681 ;*ifne
; - java.lang.AbstractStringBuilder::append@13 (line 387)
;; B3: # B24 B4 <- B2 Freq: 0.999999
0x00002aaaab1185f0: mov 0x10(%rsi),%r9d ;*getfield value
; - java.lang.AbstractStringBuilder::append@27 (line 389)
0x00002aaaab1185f4: mov 0xc(%r9),%r8d ; implicit exception: dispatches to 0x00002aaaab118709
;; B4: # B21 B5 <- B3 Freq: 0.999998
0x00002aaaab1185f8: mov 0xc(%rsi),%r11d ;*getfield count
; - java.lang.AbstractStringBuilder::append@19 (line 388)
0x00002aaaab1185fc: mov %r10d,%ecx
0x00002aaaab1185ff: add %r11d,%ecx ;*iadd
; - java.lang.AbstractStringBuilder::append@23 (line 388)
0x00002aaaab118602: mov %ecx,0xc(%rsp)
0x00002aaaab118606: cmp %r8d,%ecx
0x00002aaaab118609: jg 0x00002aaaab1186c1 ;*if_icmple
; - java.lang.AbstractStringBuilder::append@31 (line 389)
;; B5: # B6 <- B4 Freq: 0.999998
0x00002aaaab11860f: mov %r10d,%ecx ;*getfield count
; - java.lang.AbstractStringBuilder::append@47 (line 391)
;; B6: # B20 B7 <- B22 B5 Freq: 0.999998
0x00002aaaab118612: cmp %ecx,%r10d
0x00002aaaab118615: jg 0x00002aaaab1186a2 ;*if_icmple
; - java.lang.String::getChars@18 (line 848)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
;; B7: # B23 B8 <- B6 Freq: 0.999998
0x00002aaaab11861b: test %r10d,%r10d
0x00002aaaab11861e: jl 0x00002aaaab1186e9 ;*if_icmple
; - java.lang.String::getChars@32 (line 851)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
;; B8: # B25 B9 <- B7 Freq: 0.999997
0x00002aaaab118624: mov 0x10(%rbp),%edx ;*getfield offset
; - java.lang.String::getChars@51 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
0x00002aaaab118627: mov 0xc(%rbp),%ebp
0x00002aaaab11862a: mov 0xc(%rbp),%r8d ; implicit exception: dispatches to 0x00002aaaab118721
;; B9: # B26 B10 <- B8 Freq: 0.999996
0x00002aaaab11862e: mov 0xc(%r9),%edi ; implicit exception: dispatches to 0x00002aaaab118749
;; B10: # B18 B11 <- B9 Freq: 0.999995
0x00002aaaab118632: mov %rbp,%rsi ;*getfield value
; - java.lang.String::getChars@47 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
0x00002aaaab118635: mov %r9,%rcx ;*getfield value
; - java.lang.AbstractStringBuilder::append@43 (line 391)
0x00002aaaab118638: test %edx,%edx
0x00002aaaab11863a: jl 0x00002aaaab118691
;; B11: # B18 B12 <- B10 Freq: 0.999994
0x00002aaaab11863c: test %r11d,%r11d
0x00002aaaab11863f: jl 0x00002aaaab118691
;; B12: # B18 B13 <- B11 Freq: 0.999993
0x00002aaaab118641: mov %r10d,%ebx
0x00002aaaab118644: add %edx,%ebx
0x00002aaaab118646: cmp %ebx,%r8d
0x00002aaaab118649: jb 0x00002aaaab118691
;; B13: # B18 B14 <- B12 Freq: 0.999992
0x00002aaaab11864b: mov %r11d,%ebx
0x00002aaaab11864e: add %r10d,%ebx
0x00002aaaab118651: cmp %ebx,%edi
0x00002aaaab118653: jb 0x00002aaaab118691
;; B14: # B16 B15 <- B13 Freq: 0.999991
0x00002aaaab118655: test %r10d,%r10d
0x00002aaaab118658: jle 0x00002aaaab118674
;; B15: # B16 <- B14 Freq: 0.99999
0x00002aaaab11865a: lea 0x10(%rbp,%rdx,2),%rdi
0x00002aaaab11865f: lea 0x10(%r9,%r11,2),%rsi
0x00002aaaab118664: movslq %r10d,%rdx
0x00002aaaab118667: mov $0x2aaaab0fce80,%r10
0x00002aaaab118671: callq *%r10 ;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
;; B16: # B17 <- B15 B14 B19 Freq: 0.999995
0x00002aaaab118674: mov (%rsp),%r10
0x00002aaaab118678: mov 0xc(%rsp),%r11d
0x00002aaaab11867d: mov %r11d,0xc(%r10) ;*synchronization entry
; - java.lang.AbstractStringBuilder::append@-1 (line 385)
;; B17: # N291 <- B2 B16 Freq: 0.999995
0x00002aaaab118681: mov (%rsp),%rax
0x00002aaaab118685: add $0x30,%rsp
0x00002aaaab118689: pop %rbp
0x00002aaaab11868a: test %eax,-0x420690(%rip) # 0x00002aaaaacf8000
; {poll_return}
0x00002aaaab118690: retq
;; B18: # B29 B19 <- B10 B11 B12 B13 Freq: 3.99997e-06
0x00002aaaab118691: mov %r11d,%r8d
0x00002aaaab118694: mov %r10d,%r9d
0x00002aaaab118697: mov (%rsp),%rbp
0x00002aaaab11869b: callq 0x00002aaaab11b020 ; OopMap{rbp=Oop [0]=Oop off=224}
;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; {runtime_call}
;; B19: # B16 <- B18 Freq: 3.99989e-06
0x00002aaaab1186a0: jmp 0x00002aaaab118674
;; B20: # N291 <- B6 Freq: 4.76836e-07
0x00002aaaab1186a2: mov $0xce,%esi
0x00002aaaab1186a7: mov (%rsp),%rbp
0x00002aaaab1186ab: mov %r10d,(%rsp)
0x00002aaaab1186af: callq 0x00002aaaab0f3fa0 ; OopMap{rbp=Oop off=244}
;*new ; - java.lang.String::getChars@21 (line 849)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; {runtime_call}
0x00002aaaab1186b4: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab1186be: rex.WB callq *%r10 ;*new ; - java.lang.String::getChars@21 (line 849)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
;; B21: # B28 B22 <- B4 Freq: 4.76836e-07
0x00002aaaab1186c1: mov %ecx,%edx
0x00002aaaab1186c3: mov %r10d,0x10(%rsp)
0x00002aaaab1186c8: nop
0x00002aaaab1186c9: nop
0x00002aaaab1186ca: nop
0x00002aaaab1186cb: callq 0x00002aaaab0f2b20 ; OopMap{rbp=Oop [0]=Oop off=272}
;*invokevirtual expandCapacity
; - java.lang.AbstractStringBuilder::append@36 (line 390)
; {optimized virtual_call}
;; B22: # B6 <- B21 Freq: 4.76827e-07
0x00002aaaab1186d0: mov (%rsp),%r10
0x00002aaaab1186d4: mov 0xc(%r10),%r11d ;*getfield count
; - java.lang.AbstractStringBuilder::append@47 (line 391)
0x00002aaaab1186d8: mov 0x14(%rbp),%ecx ;*getfield count
; - java.lang.String::getChars@15 (line 848)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
0x00002aaaab1186db: mov 0x10(%r10),%r9d ;*getfield value
; - java.lang.AbstractStringBuilder::append@43 (line 391)
0x00002aaaab1186df: mov 0x10(%rsp),%r10d
0x00002aaaab1186e4: jmpq 0x00002aaaab118612
;; B23: # N291 <- B7 Freq: 4.76836e-07
0x00002aaaab1186e9: mov $0xce,%esi
0x00002aaaab1186ee: mov (%rsp),%rbp
0x00002aaaab1186f2: mov %r10d,(%rsp)
0x00002aaaab1186f6: nop
0x00002aaaab1186f7: callq 0x00002aaaab0f3fa0 ; OopMap{rbp=Oop off=316}
;*new ; - java.lang.String::getChars@35 (line 852)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; {runtime_call}
0x00002aaaab1186fc: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab118706: rex.WB callq *%r10 ;*new ; - java.lang.String::getChars@35 (line 852)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
;; B24: # N291 <- B3 Freq: 1.01328e-06
0x00002aaaab118709: mov $0xfffffff6,%esi
0x00002aaaab11870e: nop
0x00002aaaab11870f: callq 0x00002aaaab0f3fa0 ; OopMap{off=340}
;*arraylength
; - java.lang.AbstractStringBuilder::append@30 (line 389)
; {runtime_call}
0x00002aaaab118714: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11871e: rex.WB callq *%r10 ;*arraylength
; - java.lang.AbstractStringBuilder::append@30 (line 389)
;; B25: # N291 <- B8 Freq: 1.01328e-06
0x00002aaaab118721: mov $0xfffffff6,%esi
0x00002aaaab118726: mov %r10d,%ebp
0x00002aaaab118729: mov %edx,(%rsp)
0x00002aaaab11872c: mov %r9d,0x4(%rsp)
0x00002aaaab118731: mov %r11d,0x8(%rsp)
0x00002aaaab118736: nop
0x00002aaaab118737: callq 0x00002aaaab0f3fa0 ; OopMap{[4]=NarrowOop off=380}
;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; {runtime_call}
0x00002aaaab11873c: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab118746: rex.WB callq *%r10
;; B26: # N291 <- B9 Freq: 1.01327e-06
0x00002aaaab118749: mov $0xfffffff6,%esi
0x00002aaaab11874e: mov %r10d,(%rsp)
0x00002aaaab118752: mov %edx,0x4(%rsp)
0x00002aaaab118756: mov %r11d,0x8(%rsp)
0x00002aaaab11875b: callq 0x00002aaaab0f3fa0 ; OopMap{rbp=NarrowOop off=416}
;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; {runtime_call}
0x00002aaaab118760: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11876a: rex.WB callq *%r10 ;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
;; B27: # N291 <- B1 Freq: 4.76837e-07
0x00002aaaab11876d: mov $0xffffffad,%esi
0x00002aaaab118772: nop
0x00002aaaab118773: callq 0x00002aaaab0f3fa0 ; OopMap{rbp=Oop [0]=Oop off=440}
;*ifnonnull
; - java.lang.AbstractStringBuilder::append@1 (line 385)
; {runtime_call}
0x00002aaaab118778: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab118782: rex.WB callq *%r10 ;*invokevirtual expandCapacity
; - java.lang.AbstractStringBuilder::append@36 (line 390)
;; B28: # B30 <- B21 Freq: 4.76836e-12
0x00002aaaab118785: mov %rax,%rsi
0x00002aaaab118788: jmp 0x00002aaaab11878d ;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
;; B29: # B30 <- B18 Freq: 3.99997e-11
0x00002aaaab11878a: mov %rax,%rsi ;*invokevirtual expandCapacity
; - java.lang.AbstractStringBuilder::append@36 (line 390)
;; B30: # N291 <- B28 B29 Freq: 4.47681e-11
0x00002aaaab11878d: add $0x30,%rsp
0x00002aaaab118791: pop %rbp
0x00002aaaab118792: jmpq 0x00002aaaab117a20 ; {runtime_call}
0x00002aaaab118797: hlt
0x00002aaaab118798: hlt
0x00002aaaab118799: hlt
0x00002aaaab11879a: hlt
0x00002aaaab11879b: hlt
0x00002aaaab11879c: hlt
0x00002aaaab11879d: hlt
0x00002aaaab11879e: hlt
0x00002aaaab11879f: hlt
[Stub Code]
0x00002aaaab1187a0: mov $0x0,%rbx ; {no_reloc}
0x00002aaaab1187aa: jmpq 0x00002aaaab1187aa ; {runtime_call}
[Exception Handler]
0x00002aaaab1187af: jmpq 0x00002aaaab101c20 ; {runtime_call}
[Deopt Handler Code]
0x00002aaaab1187b4: callq 0x00002aaaab1187b9
0x00002aaaab1187b9: subq $0x5,(%rsp)
0x00002aaaab1187be: jmpq 0x00002aaaab0f3ae0 ; {runtime_call}
0x00002aaaab1187c3: int3
0x00002aaaab1187c4: int3
0x00002aaaab1187c5: int3
0x00002aaaab1187c6: int3
0x00002aaaab1187c7: int3
622 11 java.lang.StringBuilder::append (8 bytes)
Decoding compiled method 0x00002aaaab11f610:
Code:
[Entry Point]
[Constants]
# {method} 'append' '(Ljava/lang/String;)Ljava/lang/StringBuilder;' in 'java/lang/StringBuilder'
# this: rsi:rsi = 'java/lang/StringBuilder'
# parm0: rdx:rdx = 'java/lang/String'
# [sp+0x40] (sp of caller)
;; N296: # B1 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab11f780: mov 0x8(%rsi),%r10d
0x00002aaaab11f784: cmp %r10,%rax
0x00002aaaab11f787: jne 0x00002aaaab0f2920 ; {runtime_call}
0x00002aaaab11f78d: nop
0x00002aaaab11f78e: nop
0x00002aaaab11f78f: nop
[Verified Entry Point]
;; B1: # B27 B2 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab11f790: mov %eax,-0x8000(%rsp)
0x00002aaaab11f797: push %rbp
0x00002aaaab11f798: sub $0x30,%rsp ;*synchronization entry
; - java.lang.StringBuilder::append@-1 (line 119)
0x00002aaaab11f79c: mov %rsi,(%rsp)
0x00002aaaab11f7a0: mov %rdx,%rbp
0x00002aaaab11f7a3: mov 0x14(%rdx),%r10d ;*getfield count
; - java.lang.String::length@1 (line 651)
; - java.lang.AbstractStringBuilder::append@8 (line 386)
; - java.lang.StringBuilder::append@2 (line 119)
; implicit exception: dispatches to 0x00002aaaab11f931
;; B2: # B17 B3 <- B1 Freq: 1
0x00002aaaab11f7a7: test %r10d,%r10d
0x00002aaaab11f7aa: je 0x00002aaaab11f841 ;*ifne
; - java.lang.AbstractStringBuilder::append@13 (line 387)
; - java.lang.StringBuilder::append@2 (line 119)
;; B3: # B24 B4 <- B2 Freq: 0.999999
0x00002aaaab11f7b0: mov 0x10(%rsi),%r9d ;*getfield value
; - java.lang.AbstractStringBuilder::append@27 (line 389)
; - java.lang.StringBuilder::append@2 (line 119)
0x00002aaaab11f7b4: mov 0xc(%r9),%r8d ; implicit exception: dispatches to 0x00002aaaab11f8cd
;; B4: # B21 B5 <- B3 Freq: 0.999998
0x00002aaaab11f7b8: mov 0xc(%rsi),%r11d ;*getfield count
; - java.lang.AbstractStringBuilder::append@19 (line 388)
; - java.lang.StringBuilder::append@2 (line 119)
0x00002aaaab11f7bc: mov %r10d,%ecx
0x00002aaaab11f7bf: add %r11d,%ecx ;*iadd
; - java.lang.AbstractStringBuilder::append@23 (line 388)
; - java.lang.StringBuilder::append@2 (line 119)
0x00002aaaab11f7c2: mov %ecx,0x14(%rsp)
0x00002aaaab11f7c6: cmp %r8d,%ecx
0x00002aaaab11f7c9: jg 0x00002aaaab11f885 ;*if_icmple
; - java.lang.AbstractStringBuilder::append@31 (line 389)
; - java.lang.StringBuilder::append@2 (line 119)
;; B5: # B6 <- B4 Freq: 0.999998
0x00002aaaab11f7cf: mov %r10d,%ecx ;*getfield count
; - java.lang.AbstractStringBuilder::append@47 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
;; B6: # B20 B7 <- B22 B5 Freq: 0.999998
0x00002aaaab11f7d2: cmp %ecx,%r10d
0x00002aaaab11f7d5: jg 0x00002aaaab11f862 ;*if_icmple
; - java.lang.String::getChars@18 (line 848)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
;; B7: # B23 B8 <- B6 Freq: 0.999998
0x00002aaaab11f7db: test %r10d,%r10d
0x00002aaaab11f7de: jl 0x00002aaaab11f8ad ;*if_icmple
; - java.lang.String::getChars@32 (line 851)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
;; B8: # B25 B9 <- B7 Freq: 0.999997
0x00002aaaab11f7e4: mov 0x10(%rbp),%edx ;*getfield offset
; - java.lang.String::getChars@51 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
0x00002aaaab11f7e7: mov 0xc(%rbp),%ebp
0x00002aaaab11f7ea: mov 0xc(%rbp),%r8d ; implicit exception: dispatches to 0x00002aaaab11f8e5
;; B9: # B26 B10 <- B8 Freq: 0.999996
0x00002aaaab11f7ee: mov 0xc(%r9),%edi ; implicit exception: dispatches to 0x00002aaaab11f90d
;; B10: # B18 B11 <- B9 Freq: 0.999995
0x00002aaaab11f7f2: mov %rbp,%rsi ;*getfield value
; - java.lang.String::getChars@47 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
0x00002aaaab11f7f5: mov %r9,%rcx ;*getfield value
; - java.lang.AbstractStringBuilder::append@43 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
0x00002aaaab11f7f8: test %edx,%edx
0x00002aaaab11f7fa: jl 0x00002aaaab11f851
;; B11: # B18 B12 <- B10 Freq: 0.999994
0x00002aaaab11f7fc: test %r11d,%r11d
0x00002aaaab11f7ff: jl 0x00002aaaab11f851
;; B12: # B18 B13 <- B11 Freq: 0.999993
0x00002aaaab11f801: mov %r10d,%ebx
0x00002aaaab11f804: add %edx,%ebx
0x00002aaaab11f806: cmp %ebx,%r8d
0x00002aaaab11f809: jb 0x00002aaaab11f851
;; B13: # B18 B14 <- B12 Freq: 0.999992
0x00002aaaab11f80b: mov %r11d,%ebx
0x00002aaaab11f80e: add %r10d,%ebx
0x00002aaaab11f811: cmp %ebx,%edi
0x00002aaaab11f813: jb 0x00002aaaab11f851
;; B14: # B16 B15 <- B13 Freq: 0.999991
0x00002aaaab11f815: test %r10d,%r10d
0x00002aaaab11f818: jle 0x00002aaaab11f834
;; B15: # B16 <- B14 Freq: 0.99999
0x00002aaaab11f81a: lea 0x10(%rbp,%rdx,2),%rdi
0x00002aaaab11f81f: lea 0x10(%r9,%r11,2),%rsi
0x00002aaaab11f824: movslq %r10d,%rdx
0x00002aaaab11f827: mov $0x2aaaab0fce80,%r10
0x00002aaaab11f831: callq *%r10 ;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
;; B16: # B17 <- B15 B14 B19 Freq: 0.999995
0x00002aaaab11f834: mov (%rsp),%r10
0x00002aaaab11f838: mov 0x14(%rsp),%r11d
0x00002aaaab11f83d: mov %r11d,0xc(%r10) ;*synchronization entry
; - java.lang.StringBuilder::append@-1 (line 119)
;; B17: # N296 <- B2 B16 Freq: 0.999995
0x00002aaaab11f841: mov (%rsp),%rax
0x00002aaaab11f845: add $0x30,%rsp
0x00002aaaab11f849: pop %rbp
0x00002aaaab11f84a: test %eax,-0x427850(%rip) # 0x00002aaaaacf8000
; {poll_return}
0x00002aaaab11f850: retq
;; B18: # B29 B19 <- B10 B11 B12 B13 Freq: 3.99997e-06
0x00002aaaab11f851: mov %r11d,%r8d
0x00002aaaab11f854: mov %r10d,%r9d
0x00002aaaab11f857: mov (%rsp),%rbp
0x00002aaaab11f85b: callq 0x00002aaaab11b020 ; OopMap{rbp=Oop [0]=Oop off=224}
;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; {runtime_call}
;; B19: # B16 <- B18 Freq: 3.99989e-06
0x00002aaaab11f860: jmp 0x00002aaaab11f834
;; B20: # N296 <- B6 Freq: 4.76836e-07
0x00002aaaab11f862: mov $0xce,%esi
0x00002aaaab11f867: mov (%rsp),%rbp
0x00002aaaab11f86b: mov %r10d,0x8(%rsp)
0x00002aaaab11f870: nop
0x00002aaaab11f871: nop
0x00002aaaab11f872: nop
0x00002aaaab11f873: callq 0x00002aaaab0f3fa0 ; OopMap{rbp=Oop off=248}
;*new ; - java.lang.String::getChars@21 (line 849)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; {runtime_call}
0x00002aaaab11f878: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11f882: rex.WB callq *%r10 ;*new ; - java.lang.String::getChars@21 (line 849)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
;; B21: # B28 B22 <- B4 Freq: 4.76836e-07
0x00002aaaab11f885: mov %ecx,%edx
0x00002aaaab11f887: mov %r10d,0x18(%rsp)
0x00002aaaab11f88c: nop
0x00002aaaab11f88d: nop
0x00002aaaab11f88e: nop
0x00002aaaab11f88f: callq 0x00002aaaab0f2b20 ; OopMap{rbp=Oop [0]=Oop off=276}
;*invokevirtual expandCapacity
; - java.lang.AbstractStringBuilder::append@36 (line 390)
; - java.lang.StringBuilder::append@2 (line 119)
; {optimized virtual_call}
;; B22: # B6 <- B21 Freq: 4.76827e-07
0x00002aaaab11f894: mov (%rsp),%r10
0x00002aaaab11f898: mov 0xc(%r10),%r11d ;*getfield count
; - java.lang.AbstractStringBuilder::append@47 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
0x00002aaaab11f89c: mov 0x14(%rbp),%ecx ;*getfield count
; - java.lang.String::getChars@15 (line 848)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
0x00002aaaab11f89f: mov 0x10(%r10),%r9d ;*getfield value
; - java.lang.AbstractStringBuilder::append@43 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
0x00002aaaab11f8a3: mov 0x18(%rsp),%r10d
0x00002aaaab11f8a8: jmpq 0x00002aaaab11f7d2
;; B23: # N296 <- B7 Freq: 4.76836e-07
0x00002aaaab11f8ad: mov $0xce,%esi
0x00002aaaab11f8b2: ### Excluding compile: static Test::main
mov (%rsp),%rbp
0x00002aaaab11f8b6: mov %r10d,0x8(%rsp)
0x00002aaaab11f8bb: callq 0x00002aaaab0f3fa0 ; OopMap{rbp=Oop off=320}
;*new ; - java.lang.String::getChars@35 (line 852)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; {runtime_call}
0x00002aaaab11f8c0: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11f8ca: rex.WB callq *%r10 ;*new ; - java.lang.String::getChars@35 (line 852)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
;; B24: # N296 <- B3 Freq: 1.01328e-06
0x00002aaaab11f8cd: mov $0xfffffff6,%esi
0x00002aaaab11f8d2: nop
0x00002aaaab11f8d3: callq 0x00002aaaab0f3fa0 ; OopMap{off=344}
;*arraylength
; - java.lang.AbstractStringBuilder::append@30 (line 389)
; - java.lang.StringBuilder::append@2 (line 119)
; {runtime_call}
0x00002aaaab11f8d8: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11f8e2: rex.WB callq *%r10 ;*arraylength
; - java.lang.AbstractStringBuilder::append@30 (line 389)
; - java.lang.StringBuilder::append@2 (line 119)
;; B25: # N296 <- B8 Freq: 1.01328e-06
0x00002aaaab11f8e5: mov $0xfffffff6,%esi
0x00002aaaab11f8ea: mov %r10d,%ebp
0x00002aaaab11f8ed: mov %edx,(%rsp)
0x00002aaaab11f8f0: mov %r9d,0x4(%rsp)
0x00002aaaab11f8f5: mov %r11d,0x8(%rsp)
0x00002aaaab11f8fa: nop
0x00002aaaab11f8fb: callq 0x00002aaaab0f3fa0 ; OopMap{[4]=NarrowOop off=384}
;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; {runtime_call}
0x00002aaaab11f900: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11f90a: rex.WB callq *%r10
;; B26: # N296 <- B9 Freq: 1.01327e-06
0x00002aaaab11f90d: mov $0xfffffff6,%esi
0x00002aaaab11f912: mov %r10d,(%rsp)
0x00002aaaab11f916: mov %edx,0x4(%rsp)
0x00002aaaab11f91a: mov %r11d,0x8(%rsp)
0x00002aaaab11f91f: callq 0x00002aaaab0f3fa0 ; OopMap{rbp=NarrowOop off=420}
;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; {runtime_call}
0x00002aaaab11f924: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11f92e: rex.WB callq *%r10 ;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
;; B27: # N296 <- B1 Freq: 4.76837e-07
0x00002aaaab11f931: mov $0xffffffad,%esi
0x00002aaaab11f936: nop
0x00002aaaab11f937: callq 0x00002aaaab0f3fa0 ; OopMap{rbp=Oop [0]=Oop off=444}
;*ifnonnull
; - java.lang.AbstractStringBuilder::append@1 (line 385)
; - java.lang.StringBuilder::append@2 (line 119)
; {runtime_call}
0x00002aaaab11f93c: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11f946: rex.WB callq *%r10 ;*invokevirtual expandCapacity
; - java.lang.AbstractStringBuilder::append@36 (line 390)
; - java.lang.StringBuilder::append@2 (line 119)
;; B28: # B30 <- B21 Freq: 4.76836e-12
0x00002aaaab11f949: mov %rax,%rsi
0x00002aaaab11f94c: jmp 0x00002aaaab11f951 ;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
;; B29: # B30 <- B18 Freq: 3.99997e-11
0x00002aaaab11f94e: mov %rax,%rsi ;*invokevirtual expandCapacity
; - java.lang.AbstractStringBuilder::append@36 (line 390)
; - java.lang.StringBuilder::append@2 (line 119)
;; B30: # N296 <- B28 B29 Freq: 4.47681e-11
0x00002aaaab11f951: add $0x30,%rsp
0x00002aaaab11f955: pop %rbp
0x00002aaaab11f956: jmpq 0x00002aaaab117a20 ; {runtime_call}
0x00002aaaab11f95b: hlt
0x00002aaaab11f95c: hlt
0x00002aaaab11f95d: hlt
0x00002aaaab11f95e: hlt
0x00002aaaab11f95f: hlt
[Stub Code]
0x00002aaaab11f960: mov $0x0,%rbx ; {no_reloc}
0x00002aaaab11f96a: jmpq 0x00002aaaab11f96a ; {runtime_call}
[Exception Handler]
0x00002aaaab11f96f: jmpq 0x00002aaaab101c20 ; {runtime_call}
[Deopt Handler Code]
0x00002aaaab11f974: callq 0x00002aaaab11f979
0x00002aaaab11f979: subq $0x5,(%rsp)
0x00002aaaab11f97e: jmpq 0x00002aaaab0f3ae0 ; {runtime_call}
0x00002aaaab11f983: int3
0x00002aaaab11f984: int3
0x00002aaaab11f985: int3
0x00002aaaab11f986: int3
0x00002aaaab11f987: int3
647 12 java.lang.String::<init> (72 bytes)
Decoding compiled method 0x00002aaaab11d2d0:
Code:
[Entry Point]
[Constants]
# {method} '<init>' '([CII)V' in 'java/lang/String'
# this: rsi:rsi = 'java/lang/String'
# parm0: rdx:rdx = '[C'
# parm1: rcx = int
# parm2: r8 = int
# [sp+0x40] (sp of caller)
;; N339: # B1 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab11d440: mov 0x8(%rsi),%r10d
0x00002aaaab11d444: cmp %r10,%rax
0x00002aaaab11d447: jne 0x00002aaaab0f2920 ; {runtime_call}
0x00002aaaab11d44d: nop
0x00002aaaab11d44e: nop
0x00002aaaab11d44f: nop
[Verified Entry Point]
;; B1: # B21 B2 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab11d450: mov %eax,-0x8000(%rsp)
0x00002aaaab11d457: push %rbp
0x00002aaaab11d458: sub $0x30,%rsp ;*synchronization entry
; - java.lang.String::<init>@-1 (line 202)
0x00002aaaab11d45c: mov %rsi,(%rsp)
0x00002aaaab11d460: mov %ecx,0x10(%rsp)
0x00002aaaab11d464: test %ecx,%ecx
0x00002aaaab11d466: jl 0x00002aaaab11d750 ;*ifge
; - java.lang.String::<init>@5 (line 203)
;; B2: # B22 B3 <- B1 Freq: 1
0x00002aaaab11d46c: mov %r8d,%ebp
0x00002aaaab11d46f: test %r8d,%r8d
0x00002aaaab11d472: jl 0x00002aaaab11d769 ;*ifge
; - java.lang.String::<init>@18 (line 206)
;; B3: # B24 B4 <- B2 Freq: 0.999999
0x00002aaaab11d478: mov %rdx,0x8(%rsp)
0x00002aaaab11d47d: mov 0xc(%rdx),%r11d ;*arraylength
; - java.lang.String::<init>@32 (line 210)
; implicit exception: dispatches to 0x00002aaaab11d799
;; B4: # B23 B5 <- B3 Freq: 0.999998
0x00002aaaab11d481: mov %r11d,%r10d
0x00002aaaab11d484: sub %r8d,%r10d
0x00002aaaab11d487: cmp %r10d,%ecx
0x00002aaaab11d48a: jg 0x00002aaaab11d781 ;*if_icmple
; - java.lang.String::<init>@35 (line 210)
;; B5: # B15 B6 <- B4 Freq: 0.999998
0x00002aaaab11d490: mov %ebp,0x14(%rsi) ;*putfield count
; - java.lang.String::<init>@56 (line 214)
0x00002aaaab11d493: mov %r12d,0x10(%rsi) ;*putfield offset
; - java.lang.String::<init>@51 (line 213)
0x00002aaaab11d497: movslq %ebp,%r10
0x00002aaaab11d49a: shl %r10
0x00002aaaab11d49d: add $0x17,%r10
0x00002aaaab11d4a1: mov %r10,0x18(%rsp)
0x00002aaaab11d4a6: cmp $0x80000,%ebp
0x00002aaaab11d4ac: ja 0x00002aaaab11d6e9
;; B6: # B15 B7 <- B5 Freq: 0.999997
0x00002aaaab11d4b2: and $0xfffffffffffffff8,%r10
0x00002aaaab11d4b6: mov 0x70(%r15),%rbx
0x00002aaaab11d4ba: mov %rbx,%r8
0x00002aaaab11d4bd: add %r10,%r8
0x00002aaaab11d4c0: cmp 0x80(%r15),%r8
0x00002aaaab11d4c7: jae 0x00002aaaab11d6e9
;; B7: # B8 <- B6 Freq: 0.999897
0x00002aaaab11d4cd: mov %r8,0x70(%r15)
0x00002aaaab11d4d1: prefetchnta 0x100(%r8)
0x00002aaaab11d4d9: movq $0x1,(%rbx)
0x00002aaaab11d4e0: prefetchnta 0x140(%r8)
0x00002aaaab11d4e8: movl $0xc4200608,0x8(%rbx) ; {oop({type array char})}
0x00002aaaab11d4ef: mov %ebp,0xc(%rbx)
0x00002aaaab11d4f2: prefetchnta 0x180(%r8) ;*newarray
; - java.util.Arrays::copyOfRange@40 (line 3209)
; - java.lang.String::<init>@65 (line 215)
;; B8: # B17 B9 <- B16 B7 Freq: 0.999998
0x00002aaaab11d4fa: mov %r11d,%r10d
0x00002aaaab11d4fd: sub 0x10(%rsp),%r10d ;*isub
; - java.util.Arrays::copyOfRange@52 (line 3210)
; - java.lang.String::<init>@65 (line 215)
0x00002aaaab11d502: mov %rbx,%r8
0x00002aaaab11d505: add $0x10,%r8 ;*invokestatic arraycopy
; - java.util.Arrays::copyOfRange@57 (line 3210)
; - java.lang.String::<init>@65 (line 215)
0x00002aaaab11d509: cmp %ebp,%r10d
0x00002aaaab11d50c: mov %ebp,%r9d
0x00002aaaab11d50f: cmovl %r10d,%r9d ;*invokestatic min
; - java.util.Arrays::copyOfRange@54 (line 3210)
; - java.lang.String::<init>@65 (line 215)
0x00002aaaab11d513: mov 0x10(%rsp),%r10d
0x00002aaaab11d518: add %r9d,%r10d
0x00002aaaab11d51b: mov 0x18(%rsp),%rsi
0x00002aaaab11d520: shr $0x3,%rsi
0x00002aaaab11d524: mov %rsi,%rcx
0x00002aaaab11d527: add $0xfffffffffffffffe,%rcx
0x00002aaaab11d52b: cmp %r10d,%r11d
0x00002aaaab11d52e: jb 0x00002aaaab11d70d
;; B9: # B17 B10 <- B8 Freq: 0.999997
0x00002aaaab11d534: cmp %r9d,%ebp
0x00002aaaab11d537: jb 0x00002aaaab11d70d
;; B10: # B19 B11 <- B9 Freq: 0.999996
0x00002aaaab11d53d: test %r9d,%r9d
0x00002aaaab11d540: jle 0x00002aaaab11d73e
;; B11: # B14 B12 <- B10 Freq: 0.999995
0x00002aaaab11d546: movslq %r9d,%rdx
0x00002aaaab11d549: cmp %ebp,%r9d
0x00002aaaab11d54c: jl 0x00002aaaab11d6bb
;; B12: # B13 <- B11 B14 Freq: 0.999995
0x00002aaaab11d552: mov 0x8(%rsp),%r10
0x00002aaaab11d557: mov 0x10(%rsp),%r9d
0x00002aaaab11d55c: lea 0x10(%r10,%r9,2),%rdi
0x00002aaaab11d561: mov %r8,%rsi
0x00002aaaab11d564: mov $0x2aaaab0fce80,%r10
0x00002aaaab11d56e: callq *%r10 ;*invokestatic arraycopy
; - java.util.Arrays::copyOfRange@57 (line 3210)
; - java.lang.String::<init>@65 (line 215)
;; B13: # N339 <- B12 B20 B18 Freq: 0.999998
0x00002aaaab11d571: push %r10
0x00002aaaab11d573: mov $0x2ae74dadc700,%r10 ; {external_word}
0x00002aaaab11d57d: cmp (%r10),%r12
0x00002aaaab11d580: je 0x00002aaaab11d605
0x00002aaaab11d586: mov %rsp,-0x28(%rsp)
0x00002aaaab11d58b: sub $0x80,%rsp
0x00002aaaab11d592: mov %rax,0x78(%rsp)
0x00002aaaab11d597: mov %rcx,0x70(%rsp)
0x00002aaaab11d59c: mov %rdx,0x68(%rsp)
0x00002aaaab11d5a1: mov %rbx,0x60(%rsp)
0x00002aaaab11d5a6: mov %rbp,0x50(%rsp)
0x00002aaaab11d5ab: mov %rsi,0x48(%rsp)
0x00002aaaab11d5b0: mov %rdi,0x40(%rsp)
0x00002aaaab11d5b5: mov %r8,0x38(%rsp)
0x00002aaaab11d5ba: mov %r9,0x30(%rsp)
0x00002aaaab11d5bf: mov %r10,0x28(%rsp)
0x00002aaaab11d5c4: mov %r11,0x20(%rsp)
0x00002aaaab11d5c9: mov %r12,0x18(%rsp)
0x00002aaaab11d5ce: mov %r13,0x10(%rsp)
0x00002aaaab11d5d3: mov %r14,0x8(%rsp)
0x00002aaaab11d5d8: mov %r15,(%rsp)
0x00002aaaab11d5dc: mov $0x2ae74d5c7980,%rdi ; {external_word}
0x00002aaaab11d5e6: mov $0x2aaaab11d586,%rsi ; {internal_word}
0x00002aaaab11d5f0: mov %rsp,%rdx
0x00002aaaab11d5f3: and $0xfffffffffffffff0,%rsp
0x00002aaaab11d5f7: mov $0x2ae74cb3f860,%r10 ; {runtime_call}
0x00002aaaab11d601: rex.WB callq *%r10
0x00002aaaab11d604: hlt
0x00002aaaab11d605: pop %r10
0x00002aaaab11d607: test %rbx,%rbx
0x00002aaaab11d60a: jne 0x00002aaaab11d68f
0x00002aaaab11d610: mov %rsp,-0x28(%rsp)
0x00002aaaab11d615: sub $0x80,%rsp
0x00002aaaab11d61c: mov %rax,0x78(%rsp)
0x00002aaaab11d621: mov %rcx,0x70(%rsp)
0x00002aaaab11d626: mov %rdx,0x68(%rsp)
0x00002aaaab11d62b: mov %rbx,0x60(%rsp)
0x00002aaaab11d630: mov %rbp,0x50(%rsp)
0x00002aaaab11d635: mov %rsi,0x48(%rsp)
0x00002aaaab11d63a: mov %rdi,0x40(%rsp)
0x00002aaaab11d63f: mov %r8,0x38(%rsp)
0x00002aaaab11d644: mov %r9,0x30(%rsp)
0x00002aaaab11d649: mov %r10,0x28(%rsp)
0x00002aaaab11d64e: mov %r11,0x20(%rsp)
0x00002aaaab11d653: mov %r12,0x18(%rsp)
0x00002aaaab11d658: mov %r13,0x10(%rsp)
0x00002aaaab11d65d: mov %r14,0x8(%rsp)
0x00002aaaab11d662: mov %r15,(%rsp)
0x00002aaaab11d666: mov $0x2ae74d5c79c0,%rdi ; {external_word}
0x00002aaaab11d670: mov $0x2aaaab11d610,%rsi ; {internal_word}
0x00002aaaab11d67a: mov %rsp,%rdx
0x00002aaaab11d67d: and $0xfffffffffffffff0,%rsp
0x00002aaaab11d681: mov $0x2ae74cb3f860,%r10 ; {runtime_call}
0x00002aaaab11d68b: rex.WB callq *%r10
0x00002aaaab11d68e: hlt
0x00002aaaab11d68f: mov %rbx,%r10
0x00002aaaab11d692: mov (%rsp),%r11
0x00002aaaab11d696: mov %r10d,0xc(%r11)
0x00002aaaab11d69a: mov %r11,%r10
0x00002aaaab11d69d: shr $0x9,%r10
0x00002aaaab11d6a1: mov $0x2aaaadac4000,%r11
0x00002aaaab11d6ab: mov %r12b,(%r11,%r10,1) ;*new
; - java.lang.String::<init>@21 (line 207)
0x00002aaaab11d6af: add $0x30,%rsp
0x00002aaaab11d6b3: pop %rbp
0x00002aaaab11d6b4: test %eax,-0x4256ba(%rip) # 0x00002aaaaacf8000
; {poll_return}
0x00002aaaab11d6ba: retq
;; B14: # B12 <- B11 Freq: 0.000999995
0x00002aaaab11d6bb: mov %rdx,%r10
0x00002aaaab11d6be: shl %r10
0x00002aaaab11d6c1: add $0x10,%r10
0x00002aaaab11d6c5: mov %r10,%r11
0x00002aaaab11d6c8: and $0xfffffffffffffff9,%r11
0x00002aaaab11d6cc: mov %rbx,%rdi
0x00002aaaab11d6cf: add %r11,%rdi
0x00002aaaab11d6d2: shr $0x3,%r10
0x00002aaaab11d6d6: mov %rsi,%r11
0x00002aaaab11d6d9: sub %r10,%r11
0x00002aaaab11d6dc: mov %r11,%rcx
0x00002aaaab11d6df: xor %eax,%eax
0x00002aaaab11d6e1: rep stos %rax,%es:(%rdi) ;*invokestatic arraycopy
; - java.util.Arrays::copyOfRange@57 (line 3210)
; - java.lang.String::<init>@65 (line 215)
0x00002aaaab11d6e4: jmpq 0x00002aaaab11d552
;; B15: # B26 B16 <- B5 B6 Freq: 0.00010103
0x00002aaaab11d6e9: mov %r11d,0x14(%rsp) ;*ifge
; - java.util.Arrays::copyOfRange@5 (line 3207)
; - java.lang.String::<init>@65 (line 215)
0x00002aaaab11d6ee: mov $0xc4200608,%rsi ; {oop({type array char})}
0x00002aaaab11d6f8: mov %ebp,%edx
0x00002aaaab11d6fa: nop
0x00002aaaab11d6fb: callq 0x00002aaaab118220 ; OopMap{[0]=Oop [8]=Oop off=704}
;*newarray
; - java.util.Arrays::copyOfRange@40 (line 3209)
; - java.lang.String::<init>@65 (line 215)
; {runtime_call}
;; B16: # B8 <- B15 Freq: 0.000101028
0x00002aaaab11d700: mov 0x14(%rsp),%r11d
0x00002aaaab11d705: mov %rax,%rbx
0x00002aaaab11d708: jmpq 0x00002aaaab11d4fa
;; B17: # B25 B18 <- B19 B8 B9 Freq: 2e-06
0x00002aaaab11d70d: mov %r8,%rdi
0x00002aaaab11d710: xor %eax,%eax
0x00002aaaab11d712: rep stos %rax,%es:(%rdi)
0x00002aaaab11d715: xor %r8d,%r8d
0x00002aaaab11d718: mov 0x8(%rsp),%rsi
0x00002aaaab11d71d: mov 0x10(%rsp),%edx
0x00002aaaab11d721: mov %rbx,%rcx
0x00002aaaab11d724: mov (%rsp),%rbp
0x00002aaaab11d728: mov %rbx,0x10(%rsp)
0x00002aaaab11d72d: nop
0x00002aaaab11d72e: nop
0x00002aaaab11d72f: callq 0x00002aaaab11b020 ; OopMap{rbp=Oop [0]=Oop [16]=Oop off=756}
;*invokestatic arraycopy
; - java.util.Arrays::copyOfRange@57 (line 3210)
; - java.lang.String::<init>@65 (line 215)
; {runtime_call}
;; B18: # B13 <- B17 Freq: 1.99996e-06
0x00002aaaab11d734: mov 0x10(%rsp),%rbx
0x00002aaaab11d739: jmpq 0x00002aaaab11d571
;; B19: # B17 B20 <- B10 Freq: 9.99996e-07
0x00002aaaab11d73e: test %r9d,%r9d
0x00002aaaab11d741: jl 0x00002aaaab11d70d
;; B20: # B13 <- B19 Freq: 9.99995e-07
0x00002aaaab11d743: mov %r8,%rdi
0x00002aaaab11d746: xor %eax,%eax
0x00002aaaab11d748: rep stos %rax,%es:(%rdi) ;*invokestatic arraycopy
; - java.util.Arrays::copyOfRange@57 (line 3210)
; - java.lang.String::<init>@65 (line 215)
0x00002aaaab11d74b: jmpq 0x00002aaaab11d571
;; B21: # N339 <- B1 Freq: 4.76837e-07
0x00002aaaab11d750: mov $0xce,%esi
0x00002aaaab11d755: mov %ecx,%ebp
0x00002aaaab11d757: callq 0x00002aaaab0f3fa0 ; OopMap{off=796}
;*new ; - java.lang.String::<init>@8 (line 204)
; {runtime_call}
0x00002aaaab11d75c: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11d766: rex.WB callq *%r10 ;*new ; - java.lang.String::<init>@8 (line 204)
;; B22: # N339 <- B2 Freq: 4.76837e-07
0x00002aaaab11d769: mov $0xce,%esi
0x00002aaaab11d76e: nop
0x00002aaaab11d76f: callq 0x00002aaaab0f3fa0 ; OopMap{off=820}
;*new ; - java.lang.String::<init>@21 (line 207)
; {runtime_call}
0x00002aaaab11d774: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11d77e: rex.WB callq *%r10 ;*new ; - java.lang.String::<init>@21 (line 207)
;; B23: # N339 <- B4 Freq: 4.76836e-07
0x00002aaaab11d781: mov $0xce,%esi
0x00002aaaab11d786: nop
0x00002aaaab11d787: callq 0x00002aaaab0f3fa0 ; OopMap{off=844}
;*new ; - java.lang.String::<init>@38 (line 211)
; {runtime_call}
0x00002aaaab11d78c: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11d796: rex.WB callq *%r10 ;*new ; - java.lang.String::<init>@38 (line 211)
;; B24: # N339 <- B3 Freq: 1.01328e-06
0x00002aaaab11d799: mov $0xfffffff6,%esi
0x00002aaaab11d79e: nop
0x00002aaaab11d79f: callq 0x00002aaaab0f3fa0 ; OopMap{off=868}
;*arraylength
; - java.lang.String::<init>@32 (line 210)
; {runtime_call}
0x00002aaaab11d7a4: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11d7ae: rex.WB callq *%r10 ;*invokestatic arraycopy
; - java.util.Arrays::copyOfRange@57 (line 3210)
; - java.lang.String::<init>@65 (line 215)
;; B25: # B27 <- B17 Freq: 2e-11
0x00002aaaab11d7b1: mov %rax,%rsi
0x00002aaaab11d7b4: jmp 0x00002aaaab11d7b9 ;*newarray
; - java.util.Arrays::copyOfRange@40 (line 3209)
; - java.lang.String::<init>@65 (line 215)
;; B26: # B27 <- B15 Freq: 1.0103e-09
0x00002aaaab11d7b6: mov %rax,%rsi ;*invokestatic arraycopy
; - java.util.Arrays::copyOfRange@57 (line 3210)
; - java.lang.String::<init>@65 (line 215)
;; B27: # N339 <- B25 B26 Freq: 1.0303e-09
0x00002aaaab11d7b9: add $0x30,%rsp
0x00002aaaab11d7bd: pop %rbp
0x00002aaaab11d7be: jmpq 0x00002aaaab117a20 ; {runtime_call}
0x00002aaaab11d7c3: hlt
0x00002aaaab11d7c4: hlt
0x00002aaaab11d7c5: hlt
0x00002aaaab11d7c6: hlt
0x00002aaaab11d7c7: hlt
0x00002aaaab11d7c8: hlt
0x00002aaaab11d7c9: hlt
0x00002aaaab11d7ca: hlt
0x00002aaaab11d7cb: hlt
0x00002aaaab11d7cc: hlt
0x00002aaaab11d7cd: hlt
0x00002aaaab11d7ce: hlt
0x00002aaaab11d7cf: hlt
0x00002aaaab11d7d0: hlt
0x00002aaaab11d7d1: hlt
0x00002aaaab11d7d2: hlt
0x00002aaaab11d7d3: hlt
0x00002aaaab11d7d4: hlt
0x00002aaaab11d7d5: hlt
0x00002aaaab11d7d6: hlt
0x00002aaaab11d7d7: hlt
0x00002aaaab11d7d8: hlt
0x00002aaaab11d7d9: hlt
0x00002aaaab11d7da: hlt
0x00002aaaab11d7db: hlt
0x00002aaaab11d7dc: hlt
0x00002aaaab11d7dd: hlt
0x00002aaaab11d7de: hlt
0x00002aaaab11d7df: hlt
[Exception Handler]
[Stub Code]
0x00002aaaab11d7e0: jmpq 0x00002aaaab101c20 ; {no_reloc}
[Deopt Handler Code]
0x00002aaaab11d7e5: callq 0x00002aaaab11d7ea
0x00002aaaab11d7ea: subq $0x5,(%rsp)
0x00002aaaab11d7ef: jmpq 0x00002aaaab0f3ae0 ; {runtime_call}
0x00002aaaab11d7f4: int3
0x00002aaaab11d7f5: int3
0x00002aaaab11d7f6: int3
0x00002aaaab11d7f7: int3
671 13 java.util.Arrays::copyOfRange (63 bytes)
Decoding compiled method 0x00002aaaab11f050:
Code:
[Entry Point]
[Verified Entry Point]
[Constants]
# {method} 'copyOfRange' '([CII)[C' in 'java/util/Arrays'
# parm0: rsi:rsi = '[C'
# parm1: rdx = int
# parm2: rcx = int
# [sp+0x40] (sp of caller)
;; N1: # B1 <- B20 B21 B12 B24 Freq: 1
;; B1: # B20 B2 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab11f1a0: mov %eax,-0x8000(%rsp)
0x00002aaaab11f1a7: push %rbp
0x00002aaaab11f1a8: sub $0x30,%rsp ;*synchronization entry
; - java.util.Arrays::copyOfRange@-1 (line 3206)
0x00002aaaab11f1ac: mov %rsi,0x8(%rsp)
0x00002aaaab11f1b1: mov %edx,(%rsp)
0x00002aaaab11f1b4: mov %ecx,%r11d
0x00002aaaab11f1b7: sub %edx,%r11d ;*isub
; - java.util.Arrays::copyOfRange@2 (line 3206)
0x00002aaaab11f1ba: mov %r11d,0x4(%rsp)
0x00002aaaab11f1bf: test %r11d,%r11d
0x00002aaaab11f1c2: jl 0x00002aaaab11f340 ;*ifge
; - java.util.Arrays::copyOfRange@5 (line 3207)
;; B2: # B14 B3 <- B1 Freq: 1
0x00002aaaab11f1c8: movslq %r11d,%r10
0x00002aaaab11f1cb: shl %r10
0x00002aaaab11f1ce: add $0x17,%r10
0x00002aaaab11f1d2: mov %r10,0x10(%rsp)
0x00002aaaab11f1d7: cmp $0x80000,%r11d
0x00002aaaab11f1de: ja 0x00002aaaab11f2f3
;; B3: # B14 B4 <- B2 Freq: 0.999999
0x00002aaaab11f1e4: and $0xfffffffffffffff8,%r10
0x00002aaaab11f1e8: mov 0x70(%r15),%rbp
0x00002aaaab11f1ec: mov %rbp,%r11
0x00002aaaab11f1ef: add %r10,%r11
0x00002aaaab11f1f2: cmp 0x80(%r15),%r11
0x00002aaaab11f1f9: jae 0x00002aaaab11f2f3
;; B4: # B5 <- B3 Freq: 0.999898
0x00002aaaab11f1ff: mov %r11,0x70(%r15)
0x00002aaaab11f203: prefetchnta 0x100(%r11)
0x00002aaaab11f20b: movq $0x1,0x0(%rbp)
0x00002aaaab11f213: prefetchnta 0x140(%r11)
0x00002aaaab11f21b: movl $0xc4200608,0x8(%rbp) ; {oop({type array char})}
0x00002aaaab11f222: mov 0x4(%rsp),%r10d
0x00002aaaab11f227: mov %r10d,0xc(%rbp)
0x00002aaaab11f22b: prefetchnta 0x180(%r11) ;*newarray
; - java.util.Arrays::copyOfRange@40 (line 3209)
;; B5: # B21 B6 <- B15 B4 Freq: 1
0x00002aaaab11f233: mov 0x8(%rsp),%rbx
0x00002aaaab11f238: mov 0xc(%rbx),%edi ;*arraylength
; - java.util.Arrays::copyOfRange@50 (line 3210)
; implicit exception: dispatches to 0x00002aaaab11f35d
;; B6: # B16 B7 <- B5 Freq: 0.999999
0x00002aaaab11f23b: mov %edi,%r11d
0x00002aaaab11f23e: sub (%rsp),%r11d ;*isub
; - java.util.Arrays::copyOfRange@52 (line 3210)
0x00002aaaab11f242: mov %rbp,%r8
0x00002aaaab11f245: add $0x10,%r8 ;*invokestatic arraycopy
; - java.util.Arrays::copyOfRange@57 (line 3210)
0x00002aaaab11f249: cmp 0x4(%rsp),%r11d
0x00002aaaab11f24e: mov 0x4(%rsp),%r9d
0x00002aaaab11f253: cmovl %r11d,%r9d ;*invokestatic min
; - java.util.Arrays::copyOfRange@54 (line 3210)
0x00002aaaab11f257: mov 0x10(%rsp),%r10
0x00002aaaab11f25c: shr $0x3,%r10
0x00002aaaab11f260: mov %r10,%rsi
0x00002aaaab11f263: mov %r10,%rcx
0x00002aaaab11f266: add $0xfffffffffffffffe,%rcx
0x00002aaaab11f26a: mov (%rsp),%r10d
0x00002aaaab11f26e: test %r10d,%r10d
0x00002aaaab11f271: jl 0x00002aaaab11f310
;; B7: # B16 B8 <- B6 Freq: 0.999997
0x00002aaaab11f277: mov %r10d,%r11d
0x00002aaaab11f27a: add %r9d,%r11d
0x00002aaaab11f27d: cmp %r11d,%edi
0x00002aaaab11f280: jb 0x00002aaaab11f310
;; B8: # B16 B9 <- B7 Freq: 0.999996
0x00002aaaab11f286: mov 0x4(%rsp),%edi
0x00002aaaab11f28a: cmp %r9d,%edi
0x00002aaaab11f28d: jb 0x00002aaaab11f310
;; B9: # B18 B10 <- B8 Freq: 0.999995
0x00002aaaab11f293: test %r9d,%r9d
0x00002aaaab11f296: jle 0x00002aaaab11f32e
;; B10: # B13 B11 <- B9 Freq: 0.999994
0x00002aaaab11f29c: movslq %r9d,%rdx
0x00002aaaab11f29f: cmp %edi,%r9d
0x00002aaaab11f2a2: jl 0x00002aaaab11f2c8
;; B11: # B12 <- B10 B13 Freq: 0.999994
0x00002aaaab11f2a4: lea 0x10(%rbx,%r10,2),%rdi
0x00002aaaab11f2a9: mov %r8,%rsi
0x00002aaaab11f2ac: mov $0x2aaaab0fce80,%r10
0x00002aaaab11f2b6: callq *%r10
;; B12: # N1 <- B11 B19 B17 Freq: 0.999998
0x00002aaaab11f2b9: mov %rbp,%rax
0x00002aaaab11f2bc: add $0x30,%rsp
0x00002aaaab11f2c0: pop %rbp
0x00002aaaab11f2c1: test %eax,-0x4272c7(%rip) # 0x00002aaaaacf8000
; {poll_return}
0x00002aaaab11f2c7: retq
;; B13: # B11 <- B10 Freq: 0.000999994
0x00002aaaab11f2c8: mov %rdx,%r11
0x00002aaaab11f2cb: shl %r11
0x00002aaaab11f2ce: add $0x10,%r11
0x00002aaaab11f2d2: mov %r11,%r9
0x00002aaaab11f2d5: and $0xfffffffffffffff9,%r9
0x00002aaaab11f2d9: mov %rbp,%rdi
0x00002aaaab11f2dc: add %r9,%rdi
0x00002aaaab11f2df: shr $0x3,%r11
0x00002aaaab11f2e3: mov %rsi,%r9
0x00002aaaab11f2e6: sub %r11,%r9
0x00002aaaab11f2e9: mov %r9,%rcx
0x00002aaaab11f2ec: xor %eax,%eax
0x00002aaaab11f2ee: rep stos %rax,%es:(%rdi) ;*invokestatic arraycopy
; - java.util.Arrays::copyOfRange@57 (line 3210)
0x00002aaaab11f2f1: jmp 0x00002aaaab11f2a4
;; B14: # B23 B15 <- B2 B3 Freq: 0.00010103
0x00002aaaab11f2f3: mov $0xc4200608,%rsi ; {oop({type array char})}
0x00002aaaab11f2fd: mov 0x4(%rsp),%edx
0x00002aaaab11f301: mov %edx,%ebp
0x00002aaaab11f303: callq 0x00002aaaab118220 ; OopMap{[8]=Oop off=360}
;*newarray
; - java.util.Arrays::copyOfRange@40 (line 3209)
; {runtime_call}
;; B15: # B5 <- B14 Freq: 0.000101028
0x00002aaaab11f308: mov %rax,%rbp
0x00002aaaab11f30b: jmpq 0x00002aaaab11f233
;; B16: # B22 B17 <- B6 B7 B8 B18 Freq: 2.99999e-06
0x00002aaaab11f310: mov %r8,%rdi
0x00002aaaab11f313: xor %eax,%eax
0x00002aaaab11f315: rep stos %rax,%es:(%rdi)
0x00002aaaab11f318: xor %r8d,%r8d
0x00002aaaab11f31b: mov %rbx,%rsi
0x00002aaaab11f31e: mov %r10d,%edx
0x00002aaaab11f321: mov %rbp,%rcx
0x00002aaaab11f324: nop
0x00002aaaab11f325: nop
0x00002aaaab11f326: nop
0x00002aaaab11f327: callq 0x00002aaaab11b020 ; OopMap{rbp=Oop off=396}
;*invokestatic arraycopy
; - java.util.Arrays::copyOfRange@57 (line 3210)
; {runtime_call}
;; B17: # B12 <- B16 Freq: 2.99993e-06
0x00002aaaab11f32c: jmp 0x00002aaaab11f2b9
;; B18: # B16 B19 <- B9 Freq: 9.99995e-07
0x00002aaaab11f32e: test %r9d,%r9d
0x00002aaaab11f331: jl 0x00002aaaab11f310
;; B19: # B12 <- B18 Freq: 9.99994e-07
0x00002aaaab11f333: mov %r8,%rdi
0x00002aaaab11f336: xor %eax,%eax
0x00002aaaab11f338: rep stos %rax,%es:(%rdi) ;*invokestatic arraycopy
; - java.util.Arrays::copyOfRange@57 (line 3210)
0x00002aaaab11f33b: jmpq 0x00002aaaab11f2b9
;; B20: # N1 <- B1 Freq: 4.76837e-07
0x00002aaaab11f340: mov $0xce,%esi
0x00002aaaab11f345: mov %edx,%ebp
0x00002aaaab11f347: mov %ecx,(%rsp)
0x00002aaaab11f34a: nop
0x00002aaaab11f34b: callq 0x00002aaaab0f3fa0 ; OopMap{off=432}
;*new ; - java.util.Arrays::copyOfRange@8 (line 3208)
; {runtime_call}
0x00002aaaab11f350: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11f35a: rex.WB callq *%r10
;; B21: # N1 <- B5 Freq: 1.01328e-06
0x00002aaaab11f35d: mov $0xfffffff6,%esi
0x00002aaaab11f362: nop
0x00002aaaab11f363: callq 0x00002aaaab0f3fa0 ; OopMap{off=456}
;*arraylength
; - java.util.Arrays::copyOfRange@50 (line 3210)
; {runtime_call}
0x00002aaaab11f368: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11f372: rex.WB callq *%r10 ;*invokestatic arraycopy
; - java.util.Arrays::copyOfRange@57 (line 3210)
;; B22: # B24 <- B16 Freq: 2.99999e-11
0x00002aaaab11f375: mov %rax,%rsi
0x00002aaaab11f378: jmp 0x00002aaaab11f37d ;*newarray
; - java.util.Arrays::copyOfRange@40 (line 3209)
;; B23: # B24 <- B14 Freq: 1.0103e-09
0x00002aaaab11f37a: mov %rax,%rsi ;*invokestatic arraycopy
; - java.util.Arrays::copyOfRange@57 (line 3210)
;; B24: # N1 <- B22 B23 Freq: 1.0403e-09
0x00002aaaab11f37d: add $0x30,%rsp
0x00002aaaab11f381: pop %rbp
0x00002aaaab11f382: jmpq 0x00002aaaab117a20 ; {runtime_call}
0x00002aaaab11f387: hlt
0x00002aaaab11f388: hlt
0x00002aaaab11f389: hlt
0x00002aaaab11f38a: hlt
0x00002aaaab11f38b: hlt
0x00002aaaab11f38c: hlt
0x00002aaaab11f38d: hlt
0x00002aaaab11f38e: hlt
0x00002aaaab11f38f: hlt
0x00002aaaab11f390: hlt
0x00002aaaab11f391: hlt
0x00002aaaab11f392: hlt
0x00002aaaab11f393: hlt
0x00002aaaab11f394: hlt
0x00002aaaab11f395: hlt
0x00002aaaab11f396: hlt
0x00002aaaab11f397: hlt
0x00002aaaab11f398: hlt
0x00002aaaab11f399: hlt
0x00002aaaab11f39a: hlt
0x00002aaaab11f39b: hlt
0x00002aaaab11f39c: hlt
0x00002aaaab11f39d: hlt
0x00002aaaab11f39e: hlt
0x00002aaaab11f39f: hlt
[Exception Handler]
[Stub Code]
0x00002aaaab11f3a0: jmpq 0x00002aaaab101c20 ; {no_reloc}
[Deopt Handler Code]
0x00002aaaab11f3a5: callq 0x00002aaaab11f3aa
0x00002aaaab11f3aa: subq $0x5,(%rsp)
0x00002aaaab11f3af: jmpq 0x00002aaaab0f3ae0 ; {runtime_call}
0x00002aaaab11f3b4: int3
0x00002aaaab11f3b5: int3
0x00002aaaab11f3b6: int3
0x00002aaaab11f3b7: int3
687 14 java.lang.AbstractStringBuilder::<init> (12 bytes)
Decoding compiled method 0x00002aaaab11ebd0:
Code:
[Entry Point]
[Constants]
# {method} '<init>' '(I)V' in 'java/lang/AbstractStringBuilder'
# this: rsi:rsi = 'java/lang/AbstractStringBuilder'
# parm0: rdx = int
# [sp+0x20] (sp of caller)
;; N105: # B1 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab11ed40: mov 0x8(%rsi),%r10d
0x00002aaaab11ed44: cmp %r10,%rax
0x00002aaaab11ed47: jne 0x00002aaaab0f2920 ; {runtime_call}
0x00002aaaab11ed4d: nop
0x00002aaaab11ed4e: nop
0x00002aaaab11ed4f: nop
[Verified Entry Point]
;; B1: # B5 B2 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab11ed50: mov %eax,-0x8000(%rsp)
0x00002aaaab11ed57: push %rbp
0x00002aaaab11ed58: sub $0x10,%rsp ;*synchronization entry
; - java.lang.AbstractStringBuilder::<init>@-1 (line 44)
0x00002aaaab11ed5c: mov %rsi,%rbp
0x00002aaaab11ed5f: cmp $0x80000,%edx
0x00002aaaab11ed65: ja 0x00002aaaab11ef19
;; B2: # B5 B3 <- B1 Freq: 0.999999
0x00002aaaab11ed6b: movslq %edx,%rcx
0x00002aaaab11ed6e: shl %rcx
0x00002aaaab11ed71: add $0x17,%rcx
0x00002aaaab11ed75: mov %rcx,%r10
0x00002aaaab11ed78: and $0xfffffffffffffff8,%r10
0x00002aaaab11ed7c: mov 0x70(%r15),%r8
0x00002aaaab11ed80: mov %r8,%r11
0x00002aaaab11ed83: add %r10,%r11
0x00002aaaab11ed86: cmp 0x80(%r15),%r11
0x00002aaaab11ed8d: jae 0x00002aaaab11ef19
;; B3: # B4 <- B2 Freq: 0.999899
0x00002aaaab11ed93: mov %r11,0x70(%r15)
0x00002aaaab11ed97: prefetchnta 0x100(%r11)
0x00002aaaab11ed9f: movq $0x1,(%r8)
0x00002aaaab11eda6: prefetchnta 0x140(%r11)
0x00002aaaab11edae: movl $0xc4200608,0x8(%r8) ; {oop({type array char})}
0x00002aaaab11edb6: mov %edx,0xc(%r8)
0x00002aaaab11edba: prefetchnta 0x180(%r11)
0x00002aaaab11edc2: mov %r8,%rdi
0x00002aaaab11edc5: add $0x10,%rdi
0x00002aaaab11edc9: shr $0x3,%rcx
0x00002aaaab11edcd: add $0xfffffffffffffffe,%rcx
0x00002aaaab11edd1: xor %eax,%eax
0x00002aaaab11edd3: rep stos %rax,%es:(%rdi) ;*newarray
; - java.lang.AbstractStringBuilder::<init>@6 (line 45)
;; B4: # N105 <- B6 B3 Freq: 1
0x00002aaaab11edd6: mov %rbp,%r10
0x00002aaaab11edd9: push %r10
0x00002aaaab11eddb: mov $0x2ae74dadc700,%r10 ; {external_word}
0x00002aaaab11ede5: cmp (%r10),%r12
0x00002aaaab11ede8: je 0x00002aaaab11ee6d
0x00002aaaab11edee: mov %rsp,-0x28(%rsp)
0x00002aaaab11edf3: sub $0x80,%rsp
0x00002aaaab11edfa: mov %rax,0x78(%rsp)
0x00002aaaab11edff: mov %rcx,0x70(%rsp)
0x00002aaaab11ee04: mov %rdx,0x68(%rsp)
0x00002aaaab11ee09: mov %rbx,0x60(%rsp)
0x00002aaaab11ee0e: mov %rbp,0x50(%rsp)
0x00002aaaab11ee13: mov %rsi,0x48(%rsp)
0x00002aaaab11ee18: mov %rdi,0x40(%rsp)
0x00002aaaab11ee1d: mov %r8,0x38(%rsp)
0x00002aaaab11ee22: mov %r9,0x30(%rsp)
0x00002aaaab11ee27: mov %r10,0x28(%rsp)
0x00002aaaab11ee2c: mov %r11,0x20(%rsp)
0x00002aaaab11ee31: mov %r12,0x18(%rsp)
0x00002aaaab11ee36: mov %r13,0x10(%rsp)
0x00002aaaab11ee3b: mov %r14,0x8(%rsp)
0x00002aaaab11ee40: mov %r15,(%rsp)
0x00002aaaab11ee44: mov $0x2ae74d5c7980,%rdi ; {external_word}
0x00002aaaab11ee4e: mov $0x2aaaab11edee,%rsi ; {internal_word}
0x00002aaaab11ee58: mov %rsp,%rdx
0x00002aaaab11ee5b: and $0xfffffffffffffff0,%rsp
0x00002aaaab11ee5f: mov $0x2ae74cb3f860,%r10 ; {runtime_call}
0x00002aaaab11ee69: rex.WB callq *%r10
0x00002aaaab11ee6c: hlt
0x00002aaaab11ee6d: pop %r10
0x00002aaaab11ee6f: test %r8,%r8
0x00002aaaab11ee72: jne 0x00002aaaab11eef7
0x00002aaaab11ee78: mov %rsp,-0x28(%rsp)
0x00002aaaab11ee7d: sub $0x80,%rsp
0x00002aaaab11ee84: mov %rax,0x78(%rsp)
0x00002aaaab11ee89: mov %rcx,0x70(%rsp)
0x00002aaaab11ee8e: mov %rdx,0x68(%rsp)
0x00002aaaab11ee93: mov %rbx,0x60(%rsp)
0x00002aaaab11ee98: mov %rbp,0x50(%rsp)
0x00002aaaab11ee9d: mov %rsi,0x48(%rsp)
0x00002aaaab11eea2: mov %rdi,0x40(%rsp)
0x00002aaaab11eea7: mov %r8,0x38(%rsp)
0x00002aaaab11eeac: mov %r9,0x30(%rsp)
0x00002aaaab11eeb1: mov %r10,0x28(%rsp)
0x00002aaaab11eeb6: mov %r11,0x20(%rsp)
0x00002aaaab11eebb: mov %r12,0x18(%rsp)
0x00002aaaab11eec0: mov %r13,0x10(%rsp)
0x00002aaaab11eec5: mov %r14,0x8(%rsp)
0x00002aaaab11eeca: mov %r15,(%rsp)
0x00002aaaab11eece: mov $0x2ae74d5c79c0,%rdi ; {external_word}
0x00002aaaab11eed8: mov $0x2aaaab11ee78,%rsi ; {internal_word}
0x00002aaaab11eee2: mov %rsp,%rdx
0x00002aaaab11eee5: and $0xfffffffffffffff0,%rsp
0x00002aaaab11eee9: mov $0x2ae74cb3f860,%r10 ; {runtime_call}
0x00002aaaab11eef3: rex.WB callq *%r10
0x00002aaaab11eef6: hlt
0x00002aaaab11eef7: mov %r8d,0x10(%rbp)
0x00002aaaab11eefb: shr $0x9,%r10
0x00002aaaab11eeff: mov $0x2aaaadac4000,%r11
0x00002aaaab11ef09: mov %r12b,(%r11,%r10,1) ;*synchronization entry
; - java.lang.AbstractStringBuilder::<init>@-1 (line 44)
0x00002aaaab11ef0d: add $0x10,%rsp
0x00002aaaab11ef11: pop %rbp
0x00002aaaab11ef12: test %eax,-0x426f18(%rip) # 0x00002aaaaacf8000
; {poll_return}
0x00002aaaab11ef18: retq
;; B5: # B7 B6 <- B1 B2 Freq: 0.00010103
0x00002aaaab11ef19: mov $0xc4200608,%rsi ; {oop({type array char})}
0x00002aaaab11ef23: callq 0x00002aaaab118220 ; OopMap{rbp=Oop off=488}
;*newarray
; - java.lang.AbstractStringBuilder::<init>@6 (line 45)
; {runtime_call}
;; B6: # B4 <- B5 Freq: 0.000101028
0x00002aaaab11ef28: mov %rax,%r8
0x00002aaaab11ef2b: jmpq 0x00002aaaab11edd6 ;*newarray
; - java.lang.AbstractStringBuilder::<init>@6 (line 45)
;; B7: # N105 <- B5 Freq: 1.0103e-09
0x00002aaaab11ef30: mov %rax,%rsi
0x00002aaaab11ef33: add $0x10,%rsp
0x00002aaaab11ef37: pop %rbp
0x00002aaaab11ef38: jmpq 0x00002aaaab117a20 ; {runtime_call}
0x00002aaaab11ef3d: hlt
0x00002aaaab11ef3e: hlt
0x00002aaaab11ef3f: hlt
[Exception Handler]
[Stub Code]
0x00002aaaab11ef40: jmpq 0x00002aaaab101c20 ; {no_reloc}
[Deopt Handler Code]
0x00002aaaab11ef45: callq 0x00002aaaab11ef4a
0x00002aaaab11ef4a: subq $0x5,(%rsp)
0x00002aaaab11ef4f: jmpq 0x00002aaaab0f3ae0 ; {runtime_call}
0x00002aaaab11ef54: int3
0x00002aaaab11ef55: int3
0x00002aaaab11ef56: int3
0x00002aaaab11ef57: int3
695 15 java.lang.StringBuilder::toString (17 bytes)
Decoding compiled method 0x00002aaaab11e290:
Code:
[Entry Point]
[Constants]
# {method} 'toString' '()Ljava/lang/String;' in 'java/lang/StringBuilder'
# [sp+0x50] (sp of caller)
;; N385: # B1 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab11e420: mov 0x8(%rsi),%r10d
0x00002aaaab11e424: cmp %r10,%rax
0x00002aaaab11e427: jne 0x00002aaaab0f2920 ; {runtime_call}
0x00002aaaab11e42d: nop
0x00002aaaab11e42e: nop
0x00002aaaab11e42f: nop
[Verified Entry Point]
;; B1: # B16 B2 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab11e430: mov %eax,-0x8000(%rsp)
0x00002aaaab11e437: push %rbp
0x00002aaaab11e438: sub $0x40,%rsp ;*synchronization entry
; - java.lang.StringBuilder::toString@-1 (line 430)
0x00002aaaab11e43c: mov %rsi,%rbp
0x00002aaaab11e43f: mov 0x70(%r15),%rbx
0x00002aaaab11e443: mov %rbx,%r10
0x00002aaaab11e446: add $0x20,%r10
0x00002aaaab11e44a: cmp 0x80(%r15),%r10
0x00002aaaab11e451: jae 0x00002aaaab11e6fb
;; B2: # B3 <- B1 Freq: 0.9999
0x00002aaaab11e457: mov %r10,0x70(%r15)
0x00002aaaab11e45b: prefetchnta 0x100(%r10)
0x00002aaaab11e463: mov $0xc420ae88,%r11d ; {oop('java/lang/String')}
0x00002aaaab11e469: mov 0xb0(%r11),%r10
0x00002aaaab11e470: mov %r10,(%rbx)
0x00002aaaab11e473: movl $0xc420ae88,0x8(%rbx) ; {oop('java/lang/String')}
0x00002aaaab11e47a: mov %r12d,0xc(%rbx)
0x00002aaaab11e47e: mov %r12,0x10(%rbx)
0x00002aaaab11e482: mov %r12,0x18(%rbx) ;*new ; - java.lang.StringBuilder::toString@0 (line 430)
;; B3: # B23 B4 <- B17 B2 Freq: 1
0x00002aaaab11e486: mov 0xc(%rbp),%r10d ;*getfield count
; - java.lang.StringBuilder::toString@10 (line 430)
0x00002aaaab11e48a: test %r10d,%r10d
0x00002aaaab11e48d: jl 0x00002aaaab11e7af ;*ifge
; - java.lang.String::<init>@18 (line 206)
; - java.lang.StringBuilder::toString@13 (line 430)
;; B4: # B25 B5 <- B3 Freq: 1
0x00002aaaab11e493: mov 0x10(%rbp),%r8d ;*getfield value
; - java.lang.StringBuilder::toString@5 (line 430)
0x00002aaaab11e497: mov 0xc(%r8),%edi ;*arraylength
; - java.lang.String::<init>@32 (line 210)
; - java.lang.StringBuilder::toString@13 (line 430)
; implicit exception: dispatches to 0x00002aaaab11e7ed
;; B5: # B24 B6 <- B4 Freq: 0.999999
0x00002aaaab11e49b: mov %edi,%r9d
0x00002aaaab11e49e: sub %r10d,%r9d
0x00002aaaab11e4a1: test %r9d,%r9d
0x00002aaaab11e4a4: jl 0x00002aaaab11e7cd ;*if_icmple
; - java.lang.String::<init>@35 (line 210)
; - java.lang.StringBuilder::toString@13 (line 430)
;; B6: # B18 B7 <- B5 Freq: 0.999998
0x00002aaaab11e4aa: mov %r10d,0x14(%rbx) ;*putfield count
; - java.lang.String::<init>@56 (line 214)
; - java.lang.StringBuilder::toString@13 (line 430)
0x00002aaaab11e4ae: movslq %r10d,%r11
0x00002aaaab11e4b1: mov %r8,%rdx ;*getfield value
; - java.lang.StringBuilder::toString@5 (line 430)
0x00002aaaab11e4b4: shl %r11
0x00002aaaab11e4b7: add $0x17,%r11
0x00002aaaab11e4bb: mov %r11,%rax
0x00002aaaab11e4be: and $0xfffffffffffffff8,%rax
0x00002aaaab11e4c2: cmp $0x80000,%r10d
0x00002aaaab11e4c9: ja 0x00002aaaab11e714
;; B7: # B18 B8 <- B6 Freq: 0.999997
0x00002aaaab11e4cf: mov 0x70(%r15),%rbp
0x00002aaaab11e4d3: mov %rbp,%r9
0x00002aaaab11e4d6: add %rax,%r9
0x00002aaaab11e4d9: cmp 0x80(%r15),%r9
0x00002aaaab11e4e0: jae 0x00002aaaab11e714
;; B8: # B9 <- B7 Freq: 0.999897
0x00002aaaab11e4e6: mov %r9,0x70(%r15)
0x00002aaaab11e4ea: prefetchnta 0x100(%r9)
0x00002aaaab11e4f2: movq $0x1,0x0(%rbp)
0x00002aaaab11e4fa: prefetchnta 0x140(%r9)
0x00002aaaab11e502: movl $0xc4200608,0x8(%rbp) ; {oop({type array char})}
0x00002aaaab11e509: mov %r10d,0xc(%rbp)
0x00002aaaab11e50d: prefetchnta 0x180(%r9) ;*newarray
; - java.util.Arrays::copyOfRange@40 (line 3209)
; - java.lang.String::<init>@65 (line 215)
; - java.lang.StringBuilder::toString@13 (line 430)
;; B9: # B20 B10 <- B19 B8 Freq: 0.999998
0x00002aaaab11e515: cmp %r10d,%edi
0x00002aaaab11e518: mov %r10d,%r9d
0x00002aaaab11e51b: cmovl %edi,%r9d ;*invokestatic min
; - java.util.Arrays::copyOfRange@54 (line 3210)
; - java.lang.String::<init>@65 (line 215)
; - java.lang.StringBuilder::toString@13 (line 430)
0x00002aaaab11e51f: mov %rbp,%rsi
0x00002aaaab11e522: add $0x10,%rsi
0x00002aaaab11e526: shr $0x3,%r11
0x00002aaaab11e52a: mov %r11,%rcx
0x00002aaaab11e52d: add $0xfffffffffffffffe,%rcx
0x00002aaaab11e531: cmp %r9d,%edi
0x00002aaaab11e534: jb 0x00002aaaab11e775
;; B10: # B20 B11 <- B9 Freq: 0.999997
0x00002aaaab11e53a: cmp %r9d,%r10d
0x00002aaaab11e53d: jb 0x00002aaaab11e775
;; B11: # B22 B12 <- B10 Freq: 0.999996
0x00002aaaab11e543: test %r9d,%r9d
0x00002aaaab11e546: jle 0x00002aaaab11e7a2
;; B12: # B15 B13 <- B11 Freq: 0.999995
0x00002aaaab11e54c: lea 0x10(%r8),%r8
0x00002aaaab11e550: cmp %r10d,%r9d
0x00002aaaab11e553: jl 0x00002aaaab11e6bd
;; B13: # B14 <- B12 Freq: 0.998995
0x00002aaaab11e559: add $0xfffffffffffffff0,%rax
0x00002aaaab11e55d: shr $0x3,%rax
0x00002aaaab11e561: mov %r8,%rdi
0x00002aaaab11e564: mov %rax,%rdx
0x00002aaaab11e567: mov $0x2aaaab0fd440,%r10
0x00002aaaab11e571: callq *%r10 ;*invokestatic arraycopy
; - java.util.Arrays::copyOfRange@57 (line 3210)
; - java.lang.String::<init>@65 (line 215)
; - java.lang.StringBuilder::toString@13 (line 430)
;; B14: # N385 <- B15 B13 B21 B22 Freq: 0.999998
0x00002aaaab11e574: push %r10
0x00002aaaab11e576: mov $0x2ae74dadc700,%r10 ; {external_word}
0x00002aaaab11e580: cmp (%r10),%r12
0x00002aaaab11e583: je 0x00002aaaab11e608
0x00002aaaab11e589: mov %rsp,-0x28(%rsp)
0x00002aaaab11e58e: sub $0x80,%rsp
0x00002aaaab11e595: mov %rax,0x78(%rsp)
0x00002aaaab11e59a: mov %rcx,0x70(%rsp)
0x00002aaaab11e59f: mov %rdx,0x68(%rsp)
0x00002aaaab11e5a4: mov %rbx,0x60(%rsp)
0x00002aaaab11e5a9: mov %rbp,0x50(%rsp)
0x00002aaaab11e5ae: mov %rsi,0x48(%rsp)
0x00002aaaab11e5b3: mov %rdi,0x40(%rsp)
0x00002aaaab11e5b8: mov %r8,0x38(%rsp)
0x00002aaaab11e5bd: mov %r9,0x30(%rsp)
0x00002aaaab11e5c2: mov %r10,0x28(%rsp)
0x00002aaaab11e5c7: mov %r11,0x20(%rsp)
0x00002aaaab11e5cc: mov %r12,0x18(%rsp)
0x00002aaaab11e5d1: mov %r13,0x10(%rsp)
0x00002aaaab11e5d6: mov %r14,0x8(%rsp)
0x00002aaaab11e5db: mov %r15,(%rsp)
0x00002aaaab11e5df: mov $0x2ae74d5c7980,%rdi ; {external_word}
0x00002aaaab11e5e9: mov $0x2aaaab11e589,%rsi ; {internal_word}
0x00002aaaab11e5f3: mov %rsp,%rdx
0x00002aaaab11e5f6: and $0xfffffffffffffff0,%rsp
0x00002aaaab11e5fa: mov $0x2ae74cb3f860,%r10 ; {runtime_call}
0x00002aaaab11e604: rex.WB callq *%r10
0x00002aaaab11e607: hlt
0x00002aaaab11e608: pop %r10
0x00002aaaab11e60a: test %rbp,%rbp
0x00002aaaab11e60d: jne 0x00002aaaab11e692
0x00002aaaab11e613: mov %rsp,-0x28(%rsp)
0x00002aaaab11e618: sub $0x80,%rsp
0x00002aaaab11e61f: mov %rax,0x78(%rsp)
0x00002aaaab11e624: mov %rcx,0x70(%rsp)
0x00002aaaab11e629: mov %rdx,0x68(%rsp)
0x00002aaaab11e62e: mov %rbx,0x60(%rsp)
0x00002aaaab11e633: mov %rbp,0x50(%rsp)
0x00002aaaab11e638: mov %rsi,0x48(%rsp)
0x00002aaaab11e63d: mov %rdi,0x40(%rsp)
0x00002aaaab11e642: mov %r8,0x38(%rsp)
0x00002aaaab11e647: mov %r9,0x30(%rsp)
0x00002aaaab11e64c: mov %r10,0x28(%rsp)
0x00002aaaab11e651: mov %r11,0x20(%rsp)
0x00002aaaab11e656: mov %r12,0x18(%rsp)
0x00002aaaab11e65b: mov %r13,0x10(%rsp)
0x00002aaaab11e660: mov %r14,0x8(%rsp)
0x00002aaaab11e665: mov %r15,(%rsp)
0x00002aaaab11e669: mov $0x2ae74d5c79c0,%rdi ; {external_word}
0x00002aaaab11e673: mov $0x2aaaab11e613,%rsi ; {internal_word}
0x00002aaaab11e67d: mov %rsp,%rdx
0x00002aaaab11e680: and $0xfffffffffffffff0,%rsp
0x00002aaaab11e684: mov $0x2ae74cb3f860,%r10 ; {runtime_call}
0x00002aaaab11e68e: rex.WB callq *%r10
0x00002aaaab11e691: hlt
0x00002aaaab11e692: mov %rbp,%r11
0x00002aaaab11e695: mov %r11d,0xc(%rbx)
0x00002aaaab11e699: mov %rbx,%r10
0x00002aaaab11e69c: shr $0x9,%r10
0x00002aaaab11e6a0: mov $0x2aaaadac4000,%r11
0x00002aaaab11e6aa: mov %r12b,(%r11,%r10,1) ;*synchronization entry
; - java.lang.StringBuilder::toString@-1 (line 430)
0x00002aaaab11e6ae: mov %rbx,%rax
0x00002aaaab11e6b1: add $0x40,%rsp
0x00002aaaab11e6b5: pop %rbp
0x00002aaaab11e6b6: test %eax,-0x4266bc(%rip) # 0x00002aaaaacf8000
; {poll_return}
0x00002aaaab11e6bc: retq
;; B15: # B14 <- B12 Freq: 0.000999995
0x00002aaaab11e6bd: movslq %r9d,%rdx
0x00002aaaab11e6c0: mov %rdx,%r10
0x00002aaaab11e6c3: shl %r10
0x00002aaaab11e6c6: add $0x10,%r10
0x00002aaaab11e6ca: mov %r10,%r9
0x00002aaaab11e6cd: and $0xfffffffffffffff9,%r9
0x00002aaaab11e6d1: mov %rbp,%rdi
0x00002aaaab11e6d4: add %r9,%rdi
0x00002aaaab11e6d7: shr $0x3,%r10
0x00002aaaab11e6db: sub %r10,%r11
0x00002aaaab11e6de: mov %r11,%rcx
0x00002aaaab11e6e1: xor %eax,%eax
0x00002aaaab11e6e3: rep stos %rax,%es:(%rdi)
0x00002aaaab11e6e6: mov %r8,%rdi
0x00002aaaab11e6e9: mov $0x2aaaab0fccc0,%r10
0x00002aaaab11e6f3: callq *%r10 ;*invokestatic arraycopy
; - java.util.Arrays::copyOfRange@57 (line 3210)
; - java.lang.String::<init>@65 (line 215)
; - java.lang.StringBuilder::toString@13 (line 430)
0x00002aaaab11e6f6: jmpq 0x00002aaaab11e574
;; B16: # B28 B17 <- B1 Freq: 0.000100017
0x00002aaaab11e6fb: mov $0xc420ae88,%rsi ; {oop('java/lang/String')}
0x00002aaaab11e705: nop
0x00002aaaab11e706: nop
0x00002aaaab11e707: callq 0x00002aaaab1182e0 ; OopMap{rbp=Oop off=748}
;*new ; - java.lang.StringBuilder::toString@0 (line 430)
; {runtime_call}
;; B17: # B3 <- B16 Freq: 0.000100015
0x00002aaaab11e70c: mov %rax,%rbx
0x00002aaaab11e70f: jmpq 0x00002aaaab11e486
;; B18: # B27 B19 <- B6 B7 Freq: 0.00010103
0x00002aaaab11e714: mov %edi,0x20(%rsp)
0x00002aaaab11e718: mov %r8d,0x4(%rsp)
0x00002aaaab11e71d: mov %rax,0x18(%rsp)
0x00002aaaab11e722: mov %rdx,0x10(%rsp)
0x00002aaaab11e727: mov %r11,0x8(%rsp)
0x00002aaaab11e72c: mov %r10d,(%rsp)
0x00002aaaab11e730: mov %rbx,%rbp ;*ifge
; - java.util.Arrays::copyOfRange@5 (line 3207)
; - java.lang.String::<init>@65 (line 215)
; - java.lang.StringBuilder::toString@13 (line 430)
0x00002aaaab11e733: mov $0xc4200608,%rsi ; {oop({type array char})}
0x00002aaaab11e73d: mov %r10d,%edx
0x00002aaaab11e740: nop
0x00002aaaab11e741: nop
0x00002aaaab11e742: nop
0x00002aaaab11e743: callq 0x00002aaaab118220 ; OopMap{rbp=Oop [4]=NarrowOop [16]=Oop off=808}
;*newarray
; - java.util.Arrays::copyOfRange@40 (line 3209)
; - java.lang.String::<init>@65 (line 215)
; - java.lang.StringBuilder::toString@13 (line 430)
; {runtime_call}
;; B19: # B9 <- B18 Freq: 0.000101028
0x00002aaaab11e748: mov %rax,%r8
0x00002aaaab11e74b: mov %rbp,%r9
0x00002aaaab11e74e: mov (%rsp),%r10d
0x00002aaaab11e752: mov 0x8(%rsp),%r11
0x00002aaaab11e757: mov 0x10(%rsp),%rdx
0x00002aaaab11e75c: mov 0x18(%rsp),%rax
0x00002aaaab11e761: mov %r8,%rbp
0x00002aaaab11e764: mov 0x4(%rsp),%r8d
0x00002aaaab11e769: mov 0x20(%rsp),%edi
0x00002aaaab11e76d: mov %r9,%rbx
0x00002aaaab11e770: jmpq 0x00002aaaab11e515
;; B20: # B26 B21 <- B9 B10 Freq: 2e-06
0x00002aaaab11e775: mov %rsi,%rdi
0x00002aaaab11e778: xor %eax,%eax
0x00002aaaab11e77a: rep stos %rax,%es:(%rdi)
0x00002aaaab11e77d: mov %rdx,%rsi
0x00002aaaab11e780: xor %edx,%edx
0x00002aaaab11e782: mov %rbp,%rcx
0x00002aaaab11e785: xor %r8d,%r8d
0x00002aaaab11e788: mov %rbx,0x8(%rsp)
0x00002aaaab11e78d: mov %rbx,0x10(%rsp)
0x00002aaaab11e792: nop
0x00002aaaab11e793: callq 0x00002aaaab11b020 ; OopMap{rbp=Oop [8]=Oop [16]=Oop off=888}
;*invokestatic arraycopy
; - java.util.Arrays::copyOfRange@57 (line 3210)
; - java.lang.String::<init>@65 (line 215)
; - java.lang.StringBuilder::toString@13 (line 430)
; {runtime_call}
;; B21: # B14 <- B20 Freq: 1.99996e-06
0x00002aaaab11e798: mov 0x8(%rsp),%rbx
0x00002aaaab11e79d: jmpq 0x00002aaaab11e574
;; B22: # B14 <- B11 Freq: 9.99996e-07
0x00002aaaab11e7a2: mov %rsi,%rdi
0x00002aaaab11e7a5: xor %eax,%eax
0x00002aaaab11e7a7: rep stos %rax,%es:(%rdi) ;*invokestatic arraycopy
; - java.util.Arrays::copyOfRange@57 (line 3210)
; - java.lang.String::<init>@65 (line 215)
; - java.lang.StringBuilder::toString@13 (line 430)
0x00002aaaab11e7aa: jmpq 0x00002aaaab11e574 ;*ifge
; - java.lang.String::<init>@5 (line 203)
; - java.lang.StringBuilder::toString@13 (line 430)
;; B23: # N385 <- B3 Freq: 4.76837e-07
0x00002aaaab11e7af: mov $0xce,%esi
0x00002aaaab11e7b4: mov %rbx,%rbp
0x00002aaaab11e7b7: mov %r10d,(%rsp)
0x00002aaaab11e7bb: callq 0x00002aaaab0f3fa0 ; OopMap{rbp=Oop off=928}
;*new ; - java.lang.String::<init>@21 (line 207)
; - java.lang.StringBuilder::toString@13 (line 430)
; {runtime_call}
0x00002aaaab11e7c0: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11e7ca: rex.WB callq *%r10 ;*ifge
; - java.lang.String::<init>@18 (line 206)
; - java.lang.StringBuilder::toString@13 (line 430)
;; B24: # N385 <- B5 Freq: 4.76836e-07
0x00002aaaab11e7cd: mov $0xce,%esi
0x00002aaaab11e7d2: mov %rbx,%rbp
0x00002aaaab11e7d5: mov %r10d,(%rsp)
0x00002aaaab11e7d9: nop
0x00002aaaab11e7da: nop
0x00002aaaab11e7db: callq 0x00002aaaab0f3fa0 ; OopMap{rbp=Oop off=960}
;*new ; - java.lang.String::<init>@38 (line 211)
; - java.lang.StringBuilder::toString@13 (line 430)
; {runtime_call}
0x00002aaaab11e7e0: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11e7ea: rex.WB callq *%r10
;; B25: # N385 <- B4 Freq: 1.01328e-06
0x00002aaaab11e7ed: mov $0xfffffff6,%esi
0x00002aaaab11e7f2: nop
0x00002aaaab11e7f3: callq 0x00002aaaab0f3fa0 ; OopMap{off=984}
;*arraylength
; - java.lang.String::<init>@32 (line 210)
; - java.lang.StringBuilder::toString@13 (line 430)
; {runtime_call}
0x00002aaaab11e7f8: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab11e802: rex.WB callq *%r10 ;*invokestatic arraycopy
; - java.util.Arrays::copyOfRange@57 (line 3210)
; - java.lang.String::<init>@65 (line 215)
; - java.lang.StringBuilder::toString@13 (line 430)
;; B26: # B29 <- B20 Freq: 2e-11
0x00002aaaab11e805: mov %rax,%rsi
0x00002aaaab11e808: jmp 0x00002aaaab11e812 ;*newarray
; - java.util.Arrays::copyOfRange@40 (line 3209)
; - java.lang.String::<init>@65 (line 215)
; - java.lang.StringBuilder::toString@13 (line 430)
;; B27: # B29 <- B18 Freq: 1.0103e-09
0x00002aaaab11e80a: mov %rax,%rsi
0x00002aaaab11e80d: jmp 0x00002aaaab11e812 ;*new
; - java.lang.StringBuilder::toString@0 (line 430)
;; B28: # B29 <- B16 Freq: 1.00017e-09
0x00002aaaab11e80f: mov %rax,%rsi ;*invokestatic arraycopy
; - java.util.Arrays::copyOfRange@57 (line 3210)
; - java.lang.String::<init>@65 (line 215)
; - java.lang.StringBuilder::toString@13 (line 430)
;; B29: # N385 <- B26 B28 B27 Freq: 2.03046e-09
0x00002aaaab11e812: add $0x40,%rsp
0x00002aaaab11e816: pop %rbp
0x00002aaaab11e817: jmpq 0x00002aaaab117a20 ; {runtime_call}
0x00002aaaab11e81c: hlt
0x00002aaaab11e81d: hlt
0x00002aaaab11e81e: hlt
0x00002aaaab11e81f: hlt
[Exception Handler]
[Stub Code]
0x00002aaaab11e820: jmpq 0x00002aaaab101c20 ; {no_reloc}
[Deopt Handler Code]
0x00002aaaab11e825: callq 0x00002aaaab11e82a
0x00002aaaab11e82a: subq $0x5,(%rsp)
0x00002aaaab11e82f: jmpq 0x00002aaaab0f3ae0 ; {runtime_call}
0x00002aaaab11e834: int3
0x00002aaaab11e835: int3
0x00002aaaab11e836: int3
0x00002aaaab11e837: int3
722 16 java.lang.StringBuilder::<init> (7 bytes)
Decoding compiled method 0x00002aaaab11de10:
Code:
[Entry Point]
[Constants]
# {method} '<init>' '()V' in 'java/lang/StringBuilder'
# [sp+0x20] (sp of caller)
;; N80: # B1 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab11df80: mov 0x8(%rsi),%r10d
0x00002aaaab11df84: cmp %r10,%rax
0x00002aaaab11df87: jne 0x00002aaaab0f2920 ; {runtime_call}
0x00002aaaab11df8d: nop
0x00002aaaab11df8e: nop
0x00002aaaab11df8f: nop
[Verified Entry Point]
;; B1: # B4 B2 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab11df90: mov %eax,-0x8000(%rsp)
0x00002aaaab11df97: push %rbp
0x00002aaaab11df98: sub $0x10,%rsp ;*synchronization entry
; - java.lang.StringBuilder::<init>@-1 (line 68)
0x00002aaaab11df9c: mov %rsi,%rbp
0x00002aaaab11df9f: mov 0x70(%r15),%rax
0x00002aaaab11dfa3: mov %rax,%r10
0x00002aaaab11dfa6: add $0x30,%r10
0x00002aaaab11dfaa: cmp 0x80(%r15),%r10
0x00002aaaab11dfb1: jae 0x00002aaaab11e13e
;; B2: # B3 <- B1 Freq: 0.9999
0x00002aaaab11dfb7: mov %r10,0x70(%r15)
0x00002aaaab11dfbb: prefetchnta 0x100(%r10)
0x00002aaaab11dfc3: movq $0x1,(%rax)
0x00002aaaab11dfca: prefetchnta 0x140(%r10)
0x00002aaaab11dfd2: movl $0xc4200608,0x8(%rax) ; {oop({type array char})}
0x00002aaaab11dfd9: prefetchnta 0x180(%r10)
0x00002aaaab11dfe1: movl $0x10,0xc(%rax)
0x00002aaaab11dfe8: mov %r12,0x10(%rax)
0x00002aaaab11dfec: mov %r12,0x18(%rax)
0x00002aaaab11dff0: mov %r12,0x20(%rax)
0x00002aaaab11dff4: mov %r12,0x28(%rax) ;*newarray
; - java.lang.AbstractStringBuilder::<init>@6 (line 45)
; - java.lang.StringBuilder::<init>@3 (line 68)
;; B3: # N80 <- B5 B2 Freq: 1
0x00002aaaab11dff8: mov %rbp,%r10
0x00002aaaab11dffb: push %r10
0x00002aaaab11dffd: mov $0x2ae74dadc700,%r10 ; {external_word}
0x00002aaaab11e007: cmp (%r10),%r12
0x00002aaaab11e00a: je 0x00002aaaab11e08f
0x00002aaaab11e010: mov %rsp,-0x28(%rsp)
0x00002aaaab11e015: sub $0x80,%rsp
0x00002aaaab11e01c: mov %rax,0x78(%rsp)
0x00002aaaab11e021: mov %rcx,0x70(%rsp)
0x00002aaaab11e026: mov %rdx,0x68(%rsp)
0x00002aaaab11e02b: mov %rbx,0x60(%rsp)
0x00002aaaab11e030: mov %rbp,0x50(%rsp)
0x00002aaaab11e035: mov %rsi,0x48(%rsp)
0x00002aaaab11e03a: mov %rdi,0x40(%rsp)
0x00002aaaab11e03f: mov %r8,0x38(%rsp)
0x00002aaaab11e044: mov %r9,0x30(%rsp)
0x00002aaaab11e049: mov %r10,0x28(%rsp)
0x00002aaaab11e04e: mov %r11,0x20(%rsp)
0x00002aaaab11e053: mov %r12,0x18(%rsp)
0x00002aaaab11e058: mov %r13,0x10(%rsp)
0x00002aaaab11e05d: mov %r14,0x8(%rsp)
0x00002aaaab11e062: mov %r15,(%rsp)
0x00002aaaab11e066: mov $0x2ae74d5c7980,%rdi ; {external_word}
0x00002aaaab11e070: mov $0x2aaaab11e010,%rsi ; {internal_word}
0x00002aaaab11e07a: mov %rsp,%rdx
0x00002aaaab11e07d: and $0xfffffffffffffff0,%rsp
0x00002aaaab11e081: mov $0x2ae74cb3f860,%r10 ; {runtime_call}
0x00002aaaab11e08b: rex.WB callq *%r10
0x00002aaaab11e08e: hlt
0x00002aaaab11e08f: pop %r10
0x00002aaaab11e091: test %rax,%rax
0x00002aaaab11e094: jne 0x00002aaaab11e119
0x00002aaaab11e09a: mov %rsp,-0x28(%rsp)
0x00002aaaab11e09f: sub $0x80,%rsp
0x00002aaaab11e0a6: mov %rax,0x78(%rsp)
0x00002aaaab11e0ab: mov %rcx,0x70(%rsp)
0x00002aaaab11e0b0: mov %rdx,0x68(%rsp)
0x00002aaaab11e0b5: mov %rbx,0x60(%rsp)
0x00002aaaab11e0ba: mov %rbp,0x50(%rsp)
0x00002aaaab11e0bf: mov %rsi,0x48(%rsp)
0x00002aaaab11e0c4: mov %rdi,0x40(%rsp)
0x00002aaaab11e0c9: mov %r8,0x38(%rsp)
0x00002aaaab11e0ce: mov %r9,0x30(%rsp)
0x00002aaaab11e0d3: mov %r10,0x28(%rsp)
0x00002aaaab11e0d8: mov %r11,0x20(%rsp)
0x00002aaaab11e0dd: mov %r12,0x18(%rsp)
0x00002aaaab11e0e2: mov %r13,0x10(%rsp)
0x00002aaaab11e0e7: mov %r14,0x8(%rsp)
0x00002aaaab11e0ec: mov %r15,(%rsp)
0x00002aaaab11e0f0: mov $0x2ae74d5c79c0,%rdi ; {external_word}
0x00002aaaab11e0fa: mov $0x2aaaab11e09a,%rsi ; {internal_word}
0x00002aaaab11e104: mov %rsp,%rdx
0x00002aaaab11e107: and $0xfffffffffffffff0,%rsp
0x00002aaaab11e10b: mov $0x2ae74cb3f860,%r10 ; {runtime_call}
0x00002aaaab11e115: rex.WB callq *%r10
0x00002aaaab11e118: hlt
0x00002aaaab11e119: mov %rax,%r11
0x00002aaaab11e11c: mov %r11d,0x10(%rbp)
0x00002aaaab11e120: shr $0x9,%r10
0x00002aaaab11e124: mov $0x2aaaadac4000,%r11
0x00002aaaab11e12e: mov %r12b,(%r11,%r10,1) ;*synchronization entry
; - java.lang.StringBuilder::<init>@-1 (line 68)
0x00002aaaab11e132: add $0x10,%rsp
0x00002aaaab11e136: pop %rbp
0x00002aaaab11e137: test %eax,-0x42613d(%rip) # 0x00002aaaaacf8000
; {poll_return}
0x00002aaaab11e13d: retq
;; B4: # B6 B5 <- B1 Freq: 0.000100017
0x00002aaaab11e13e: mov $0x10,%edx
0x00002aaaab11e143: mov $0xc4200608,%rsi ; {oop({type array char})}
0x00002aaaab11e14d: nop
0x00002aaaab11e14e: nop
0x00002aaaab11e14f: callq 0x00002aaaab118220 ; OopMap{rbp=Oop off=468}
;*newarray
; - java.lang.AbstractStringBuilder::<init>@6 (line 45)
; - java.lang.StringBuilder::<init>@3 (line 68)
; {runtime_call}
;; B5: # B3 <- B4 Freq: 0.000100015
0x00002aaaab11e154: jmpq 0x00002aaaab11dff8 ;*newarray
; - java.lang.AbstractStringBuilder::<init>@6 (line 45)
; - java.lang.StringBuilder::<init>@3 (line 68)
;; B6: # N80 <- B4 Freq: 1.00017e-09
0x00002aaaab11e159: mov %rax,%rsi
0x00002aaaab11e15c: add $0x10,%rsp
0x00002aaaab11e160: pop %rbp
0x00002aaaab11e161: jmpq 0x00002aaaab117a20 ; {runtime_call}
0x00002aaaab11e166: hlt
0x00002aaaab11e167: hlt
0x00002aaaab11e168: hlt
0x00002aaaab11e169: hlt
0x00002aaaab11e16a: hlt
0x00002aaaab11e16b: hlt
0x00002aaaab11e16c: hlt
0x00002aaaab11e16d: hlt
0x00002aaaab11e16e: hlt
0x00002aaaab11e16f: hlt
0x00002aaaab11e170: hlt
0x00002aaaab11e171: hlt
0x00002aaaab11e172: hlt
0x00002aaaab11e173: hlt
0x00002aaaab11e174: hlt
0x00002aaaab11e175: hlt
0x00002aaaab11e176: hlt
0x00002aaaab11e177: hlt
0x00002aaaab11e178: hlt
0x00002aaaab11e179: hlt
0x00002aaaab11e17a: hlt
0x00002aaaab11e17b: hlt
0x00002aaaab11e17c: hlt
0x00002aaaab11e17d: hlt
0x00002aaaab11e17e: hlt
0x00002aaaab11e17f: hlt
[Exception Handler]
[Stub Code]
0x00002aaaab11e180: jmpq 0x00002aaaab101c20 ; {no_reloc}
[Deopt Handler Code]
0x00002aaaab11e185: callq 0x00002aaaab11e18a
0x00002aaaab11e18a: subq $0x5,(%rsp)
0x00002aaaab11e18f: jmpq 0x00002aaaab0f3ae0 ; {runtime_call}
0x00002aaaab11e194: int3
0x00002aaaab11e195: int3
0x00002aaaab11e196: int3
0x00002aaaab11e197: int3
730 17 Test::alpha (23 bytes)
Decoding compiled method 0x00002aaaab121010:
Code:
[Entry Point]
[Verified Entry Point]
[Constants]
# {method} 'alpha' '(Ljava/lang/String;IC)Ljava/lang/String;' in 'Test'
# parm0: rsi:rsi = 'java/lang/String'
# parm1: rdx = int
# parm2: rcx = char
# [sp+0x40] (sp of caller)
;; N1: # B1 <- B25 B38 B34 Freq: 1
;; B1: # B35 B2 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab1211a0: mov %eax,-0x8000(%rsp)
0x00002aaaab1211a7: push %rbp
0x00002aaaab1211a8: sub $0x30,%rsp ;*synchronization entry
; - Test::alpha@-1 (line 5)
0x00002aaaab1211ac: mov %ecx,(%rsp)
0x00002aaaab1211af: mov %rsi,%rcx
0x00002aaaab1211b2: test %rsi,%rsi
0x00002aaaab1211b5: jne 0x00002aaaab1215ad
;; B2: # B3 <- B1 Freq: 0.999999
0x00002aaaab1211bb: mov $0xedc02c48,%r8 ; {oop("null")}
;; B3: # B26 B4 <- B35 B2 Freq: 1
0x00002aaaab1211c5: mov %edx,%r11d
0x00002aaaab1211c8: neg %r11d
0x00002aaaab1211cb: mov %r11d,0x1c(%rsp)
0x00002aaaab1211d0: cmp $0x80000000,%edx
0x00002aaaab1211d6: jne 0x00002aaaab121505
;; B4: # B8 <- B3 Freq: 0.5
0x00002aaaab1211dc: xor %ebx,%ebx
0x00002aaaab1211de: mov $0xb,%ebp
0x00002aaaab1211e3: jmp 0x00002aaaab121202
0x00002aaaab1211e5: nop
0x00002aaaab1211e6: nop
0x00002aaaab1211e7: nop
0x00002aaaab1211e8: nop
0x00002aaaab1211e9: nop
0x00002aaaab1211ea: nop
0x00002aaaab1211eb: nop
0x00002aaaab1211ec: nop
0x00002aaaab1211ed: nop
0x00002aaaab1211ee: nop
0x00002aaaab1211ef: nop
;; B5: # B6 <- B6 top-of-loop Freq: 500000
0x00002aaaab1211f0: inc %r11d
;; B6: # B5 B7 <- B28 B5 Loop: B6-B5 inner Freq: 500000
0x00002aaaab1211f3: mov 0x10(%rdi,%r11,4),%r9d
0x00002aaaab1211f8: cmp %r9d,%r10d
0x00002aaaab1211fb: jg 0x00002aaaab1211f0
;; B7: # B8 <- B6 Freq: 0.5
0x00002aaaab1211fd: add %r11d,%ebp
0x00002aaaab121200: inc %ebp
;; B8: # B34 B9 <- B4 B7 Freq: 1
0x00002aaaab121202: mov %ebp,%r9d
0x00002aaaab121205: add 0x14(%r8),%r9d
0x00002aaaab121209: test %r9d,%r9d
0x00002aaaab12120c: jl 0x00002aaaab12158f
;; B9: # B34 B10 <- B8 Freq: 0.999999
0x00002aaaab121212: mov %r9d,%r10d
0x00002aaaab121215: inc %r10d
0x00002aaaab121218: test %r10d,%r10d
0x00002aaaab12121b: jl 0x00002aaaab12158f
;; B10: # B32 B11 <- B9 Freq: 0.999998
0x00002aaaab121221: cmp $0x80000,%r10d
0x00002aaaab121228: ja 0x00002aaaab12154e
;; B11: # B32 B12 <- B10 Freq: 0.999997
0x00002aaaab12122e: mov 0x70(%r15),%r14
0x00002aaaab121232: movslq %r9d,%r11
0x00002aaaab121235: shl %r11
0x00002aaaab121238: add $0x19,%r11
0x00002aaaab12123c: and $0xfffffffffffffff8,%r11
0x00002aaaab121240: mov %r14,%r9
0x00002aaaab121243: add %r11,%r9
0x00002aaaab121246: cmp 0x80(%r15),%r9
0x00002aaaab12124d: jae 0x00002aaaab12154e
;; B12: # B13 <- B11 Freq: 0.999897
0x00002aaaab121253: mov %r9,0x70(%r15)
0x00002aaaab121257: prefetchnta 0x100(%r9)
0x00002aaaab12125f: movq $0x1,(%r14)
0x00002aaaab121266: prefetchnta 0x140(%r9)
0x00002aaaab12126e: movl $0xc4200608,0x8(%r14) ; {oop({type array char})}
0x00002aaaab121276: mov %r10d,0xc(%r14)
0x00002aaaab12127a: prefetchnta 0x180(%r9)
0x00002aaaab121282: mov %rcx,0x8(%rsp)
0x00002aaaab121287: mov %edx,0x4(%rsp)
0x00002aaaab12128b: mov %r10d,0x10(%rsp)
;; B13: # B16 B14 <- B33 B12 Freq: 0.999998
0x00002aaaab121290: mov 0x14(%r8),%r13d
0x00002aaaab121294: mov %r14,%rsi
0x00002aaaab121297: add $0x10,%rsi
0x00002aaaab12129b: add %r13d,%ebp
0x00002aaaab12129e: mov 0xc(%r8),%r11d
0x00002aaaab1212a2: mov 0x10(%r8),%r10d
0x00002aaaab1212a6: movslq %r13d,%rdx
0x00002aaaab1212a9: mov %r11,%r8
0x00002aaaab1212ac: lea 0x10(%r11,%r10,2),%rdi
0x00002aaaab1212b1: mov $0x2aaaab0fccc0,%r10
0x00002aaaab1212bb: callq *%r10
0x00002aaaab1212be: mov 0x4(%rsp),%r10d
0x00002aaaab1212c3: cmp $0x80000000,%r10d
0x00002aaaab1212ca: je 0x00002aaaab1212e9
;; B14: # B17 B15 <- B13 Freq: 0.499999
0x00002aaaab1212cc: mov 0x4(%rsp),%edi
0x00002aaaab1212d0: test %r10d,%r10d
0x00002aaaab1212d3: jl 0x00002aaaab121314
;; B15: # B18 <- B14 Freq: 0.249999
0x00002aaaab1212d5: mov %rax,-0x8(%rsp)
0x00002aaaab1212da: mov 0x4(%rsp),%eax
0x00002aaaab1212de: mov %eax,0x1c(%rsp)
0x00002aaaab1212e2: mov -0x8(%rsp),%rax
0x00002aaaab1212e7: jmp 0x00002aaaab121319
;; B16: # B23 <- B13 Freq: 0.499999
0x00002aaaab1212e9: lea 0x10(%r14,%r13,2),%rsi
0x00002aaaab1212ee: mov $0xb,%edx
0x00002aaaab1212f3: mov $0xedc02ca0,%rdi ; {oop([C)}
0x00002aaaab1212fd: add $0x10,%rdi
0x00002aaaab121301: mov $0x2aaaab0fccc0,%r10
0x00002aaaab12130b: callq *%r10
0x00002aaaab12130e: mov 0x4(%rsp),%edi
0x00002aaaab121312: jmp 0x00002aaaab12137a
;; B17: # B18 <- B14 Freq: 0.249999
0x00002aaaab121314: mov $0x2d,%ebx
;; B18: # B19 <- B17 B15 Freq: 0.499999
0x00002aaaab121319: mov %ebp,%r10d
;; B19: # B21 B20 <- B18 B20 Loop: B19-B20 inner Freq: 0.999998
0x00002aaaab12131c: mov 0x1c(%rsp),%r8d
0x00002aaaab121321: sar $0x1f,%r8d
0x00002aaaab121325: movslq 0x1c(%rsp),%r11
0x00002aaaab12132a: imul $0x66666667,%r11,%r11
0x00002aaaab121331: sar $0x22,%r11
0x00002aaaab121335: mov %r11d,%r11d
0x00002aaaab121338: mov %r11d,%ecx
0x00002aaaab12133b: sub %r8d,%ecx
0x00002aaaab12133e: mov %ecx,%r9d
0x00002aaaab121341: shl $0x3,%r9d
0x00002aaaab121345: mov %ecx,%esi
0x00002aaaab121347: shl %esi
0x00002aaaab121349: add %r9d,%esi
0x00002aaaab12134c: mov 0x1c(%rsp),%r9d
0x00002aaaab121351: sub %esi,%r9d
0x00002aaaab121354: add $0x30,%r9d
0x00002aaaab121358: mov %r9w,0xe(%r14,%r10,2)
0x00002aaaab12135e: cmp %r8d,%r11d
0x00002aaaab121361: je 0x00002aaaab12136c
;; B20: # B19 <- B19 Freq: 0.499999
0x00002aaaab121363: dec %r10d
0x00002aaaab121366: mov %ecx,0x1c(%rsp)
0x00002aaaab12136a: jmp 0x00002aaaab12131c
;; B21: # B23 B22 <- B19 Freq: 0.499999
0x00002aaaab12136c: test %ebx,%ebx
0x00002aaaab12136e: je 0x00002aaaab12137a
;; B22: # B23 <- B21 Freq: 0.249999
0x00002aaaab121370: add $0xfffffffffffffffe,%r10d
0x00002aaaab121374: mov %bx,0x10(%r14,%r10,2)
;; B23: # B30 B24 <- B22 B21 B16 Freq: 0.999998
0x00002aaaab12137a: mov (%rsp),%r8d
0x00002aaaab12137e: mov %r8w,0x10(%r14,%rbp,2)
0x00002aaaab121384: mov 0x70(%r15),%rax
0x00002aaaab121388: mov %rax,%r10
0x00002aaaab12138b: add $0x20,%r10
0x00002aaaab12138f: cmp 0x80(%r15),%r10
0x00002aaaab121396: jae 0x00002aaaab12152c
;; B24: # B25 <- B23 Freq: 0.999898
0x00002aaaab12139c: mov %r10,0x70(%r15)
0x00002aaaab1213a0: prefetchnta 0x100(%r10)
0x00002aaaab1213a8: mov $0xc420ae88,%r11d ; {oop('java/lang/String')}
0x00002aaaab1213ae: mov 0xb0(%r11),%r10
0x00002aaaab1213b5: mov %r10,(%rax)
0x00002aaaab1213b8: movl $0xc420ae88,0x8(%rax) ; {oop('java/lang/String')}
0x00002aaaab1213bf: mov %r12d,0xc(%rax)
0x00002aaaab1213c3: mov %r12,0x10(%rax)
0x00002aaaab1213c7: mov %r12,0x18(%rax)
;; B25: # N1 <- B31 B24 Freq: 0.999998
0x00002aaaab1213cb: mov 0x10(%rsp),%r10d
0x00002aaaab1213d0: mov %r10d,0x14(%rax)
0x00002aaaab1213d4: push %r10
0x00002aaaab1213d6: mov $0x2ae74dadc700,%r10 ; {external_word}
0x00002aaaab1213e0: cmp (%r10),%r12
0x00002aaaab1213e3: je 0x00002aaaab121468
0x00002aaaab1213e9: mov %rsp,-0x28(%rsp)
0x00002aaaab1213ee: sub $0x80,%rsp
0x00002aaaab1213f5: mov %rax,0x78(%rsp)
0x00002aaaab1213fa: mov %rcx,0x70(%rsp)
0x00002aaaab1213ff: mov %rdx,0x68(%rsp)
0x00002aaaab121404: mov %rbx,0x60(%rsp)
0x00002aaaab121409: mov %rbp,0x50(%rsp)
0x00002aaaab12140e: mov %rsi,0x48(%rsp)
0x00002aaaab121413: mov %rdi,0x40(%rsp)
0x00002aaaab121418: mov %r8,0x38(%rsp)
0x00002aaaab12141d: mov %r9,0x30(%rsp)
0x00002aaaab121422: mov %r10,0x28(%rsp)
0x00002aaaab121427: mov %r11,0x20(%rsp)
0x00002aaaab12142c: mov %r12,0x18(%rsp)
0x00002aaaab121431: mov %r13,0x10(%rsp)
0x00002aaaab121436: mov %r14,0x8(%rsp)
0x00002aaaab12143b: mov %r15,(%rsp)
0x00002aaaab12143f: mov $0x2ae74d5c7980,%rdi ; {external_word}
0x00002aaaab121449: mov $0x2aaaab1213e9,%rsi ; {internal_word}
0x00002aaaab121453: mov %rsp,%rdx
0x00002aaaab121456: and $0xfffffffffffffff0,%rsp
0x00002aaaab12145a: mov $0x2ae74cb3f860,%r10 ; {runtime_call}
0x00002aaaab121464: rex.WB callq *%r10
0x00002aaaab121467: hlt
0x00002aaaab121468: pop %r10
0x00002aaaab12146a: test %r14,%r14
0x00002aaaab12146d: jne 0x00002aaaab1214f2
0x00002aaaab121473: mov %rsp,-0x28(%rsp)
0x00002aaaab121478: sub $0x80,%rsp
0x00002aaaab12147f: mov %rax,0x78(%rsp)
0x00002aaaab121484: mov %rcx,0x70(%rsp)
0x00002aaaab121489: mov %rdx,0x68(%rsp)
0x00002aaaab12148e: mov %rbx,0x60(%rsp)
0x00002aaaab121493: mov %rbp,0x50(%rsp)
0x00002aaaab121498: mov %rsi,0x48(%rsp)
0x00002aaaab12149d: mov %rdi,0x40(%rsp)
0x00002aaaab1214a2: mov %r8,0x38(%rsp)
0x00002aaaab1214a7: mov %r9,0x30(%rsp)
0x00002aaaab1214ac: mov %r10,0x28(%rsp)
0x00002aaaab1214b1: mov %r11,0x20(%rsp)
0x00002aaaab1214b6: mov %r12,0x18(%rsp)
0x00002aaaab1214bb: mov %r13,0x10(%rsp)
0x00002aaaab1214c0: mov %r14,0x8(%rsp)
0x00002aaaab1214c5: mov %r15,(%rsp)
0x00002aaaab1214c9: mov $0x2ae74d5c79c0,%rdi ; {external_word}
0x00002aaaab1214d3: mov $0x2aaaab121473,%rsi ; {internal_word}
0x00002aaaab1214dd: mov %rsp,%rdx
0x00002aaaab1214e0: and $0xfffffffffffffff0,%rsp
0x00002aaaab1214e4: mov $0x2ae74cb3f860,%r10 ; {runtime_call}
0x00002aaaab1214ee: rex.WB callq *%r10
0x00002aaaab1214f1: hlt
0x00002aaaab1214f2: mov %r14,%r10
0x00002aaaab1214f5: mov %r10d,0xc(%rax)
0x00002aaaab1214f9: add $0x30,%rsp
0x00002aaaab1214fd: pop %rbp
0x00002aaaab1214fe: test %eax,-0x429504(%rip) # 0x00002aaaaacf8000
; {poll_return}
0x00002aaaab121504: retq
;; B26: # B29 B27 <- B3 Freq: 0.5
0x00002aaaab121505: test %edx,%edx
0x00002aaaab121507: jge 0x00002aaaab121525
;; B27: # B28 <- B26 Freq: 0.25
0x00002aaaab121509: mov %r11d,%r10d
0x00002aaaab12150c: mov $0x1,%ebp
;; B28: # B6 <- B27 B29 Freq: 0.5
0x00002aaaab121511: mov $0xedc04878,%rdi ; {oop([I)}
0x00002aaaab12151b: xor %r11d,%r11d
0x00002aaaab12151e: xor %ebx,%ebx
0x00002aaaab121520: jmpq 0x00002aaaab1211f3
;; B29: # B28 <- B26 Freq: 0.25
0x00002aaaab121525: mov %edx,%r10d
0x00002aaaab121528: xor %ebp,%ebp
0x00002aaaab12152a: jmp 0x00002aaaab121511
;; B30: # B37 B31 <- B23 Freq: 0.000100016
0x00002aaaab12152c: mov %r14,0x18(%rsp)
0x00002aaaab121531: mov %edi,%ebp
0x00002aaaab121533: mov $0xc420ae88,%rsi ; {oop('java/lang/String')}
0x00002aaaab12153d: nop
0x00002aaaab12153e: nop
0x00002aaaab12153f: callq 0x00002aaaab1182e0 ; OopMap{[8]=Oop [24]=Oop off=932}
;*new ; - Test::alpha@0 (line 5)
; {runtime_call}
;; B31: # B25 <- B30 Freq: 0.000100014
0x00002aaaab121544: mov 0x18(%rsp),%r14
0x00002aaaab121549: jmpq 0x00002aaaab1213cb
;; B32: # B36 B33 <- B10 B11 Freq: 0.00010103
0x00002aaaab12154e: mov %ebp,0x18(%rsp)
0x00002aaaab121552: mov %ebx,0x14(%rsp)
0x00002aaaab121556: mov %r8,%rbp
0x00002aaaab121559: mov %r10d,0x10(%rsp)
0x00002aaaab12155e: mov %edx,0x4(%rsp)
0x00002aaaab121562: mov %rcx,0x8(%rsp)
0x00002aaaab121567: mov $0xc4200608,%rsi ; {oop({type array char})}
0x00002aaaab121571: mov %r10d,%edx
0x00002aaaab121574: nop
0x00002aaaab121575: nop
0x00002aaaab121576: nop
0x00002aaaab121577: callq 0x00002aaaab118220 ; OopMap{rbp=Oop [8]=Oop off=988}
;*new ; - Test::alpha@0 (line 5)
; {runtime_call}
;; B33: # B13 <- B32 Freq: 0.000101028
0x00002aaaab12157c: mov %rax,%r14
0x00002aaaab12157f: mov %rbp,%r8
0x00002aaaab121582: mov 0x14(%rsp),%ebx
0x00002aaaab121586: mov 0x18(%rsp),%ebp
0x00002aaaab12158a: jmpq 0x00002aaaab121290
;; B34: # N1 <- B8 B9 Freq: 2e-06
0x00002aaaab12158f: mov $0xffffffcc,%esi
0x00002aaaab121594: mov %rcx,%rbp
0x00002aaaab121597: mov %edx,0x4(%rsp)
0x00002aaaab12159b: callq 0x00002aaaab0f3fa0 ; OopMap{rbp=Oop off=1024}
;*new ; - Test::alpha@0 (line 5)
; {runtime_call}
0x00002aaaab1215a0: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab1215aa: rex.WB callq *%r10
;; B35: # B3 <- B1 Freq: 1e-06
0x00002aaaab1215ad: mov %rsi,%r8
0x00002aaaab1215b0: jmpq 0x00002aaaab1211c5
;; B36: # B38 <- B32 Freq: 1.0103e-09
0x00002aaaab1215b5: mov %rax,%rsi
0x00002aaaab1215b8: jmp 0x00002aaaab1215bd
;; B37: # B38 <- B30 Freq: 1.00016e-09
0x00002aaaab1215ba: mov %rax,%rsi ;*invokespecial <init>
; - Test::alpha@4 (line 5)
;; B38: # N1 <- B36 B37 Freq: 2.01046e-09
0x00002aaaab1215bd: add $0x30,%rsp
0x00002aaaab1215c1: pop %rbp
0x00002aaaab1215c2: jmpq 0x00002aaaab117a20 ; {runtime_call}
0x00002aaaab1215c7: hlt
0x00002aaaab1215c8: hlt
0x00002aaaab1215c9: hlt
0x00002aaaab1215ca: hlt
0x00002aaaab1215cb: hlt
0x00002aaaab1215cc: hlt
0x00002aaaab1215cd: hlt
0x00002aaaab1215ce: hlt
0x00002aaaab1215cf: hlt
0x00002aaaab1215d0: hlt
0x00002aaaab1215d1: hlt
0x00002aaaab1215d2: hlt
0x00002aaaab1215d3: hlt
0x00002aaaab1215d4: hlt
0x00002aaaab1215d5: hlt
0x00002aaaab1215d6: hlt
0x00002aaaab1215d7: hlt
0x00002aaaab1215d8: hlt
0x00002aaaab1215d9: hlt
0x00002aaaab1215da: hlt
0x00002aaaab1215db: hlt
0x00002aaaab1215dc: hlt
0x00002aaaab1215dd: hlt
0x00002aaaab1215de: hlt
0x00002aaaab1215df: hlt
[Exception Handler]
[Stub Code]
0x00002aaaab1215e0: jmpq 0x00002aaaab101c20 ; {no_reloc}
[Deopt Handler Code]
0x00002aaaab1215e5: callq 0x00002aaaab1215ea
0x00002aaaab1215ea: subq $0x5,(%rsp)
0x00002aaaab1215ef: jmpq 0x00002aaaab0f3ae0 ; {runtime_call}
0x00002aaaab1215f4: int3
0x00002aaaab1215f5: int3
0x00002aaaab1215f6: int3
0x00002aaaab1215f7: int3
770 18 java.lang.StringBuilder::append (8 bytes)
770 19 java.lang.AbstractStringBuilder::append (71 bytes)
Decoding compiled method 0x00002aaaab120790:
Code:
[Entry Point]
[Constants]
# {method} 'append' '(I)Ljava/lang/StringBuilder;' in 'java/lang/StringBuilder'
# this: rsi:rsi = 'java/lang/StringBuilder'
# parm0: rdx = int
# [sp+0x40] (sp of caller)
;; N313: # B1 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab120920: mov 0x8(%rsi),%r10d
0x00002aaaab120924: cmp %r10,%rax
0x00002aaaab120927: jne 0x00002aaaab0f2920 ; {runtime_call}
0x00002aaaab12092d: nop
0x00002aaaab12092e: nop
0x00002aaaab12092f: nop
[Verified Entry Point]
;; B1: # B28 B2 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab120930: mov %eax,-0x8000(%rsp)
0x00002aaaab120937: push %rbp
0x00002aaaab120938: sub $0x30,%rsp ;*synchronization entry
; - java.lang.StringBuilder::append@-1 (line 212)
0x00002aaaab12093c: mov %rsi,(%rsp)
0x00002aaaab120940: mov %edx,0x10(%rsp)
0x00002aaaab120944: cmp $0x80000000,%edx
0x00002aaaab12094a: je 0x00002aaaab120aec ;*if_icmpne
; - java.lang.AbstractStringBuilder::append@3 (line 589)
; - java.lang.StringBuilder::append@2 (line 212)
;; B2: # B30 B3 <- B1 Freq: 1
0x00002aaaab120950: test %edx,%edx
0x00002aaaab120952: jl 0x00002aaaab120b02 ;*ifge
; - java.lang.AbstractStringBuilder::append@16 (line 593)
; - java.lang.StringBuilder::append@2 (line 212)
;; B3: # B22 B4 <- B2 Freq: 0.999999
0x00002aaaab120958: mov $0xee9b1d90,%r10 ; {oop(a 'java/lang/Class' = 'java/lang/AbstractStringBuilder')}
0x00002aaaab120962: mov 0x70(%r10),%ebp ;*getstatic sizeTable
; - java.lang.AbstractStringBuilder::stringSizeOfInt@3 (line 609)
; - java.lang.AbstractStringBuilder::append@30 (line 593)
; - java.lang.StringBuilder::append@2 (line 212)
0x00002aaaab120966: mov 0x10(%rbp),%r10d
0x00002aaaab12096a: cmp %r10d,%edx
0x00002aaaab12096d: jle 0x00002aaaab120a0b
;; B4: # B21 B5 <- B3 Freq: 0.499954
0x00002aaaab120973: mov 0x14(%rbp),%r10d
0x00002aaaab120977: cmp %r10d,%edx
0x00002aaaab12097a: jle 0x00002aaaab120a04
;; B5: # B20 B6 <- B4 Freq: 0.249955
0x00002aaaab120980: mov 0x18(%rbp),%r10d
0x00002aaaab120984: cmp %r10d,%edx
0x00002aaaab120987: jle 0x00002aaaab1209fd
;; B6: # B19 B7 <- B5 Freq: 0.124966
0x00002aaaab120989: mov 0x1c(%rbp),%r10d
0x00002aaaab12098d: cmp %r10d,%edx
0x00002aaaab120990: jle 0x00002aaaab1209f6
;; B7: # B18 B8 <- B6 Freq: 0.0624774
0x00002aaaab120992: mov 0x20(%rbp),%r10d
0x00002aaaab120996: cmp %r10d,%edx
0x00002aaaab120999: jle 0x00002aaaab1209ef ;*if_icmpgt
; - java.lang.AbstractStringBuilder::stringSizeOfInt@8 (line 609)
; - java.lang.AbstractStringBuilder::append@30 (line 593)
; - java.lang.StringBuilder::append@2 (line 212)
;; B8: # B17 B9 <- B7 Freq: 0.0312359
0x00002aaaab12099b: mov 0x24(%rbp),%r10d ;*iaload
; - java.lang.AbstractStringBuilder::stringSizeOfInt@7 (line 609)
; - java.lang.AbstractStringBuilder::append@30 (line 593)
; - java.lang.StringBuilder::append@2 (line 212)
0x00002aaaab12099f: cmp %r10d,%edx
0x00002aaaab1209a2: jle 0x00002aaaab1209e8 ;*if_icmpgt
; - java.lang.AbstractStringBuilder::stringSizeOfInt@8 (line 609)
; - java.lang.AbstractStringBuilder::append@30 (line 593)
; - java.lang.StringBuilder::append@2 (line 212)
;; B9: # B16 B10 <- B8 Freq: 0.0156165
0x00002aaaab1209a4: mov 0x28(%rbp),%r10d ;*iaload
; - java.lang.AbstractStringBuilder::stringSizeOfInt@7 (line 609)
; - java.lang.AbstractStringBuilder::append@30 (line 593)
; - java.lang.StringBuilder::append@2 (line 212)
0x00002aaaab1209a8: cmp %r10d,%edx
0x00002aaaab1209ab: jle 0x00002aaaab1209e1 ;*if_icmpgt
; - java.lang.AbstractStringBuilder::stringSizeOfInt@8 (line 609)
; - java.lang.AbstractStringBuilder::append@30 (line 593)
; - java.lang.StringBuilder::append@2 (line 212)
;; B10: # B15 B11 <- B9 Freq: 0.00780756
0x00002aaaab1209ad: mov 0x2c(%rbp),%r10d ;*iaload
; - java.lang.AbstractStringBuilder::stringSizeOfInt@7 (line 609)
; - java.lang.AbstractStringBuilder::append@30 (line 593)
; - java.lang.StringBuilder::append@2 (line 212)
0x00002aaaab1209b1: cmp %r10d,%edx
0x00002aaaab1209b4: jle 0x00002aaaab1209da ;*if_icmpgt
; - java.lang.AbstractStringBuilder::stringSizeOfInt@8 (line 609)
; - java.lang.AbstractStringBuilder::append@30 (line 593)
; - java.lang.StringBuilder::append@2 (line 212)
;; B11: # B14 B12 <- B10 Freq: 0.00390343
0x00002aaaab1209b6: mov 0x30(%rbp),%r10d ;*iaload
; - java.lang.AbstractStringBuilder::stringSizeOfInt@7 (line 609)
; - java.lang.AbstractStringBuilder::append@30 (line 593)
; - java.lang.StringBuilder::append@2 (line 212)
0x00002aaaab1209ba: cmp %r10d,%edx
0x00002aaaab1209bd: jle 0x00002aaaab1209d3 ;*if_icmpgt
; - java.lang.AbstractStringBuilder::stringSizeOfInt@8 (line 609)
; - java.lang.AbstractStringBuilder::append@30 (line 593)
; - java.lang.StringBuilder::append@2 (line 212)
;; B12: # B34 B13 <- B11 Freq: 0.00195154
0x00002aaaab1209bf: mov 0x34(%rbp),%r10d ;*iaload
; - java.lang.AbstractStringBuilder::stringSizeOfInt@7 (line 609)
; - java.lang.AbstractStringBuilder::append@30 (line 593)
; - java.lang.StringBuilder::append@2 (line 212)
0x00002aaaab1209c3: cmp %r10d,%edx
0x00002aaaab1209c6: jg 0x00002aaaab120b2d ;*if_icmpgt
; - java.lang.AbstractStringBuilder::stringSizeOfInt@8 (line 609)
; - java.lang.AbstractStringBuilder::append@30 (line 593)
; - java.lang.StringBuilder::append@2 (line 212)
;; B13: # B23 <- B12 Freq: 0.00195154
0x00002aaaab1209cc: mov $0xa,%eax
0x00002aaaab1209d1: jmp 0x00002aaaab120a10
;; B14: # B23 <- B11 Freq: 0.00195189
0x00002aaaab1209d3: mov $0x9,%eax
0x00002aaaab1209d8: jmp 0x00002aaaab120a10
;; B15: # B23 <- B10 Freq: 0.00390413
0x00002aaaab1209da: mov $0x8,%eax
0x00002aaaab1209df: jmp 0x00002aaaab120a10
;; B16: # B23 <- B9 Freq: 0.00780897
0x00002aaaab1209e1: mov $0x7,%eax
0x00002aaaab1209e6: jmp 0x00002aaaab120a10
;; B17: # B23 <- B8 Freq: 0.0156193
0x00002aaaab1209e8: mov $0x6,%eax
0x00002aaaab1209ed: jmp 0x00002aaaab120a10
;; B18: # B23 <- B7 Freq: 0.0312415
0x00002aaaab1209ef: mov $0x5,%eax
0x00002aaaab1209f4: jmp 0x00002aaaab120a10
;; B19: # B23 <- B6 Freq: 0.0624887
0x00002aaaab1209f6: mov $0x4,%eax
0x00002aaaab1209fb: jmp 0x00002aaaab120a10
;; B20: # B23 <- B5 Freq: 0.124989
0x00002aaaab1209fd: mov $0x3,%eax
0x00002aaaab120a02: jmp 0x00002aaaab120a10
;; B21: # B23 <- B4 Freq: 0.25
0x00002aaaab120a04: mov $0x2,%eax
0x00002aaaab120a09: jmp 0x00002aaaab120a10
;; B22: # B23 <- B3 Freq: 0.500045
0x00002aaaab120a0b: mov $0x1,%eax ;*istore_2
; - java.lang.AbstractStringBuilder::append@33 (line 593)
; - java.lang.StringBuilder::append@2 (line 212)
;; B23: # B35 B24 <- B21 B20 B16 B18 B14 B19 B15 B17 B13 B22 B31 Freq: 1
0x00002aaaab120a10: mov (%rsp),%rbp
0x00002aaaab120a14: mov 0x10(%rbp),%r11d ;*getfield value
; - java.lang.AbstractStringBuilder::append@43 (line 596)
; - java.lang.StringBuilder::append@2 (line 212)
0x00002aaaab120a18: mov 0xc(%r11),%r10d ; implicit exception: dispatches to 0x00002aaaab120b45
;; B24: # B32 B25 <- B23 Freq: 0.999999
0x00002aaaab120a1c: add 0xc(%rbp),%eax ;*iadd
; - java.lang.AbstractStringBuilder::append@39 (line 595)
; - java.lang.StringBuilder::append@2 (line 212)
0x00002aaaab120a1f: mov %eax,0xc(%rsp)
0x00002aaaab120a23: cmp %r10d,%eax
0x00002aaaab120a26: jg 0x00002aaaab120b17
;; B25: # B39 B26 <- B33 B24 Freq: 0.999999
0x00002aaaab120a2c: mov %r11,%rcx
0x00002aaaab120a2f: push %r10
0x00002aaaab120a31: mov $0x2ae74dadc700,%r10 ; {external_word}
0x00002aaaab120a3b: cmp (%r10),%r12
0x00002aaaab120a3e: je 0x00002aaaab120ac3
0x00002aaaab120a44: mov %rsp,-0x28(%rsp)
0x00002aaaab120a49: sub $0x80,%rsp
0x00002aaaab120a50: mov %rax,0x78(%rsp)
0x00002aaaab120a55: mov %rcx,0x70(%rsp)
0x00002aaaab120a5a: mov %rdx,0x68(%rsp)
0x00002aaaab120a5f: mov %rbx,0x60(%rsp)
0x00002aaaab120a64: mov %rbp,0x50(%rsp)
0x00002aaaab120a69: mov %rsi,0x48(%rsp)
0x00002aaaab120a6e: mov %rdi,0x40(%rsp)
0x00002aaaab120a73: mov %r8,0x38(%rsp)
0x00002aaaab120a78: mov %r9,0x30(%rsp)
0x00002aaaab120a7d: mov %r10,0x28(%rsp)
0x00002aaaab120a82: mov %r11,0x20(%rsp)
0x00002aaaab120a87: mov %r12,0x18(%rsp)
0x00002aaaab120a8c: mov %r13,0x10(%rsp)
0x00002aaaab120a91: mov %r14,0x8(%rsp)
0x00002aaaab120a96: mov %r15,(%rsp)
0x00002aaaab120a9a: mov $0x2ae74d5c8228,%rdi ; {external_word}
0x00002aaaab120aa4: mov $0x2aaaab120a44,%rsi ; {internal_word}
0x00002aaaab120aae: mov %rsp,%rdx
0x00002aaaab120ab1: and $0xfffffffffffffff0,%rsp
0x00002aaaab120ab5: mov $0x2ae74cb3f860,%r10 ; {runtime_call}
0x00002aaaab120abf: rex.WB callq *%r10
0x00002aaaab120ac2: hlt
0x00002aaaab120ac3: pop %r10 ;*getfield value
; - java.lang.AbstractStringBuilder::append@58 (line 598)
; - java.lang.StringBuilder::append@2 (line 212)
0x00002aaaab120ac5: mov 0x10(%rsp),%esi
0x00002aaaab120ac9: mov 0xc(%rsp),%edx
0x00002aaaab120acd: nop
0x00002aaaab120ace: nop
0x00002aaaab120acf: callq 0x00002aaaab0f2f20 ; OopMap{rbp=Oop off=436}
;*invokestatic getChars
; - java.lang.AbstractStringBuilder::append@61 (line 598)
; - java.lang.StringBuilder::append@2 (line 212)
; {static_call}
;; B26: # B27 <- B25 Freq: 0.999978
0x00002aaaab120ad4: mov 0xc(%rsp),%r10d
0x00002aaaab120ad9: mov %r10d,0xc(%rbp) ;*synchronization entry
; - java.lang.StringBuilder::append@-1 (line 212)
;; B27: # N313 <- B29 B26 Freq: 0.999979
0x00002aaaab120add: mov %rbp,%rax
0x00002aaaab120ae0: add $0x30,%rsp
0x00002aaaab120ae4: pop %rbp
0x00002aaaab120ae5: test %eax,-0x428aeb(%rip) # 0x00002aaaaacf8000
; {poll_return}
0x00002aaaab120aeb: retq
;; B28: # B38 B29 <- B1 Freq: 4.76837e-07
0x00002aaaab120aec: mov $0xee9b1918,%rdx ; {oop("-2147483648")}
0x00002aaaab120af6: nop
0x00002aaaab120af7: callq 0x00002aaaab0f2b20 ; OopMap{[0]=Oop off=476}
;*invokevirtual append
; - java.lang.StringBuilder::append@2 (line 55)
; - java.lang.AbstractStringBuilder::append@9 (line 590)
; - java.lang.StringBuilder::append@2 (line 212)
; {optimized virtual_call}
;; B29: # B27 <- B28 Freq: 4.76828e-07
0x00002aaaab120afc: mov (%rsp),%rbp
0x00002aaaab120b00: jmp 0x00002aaaab120add
;; B30: # B37 B31 <- B2 Freq: 4.76837e-07
0x00002aaaab120b02: mov %edx,%esi
0x00002aaaab120b04: neg %esi ;*ineg
; - java.lang.AbstractStringBuilder::append@20 (line 593)
; - java.lang.StringBuilder::append@2 (line 212)
0x00002aaaab120b06: mov %edx,%ebp
0x00002aaaab120b08: nop
0x00002aaaab120b09: nop
0x00002aaaab120b0a: nop
0x00002aaaab120b0b: callq 0x00002aaaab0f2f20 ; OopMap{[0]=Oop off=496}
;*invokestatic stringSizeOfInt
; - java.lang.AbstractStringBuilder::append@21 (line 593)
; - java.lang.StringBuilder::append@2 (line 212)
; {static_call}
;; B31: # B23 <- B30 Freq: 4.76827e-07
0x00002aaaab120b10: inc %eax ;*iadd
; - java.lang.AbstractStringBuilder::append@25 (line 593)
; - java.lang.StringBuilder::append@2 (line 212)
0x00002aaaab120b12: jmpq 0x00002aaaab120a10
;; B32: # B36 B33 <- B24 Freq: 4.76836e-07
0x00002aaaab120b17: mov %rbp,%rsi
0x00002aaaab120b1a: mov %eax,%edx
0x00002aaaab120b1c: nop
0x00002aaaab120b1d: nop
0x00002aaaab120b1e: nop
0x00002aaaab120b1f: callq 0x00002aaaab0f2b20 ; OopMap{rbp=Oop off=516}
;*invokevirtual expandCapacity
; - java.lang.AbstractStringBuilder::append@52 (line 597)
; - java.lang.StringBuilder::append@2 (line 212)
; {optimized virtual_call}
;; B33: # B25 <- B32 Freq: 4.76827e-07
0x00002aaaab120b24: mov 0x10(%rbp),%r11d ;*getfield value
; - java.lang.AbstractStringBuilder::append@58 (line 598)
; - java.lang.StringBuilder::append@2 (line 212)
0x00002aaaab120b28: jmpq 0x00002aaaab120a2c
;; B34: # N313 <- B12 Freq: 1.97745e-09
0x00002aaaab120b2d: mov $0xffffffe4,%esi
0x00002aaaab120b32: nop
0x00002aaaab120b33: callq 0x00002aaaab0f3fa0 ; OopMap{rbp=NarrowOop [0]=Oop off=536}
;*iaload
; - java.lang.AbstractStringBuilder::stringSizeOfInt@7 (line 609)
; - java.lang.AbstractStringBuilder::append@30 (line 593)
; - java.lang.StringBuilder::append@2 (line 212)
; {runtime_call}
0x00002aaaab120b38: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab120b42: rex.WB callq *%r10 ;*iaload
; - java.lang.AbstractStringBuilder::stringSizeOfInt@7 (line 609)
; - java.lang.AbstractStringBuilder::append@30 (line 593)
; - java.lang.StringBuilder::append@2 (line 212)
;; B35: # N313 <- B23 Freq: 1.01328e-06
0x00002aaaab120b45: mov $0xfffffff6,%esi
0x00002aaaab120b4a: nop
0x00002aaaab120b4b: callq 0x00002aaaab0f3fa0 ; OopMap{off=560}
;*arraylength
; - java.lang.AbstractStringBuilder::append@46 (line 596)
; - java.lang.StringBuilder::append@2 (line 212)
; {runtime_call}
0x00002aaaab120b50: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab120b5a: rex.WB callq *%r10 ;*invokevirtual expandCapacity
; - java.lang.AbstractStringBuilder::append@52 (line 597)
; - java.lang.StringBuilder::append@2 (line 212)
;; B36: # B40 <- B32 Freq: 4.76836e-12
0x00002aaaab120b5d: mov %rax,%rsi
0x00002aaaab120b60: jmp 0x00002aaaab120b6f ;*invokestatic stringSizeOfInt
; - java.lang.AbstractStringBuilder::append@21 (line 593)
; - java.lang.StringBuilder::append@2 (line 212)
;; B37: # B40 <- B30 Freq: 4.76837e-12
0x00002aaaab120b62: mov %rax,%rsi
0x00002aaaab120b65: jmp 0x00002aaaab120b6f ;*invokevirtual append
; - java.lang.StringBuilder::append@2 (line 55)
; - java.lang.AbstractStringBuilder::append@9 (line 590)
; - java.lang.StringBuilder::append@2 (line 212)
;; B38: # B40 <- B28 Freq: 4.76837e-12
0x00002aaaab120b67: mov %rax,%rsi
0x00002aaaab120b6a: jmp 0x00002aaaab120b6f ;*invokestatic getChars
; - java.lang.AbstractStringBuilder::append@61 (line 598)
; - java.lang.StringBuilder::append@2 (line 212)
;; B39: # B40 <- B25 Freq: 9.99999e-06
0x00002aaaab120b6c: mov %rax,%rsi ;*invokestatic stringSizeOfInt
; - java.lang.AbstractStringBuilder::append@21 (line 593)
; - java.lang.StringBuilder::append@2 (line 212)
;; B40: # N313 <- B38 B37 B36 B39 Freq: 1e-05
0x00002aaaab120b6f: add $0x30,%rsp
0x00002aaaab120b73: pop %rbp
0x00002aaaab120b74: jmpq 0x00002aaaab117a20 ;*iadd
; - java.lang.AbstractStringBuilder::stringSizeOfInt@13 (line 610)
; - java.lang.AbstractStringBuilder::append@30 (line 593)
; - java.lang.StringBuilder::append@2 (line 212)
; {runtime_call}
0x00002aaaab120b79: hlt
0x00002aaaab120b7a: hlt
0x00002aaaab120b7b: hlt
0x00002aaaab120b7c: hlt
0x00002aaaab120b7d: hlt
0x00002aaaab120b7e: hlt
0x00002aaaab120b7f: hlt
[Stub Code]
0x00002aaaab120b80: mov $0x0,%rbx ; {no_reloc}
0x00002aaaab120b8a: jmpq 0x00002aaaab120b8a ; {runtime_call}
0x00002aaaab120b8f: mov $0x0,%rbx ; {static_stub}
0x00002aaaab120b99: jmpq 0x00002aaaab120b99 ; {runtime_call}
0x00002aaaab120b9e: mov $0x0,%rbx ; {static_stub}
0x00002aaaab120ba8: jmpq 0x00002aaaab120ba8 ; {runtime_call}
0x00002aaaab120bad: mov $0x0,%rbx ; {static_stub}
0x00002aaaab120bb7: jmpq 0x00002aaaab120bb7 ; {runtime_call}
[Exception Handler]
0x00002aaaab120bbc: jmpq 0x00002aaaab101c20 ; {runtime_call}
[Deopt Handler Code]
0x00002aaaab120bc1: callq 0x00002aaaab120bc6
0x00002aaaab120bc6: subq $0x5,(%rsp)
0x00002aaaab120bcb: jmpq 0x00002aaaab0f3ae0 ; {runtime_call}
Decoding compiled method 0x00002aaaab11ff50:
Code:
[Entry Point]
[Constants]
# {method} 'append' '(I)Ljava/lang/AbstractStringBuilder;' in 'java/lang/AbstractStringBuilder'
# this: rsi:rsi = 'java/lang/AbstractStringBuilder'
# parm0: rdx = int
# [sp+0x40] (sp of caller)
;; N311: # B1 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab1200e0: mov 0x8(%rsi),%r10d
0x00002aaaab1200e4: cmp %r10,%rax
0x00002aaaab1200e7: jne 0x00002aaaab0f2920 ; {runtime_call}
0x00002aaaab1200ed: nop
0x00002aaaab1200ee: nop
0x00002aaaab1200ef: nop
[Verified Entry Point]
;; B1: # B28 B2 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab1200f0: mov %eax,-0x8000(%rsp)
0x00002aaaab1200f7: push %rbp
0x00002aaaab1200f8: sub $0x30,%rsp ;*synchronization entry
; - java.lang.AbstractStringBuilder::append@-1 (line 589)
0x00002aaaab1200fc: mov %rsi,(%rsp)
0x00002aaaab120100: mov %edx,0x8(%rsp)
0x00002aaaab120104: cmp $0x80000000,%edx
0x00002aaaab12010a: je 0x00002aaaab1202ac ;*if_icmpne
; - java.lang.AbstractStringBuilder::append@3 (line 589)
;; B2: # B30 B3 <- B1 Freq: 1
0x00002aaaab120110: test %edx,%edx
0x00002aaaab120112: jl 0x00002aaaab1202ca ;*ifge
; - java.lang.AbstractStringBuilder::append@16 (line 593)
;; B3: # B22 B4 <- B2 Freq: 0.999999
0x00002aaaab120118: mov $0xef9a1e40,%r10 ; {oop(a 'java/lang/Class' = 'java/lang/AbstractStringBuilder')}
0x00002aaaab120122: mov 0x70(%r10),%ebp ;*getstatic sizeTable
; - java.lang.AbstractStringBuilder::stringSizeOfInt@3 (line 609)
; - java.lang.AbstractStringBuilder::append@30 (line 593)
0x00002aaaab120126: mov 0x10(%rbp),%r11d
0x00002aaaab12012a: cmp %r11d,%edx
0x00002aaaab12012d: jle 0x00002aaaab1201cb
;; B4: # B21 B5 <- B3 Freq: 0.499954
0x00002aaaab120133: mov 0x14(%rbp),%r11d
0x00002aaaab120137: cmp %r11d,%edx
0x00002aaaab12013a: jle 0x00002aaaab1201c4
;; B5: # B20 B6 <- B4 Freq: 0.249955
0x00002aaaab120140: mov 0x18(%rbp),%r11d
0x00002aaaab120144: cmp %r11d,%edx
0x00002aaaab120147: jle 0x00002aaaab1201bd
;; B6: # B19 B7 <- B5 Freq: 0.124966
0x00002aaaab120149: mov 0x1c(%rbp),%r11d
0x00002aaaab12014d: cmp %r11d,%edx
0x00002aaaab120150: jle 0x00002aaaab1201b6
;; B7: # B18 B8 <- B6 Freq: 0.0624774
0x00002aaaab120152: mov 0x20(%rbp),%r11d
0x00002aaaab120156: cmp %r11d,%edx
0x00002aaaab120159: jle 0x00002aaaab1201af ;*if_icmpgt
; - java.lang.AbstractStringBuilder::stringSizeOfInt@8 (line 609)
; - java.lang.AbstractStringBuilder::append@30 (line 593)
;; B8: # B17 B9 <- B7 Freq: 0.0312359
0x00002aaaab12015b: mov 0x24(%rbp),%r11d ;*iaload
; - java.lang.AbstractStringBuilder::stringSizeOfInt@7 (line 609)
; - java.lang.AbstractStringBuilder::append@30 (line 593)
0x00002aaaab12015f: cmp %r11d,%edx
0x00002aaaab120162: jle 0x00002aaaab1201a8 ;*if_icmpgt
; - java.lang.AbstractStringBuilder::stringSizeOfInt@8 (line 609)
; - java.lang.AbstractStringBuilder::append@30 (line 593)
;; B9: # B16 B10 <- B8 Freq: 0.0156165
0x00002aaaab120164: mov 0x28(%rbp),%r11d ;*iaload
; - java.lang.AbstractStringBuilder::stringSizeOfInt@7 (line 609)
; - java.lang.AbstractStringBuilder::append@30 (line 593)
0x00002aaaab120168: cmp %r11d,%edx
0x00002aaaab12016b: jle 0x00002aaaab1201a1 ;*if_icmpgt
; - java.lang.AbstractStringBuilder::stringSizeOfInt@8 (line 609)
; - java.lang.AbstractStringBuilder::append@30 (line 593)
;; B10: # B15 B11 <- B9 Freq: 0.00780756
0x00002aaaab12016d: mov 0x2c(%rbp),%r11d ;*iaload
; - java.lang.AbstractStringBuilder::stringSizeOfInt@7 (line 609)
; - java.lang.AbstractStringBuilder::append@30 (line 593)
0x00002aaaab120171: cmp %r11d,%edx
0x00002aaaab120174: jle 0x00002aaaab12019a ;*if_icmpgt
; - java.lang.AbstractStringBuilder::stringSizeOfInt@8 (line 609)
; - java.lang.AbstractStringBuilder::append@30 (line 593)
;; B11: # B14 B12 <- B10 Freq: 0.00390343
0x00002aaaab120176: mov 0x30(%rbp),%r11d ;*iaload
; - java.lang.AbstractStringBuilder::stringSizeOfInt@7 (line 609)
; - java.lang.AbstractStringBuilder::append@30 (line 593)
0x00002aaaab12017a: cmp %r11d,%edx
0x00002aaaab12017d: jle 0x00002aaaab120193 ;*if_icmpgt
; - java.lang.AbstractStringBuilder::stringSizeOfInt@8 (line 609)
; - java.lang.AbstractStringBuilder::append@30 (line 593)
;; B12: # B34 B13 <- B11 Freq: 0.00195154
0x00002aaaab12017f: mov 0x34(%rbp),%r11d ;*iaload
; - java.lang.AbstractStringBuilder::stringSizeOfInt@7 (line 609)
; - java.lang.AbstractStringBuilder::append@30 (line 593)
0x00002aaaab120183: cmp %r11d,%edx
0x00002aaaab120186: jg 0x00002aaaab1202f9 ;*if_icmpgt
; - java.lang.AbstractStringBuilder::stringSizeOfInt@8 (line 609)
; - java.lang.AbstractStringBuilder::append@30 (line 593)
;; B13: # B23 <- B12 Freq: 0.00195154
0x00002aaaab12018c: mov $0xa,%eax
0x00002aaaab120191: jmp 0x00002aaaab1201d0
;; B14: # B23 <- B11 Freq: 0.00195189
0x00002aaaab120193: mov $0x9,%eax
0x00002aaaab120198: jmp 0x00002aaaab1201d0
;; B15: # B23 <- B10 Freq: 0.00390413
0x00002aaaab12019a: mov $0x8,%eax
0x00002aaaab12019f: jmp 0x00002aaaab1201d0
;; B16: # B23 <- B9 Freq: 0.00780897
0x00002aaaab1201a1: mov $0x7,%eax
0x00002aaaab1201a6: jmp 0x00002aaaab1201d0
;; B17: # B23 <- B8 Freq: 0.0156193
0x00002aaaab1201a8: mov $0x6,%eax
0x00002aaaab1201ad: jmp 0x00002aaaab1201d0
;; B18: # B23 <- B7 Freq: 0.0312415
0x00002aaaab1201af: mov $0x5,%eax
0x00002aaaab1201b4: jmp 0x00002aaaab1201d0
;; B19: # B23 <- B6 Freq: 0.0624887
0x00002aaaab1201b6: mov $0x4,%eax
0x00002aaaab1201bb: jmp 0x00002aaaab1201d0
;; B20: # B23 <- B5 Freq: 0.124989
0x00002aaaab1201bd: mov $0x3,%eax
0x00002aaaab1201c2: jmp 0x00002aaaab1201d0
;; B21: # B23 <- B4 Freq: 0.25
0x00002aaaab1201c4: mov $0x2,%eax
0x00002aaaab1201c9: jmp 0x00002aaaab1201d0
;; B22: # B23 <- B3 Freq: 0.500045
0x00002aaaab1201cb: mov $0x1,%eax ;*istore_2
; - java.lang.AbstractStringBuilder::append@33 (line 593)
;; B23: # B35 B24 <- B21 B20 B16 B18 B14 B19 B15 B17 B13 B22 B31 Freq: 1
0x00002aaaab1201d0: mov (%rsp),%r10
0x00002aaaab1201d4: mov 0x10(%r10),%r10d ;*getfield value
; - java.lang.AbstractStringBuilder::append@43 (line 596)
0x00002aaaab1201d8: mov 0xc(%r10),%r8d ; implicit exception: dispatches to 0x00002aaaab120311
;; B24: # B32 B25 <- B23 Freq: 0.999999
0x00002aaaab1201dc: mov %eax,%ebp
0x00002aaaab1201de: mov (%rsp),%r11
0x00002aaaab1201e2: add 0xc(%r11),%ebp ;*iadd
; - java.lang.AbstractStringBuilder::append@39 (line 595)
0x00002aaaab1201e6: cmp %r8d,%ebp
0x00002aaaab1201e9: jg 0x00002aaaab1202df
;; B25: # B39 B26 <- B33 B24 Freq: 0.999999
0x00002aaaab1201ef: mov %r10,%rcx
0x00002aaaab1201f2: push %r10
0x00002aaaab1201f4: mov $0x2ae74dadc700,%r10 ; {external_word}
0x00002aaaab1201fe: cmp (%r10),%r12
0x00002aaaab120201: je 0x00002aaaab120286
0x00002aaaab120207: mov %rsp,-0x28(%rsp)
0x00002aaaab12020c: sub $0x80,%rsp
0x00002aaaab120213: mov %rax,0x78(%rsp)
0x00002aaaab120218: mov %rcx,0x70(%rsp)
0x00002aaaab12021d: mov %rdx,0x68(%rsp)
0x00002aaaab120222: mov %rbx,0x60(%rsp)
0x00002aaaab120227: mov %rbp,0x50(%rsp)
0x00002aaaab12022c: mov %rsi,0x48(%rsp)
0x00002aaaab120231: mov %rdi,0x40(%rsp)
0x00002aaaab120236: mov %r8,0x38(%rsp)
0x00002aaaab12023b: mov %r9,0x30(%rsp)
0x00002aaaab120240: mov %r10,0x28(%rsp)
0x00002aaaab120245: mov %r11,0x20(%rsp)
0x00002aaaab12024a: mov %r12,0x18(%rsp)
0x00002aaaab12024f: mov %r13,0x10(%rsp)
0x00002aaaab120254: mov %r14,0x8(%rsp)
0x00002aaaab120259: mov %r15,(%rsp)
0x00002aaaab12025d: mov $0x2ae74d5c8228,%rdi ; {external_word}
0x00002aaaab120267: mov $0x2aaaab120207,%rsi ; {internal_word}
0x00002aaaab120271: mov %rsp,%rdx
0x00002aaaab120274: and $0xfffffffffffffff0,%rsp
0x00002aaaab120278: mov $0x2ae74cb3f860,%r10 ; {runtime_call}
0x00002aaaab120282: rex.WB callq *%r10
0x00002aaaab120285: hlt
0x00002aaaab120286: pop %r10 ;*getfield value
; - java.lang.AbstractStringBuilder::append@58 (line 598)
0x00002aaaab120288: mov 0x8(%rsp),%esi
0x00002aaaab12028c: mov %ebp,%edx
0x00002aaaab12028e: nop
0x00002aaaab12028f: callq 0x00002aaaab0f2f20 ; OopMap{[0]=Oop off=436}
;*invokestatic getChars
; - java.lang.AbstractStringBuilder::append@61 (line 598)
; {static_call}
;; B26: # B27 <- B25 Freq: 0.999978
0x00002aaaab120294: mov (%rsp),%r10
0x00002aaaab120298: mov %ebp,0xc(%r10) ;*synchronization entry
; - java.lang.AbstractStringBuilder::append@-1 (line 589)
;; B27: # N311 <- B29 B26 Freq: 0.999979
0x00002aaaab12029c: mov (%rsp),%rax
0x00002aaaab1202a0: add $0x30,%rsp
0x00002aaaab1202a4: pop %rbp
0x00002aaaab1202a5: test %eax,-0x4282ab(%rip) # 0x00002aaaaacf8000
; {poll_return}
0x00002aaaab1202ab: retq
;; B28: # B38 B29 <- B1 Freq: 4.76837e-07
0x00002aaaab1202ac: mov $0xef9a1958,%rdx ; {oop("-2147483648")}
0x00002aaaab1202b6: nop
0x00002aaaab1202b7: nop
0x00002aaaab1202b8: nop
0x00002aaaab1202b9: mov $0xffffffffffffffff,%rax ; {oop(NULL)}
0x00002aaaab1202c3: callq 0x00002aaaab0f2d20 ; OopMap{[0]=Oop off=488}
;*invokevirtual append
; - java.lang.AbstractStringBuilder::append@9 (line 590)
; {virtual_call}
;; B29: # B27 <- B28 Freq: 4.76828e-07
0x00002aaaab1202c8: jmp 0x00002aaaab12029c
;; B30: # B37 B31 <- B2 Freq: 4.76837e-07
0x00002aaaab1202ca: mov %edx,%esi
0x00002aaaab1202cc: neg %esi ;*ineg
; - java.lang.AbstractStringBuilder::append@20 (line 593)
0x00002aaaab1202ce: mov %edx,%ebp
0x00002aaaab1202d0: nop
0x00002aaaab1202d1: nop
0x00002aaaab1202d2: nop
0x00002aaaab1202d3: callq 0x00002aaaab0f2f20 ; OopMap{[0]=Oop off=504}
;*invokestatic stringSizeOfInt
; - java.lang.AbstractStringBuilder::append@21 (line 593)
; {static_call}
;; B31: # B23 <- B30 Freq: 4.76827e-07
0x00002aaaab1202d8: inc %eax ;*iadd
; - java.lang.AbstractStringBuilder::append@25 (line 593)
0x00002aaaab1202da: jmpq 0x00002aaaab1201d0
;; B32: # B36 B33 <- B24 Freq: 4.76836e-07
0x00002aaaab1202df: mov %r11,%rsi
0x00002aaaab1202e2: mov %ebp,%edx
0x00002aaaab1202e4: nop
0x00002aaaab1202e5: nop
0x00002aaaab1202e6: nop
0x00002aaaab1202e7: callq 0x00002aaaab0f2b20 ; OopMap{[0]=Oop off=524}
;*invokevirtual expandCapacity
; - java.lang.AbstractStringBuilder::append@52 (line 597)
; {optimized virtual_call}
;; B33: # B25 <- B32 Freq: 4.76827e-07
0x00002aaaab1202ec: mov (%rsp),%r10
0x00002aaaab1202f0: mov 0x10(%r10),%r10d ;*getfield value
; - java.lang.AbstractStringBuilder::append@58 (line 598)
0x00002aaaab1202f4: jmpq 0x00002aaaab1201ef
;; B34: # N311 <- B12 Freq: 1.97745e-09
0x00002aaaab1202f9: mov $0xffffffe4,%esi
0x00002aaaab1202fe: nop
0x00002aaaab1202ff: callq 0x00002aaaab0f3fa0 ; OopMap{rbp=NarrowOop [0]=Oop off=548}
;*iaload
; - java.lang.AbstractStringBuilder::stringSizeOfInt@7 (line 609)
; - java.lang.AbstractStringBuilder::append@30 (line 593)
; {runtime_call}
0x00002aaaab120304: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab12030e: rex.WB callq *%r10 ;*iaload
; - java.lang.AbstractStringBuilder::stringSizeOfInt@7 (line 609)
; - java.lang.AbstractStringBuilder::append@30 (line 593)
;; B35: # N311 <- B23 Freq: 1.01328e-06
0x00002aaaab120311: mov $0xfffffff6,%esi
0x00002aaaab120316: nop
0x00002aaaab120317: callq 0x00002aaaab0f3fa0 ; OopMap{off=572}
;*arraylength
; - java.lang.AbstractStringBuilder::append@46 (line 596)
; {runtime_call}
0x00002aaaab12031c: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab120326: rex.WB callq *%r10 ;*invokevirtual expandCapacity
; - java.lang.AbstractStringBuilder::append@52 (line 597)
;; B36: # B40 <- B32 Freq: 4.76836e-12
0x00002aaaab120329: mov %rax,%rsi
0x00002aaaab12032c: jmp 0x00002aaaab12033b ;*invokestatic stringSizeOfInt
; - java.lang.AbstractStringBuilder::append@21 (line 593)
;; B37: # B40 <- B30 Freq: 4.76837e-12
0x00002aaaab12032e: mov %rax,%rsi
0x00002aaaab120331: jmp 0x00002aaaab12033b ;*invokevirtual append
; - java.lang.AbstractStringBuilder::append@9 (line 590)
;; B38: # B40 <- B28 Freq: 4.76837e-12
0x00002aaaab120333: mov %rax,%rsi
0x00002aaaab120336: jmp 0x00002aaaab12033b ;*invokestatic getChars
; - java.lang.AbstractStringBuilder::append@61 (line 598)
;; B39: # B40 <- B25 Freq: 9.99999e-06
0x00002aaaab120338: mov %rax,%rsi ;*invokestatic stringSizeOfInt
; - java.lang.AbstractStringBuilder::append@21 (line 593)
;; B40: # N311 <- B38 B37 B36 B39 Freq: 1e-05
0x00002aaaab12033b: add $0x30,%rsp
0x00002aaaab12033f: pop %rbp
0x00002aaaab120340: jmpq 0x00002aaaab117a20 ;*iadd
; - java.lang.AbstractStringBuilder::stringSizeOfInt@13 (line 610)
; - java.lang.AbstractStringBuilder::append@30 (line 593)
; {runtime_call}
0x00002aaaab120345: hlt
0x00002aaaab120346: hlt
0x00002aaaab120347: hlt
0x00002aaaab120348: hlt
0x00002aaaab120349: hlt
0x00002aaaab12034a: hlt
0x00002aaaab12034b: hlt
0x00002aaaab12034c: hlt
0x00002aaaab12034d: hlt
0x00002aaaab12034e: hlt
0x00002aaaab12034f: hlt
0x00002aaaab120350: hlt
0x00002aaaab120351: hlt
0x00002aaaab120352: hlt
0x00002aaaab120353: hlt
0x00002aaaab120354: hlt
0x00002aaaab120355: hlt
0x00002aaaab120356: hlt
0x00002aaaab120357: hlt
0x00002aaaab120358: hlt
0x00002aaaab120359: hlt
0x00002aaaab12035a: hlt
0x00002aaaab12035b: hlt
0x00002aaaab12035c: hlt
0x00002aaaab12035d: hlt
0x00002aaaab12035e: hlt
0x00002aaaab12035f: hlt
[Stub Code]
0x00002aaaab120360: mov $0x0,%rbx ; {no_reloc}
0x00002aaaab12036a: jmpq 0x00002aaaab12036a ; {runtime_call}
0x00002aaaab12036f: mov $0x0,%rbx ; {static_stub}
0x00002aaaab120379: jmpq 0x00002aaaab120379 ; {runtime_call}
0x00002aaaab12037e: mov $0x0,%rbx ; {static_stub}
0x00002aaaab120388: jmpq 0x00002aaaab120388 ; {runtime_call}
[Exception Handler]
0x00002aaaab12038d: jmpq 0x00002aaaab101c20 ; {runtime_call}
[Deopt Handler Code]
0x00002aaaab120392: callq 0x00002aaaab120397
0x00002aaaab120397: subq $0x5,(%rsp)
0x00002aaaab12039c: jmpq 0x00002aaaab0f3ae0 ; {runtime_call}
0x00002aaaab1203a1: int3
0x00002aaaab1203a2: int3
0x00002aaaab1203a3: int3
0x00002aaaab1203a4: int3
0x00002aaaab1203a5: int3
0x00002aaaab1203a6: int3
0x00002aaaab1203a7: int3
2788 20 Test::beta (20 bytes)
2798 21 java.lang.StringBuilder::<init> (18 bytes)
Decoding compiled method 0x00002aaaab123250:
Code:
[Entry Point]
[Verified Entry Point]
[Constants]
# {method} 'beta' '(Ljava/lang/String;IC)Ljava/lang/String;' in 'Test'
# parm0: rsi:rsi = 'java/lang/String'
# parm1: rdx = int
# parm2: rcx = char
# [sp+0x50] (sp of caller)
;; N1: # B1 <- B36 B33 B24 Freq: 1
;; B1: # B33 B2 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab1233c0: mov %eax,-0x8000(%rsp)
0x00002aaaab1233c7: push %rbp
0x00002aaaab1233c8: sub $0x40,%rsp ;*synchronization entry
; - Test::beta@-1 (line 9)
0x00002aaaab1233cc: mov %ecx,(%rsp)
0x00002aaaab1233cf: mov %rsi,%r11
0x00002aaaab1233d2: mov 0xc(%rsi),%r10d ; implicit exception: dispatches to 0x00002aaaab12379a
;; B2: # B25 B3 <- B1 Freq: 0.999999
0x00002aaaab1233d6: mov %edx,%r9d
0x00002aaaab1233d9: neg %r9d
0x00002aaaab1233dc: mov %r9d,0x20(%rsp)
0x00002aaaab1233e1: cmp $0x80000000,%edx
0x00002aaaab1233e7: jne 0x00002aaaab12370e
;; B3: # B7 <- B2 Freq: 0.499999
0x00002aaaab1233ed: xor %r14d,%r14d
0x00002aaaab1233f0: mov $0xb,%ebx
0x00002aaaab1233f5: jmp 0x00002aaaab123410
0x00002aaaab1233f7: nop
0x00002aaaab1233f8: nop
0x00002aaaab1233f9: nop
0x00002aaaab1233fa: nop
0x00002aaaab1233fb: nop
0x00002aaaab1233fc: nop
0x00002aaaab1233fd: nop
0x00002aaaab1233fe: nop
0x00002aaaab1233ff: nop
;; B4: # B5 <- B5 top-of-loop Freq: 499999
0x00002aaaab123400: inc %edi
;; B5: # B4 B6 <- B27 B4 Loop: B5-B4 inner Freq: 500000
0x00002aaaab123402: mov 0x10(%r9,%rdi,4),%ecx
0x00002aaaab123407: cmp %ecx,%r8d
0x00002aaaab12340a: jg 0x00002aaaab123400
;; B6: # B7 <- B5 Freq: 0.499999
0x00002aaaab12340c: add %edi,%ebx
0x00002aaaab12340e: inc %ebx
;; B7: # B33 B8 <- B3 B6 Freq: 0.999999
0x00002aaaab123410: mov %ebx,%r9d
0x00002aaaab123413: add 0x14(%r11),%r9d
0x00002aaaab123417: test %r9d,%r9d
0x00002aaaab12341a: jl 0x00002aaaab12379a
;; B8: # B33 B9 <- B7 Freq: 0.999998
0x00002aaaab123420: mov %r9d,%ebp
0x00002aaaab123423: inc %ebp
0x00002aaaab123425: test %ebp,%ebp
0x00002aaaab123427: jl 0x00002aaaab12379a
;; B9: # B31 B10 <- B8 Freq: 0.999997
0x00002aaaab12342d: cmp $0x80000,%ebp
0x00002aaaab123433: ja 0x00002aaaab123756
;; B10: # B31 B11 <- B9 Freq: 0.999996
0x00002aaaab123439: mov 0x70(%r15),%r13
0x00002aaaab12343d: movslq %r9d,%r8
0x00002aaaab123440: shl %r8
0x00002aaaab123443: add $0x19,%r8
0x00002aaaab123447: and $0xfffffffffffffff8,%r8
0x00002aaaab12344b: mov %r13,%r9
0x00002aaaab12344e: add %r8,%r9
0x00002aaaab123451: cmp 0x80(%r15),%r9
0x00002aaaab123458: jae 0x00002aaaab123756
;; B11: # B12 <- B10 Freq: 0.999896
0x00002aaaab12345e: mov %r9,0x70(%r15)
0x00002aaaab123462: prefetchnta 0x100(%r9)
0x00002aaaab12346a: movq $0x1,0x0(%r13)
0x00002aaaab123472: prefetchnta 0x140(%r9)
0x00002aaaab12347a: movl $0xc4200608,0x8(%r13) ; {oop({type array char})}
0x00002aaaab123482: mov %ebp,0xc(%r13)
0x00002aaaab123486: prefetchnta 0x180(%r9)
0x00002aaaab12348e: mov %r11,0x8(%rsp)
0x00002aaaab123493: mov %edx,0x4(%rsp)
0x00002aaaab123497: mov %ebp,0x10(%rsp)
;; B12: # B15 B13 <- B32 B11 Freq: 0.999997
0x00002aaaab12349b: mov 0x8(%rsp),%r11
0x00002aaaab1234a0: mov 0x14(%r11),%ebp
0x00002aaaab1234a4: mov %r13,%rsi
0x00002aaaab1234a7: add $0x10,%rsi
0x00002aaaab1234ab: add %ebp,%ebx
0x00002aaaab1234ad: mov 0x10(%r11),%r11d
0x00002aaaab1234b1: mov %r10,%r8
0x00002aaaab1234b4: lea 0x10(%r10,%r11,2),%rdi
0x00002aaaab1234b9: movslq %ebp,%rdx
0x00002aaaab1234bc: mov $0x2aaaab0fccc0,%r10
0x00002aaaab1234c6: callq *%r10
0x00002aaaab1234c9: mov 0x4(%rsp),%r10d
0x00002aaaab1234ce: cmp $0x80000000,%r10d
0x00002aaaab1234d5: je 0x00002aaaab1234f5
;; B13: # B16 B14 <- B12 Freq: 0.499998
0x00002aaaab1234d7: mov 0x4(%rsp),%r9d
0x00002aaaab1234dc: test %r10d,%r10d
0x00002aaaab1234df: jl 0x00002aaaab123521
;; B14: # B17 <- B13 Freq: 0.249999
0x00002aaaab1234e1: mov %rax,-0x8(%rsp)
0x00002aaaab1234e6: mov 0x4(%rsp),%eax
0x00002aaaab1234ea: mov %eax,0x20(%rsp)
0x00002aaaab1234ee: mov -0x8(%rsp),%rax
0x00002aaaab1234f3: jmp 0x00002aaaab123527
;; B15: # B22 <- B12 Freq: 0.499998
0x00002aaaab1234f5: lea 0x10(%r13,%rbp,2),%rsi
0x00002aaaab1234fa: mov $0xb,%edx
0x00002aaaab1234ff: mov $0xc9412c78,%rdi ; {oop([C)}
0x00002aaaab123509: add $0x10,%rdi
0x00002aaaab12350d: mov $0x2aaaab0fccc0,%r10
0x00002aaaab123517: callq *%r10
0x00002aaaab12351a: mov 0x4(%rsp),%r9d
0x00002aaaab12351f: jmp 0x00002aaaab123583
;; B16: # B17 <- B13 Freq: 0.249999
0x00002aaaab123521: mov $0x2d,%r14d
;; B17: # B18 <- B16 B14 Freq: 0.499998
0x00002aaaab123527: mov %ebx,%r10d
;; B18: # B20 B19 <- B17 B19 Loop: B18-B19 inner Freq: 0.999997
0x00002aaaab12352a: mov 0x20(%rsp),%r8d
0x00002aaaab12352f: sar $0x1f,%r8d
0x00002aaaab123533: movslq 0x20(%rsp),%r11
0x00002aaaab123538: imul $0x66666667,%r11,%r11
0x00002aaaab12353f: sar $0x22,%r11
0x00002aaaab123543: mov %r11d,%r11d
0x00002aaaab123546: mov %r11d,%ecx
0x00002aaaab123549: sub %r8d,%ecx
0x00002aaaab12354c: mov %ecx,%esi
0x00002aaaab12354e: shl $0x3,%esi
0x00002aaaab123551: mov %ecx,%edi
0x00002aaaab123553: shl %edi
0x00002aaaab123555: add %esi,%edi
0x00002aaaab123557: mov 0x20(%rsp),%ebp
0x00002aaaab12355b: sub %edi,%ebp
0x00002aaaab12355d: add $0x30,%ebp
0x00002aaaab123560: mov %bp,0xe(%r13,%r10,2)
0x00002aaaab123566: cmp %r8d,%r11d
0x00002aaaab123569: je 0x00002aaaab123574
;; B19: # B18 <- B18 Freq: 0.499998
0x00002aaaab12356b: dec %r10d
0x00002aaaab12356e: mov %ecx,0x20(%rsp)
0x00002aaaab123572: jmp 0x00002aaaab12352a
;; B20: # B22 B21 <- B18 Freq: 0.499998
0x00002aaaab123574: test %r14d,%r14d
0x00002aaaab123577: je 0x00002aaaab123583
;; B21: # B22 <- B20 Freq: 0.249999
0x00002aaaab123579: add $0xfffffffffffffffe,%r10d
0x00002aaaab12357d: mov %r14w,0x10(%r13,%r10,2)
;; B22: # B29 B23 <- B21 B20 B15 Freq: 0.999997
0x00002aaaab123583: mov (%rsp),%r8d
0x00002aaaab123587: mov %r8w,0x10(%r13,%rbx,2)
0x00002aaaab12358d: mov 0x70(%r15),%rax
0x00002aaaab123591: mov %rax,%r10
0x00002aaaab123594: add $0x20,%r10
0x00002aaaab123598: cmp 0x80(%r15),%r10
0x00002aaaab12359f: jae 0x00002aaaab123735
;; B23: # B24 <- B22 Freq: 0.999897
0x00002aaaab1235a5: mov %r10,0x70(%r15)
0x00002aaaab1235a9: prefetchnta 0x100(%r10)
0x00002aaaab1235b1: mov $0xc420ae88,%r11d ; {oop('java/lang/String')}
0x00002aaaab1235b7: mov 0xb0(%r11),%r10
0x00002aaaab1235be: mov %r10,(%rax)
0x00002aaaab1235c1: movl $0xc420ae88,0x8(%rax) ; {oop('java/lang/String')}
0x00002aaaab1235c8: mov %r12d,0xc(%rax)
0x00002aaaab1235cc: mov %r12,0x10(%rax)
0x00002aaaab1235d0: mov %r12,0x18(%rax)
;; B24: # N1 <- B30 B23 Freq: 0.999997
0x00002aaaab1235d4: mov 0x10(%rsp),%r10d
0x00002aaaab1235d9: mov %r10d,0x14(%rax)
0x00002aaaab1235dd: push %r10
0x00002aaaab1235df: mov $0x2ae74dadc700,%r10 ; {external_word}
0x00002aaaab1235e9: cmp (%r10),%r12
0x00002aaaab1235ec: je 0x00002aaaab123671
0x00002aaaab1235f2: mov %rsp,-0x28(%rsp)
0x00002aaaab1235f7: sub $0x80,%rsp
0x00002aaaab1235fe: mov %rax,0x78(%rsp)
0x00002aaaab123603: mov %rcx,0x70(%rsp)
0x00002aaaab123608: mov %rdx,0x68(%rsp)
0x00002aaaab12360d: mov %rbx,0x60(%rsp)
0x00002aaaab123612: mov %rbp,0x50(%rsp)
0x00002aaaab123617: mov %rsi,0x48(%rsp)
0x00002aaaab12361c: mov %rdi,0x40(%rsp)
0x00002aaaab123621: mov %r8,0x38(%rsp)
0x00002aaaab123626: mov %r9,0x30(%rsp)
0x00002aaaab12362b: mov %r10,0x28(%rsp)
0x00002aaaab123630: mov %r11,0x20(%rsp)
0x00002aaaab123635: mov %r12,0x18(%rsp)
0x00002aaaab12363a: mov %r13,0x10(%rsp)
0x00002aaaab12363f: mov %r14,0x8(%rsp)
0x00002aaaab123644: mov %r15,(%rsp)
0x00002aaaab123648: mov $0x2ae74d5c7980,%rdi ; {external_word}
0x00002aaaab123652: mov $0x2aaaab1235f2,%rsi ; {internal_word}
0x00002aaaab12365c: mov %rsp,%rdx
0x00002aaaab12365f: and $0xfffffffffffffff0,%rsp
0x00002aaaab123663: mov $0x2ae74cb3f860,%r10 ; {runtime_call}
0x00002aaaab12366d: rex.WB callq *%r10
0x00002aaaab123670: hlt
0x00002aaaab123671: pop %r10
0x00002aaaab123673: test %r13,%r13
0x00002aaaab123676: jne 0x00002aaaab1236fb
0x00002aaaab12367c: mov %rsp,-0x28(%rsp)
0x00002aaaab123681: sub $0x80,%rsp
0x00002aaaab123688: mov %rax,0x78(%rsp)
0x00002aaaab12368d: mov %rcx,0x70(%rsp)
0x00002aaaab123692: mov %rdx,0x68(%rsp)
0x00002aaaab123697: mov %rbx,0x60(%rsp)
0x00002aaaab12369c: mov %rbp,0x50(%rsp)
0x00002aaaab1236a1: mov %rsi,0x48(%rsp)
0x00002aaaab1236a6: mov %rdi,0x40(%rsp)
0x00002aaaab1236ab: mov %r8,0x38(%rsp)
0x00002aaaab1236b0: mov %r9,0x30(%rsp)
0x00002aaaab1236b5: mov %r10,0x28(%rsp)
0x00002aaaab1236ba: mov %r11,0x20(%rsp)
0x00002aaaab1236bf: mov %r12,0x18(%rsp)
0x00002aaaab1236c4: mov %r13,0x10(%rsp)
0x00002aaaab1236c9: mov %r14,0x8(%rsp)
0x00002aaaab1236ce: mov %r15,(%rsp)
0x00002aaaab1236d2: mov $0x2ae74d5c79c0,%rdi ; {external_word}
0x00002aaaab1236dc: mov $0x2aaaab12367c,%rsi ; {internal_word}
0x00002aaaab1236e6: mov %rsp,%rdx
0x00002aaaab1236e9: and $0xfffffffffffffff0,%rsp
0x00002aaaab1236ed: mov $0x2ae74cb3f860,%r10 ; {runtime_call}
0x00002aaaab1236f7: rex.WB callq *%r10
0x00002aaaab1236fa: hlt
0x00002aaaab1236fb: mov %r13,%r10
0x00002aaaab1236fe: mov %r10d,0xc(%rax)
0x00002aaaab123702: add $0x40,%rsp
0x00002aaaab123706: pop %rbp
0x00002aaaab123707: test %eax,-0x42b70d(%rip) # 0x00002aaaaacf8000
; {poll_return}
0x00002aaaab12370d: retq
;; B25: # B28 B26 <- B2 Freq: 0.499999
0x00002aaaab12370e: test %edx,%edx
0x00002aaaab123710: jge 0x00002aaaab12372e
;; B26: # B27 <- B25 Freq: 0.25
0x00002aaaab123712: mov %r9d,%r8d
0x00002aaaab123715: mov $0x1,%ebx
;; B27: # B5 <- B26 B28 Freq: 0.499999
0x00002aaaab12371a: mov $0xc9414148,%r9 ; {oop([I)}
0x00002aaaab123724: xor %edi,%edi
0x00002aaaab123726: xor %r14d,%r14d
0x00002aaaab123729: jmpq 0x00002aaaab123402
;; B28: # B27 <- B25 Freq: 0.25
0x00002aaaab12372e: mov %edx,%r8d
0x00002aaaab123731: xor %ebx,%ebx
0x00002aaaab123733: jmp 0x00002aaaab12371a
;; B29: # B35 B30 <- B22 Freq: 0.000100016
0x00002aaaab123735: mov %r13,0x18(%rsp)
0x00002aaaab12373a: mov %r9d,%ebp
0x00002aaaab12373d: mov $0xc420ae88,%rsi ; {oop('java/lang/String')}
0x00002aaaab123747: callq 0x00002aaaab1182e0 ; OopMap{[8]=Oop [24]=Oop off=908}
;*new ; - Test::beta@0 (line 9)
; {runtime_call}
;; B30: # B24 <- B29 Freq: 0.000100014
0x00002aaaab12374c: mov 0x18(%rsp),%r13
0x00002aaaab123751: jmpq 0x00002aaaab1235d4
;; B31: # B34 B32 <- B9 B10 Freq: 0.000101029
0x00002aaaab123756: mov %ebx,0x1c(%rsp)
0x00002aaaab12375a: mov %r14d,0x18(%rsp)
0x00002aaaab12375f: mov %r10d,0x14(%rsp)
0x00002aaaab123764: mov %ebp,0x10(%rsp)
0x00002aaaab123768: mov %edx,0x4(%rsp)
0x00002aaaab12376c: mov %r11,0x8(%rsp)
0x00002aaaab123771: mov $0xc4200608,%rsi ; {oop({type array char})}
0x00002aaaab12377b: mov %ebp,%edx
0x00002aaaab12377d: nop
0x00002aaaab12377e: nop
0x00002aaaab12377f: callq 0x00002aaaab118220 ; OopMap{[8]=Oop [20]=NarrowOop off=964}
;*new ; - Test::beta@0 (line 9)
; {runtime_call}
;; B32: # B12 <- B31 Freq: 0.000101027
0x00002aaaab123784: mov %rax,%r13
0x00002aaaab123787: mov 0x14(%rsp),%r10d
0x00002aaaab12378c: mov 0x18(%rsp),%r14d
0x00002aaaab123791: mov 0x1c(%rsp),%ebx
0x00002aaaab123795: jmpq 0x00002aaaab12349b
;; B33: # N1 <- B7 B8 B1 Freq: 3.01328e-06
0x00002aaaab12379a: mov $0xffffffcc,%esi
0x00002aaaab12379f: mov %r11,%rbp
0x00002aaaab1237a2: mov %edx,0x4(%rsp)
0x00002aaaab1237a6: nop
0x00002aaaab1237a7: callq 0x00002aaaab0f3fa0 ; OopMap{rbp=Oop off=1004}
;*new ; - Test::beta@0 (line 9)
; {runtime_call}
0x00002aaaab1237ac: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab1237b6: rex.WB callq *%r10
;; B34: # B36 <- B31 Freq: 1.01029e-09
0x00002aaaab1237b9: mov %rax,%rsi
0x00002aaaab1237bc: jmp 0x00002aaaab1237c1
;; B35: # B36 <- B29 Freq: 1.00016e-09
0x00002aaaab1237be: mov %rax,%rsi ;*invokespecial <init>
; - Test::beta@5 (line 9)
;; B36: # N1 <- B34 B35 Freq: 2.01046e-09
0x00002aaaab1237c1: add $0x40,%rsp
0x00002aaaab1237c5: pop %rbp
0x00002aaaab1237c6: jmpq 0x00002aaaab117a20 ; {runtime_call}
0x00002aaaab1237cb: hlt
0x00002aaaab1237cc: hlt
0x00002aaaab1237cd: hlt
0x00002aaaab1237ce: hlt
0x00002aaaab1237cf: hlt
0x00002aaaab1237d0: hlt
0x00002aaaab1237d1: hlt
0x00002aaaab1237d2: hlt
0x00002aaaab1237d3: hlt
0x00002aaaab1237d4: hlt
0x00002aaaab1237d5: hlt
0x00002aaaab1237d6: hlt
0x00002aaaab1237d7: hlt
0x00002aaaab1237d8: hlt
0x00002aaaab1237d9: hlt
0x00002aaaab1237da: hlt
0x00002aaaab1237db: hlt
0x00002aaaab1237dc: hlt
0x00002aaaab1237dd: hlt
0x00002aaaab1237de: hlt
0x00002aaaab1237df: hlt
[Exception Handler]
[Stub Code]
0x00002aaaab1237e0: jmpq 0x00002aaaab101c20 ; {no_reloc}
[Deopt Handler Code]
0x00002aaaab1237e5: callq 0x00002aaaab1237ea
0x00002aaaab1237ea: subq $0x5,(%rsp)
0x00002aaaab1237ef: jmpq 0x00002aaaab0f3ae0 ; {runtime_call}
0x00002aaaab1237f4: int3
0x00002aaaab1237f5: int3
0x00002aaaab1237f6: int3
0x00002aaaab1237f7: int3
Decoding compiled method 0x00002aaaab123950:
Code:
[Entry Point]
[Constants]
# {method} '<init>' '(Ljava/lang/String;)V' in 'java/lang/StringBuilder'
# this: rsi:rsi = 'java/lang/StringBuilder'
# parm0: rdx:rdx = 'java/lang/String'
# [sp+0x50] (sp of caller)
;; N396: # B1 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab123ae0: mov 0x8(%rsi),%r10d
0x00002aaaab123ae4: cmp %r10,%rax
0x00002aaaab123ae7: jne 0x00002aaaab0f2920 ; {runtime_call}
0x00002aaaab123aed: nop
0x00002aaaab123aee: nop
0x00002aaaab123aef: nop
[Verified Entry Point]
;; B1: # B28 B2 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab123af0: mov %eax,-0x8000(%rsp)
0x00002aaaab123af7: push %rbp
0x00002aaaab123af8: sub $0x40,%rsp ;*synchronization entry
; - java.lang.StringBuilder::<init>@-1 (line 92)
0x00002aaaab123afc: mov %rsi,(%rsp)
0x00002aaaab123b00: mov %rdx,%rbp
0x00002aaaab123b03: mov 0x14(%rdx),%r9d ;*getfield count
; - java.lang.String::length@1 (line 651)
; - java.lang.StringBuilder::<init>@2 (line 92)
; implicit exception: dispatches to 0x00002aaaab123e2d
;; B2: # B20 B3 <- B1 Freq: 0.999999
0x00002aaaab123b07: mov %r9d,%r11d
0x00002aaaab123b0a: add $0x10,%r11d ;*iadd
; - java.lang.StringBuilder::<init>@7 (line 92)
0x00002aaaab123b0e: movslq %r9d,%r10 ;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - java.lang.StringBuilder::<init>@13 (line 93)
0x00002aaaab123b11: mov %r10,0x18(%rsp)
0x00002aaaab123b16: cmp $0x80000,%r11d
0x00002aaaab123b1d: ja 0x00002aaaab123d74
;; B3: # B20 B4 <- B2 Freq: 0.999998
0x00002aaaab123b23: mov %r10,%rcx
0x00002aaaab123b26: shl %rcx
0x00002aaaab123b29: add $0x37,%rcx
0x00002aaaab123b2d: mov %rcx,%r10
0x00002aaaab123b30: and $0xfffffffffffffff8,%r10
0x00002aaaab123b34: mov 0x70(%r15),%rbx
0x00002aaaab123b38: mov %rbx,%r8
0x00002aaaab123b3b: add %r10,%r8
0x00002aaaab123b3e: cmp 0x80(%r15),%r8
0x00002aaaab123b45: jae 0x00002aaaab123d74
;; B4: # B5 <- B3 Freq: 0.999898
0x00002aaaab123b4b: mov %r8,0x70(%r15)
0x00002aaaab123b4f: prefetchnta 0x100(%r8)
0x00002aaaab123b57: movq $0x1,(%rbx)
0x00002aaaab123b5e: prefetchnta 0x140(%r8)
0x00002aaaab123b66: movl $0xc4200608,0x8(%rbx) ; {oop({type array char})}
0x00002aaaab123b6d: mov %r11d,0xc(%rbx)
0x00002aaaab123b71: prefetchnta 0x180(%r8)
0x00002aaaab123b79: mov %rbx,%rdi
0x00002aaaab123b7c: add $0x10,%rdi
0x00002aaaab123b80: shr $0x3,%rcx
0x00002aaaab123b84: add $0xfffffffffffffffe,%rcx
0x00002aaaab123b88: xor %eax,%eax
0x00002aaaab123b8a: rep stos %rax,%es:(%rdi) ;*newarray
; - java.lang.AbstractStringBuilder::<init>@6 (line 45)
; - java.lang.StringBuilder::<init>@8 (line 92)
;; B5: # B19 B6 <- B21 B4 Freq: 0.999999
0x00002aaaab123b8d: mov (%rsp),%r10
0x00002aaaab123b91: push %r10
0x00002aaaab123b93: mov $0x2ae74dadc700,%r10 ; {external_word}
0x00002aaaab123b9d: cmp (%r10),%r12
0x00002aaaab123ba0: je 0x00002aaaab123c25
0x00002aaaab123ba6: mov %rsp,-0x28(%rsp)
0x00002aaaab123bab: sub $0x80,%rsp
0x00002aaaab123bb2: mov %rax,0x78(%rsp)
0x00002aaaab123bb7: mov %rcx,0x70(%rsp)
0x00002aaaab123bbc: mov %rdx,0x68(%rsp)
0x00002aaaab123bc1: mov %rbx,0x60(%rsp)
0x00002aaaab123bc6: mov %rbp,0x50(%rsp)
0x00002aaaab123bcb: mov %rsi,0x48(%rsp)
0x00002aaaab123bd0: mov %rdi,0x40(%rsp)
0x00002aaaab123bd5: mov %r8,0x38(%rsp)
0x00002aaaab123bda: mov %r9,0x30(%rsp)
0x00002aaaab123bdf: mov %r10,0x28(%rsp)
0x00002aaaab123be4: mov %r11,0x20(%rsp)
0x00002aaaab123be9: mov %r12,0x18(%rsp)
0x00002aaaab123bee: mov %r13,0x10(%rsp)
0x00002aaaab123bf3: mov %r14,0x8(%rsp)
0x00002aaaab123bf8: mov %r15,(%rsp)
0x00002aaaab123bfc: mov $0x2ae74d5c7980,%rdi ; {external_word}
0x00002aaaab123c06: mov $0x2aaaab123ba6,%rsi ; {internal_word}
0x00002aaaab123c10: mov %rsp,%rdx
0x00002aaaab123c13: and $0xfffffffffffffff0,%rsp
0x00002aaaab123c17: mov $0x2ae74cb3f860,%r10 ; {runtime_call}
0x00002aaaab123c21: rex.WB callq *%r10
0x00002aaaab123c24: hlt
0x00002aaaab123c25: pop %r10
0x00002aaaab123c27: test %rbx,%rbx
0x00002aaaab123c2a: jne 0x00002aaaab123caf
0x00002aaaab123c30: mov %rsp,-0x28(%rsp)
0x00002aaaab123c35: sub $0x80,%rsp
0x00002aaaab123c3c: mov %rax,0x78(%rsp)
0x00002aaaab123c41: mov %rcx,0x70(%rsp)
0x00002aaaab123c46: mov %rdx,0x68(%rsp)
0x00002aaaab123c4b: mov %rbx,0x60(%rsp)
0x00002aaaab123c50: mov %rbp,0x50(%rsp)
0x00002aaaab123c55: mov %rsi,0x48(%rsp)
0x00002aaaab123c5a: mov %rdi,0x40(%rsp)
0x00002aaaab123c5f: mov %r8,0x38(%rsp)
0x00002aaaab123c64: mov %r9,0x30(%rsp)
0x00002aaaab123c69: mov %r10,0x28(%rsp)
0x00002aaaab123c6e: mov %r11,0x20(%rsp)
0x00002aaaab123c73: mov %r12,0x18(%rsp)
0x00002aaaab123c78: mov %r13,0x10(%rsp)
0x00002aaaab123c7d: mov %r14,0x8(%rsp)
0x00002aaaab123c82: mov %r15,(%rsp)
0x00002aaaab123c86: mov $0x2ae74d5c79c0,%rdi ; {external_word}
0x00002aaaab123c90: mov $0x2aaaab123c30,%rsi ; {internal_word}
0x00002aaaab123c9a: mov %rsp,%rdx
0x00002aaaab123c9d: and $0xfffffffffffffff0,%rsp
0x00002aaaab123ca1: mov $0x2ae74cb3f860,%r10 ; {runtime_call}
0x00002aaaab123cab: rex.WB callq *%r10
0x00002aaaab123cae: hlt
0x00002aaaab123caf: mov %rbx,%r8
0x00002aaaab123cb2: mov (%rsp),%rcx
0x00002aaaab123cb6: mov %r8d,0x10(%rcx)
0x00002aaaab123cba: shr $0x9,%r10
0x00002aaaab123cbe: mov $0x2aaaadac4000,%rcx
0x00002aaaab123cc8: mov %r12b,(%rcx,%r10,1) ;*putfield value
; - java.lang.AbstractStringBuilder::<init>@8 (line 45)
; - java.lang.StringBuilder::<init>@8 (line 92)
0x00002aaaab123ccc: test %r9d,%r9d
0x00002aaaab123ccf: je 0x00002aaaab123d68 ;*ifne
; - java.lang.AbstractStringBuilder::append@13 (line 387)
; - java.lang.StringBuilder::append@2 (line 119)
; - java.lang.StringBuilder::<init>@13 (line 93)
;; B6: # B25 B7 <- B5 Freq: 0.999999
0x00002aaaab123cd5: mov (%rsp),%r10
0x00002aaaab123cd9: mov 0xc(%r10),%edi ;*getfield count
; - java.lang.AbstractStringBuilder::append@19 (line 388)
; - java.lang.StringBuilder::append@2 (line 119)
; - java.lang.StringBuilder::<init>@13 (line 93)
0x00002aaaab123cdd: mov %r9d,%ecx
0x00002aaaab123ce0: add %edi,%ecx ;*iadd
; - java.lang.AbstractStringBuilder::append@23 (line 388)
; - java.lang.StringBuilder::append@2 (line 119)
; - java.lang.StringBuilder::<init>@13 (line 93)
0x00002aaaab123ce2: mov %ecx,0x14(%rsp)
0x00002aaaab123ce6: cmp %r11d,%ecx
0x00002aaaab123ce9: jg 0x00002aaaab123dd9 ;*if_icmple
; - java.lang.AbstractStringBuilder::append@31 (line 389)
; - java.lang.StringBuilder::append@2 (line 119)
; - java.lang.StringBuilder::<init>@13 (line 93)
;; B7: # B8 <- B6 Freq: 0.999998
0x00002aaaab123cef: mov %r9d,%r10d ;*aload_1
; - java.lang.AbstractStringBuilder::append@39 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - java.lang.StringBuilder::<init>@13 (line 93)
;; B8: # B24 B9 <- B26 B7 Freq: 0.999999
0x00002aaaab123cf2: cmp %r10d,%r9d
0x00002aaaab123cf5: jg 0x00002aaaab123db6 ;*if_icmple
; - java.lang.String::getChars@18 (line 848)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - java.lang.StringBuilder::<init>@13 (line 93)
;; B9: # B27 B10 <- B8 Freq: 0.999998
0x00002aaaab123cfb: test %r9d,%r9d
0x00002aaaab123cfe: jl 0x00002aaaab123e0a ;*if_icmple
; - java.lang.String::getChars@32 (line 851)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - java.lang.StringBuilder::<init>@13 (line 93)
;; B10: # B29 B11 <- B9 Freq: 0.999998
0x00002aaaab123d04: mov 0x10(%rbp),%r11d ;*getfield offset
; - java.lang.String::getChars@51 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - java.lang.StringBuilder::<init>@13 (line 93)
0x00002aaaab123d08: mov 0xc(%rbp),%ebp
0x00002aaaab123d0b: mov 0xc(%rbp),%r10d ; implicit exception: dispatches to 0x00002aaaab123e45
;; B11: # B30 B12 <- B10 Freq: 0.999997
0x00002aaaab123d0f: mov 0xc(%r8),%edx ; implicit exception: dispatches to 0x00002aaaab123e6d
;; B12: # B22 B13 <- B11 Freq: 0.999996
0x00002aaaab123d13: mov %rbp,%rax ;*getfield value
; - java.lang.String::getChars@47 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - java.lang.StringBuilder::<init>@13 (line 93)
0x00002aaaab123d16: mov %r8,%rcx ;*getfield value
; - java.lang.AbstractStringBuilder::append@43 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - java.lang.StringBuilder::<init>@13 (line 93)
0x00002aaaab123d19: test %r11d,%r11d
0x00002aaaab123d1c: jl 0x00002aaaab123da2
;; B13: # B22 B14 <- B12 Freq: 0.999995
0x00002aaaab123d22: test %edi,%edi
0x00002aaaab123d24: jl 0x00002aaaab123da2
;; B14: # B22 B15 <- B13 Freq: 0.999994
0x00002aaaab123d26: mov %r9d,%ebx
0x00002aaaab123d29: add %r11d,%ebx
0x00002aaaab123d2c: cmp %ebx,%r10d
0x00002aaaab123d2f: jb 0x00002aaaab123da2
;; B15: # B22 B16 <- B14 Freq: 0.999992
0x00002aaaab123d31: mov %edi,%ebx
0x00002aaaab123d33: add %r9d,%ebx
0x00002aaaab123d36: cmp %ebx,%edx
0x00002aaaab123d38: jb 0x00002aaaab123da2
;; B16: # B18 B17 <- B15 Freq: 0.999991
0x00002aaaab123d3a: test %r9d,%r9d
0x00002aaaab123d3d: jle 0x00002aaaab123d5b
;; B17: # B18 <- B16 Freq: 0.99999
0x00002aaaab123d3f: lea 0x10(%r8,%rdi,2),%rsi
0x00002aaaab123d44: lea 0x10(%rbp,%r11,2),%rdi
0x00002aaaab123d49: mov 0x18(%rsp),%rdx
0x00002aaaab123d4e: mov $0x2aaaab0fce80,%r10
0x00002aaaab123d58: callq *%r10 ;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - java.lang.StringBuilder::<init>@13 (line 93)
;; B18: # B19 <- B17 B16 B23 Freq: 0.999995
0x00002aaaab123d5b: mov (%rsp),%r10
0x00002aaaab123d5f: mov 0x14(%rsp),%r11d
0x00002aaaab123d64: mov %r11d,0xc(%r10) ;*invokespecial append
; - java.lang.StringBuilder::append@2 (line 119)
; - java.lang.StringBuilder::<init>@13 (line 93)
;; B19: # N396 <- B5 B18 Freq: 0.999996
0x00002aaaab123d68: add $0x40,%rsp
0x00002aaaab123d6c: pop %rbp
0x00002aaaab123d6d: test %eax,-0x42bd73(%rip) # 0x00002aaaaacf8000
; {poll_return}
0x00002aaaab123d73: retq
;; B20: # B33 B21 <- B2 B3 Freq: 0.00010103
0x00002aaaab123d74: mov %r11d,0xc(%rsp)
0x00002aaaab123d79: mov %r9d,0x8(%rsp)
0x00002aaaab123d7e: mov $0xc4200608,%rsi ; {oop({type array char})}
0x00002aaaab123d88: mov %r11d,%edx
0x00002aaaab123d8b: callq 0x00002aaaab118220 ; OopMap{rbp=Oop [0]=Oop off=688}
;*newarray
; - java.lang.AbstractStringBuilder::<init>@6 (line 45)
; - java.lang.StringBuilder::<init>@8 (line 92)
; {runtime_call}
;; B21: # B5 <- B20 Freq: 0.000101028
0x00002aaaab123d90: mov 0xc(%rsp),%r11d
0x00002aaaab123d95: mov %rax,%rbx
0x00002aaaab123d98: mov 0x8(%rsp),%r9d
0x00002aaaab123d9d: jmpq 0x00002aaaab123b8d
;; B22: # B32 B23 <- B12 B13 B14 B15 Freq: 3.99998e-06
0x00002aaaab123da2: mov %rax,%rsi
0x00002aaaab123da5: mov %r11d,%edx
0x00002aaaab123da8: mov %edi,%r8d
0x00002aaaab123dab: mov (%rsp),%rbp
0x00002aaaab123daf: callq 0x00002aaaab11b020 ; OopMap{rbp=Oop [0]=Oop off=724}
;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - java.lang.StringBuilder::<init>@13 (line 93)
; {runtime_call}
;; B23: # B18 <- B22 Freq: 3.9999e-06
0x00002aaaab123db4: jmp 0x00002aaaab123d5b ;*ifge
; - java.lang.String::getChars@1 (line 845)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - java.lang.StringBuilder::<init>@13 (line 93)
;; B24: # N396 <- B8 Freq: 4.76836e-07
0x00002aaaab123db6: mov $0xce,%esi
0x00002aaaab123dbb: mov (%rsp),%rbp
0x00002aaaab123dbf: mov %r9d,0x8(%rsp)
0x00002aaaab123dc4: nop
0x00002aaaab123dc5: nop
0x00002aaaab123dc6: nop
0x00002aaaab123dc7: callq 0x00002aaaab0f3fa0 ; OopMap{rbp=Oop off=748}
;*new ; - java.lang.String::getChars@21 (line 849)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - java.lang.StringBuilder::<init>@13 (line 93)
; {runtime_call}
0x00002aaaab123dcc: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab123dd6: rex.WB callq *%r10 ;*ifne
; - java.lang.AbstractStringBuilder::append@13 (line 387)
; - java.lang.StringBuilder::append@2 (line 119)
; - java.lang.StringBuilder::<init>@13 (line 93)
;; B25: # B31 B26 <- B6 Freq: 4.76836e-07
0x00002aaaab123dd9: mov (%rsp),%rsi
0x00002aaaab123ddd: mov %ecx,%edx
0x00002aaaab123ddf: mov %r9d,0x20(%rsp)
0x00002aaaab123de4: nop
0x00002aaaab123de5: nop
0x00002aaaab123de6: nop
0x00002aaaab123de7: callq 0x00002aaaab0f2b20 ; OopMap{rbp=Oop [0]=Oop off=780}
;*invokevirtual expandCapacity
; - java.lang.AbstractStringBuilder::append@36 (line 390)
; - java.lang.StringBuilder::append@2 (line 119)
; - java.lang.StringBuilder::<init>@13 (line 93)
; {optimized virtual_call}
;; B26: # B8 <- B25 Freq: 4.76827e-07
0x00002aaaab123dec: mov (%rsp),%r10
0x00002aaaab123df0: mov 0xc(%r10),%edi ;*getfield count
; - java.lang.AbstractStringBuilder::append@47 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - java.lang.StringBuilder::<init>@13 (line 93)
0x00002aaaab123df4: mov 0x14(%rbp),%r10d ;*getfield count
; - java.lang.String::getChars@15 (line 848)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - java.lang.StringBuilder::<init>@13 (line 93)
0x00002aaaab123df8: mov (%rsp),%r11
0x00002aaaab123dfc: mov 0x10(%r11),%r8d ;*getfield value
; - java.lang.AbstractStringBuilder::append@43 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - java.lang.StringBuilder::<init>@13 (line 93)
0x00002aaaab123e00: mov 0x20(%rsp),%r9d
0x00002aaaab123e05: jmpq 0x00002aaaab123cf2 ;*if_icmple
; - java.lang.String::getChars@18 (line 848)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - java.lang.StringBuilder::<init>@13 (line 93)
;; B27: # N396 <- B9 Freq: 4.76836e-07
0x00002aaaab123e0a: mov $0xce,%esi
0x00002aaaab123e0f: mov (%rsp),%rbp
0x00002aaaab123e13: mov %r9d,0x8(%rsp)
0x00002aaaab123e18: nop
0x00002aaaab123e19: nop
0x00002aaaab123e1a: nop
0x00002aaaab123e1b: callq 0x00002aaaab0f3fa0 ; OopMap{rbp=Oop off=832}
;*new ; - java.lang.String::getChars@35 (line 852)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - java.lang.StringBuilder::<init>@13 (line 93)
; {runtime_call}
0x00002aaaab123e20: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab123e2a: rex.WB callq *%r10 ;*new ; - java.lang.String::getChars@35 (line 852)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - java.lang.StringBuilder::<init>@13 (line 93)
;; B28: # N396 <- B1 Freq: 1.01328e-06
0x00002aaaab123e2d: mov $0xfffffff6,%esi
0x00002aaaab123e32: nop
0x00002aaaab123e33: callq 0x00002aaaab0f3fa0 ; OopMap{off=856}
;*invokevirtual length
; - java.lang.StringBuilder::<init>@2 (line 92)
; {runtime_call}
0x00002aaaab123e38: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab123e42: rex.WB callq *%r10
;; B29: # N396 <- B10 Freq: 1.01328e-06
0x00002aaaab123e45: mov $0xfffffff6,%esi
0x00002aaaab123e4a: mov %r9d,%ebp
0x00002aaaab123e4d: mov %r11d,(%rsp)
0x00002aaaab123e51: mov %r8d,0x4(%rsp)
0x00002aaaab123e56: mov %edi,0x8(%rsp)
0x00002aaaab123e5a: nop
0x00002aaaab123e5b: callq 0x00002aaaab0f3fa0 ; OopMap{[4]=NarrowOop off=896}
;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - java.lang.StringBuilder::<init>@13 (line 93)
; {runtime_call}
0x00002aaaab123e60: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab123e6a: rex.WB callq *%r10
;; B30: # N396 <- B11 Freq: 1.01328e-06
0x00002aaaab123e6d: mov $0xfffffff6,%esi
0x00002aaaab123e72: mov %r9d,(%rsp)
0x00002aaaab123e76: mov %r11d,0x4(%rsp)
0x00002aaaab123e7b: mov %edi,0x8(%rsp)
0x00002aaaab123e7f: callq 0x00002aaaab0f3fa0 ; OopMap{rbp=NarrowOop off=932}
;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - java.lang.StringBuilder::<init>@13 (line 93)
; {runtime_call}
0x00002aaaab123e84: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab123e8e: rex.WB callq *%r10 ;*invokevirtual expandCapacity
; - java.lang.AbstractStringBuilder::append@36 (line 390)
; - java.lang.StringBuilder::append@2 (line 119)
; - java.lang.StringBuilder::<init>@13 (line 93)
;; B31: # B34 <- B25 Freq: 4.76836e-12
0x00002aaaab123e91: mov %rax,%rsi
0x00002aaaab123e94: jmp 0x00002aaaab123e9e ;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - java.lang.StringBuilder::<init>@13 (line 93)
;; B32: # B34 <- B22 Freq: 3.99998e-11
0x00002aaaab123e96: mov %rax,%rsi
0x00002aaaab123e99: jmp 0x00002aaaab123e9e ;*newarray
; - java.lang.AbstractStringBuilder::<init>@6 (line 45)
; - java.lang.StringBuilder::<init>@8 (line 92)
;; B33: # B34 <- B20 Freq: 1.0103e-09
0x00002aaaab123e9b: mov %rax,%rsi ;*invokevirtual expandCapacity
; - java.lang.AbstractStringBuilder::append@36 (line 390)
; - java.lang.StringBuilder::append@2 (line 119)
; - java.lang.StringBuilder::<init>@13 (line 93)
;; B34: # N396 <- B31 B32 B33 Freq: 1.05506e-09
0x00002aaaab123e9e: add $0x40,%rsp
0x00002aaaab123ea2: pop %rbp
0x00002aaaab123ea3: jmpq 0x00002aaaab117a20 ; {runtime_call}
0x00002aaaab123ea8: hlt
0x00002aaaab123ea9: hlt
0x00002aaaab123eaa: hlt
0x00002aaaab123eab: hlt
0x00002aaaab123eac: hlt
0x00002aaaab123ead: hlt
0x00002aaaab123eae: hlt
0x00002aaaab123eaf: hlt
0x00002aaaab123eb0: hlt
0x00002aaaab123eb1: hlt
0x00002aaaab123eb2: hlt
0x00002aaaab123eb3: hlt
0x00002aaaab123eb4: hlt
0x00002aaaab123eb5: hlt
0x00002aaaab123eb6: hlt
0x00002aaaab123eb7: hlt
0x00002aaaab123eb8: hlt
0x00002aaaab123eb9: hlt
0x00002aaaab123eba: hlt
0x00002aaaab123ebb: hlt
0x00002aaaab123ebc: hlt
0x00002aaaab123ebd: hlt
0x00002aaaab123ebe: hlt
0x00002aaaab123ebf: hlt
[Stub Code]
0x00002aaaab123ec0: mov $0x0,%rbx ; {no_reloc}
0x00002aaaab123eca: jmpq 0x00002aaaab123eca ; {runtime_call}
[Exception Handler]
0x00002aaaab123ecf: jmpq 0x00002aaaab101c20 ; {runtime_call}
[Deopt Handler Code]
0x00002aaaab123ed4: callq 0x00002aaaab123ed9
0x00002aaaab123ed9: subq $0x5,(%rsp)
0x00002aaaab123ede: jmpq 0x00002aaaab0f3ae0 ; {runtime_call}
0x00002aaaab123ee3: int3
0x00002aaaab123ee4: int3
0x00002aaaab123ee5: int3
0x00002aaaab123ee6: int3
0x00002aaaab123ee7: int3
4282 22 Test::charlie (77 bytes)
4324 23 java.lang.Integer::stringSize (21 bytes)
Decoding compiled method 0x00002aaaab121dd0:
Code:
[Entry Point]
[Verified Entry Point]
[Constants]
# {method} 'charlie' '([Ljava/lang/String;IC)Ljava/lang/String;' in 'Test'
# parm0: rsi:rsi = '[Ljava/lang/String;'
# parm1: rdx = int
# parm2: rcx = char
# [sp+0x60] (sp of caller)
;; N1: # B1 <- B83 B76 B69 B82 B81 B80 B56 B96 B84 B72 B73 B79 B85 Freq: 1
;; B1: # B61 B2 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab121fa0: mov %eax,-0x8000(%rsp)
0x00002aaaab121fa7: push %rbp
0x00002aaaab121fa8: sub $0x50,%rsp ;*synchronization entry
; - Test::charlie@-1 (line 13)
0x00002aaaab121fac: mov %ecx,0x10(%rsp)
0x00002aaaab121fb0: mov %edx,0xc(%rsp)
0x00002aaaab121fb4: mov %rsi,(%rsp)
0x00002aaaab121fb8: mov 0x70(%r15),%r11
0x00002aaaab121fbc: mov %r11,%r10
0x00002aaaab121fbf: add $0x18,%r10
0x00002aaaab121fc3: cmp 0x80(%r15),%r10
0x00002aaaab121fca: jae 0x00002aaaab1224b8
;; B2: # B3 <- B1 Freq: 0.9999
0x00002aaaab121fd0: mov %r10,0x70(%r15)
0x00002aaaab121fd4: prefetchnta 0x100(%r10)
0x00002aaaab121fdc: mov $0xc42692f0,%r10d ; {oop('java/lang/StringBuilder')}
0x00002aaaab121fe2: mov 0xb0(%r10),%r10
0x00002aaaab121fe9: mov %r10,(%r11)
0x00002aaaab121fec: movl $0xc42692f0,0x8(%r11) ; {oop('java/lang/StringBuilder')}
0x00002aaaab121ff4: mov %r12d,0xc(%r11)
0x00002aaaab121ff8: mov %r12,0x10(%r11) ;*new ; - Test::charlie@0 (line 13)
;; B3: # B63 B4 <- B62 B2 Freq: 1
0x00002aaaab121ffc: mov %r11,0x30(%rsp)
0x00002aaaab122001: mov 0x70(%r15),%rax
0x00002aaaab122005: mov %rax,%r10
0x00002aaaab122008: add $0x30,%r10
0x00002aaaab12200c: cmp 0x80(%r15),%r10
0x00002aaaab122013: jae 0x00002aaaab1224d0
;; B4: # B5 <- B3 Freq: 0.9999
0x00002aaaab122019: mov %r10,0x70(%r15)
0x00002aaaab12201d: prefetchnta 0x100(%r10)
0x00002aaaab122025: movq $0x1,(%rax)
0x00002aaaab12202c: prefetchnta 0x140(%r10)
0x00002aaaab122034: movl $0xc4200608,0x8(%rax) ; {oop({type array char})}
0x00002aaaab12203b: prefetchnta 0x180(%r10)
0x00002aaaab122043: movl $0x10,0xc(%rax)
0x00002aaaab12204a: mov %r12,0x10(%rax)
0x00002aaaab12204e: mov %r12,0x18(%rax)
0x00002aaaab122052: mov %r12,0x20(%rax)
0x00002aaaab122056: mov %r12,0x28(%rax) ;*newarray
; - java.lang.AbstractStringBuilder::<init>@6 (line 45)
; - java.lang.StringBuilder::<init>@3 (line 68)
; - Test::charlie@4 (line 13)
;; B5: # B83 B6 <- B64 B4 Freq: 1
0x00002aaaab12205a: push %r10
0x00002aaaab12205c: mov $0x2ae74dadc700,%r10 ; {external_word}
0x00002aaaab122066: cmp (%r10),%r12
0x00002aaaab122069: je 0x00002aaaab1220ee
0x00002aaaab12206f: mov %rsp,-0x28(%rsp)
0x00002aaaab122074: sub $0x80,%rsp
0x00002aaaab12207b: mov %rax,0x78(%rsp)
0x00002aaaab122080: mov %rcx,0x70(%rsp)
0x00002aaaab122085: mov %rdx,0x68(%rsp)
0x00002aaaab12208a: mov %rbx,0x60(%rsp)
0x00002aaaab12208f: mov %rbp,0x50(%rsp)
0x00002aaaab122094: mov %rsi,0x48(%rsp)
0x00002aaaab122099: mov %rdi,0x40(%rsp)
0x00002aaaab12209e: mov %r8,0x38(%rsp)
0x00002aaaab1220a3: mov %r9,0x30(%rsp)
0x00002aaaab1220a8: mov %r10,0x28(%rsp)
0x00002aaaab1220ad: mov %r11,0x20(%rsp)
0x00002aaaab1220b2: mov %r12,0x18(%rsp)
0x00002aaaab1220b7: mov %r13,0x10(%rsp)
0x00002aaaab1220bc: mov %r14,0x8(%rsp)
0x00002aaaab1220c1: mov %r15,(%rsp)
0x00002aaaab1220c5: mov $0x2ae74d5c7980,%rdi ; {external_word}
0x00002aaaab1220cf: mov $0x2aaaab12206f,%rsi ; {internal_word}
0x00002aaaab1220d9: mov %rsp,%rdx
0x00002aaaab1220dc: and $0xfffffffffffffff0,%rsp
0x00002aaaab1220e0: mov $0x2ae74cb3f860,%r10 ; {runtime_call}
0x00002aaaab1220ea: rex.WB callq *%r10
0x00002aaaab1220ed: hlt
0x00002aaaab1220ee: pop %r10
0x00002aaaab1220f0: test %rax,%rax
0x00002aaaab1220f3: jne 0x00002aaaab122178
0x00002aaaab1220f9: mov %rsp,-0x28(%rsp)
0x00002aaaab1220fe: sub $0x80,%rsp
0x00002aaaab122105: mov %rax,0x78(%rsp)
0x00002aaaab12210a: mov %rcx,0x70(%rsp)
0x00002aaaab12210f: mov %rdx,0x68(%rsp)
0x00002aaaab122114: mov %rbx,0x60(%rsp)
0x00002aaaab122119: mov %rbp,0x50(%rsp)
0x00002aaaab12211e: mov %rsi,0x48(%rsp)
0x00002aaaab122123: mov %rdi,0x40(%rsp)
0x00002aaaab122128: mov %r8,0x38(%rsp)
0x00002aaaab12212d: mov %r9,0x30(%rsp)
0x00002aaaab122132: mov %r10,0x28(%rsp)
0x00002aaaab122137: mov %r11,0x20(%rsp)
0x00002aaaab12213c: mov %r12,0x18(%rsp)
0x00002aaaab122141: mov %r13,0x10(%rsp)
0x00002aaaab122146: mov %r14,0x8(%rsp)
0x00002aaaab12214b: mov %r15,(%rsp)
0x00002aaaab12214f: mov $0x2ae74d5c79c0,%rdi ; {external_word}
0x00002aaaab122159: mov $0x2aaaab1220f9,%rsi ; {internal_word}
0x00002aaaab122163: mov %rsp,%rdx
0x00002aaaab122166: and $0xfffffffffffffff0,%rsp
0x00002aaaab12216a: mov $0x2ae74cb3f860,%r10 ; {runtime_call}
0x00002aaaab122174: rex.WB callq *%r10
0x00002aaaab122177: hlt
0x00002aaaab122178: mov %rax,%r11
0x00002aaaab12217b: mov 0x30(%rsp),%r10
0x00002aaaab122180: mov %r11d,0x10(%r10)
0x00002aaaab122184: shr $0x9,%r10
0x00002aaaab122188: mov $0x2aaaadac4000,%r11
0x00002aaaab122192: mov %r12b,(%r11,%r10,1) ;*invokespecial <init>
; - Test::charlie@4 (line 13)
0x00002aaaab122196: mov (%rsp),%r10
0x00002aaaab12219a: mov 0xc(%r10),%r13d ;*arraylength
; - Test::charlie@13 (line 14)
; implicit exception: dispatches to 0x00002aaaab122739
;; B6: # B27 B7 <- B5 Freq: 0.999999
0x00002aaaab12219e: test %r13d,%r13d
0x00002aaaab1221a1: jle 0x00002aaaab122297 ;*if_icmpge
; - Test::charlie@23 (line 14)
;; B7: # B76 B8 <- B6 Freq: 0.749896
0x00002aaaab1221a7: test %r13d,%r13d
0x00002aaaab1221aa: jbe 0x00002aaaab122639
;; B8: # B76 B9 <- B7 Freq: 0.749895
0x00002aaaab1221b0: mov %r13d,%r10d
0x00002aaaab1221b3: dec %r10d
0x00002aaaab1221b6: cmp %r13d,%r10d
0x00002aaaab1221b9: jae 0x00002aaaab122639
;; B9: # B10 <- B8 Freq: 0.749894
0x00002aaaab1221bf: xor %r14d,%r14d
0x00002aaaab1221c2: nop
0x00002aaaab1221c3: nop
0x00002aaaab1221c4: nop
0x00002aaaab1221c5: nop
0x00002aaaab1221c6: nop
0x00002aaaab1221c7: nop
0x00002aaaab1221c8: nop
0x00002aaaab1221c9: nop
0x00002aaaab1221ca: nop
0x00002aaaab1221cb: nop
0x00002aaaab1221cc: nop
0x00002aaaab1221cd: nop
0x00002aaaab1221ce: nop
0x00002aaaab1221cf: nop ;*aload
; - Test::charlie@26 (line 14)
;; B10: # B82 B11 <- B9 B26 Loop: B10-B26 inner Freq: 2.99829
0x00002aaaab1221d0: mov (%rsp),%r10
0x00002aaaab1221d4: mov 0x10(%r10,%r14,4),%r11d ;*aaload
; - Test::charlie@30 (line 14)
0x00002aaaab1221d9: mov 0x14(%r11),%r9d ;*getfield count
; - java.lang.String::length@1 (line 651)
; - java.lang.AbstractStringBuilder::append@8 (line 386)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
; implicit exception: dispatches to 0x00002aaaab12270d
;; B11: # B26 B12 <- B10 Freq: 2.99829
0x00002aaaab1221dd: test %r9d,%r9d
0x00002aaaab1221e0: je 0x00002aaaab12228b ;*ifne
; - java.lang.AbstractStringBuilder::append@13 (line 387)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
;; B12: # B79 B13 <- B11 Freq: 2.99829
0x00002aaaab1221e6: mov 0x30(%rsp),%r10
0x00002aaaab1221eb: mov 0x10(%r10),%edx ;*getfield value
; - java.lang.AbstractStringBuilder::append@27 (line 389)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
0x00002aaaab1221ef: mov 0xc(%rdx),%r10d ; implicit exception: dispatches to 0x00002aaaab1226a7
;; B13: # B70 B14 <- B12 Freq: 2.99829
0x00002aaaab1221f3: mov 0x30(%rsp),%r8
0x00002aaaab1221f8: mov 0xc(%r8),%eax ;*getfield count
; - java.lang.AbstractStringBuilder::append@19 (line 388)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
0x00002aaaab1221fc: mov %r9d,%ebx
0x00002aaaab1221ff: add %eax,%ebx ;*iadd
; - java.lang.AbstractStringBuilder::append@23 (line 388)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
0x00002aaaab122201: cmp %r10d,%ebx
0x00002aaaab122204: jg 0x00002aaaab122585 ;*if_icmple
; - java.lang.AbstractStringBuilder::append@31 (line 389)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
;; B14: # B15 <- B13 Freq: 2.99829
0x00002aaaab12220a: mov %r9d,%r8d ;*getfield count
; - java.lang.String::getChars@15 (line 848)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
;; B15: # B69 B16 <- B71 B14 Freq: 2.99829
0x00002aaaab12220d: cmp %r8d,%r9d
0x00002aaaab122210: jg 0x00002aaaab122557 ;*if_icmple
; - java.lang.String::getChars@18 (line 848)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
;; B16: # B72 B17 <- B15 Freq: 2.99829
0x00002aaaab122216: test %r9d,%r9d
0x00002aaaab122219: jl 0x00002aaaab1225da ;*if_icmple
; - java.lang.String::getChars@32 (line 851)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
;; B17: # B80 B18 <- B16 Freq: 2.99829
0x00002aaaab12221f: mov 0x10(%r11),%edi ;*getfield offset
; - java.lang.String::getChars@51 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
0x00002aaaab122223: mov 0xc(%r11),%ebp
0x00002aaaab122227: mov 0xc(%rbp),%r8d ; implicit exception: dispatches to 0x00002aaaab1226c1
;; B18: # B81 B19 <- B17 Freq: 2.99828
0x00002aaaab12222b: mov 0xc(%rdx),%r11d ; implicit exception: dispatches to 0x00002aaaab1226e9
;; B19: # B67 B20 <- B18 Freq: 2.99828
0x00002aaaab12222f: mov %rbp,%rsi ;*getfield value
; - java.lang.String::getChars@47 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
0x00002aaaab122232: mov %rdx,%rcx ;*getfield value
; - java.lang.AbstractStringBuilder::append@43 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
0x00002aaaab122235: test %edi,%edi
0x00002aaaab122237: jl 0x00002aaaab122524
;; B20: # B67 B21 <- B19 Freq: 2.99828
0x00002aaaab12223d: test %eax,%eax
0x00002aaaab12223f: jl 0x00002aaaab122524
;; B21: # B67 B22 <- B20 Freq: 2.99827
0x00002aaaab122245: mov %r9d,%r10d
0x00002aaaab122248: add %edi,%r10d
0x00002aaaab12224b: cmp %r10d,%r8d
0x00002aaaab12224e: jb 0x00002aaaab122524
;; B22: # B67 B23 <- B21 Freq: 2.99827
0x00002aaaab122254: mov %eax,%r8d
0x00002aaaab122257: add %r9d,%r8d
0x00002aaaab12225a: cmp %r8d,%r11d
0x00002aaaab12225d: jb 0x00002aaaab122524
;; B23: # B25 B24 <- B22 Freq: 2.99827
0x00002aaaab122263: test %r9d,%r9d
0x00002aaaab122266: jle 0x00002aaaab122282
;; B24: # B25 <- B23 Freq: 2.99826
0x00002aaaab122268: lea 0x10(%rbp,%rdi,2),%rdi
0x00002aaaab12226d: lea 0x10(%rdx,%rax,2),%rsi
0x00002aaaab122272: movslq %r9d,%rdx
0x00002aaaab122275: mov $0x2aaaab0fce80,%r10
0x00002aaaab12227f: callq *%r10 ;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
;; B25: # B26 <- B24 B23 B68 Freq: 2.99828
0x00002aaaab122282: mov 0x30(%rsp),%r10
0x00002aaaab122287: mov %ebx,0xc(%r10) ;*invokevirtual append
; - Test::charlie@36 (line 15)
;; B26: # B10 B27 <- B11 B25 Freq: 2.99828
0x00002aaaab12228b: inc %r14d ;*iinc
; - Test::charlie@40 (line 14)
0x00002aaaab12228e: cmp %r13d,%r14d
0x00002aaaab122291: jl 0x00002aaaab1221d0 ;*if_icmpge
; - Test::charlie@23 (line 14)
;; B27: # B57 B28 <- B26 B6 Freq: 0.999984
0x00002aaaab122297: mov 0xc(%rsp),%r10d
0x00002aaaab12229c: neg %r10d
0x00002aaaab12229f: mov %r10d,0x14(%rsp)
0x00002aaaab1222a4: mov 0xc(%rsp),%r8d
0x00002aaaab1222a9: cmp $0x80000000,%r8d
0x00002aaaab1222b0: jne 0x00002aaaab122494
;; B28: # B32 <- B27 Freq: 0.499992
0x00002aaaab1222b6: mov $0xc,%r13d
0x00002aaaab1222bc: mov $0xb,%ebp
0x00002aaaab1222c1: jmp 0x00002aaaab1222db
;; B29: # B30 <- B30 top-of-loop Freq: 499992
0x00002aaaab1222c3: inc %ecx
;; B30: # B29 B31 <- B59 B29 Loop: B30-B29 inner Freq: 499992
0x00002aaaab1222c5: mov 0x10(%r11,%rcx,4),%r9d
0x00002aaaab1222ca: cmp %r9d,%r10d
0x00002aaaab1222cd: jg 0x00002aaaab1222c3
;; B31: # B32 <- B30 Freq: 0.499992
0x00002aaaab1222cf: add %ecx,%r13d
0x00002aaaab1222d2: mov %r13d,%ebp
0x00002aaaab1222d5: inc %ebp
0x00002aaaab1222d7: add $0x2,%r13d ;*getfield count
; - java.lang.String::getChars@15 (line 848)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@68 (line 17)
;; B32: # B73 B33 <- B28 B31 Freq: 0.999984
0x00002aaaab1222db: test %r13d,%r13d
0x00002aaaab1222de: jl 0x00002aaaab122609
;; B33: # B65 B34 <- B32 Freq: 0.999983
0x00002aaaab1222e4: cmp $0x80000,%r13d
0x00002aaaab1222eb: ja 0x00002aaaab1224f1
;; B34: # B65 B35 <- B33 Freq: 0.999982
0x00002aaaab1222f1: mov 0x70(%r15),%r14
0x00002aaaab1222f5: movslq %ebp,%r10
0x00002aaaab1222f8: shl %r10
0x00002aaaab1222fb: add $0x19,%r10
0x00002aaaab1222ff: and $0xfffffffffffffff8,%r10
0x00002aaaab122303: mov %r14,%r11
0x00002aaaab122306: add %r10,%r11
0x00002aaaab122309: cmp 0x80(%r15),%r11
0x00002aaaab122310: jae 0x00002aaaab1224f1
;; B35: # B36 <- B34 Freq: 0.999882
0x00002aaaab122316: mov %r11,0x70(%r15)
0x00002aaaab12231a: prefetchnta 0x100(%r11)
0x00002aaaab122322: movq $0x1,(%r14)
0x00002aaaab122329: prefetchnta 0x140(%r11)
0x00002aaaab122331: movl $0xc4200608,0x8(%r14) ; {oop({type array char})}
0x00002aaaab122339: mov %r13d,0xc(%r14)
0x00002aaaab12233d: prefetchnta 0x180(%r11) ;*getfield value
; - java.lang.String::getChars@47 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@68 (line 17)
;; B36: # B41 B37 <- B66 B35 Freq: 0.999983
0x00002aaaab122345: mov %r14,%rbx
0x00002aaaab122348: add $0x10,%rbx ;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@68 (line 17)
0x00002aaaab12234c: cmp $0x80000000,%r8d
0x00002aaaab122353: je 0x00002aaaab12236f
;; B37: # B40 B38 <- B36 Freq: 0.499992
0x00002aaaab122355: test %r8d,%r8d
0x00002aaaab122358: jge 0x00002aaaab122365
;; B38: # B39 <- B37 Freq: 0.249996
0x00002aaaab12235a: mov $0x2d,%r11d
;; B39: # B43 <- B38 B40 Freq: 0.499992
0x00002aaaab122360: mov %ebp,%r10d
0x00002aaaab122363: jmp 0x00002aaaab1223a7
;; B40: # B39 <- B37 Freq: 0.249996
0x00002aaaab122365: mov %r8d,0x14(%rsp)
0x00002aaaab12236a: xor %r11d,%r11d
0x00002aaaab12236d: jmp 0x00002aaaab122360
;; B41: # B46 <- B36 Freq: 0.499992
0x00002aaaab12236f: mov $0xb,%edx
0x00002aaaab122374: mov $0xc9412c78,%rdi ; {oop([C)}
0x00002aaaab12237e: add $0x10,%rdi
0x00002aaaab122382: mov %rbx,%rsi
0x00002aaaab122385: mov $0x2aaaab0fccc0,%r10
0x00002aaaab12238f: callq *%r10
0x00002aaaab122392: jmp 0x00002aaaab1223f7
0x00002aaaab122394: nop
0x00002aaaab122395: nop
0x00002aaaab122396: nop
0x00002aaaab122397: nop
0x00002aaaab122398: nop
0x00002aaaab122399: nop
0x00002aaaab12239a: nop
0x00002aaaab12239b: nop
0x00002aaaab12239c: nop
0x00002aaaab12239d: nop
0x00002aaaab12239e: nop
0x00002aaaab12239f: nop
;; B42: # B43 <- B43 top-of-loop Freq: 4.49992
0x00002aaaab1223a0: dec %r10d
0x00002aaaab1223a3: mov %edi,0x14(%rsp)
;; B43: # B42 B44 <- B39 B42 Loop: B43-B42 inner Freq: 4.99991
0x00002aaaab1223a7: mov 0x14(%rsp),%r9d
0x00002aaaab1223ac: sar $0x1f,%r9d
0x00002aaaab1223b0: movslq 0x14(%rsp),%r8
0x00002aaaab1223b5: imul $0x66666667,%r8,%r8
0x00002aaaab1223bc: sar $0x22,%r8
0x00002aaaab1223c0: mov %r8d,%r8d
0x00002aaaab1223c3: mov %r8d,%edi
0x00002aaaab1223c6: sub %r9d,%edi
0x00002aaaab1223c9: mov %edi,%ecx
0x00002aaaab1223cb: shl $0x3,%ecx
0x00002aaaab1223ce: mov %edi,%esi
0x00002aaaab1223d0: shl %esi
0x00002aaaab1223d2: add %ecx,%esi
0x00002aaaab1223d4: mov 0x14(%rsp),%edx
0x00002aaaab1223d8: sub %esi,%edx
0x00002aaaab1223da: add $0x30,%edx
0x00002aaaab1223dd: mov %dx,0xe(%r14,%r10,2)
0x00002aaaab1223e3: cmp %r9d,%r8d
0x00002aaaab1223e6: jne 0x00002aaaab1223a0
;; B44: # B46 B45 <- B43 Freq: 0.499992
0x00002aaaab1223e8: test %r11d,%r11d
0x00002aaaab1223eb: je 0x00002aaaab1223f7
;; B45: # B46 <- B44 Freq: 0.249996
0x00002aaaab1223ed: add $0xfffffffffffffffe,%r10d
0x00002aaaab1223f1: mov %r11w,0x10(%r14,%r10,2)
;; B46: # B55 B47 <- B45 B44 B41 Freq: 0.999983
0x00002aaaab1223f7: mov 0x10(%rsp),%r11d
0x00002aaaab1223fc: mov %r11w,0x10(%r14,%rbp,2)
0x00002aaaab122402: test %r13d,%r13d
0x00002aaaab122405: je 0x00002aaaab12247d ;*ifne
; - java.lang.AbstractStringBuilder::append@13 (line 387)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@68 (line 17)
;; B47: # B84 B48 <- B46 Freq: 0.999983
0x00002aaaab122407: mov 0x30(%rsp),%r10
0x00002aaaab12240c: mov 0x10(%r10),%r10d ;*getfield value
; - java.lang.AbstractStringBuilder::append@27 (line 389)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@68 (line 17)
0x00002aaaab122410: mov 0xc(%r10),%r11d ; implicit exception: dispatches to 0x00002aaaab122751
;; B48: # B77 B49 <- B47 Freq: 0.999982
0x00002aaaab122414: mov 0x30(%rsp),%r8
0x00002aaaab122419: mov 0xc(%r8),%r8d ;*getfield count
; - java.lang.AbstractStringBuilder::append@19 (line 388)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@68 (line 17)
0x00002aaaab12241d: mov %ebp,%r9d
0x00002aaaab122420: add %r8d,%r9d
0x00002aaaab122423: inc %r9d ;*iadd
; - java.lang.AbstractStringBuilder::append@23 (line 388)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@68 (line 17)
0x00002aaaab122426: mov %r9d,0x10(%rsp)
0x00002aaaab12242b: cmp %r11d,%r9d
0x00002aaaab12242e: jg 0x00002aaaab122659 ;*aload_1
; - java.lang.AbstractStringBuilder::append@39 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@68 (line 17)
;; B49: # B85 B50 <- B78 B48 Freq: 0.999982
0x00002aaaab122434: mov 0xc(%r10),%r11d ; implicit exception: dispatches to 0x00002aaaab122769
;; B50: # B74 B51 <- B49 Freq: 0.999981
0x00002aaaab122438: mov %r10,%rcx ;*getfield value
; - java.lang.AbstractStringBuilder::append@43 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@68 (line 17)
0x00002aaaab12243b: test %r8d,%r8d
0x00002aaaab12243e: jl 0x00002aaaab122625
;; B51: # B74 B52 <- B50 Freq: 0.999979
0x00002aaaab122444: add %r8d,%ebp
0x00002aaaab122447: inc %ebp
0x00002aaaab122449: cmp %ebp,%r11d
0x00002aaaab12244c: jb 0x00002aaaab122625
;; B52: # B54 B53 <- B51 Freq: 0.999978
0x00002aaaab122452: test %r13d,%r13d
0x00002aaaab122455: jle 0x00002aaaab12246f
;; B53: # B54 <- B52 Freq: 0.999977
0x00002aaaab122457: lea 0x10(%r10,%r8,2),%rsi
0x00002aaaab12245c: movslq %r13d,%rdx
0x00002aaaab12245f: mov %rbx,%rdi
0x00002aaaab122462: mov $0x2aaaab0fce80,%r10
0x00002aaaab12246c: callq *%r10 ;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@68 (line 17)
;; B54: # B55 <- B53 B52 B75 Freq: 0.999981
0x00002aaaab12246f: mov 0x30(%rsp),%r10
0x00002aaaab122474: mov 0x10(%rsp),%r8d
0x00002aaaab122479: mov %r8d,0xc(%r10) ;*invokevirtual append
; - Test::charlie@68 (line 17)
;; B55: # B95 B56 <- B46 B54 Freq: 0.999981
0x00002aaaab12247d: mov 0x30(%rsp),%rsi
0x00002aaaab122482: nop
0x00002aaaab122483: callq 0x00002aaaab0f2b20 ; OopMap{off=1256}
;*invokevirtual toString
; - Test::charlie@73 (line 18)
; {optimized virtual_call}
;; B56: # N1 <- B55 Freq: 0.999961
0x00002aaaab122488: add $0x50,%rsp
0x00002aaaab12248c: pop %rbp
0x00002aaaab12248d: test %eax,-0x42a493(%rip) # 0x00002aaaaacf8000
; {poll_return}
0x00002aaaab122493: retq
;; B57: # B60 B58 <- B27 Freq: 0.499992
0x00002aaaab122494: test %r8d,%r8d
0x00002aaaab122497: jge 0x00002aaaab1224b0
;; B58: # B59 <- B57 Freq: 0.249996
0x00002aaaab122499: mov $0x1,%r13d
;; B59: # B30 <- B58 B60 Freq: 0.499992
0x00002aaaab12249f: mov $0xc9414148,%r11 ; {oop([I)}
0x00002aaaab1224a9: xor %ecx,%ecx
0x00002aaaab1224ab: jmpq 0x00002aaaab1222c5
;; B60: # B59 <- B57 Freq: 0.249996
0x00002aaaab1224b0: mov %r8d,%r10d
0x00002aaaab1224b3: xor %r13d,%r13d
0x00002aaaab1224b6: jmp 0x00002aaaab12249f
;; B61: # B92 B62 <- B1 Freq: 0.000100017
0x00002aaaab1224b8: mov $0xc42692f0,%rsi ; {oop('java/lang/StringBuilder')}
0x00002aaaab1224c2: nop
0x00002aaaab1224c3: callq 0x00002aaaab1182e0 ; OopMap{[0]=Oop off=1320}
;*new ; - Test::charlie@0 (line 13)
; {runtime_call}
;; B62: # B3 <- B61 Freq: 0.000100015
0x00002aaaab1224c8: mov %rax,%r11
0x00002aaaab1224cb: jmpq 0x00002aaaab121ffc ;*invokespecial <init>
; - java.lang.AbstractStringBuilder::<init>@1 (line 44)
; - java.lang.StringBuilder::<init>@3 (line 68)
; - Test::charlie@4 (line 13)
;; B63: # B93 B64 <- B3 Freq: 0.000100017
0x00002aaaab1224d0: mov $0xc4200608,%rsi ; {oop({type array char})}
0x00002aaaab1224da: mov $0x10,%edx
0x00002aaaab1224df: mov %r11,0x18(%rsp)
0x00002aaaab1224e4: nop
0x00002aaaab1224e5: nop
0x00002aaaab1224e6: nop
0x00002aaaab1224e7: callq 0x00002aaaab118220 ; OopMap{[0]=Oop [24]=Oop [48]=Oop off=1356}
;*newarray
; - java.lang.AbstractStringBuilder::<init>@6 (line 45)
; - java.lang.StringBuilder::<init>@3 (line 68)
; - Test::charlie@4 (line 13)
; {runtime_call}
;; B64: # B5 <- B63 Freq: 0.000100015
0x00002aaaab1224ec: jmpq 0x00002aaaab12205a
;; B65: # B94 B66 <- B33 B34 Freq: 0.000101028
0x00002aaaab1224f1: mov %ebp,0xc(%rsp)
0x00002aaaab1224f5: mov %r13d,0x8(%rsp)
0x00002aaaab1224fa: mov %r8d,%ebp
0x00002aaaab1224fd: mov $0xc4200608,%rsi ; {oop({type array char})}
0x00002aaaab122507: mov %r13d,%edx
0x00002aaaab12250a: nop
0x00002aaaab12250b: callq 0x00002aaaab118220 ; OopMap{[48]=Oop off=1392}
;*new ; - Test::charlie@47 (line 17)
; {runtime_call}
;; B66: # B36 <- B65 Freq: 0.000101026
0x00002aaaab122510: mov %ebp,%r8d
0x00002aaaab122513: mov 0x8(%rsp),%r13d
0x00002aaaab122518: mov %rax,%r14
0x00002aaaab12251b: mov 0xc(%rsp),%ebp
0x00002aaaab12251f: jmpq 0x00002aaaab122345
;; B67: # B90 B68 <- B19 B20 B21 B22 Freq: 1.19931e-05
0x00002aaaab122524: mov %ebx,0x20(%rsp)
0x00002aaaab122528: mov %r9d,%r11d
0x00002aaaab12252b: mov %r14d,0x14(%rsp)
0x00002aaaab122530: mov %r13d,0x8(%rsp)
0x00002aaaab122535: mov %edi,%edx
0x00002aaaab122537: mov %eax,%r8d
0x00002aaaab12253a: mov %r11d,%r9d
0x00002aaaab12253d: nop
0x00002aaaab12253e: nop
0x00002aaaab12253f: callq 0x00002aaaab11b020 ; OopMap{[0]=Oop [48]=Oop off=1444}
;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
; {runtime_call}
;; B68: # B25 <- B67 Freq: 1.19929e-05
0x00002aaaab122544: mov 0x8(%rsp),%r13d
0x00002aaaab122549: mov 0x14(%rsp),%r14d
0x00002aaaab12254e: mov 0x20(%rsp),%ebx
0x00002aaaab122552: jmpq 0x00002aaaab122282
;; B69: # N1 <- B15 Freq: 1.4297e-06
0x00002aaaab122557: mov $0xce,%esi
0x00002aaaab12255c: mov (%rsp),%rbp
0x00002aaaab122560: mov %r14d,(%rsp)
0x00002aaaab122564: mov %r9d,0x4(%rsp)
0x00002aaaab122569: mov %r13d,0x8(%rsp)
0x00002aaaab12256e: mov %ebx,0x14(%rsp)
0x00002aaaab122572: nop
0x00002aaaab122573: callq 0x00002aaaab0f3fa0 ; OopMap{rbp=Oop [48]=Oop off=1496}
;*new ; - java.lang.String::getChars@21 (line 849)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
; {runtime_call}
0x00002aaaab122578: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab122582: rex.WB callq *%r10 ;*new ; - java.lang.String::getChars@21 (line 849)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
;; B70: # B87 B71 <- B13 Freq: 1.4297e-06
0x00002aaaab122585: mov %ebx,0x28(%rsp)
0x00002aaaab122589: mov %r9d,0x24(%rsp)
0x00002aaaab12258e: mov %r14d,0x14(%rsp)
0x00002aaaab122593: mov %r13d,0x8(%rsp)
0x00002aaaab122598: mov %r11,%rbp ;*aaload
; - Test::charlie@30 (line 14)
0x00002aaaab12259b: mov %r11d,0x20(%rsp)
0x00002aaaab1225a0: mov 0x30(%rsp),%rsi
0x00002aaaab1225a5: mov %ebx,%edx
0x00002aaaab1225a7: callq 0x00002aaaab0f2b20 ; OopMap{rbp=Oop [0]=Oop [32]=NarrowOop [48]=Oop off=1548}
;*invokevirtual expandCapacity
; - java.lang.AbstractStringBuilder::append@36 (line 390)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
; {optimized virtual_call}
;; B71: # B15 <- B70 Freq: 1.42967e-06
0x00002aaaab1225ac: mov 0x20(%rsp),%r11d
0x00002aaaab1225b1: mov 0x14(%r11),%r8d ;*getfield count
; - java.lang.String::getChars@15 (line 848)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
0x00002aaaab1225b5: mov 0x30(%rsp),%r10
0x00002aaaab1225ba: mov 0x10(%r10),%edx ;*getfield value
; - java.lang.AbstractStringBuilder::append@43 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
0x00002aaaab1225be: mov 0xc(%r10),%eax ;*getfield count
; - java.lang.AbstractStringBuilder::append@47 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
0x00002aaaab1225c2: mov 0x8(%rsp),%r13d
0x00002aaaab1225c7: mov 0x14(%rsp),%r14d
0x00002aaaab1225cc: mov 0x24(%rsp),%r9d
0x00002aaaab1225d1: mov 0x28(%rsp),%ebx
0x00002aaaab1225d5: jmpq 0x00002aaaab12220d
;; B72: # N1 <- B16 Freq: 1.42969e-06
0x00002aaaab1225da: mov $0xce,%esi
0x00002aaaab1225df: mov (%rsp),%rbp
0x00002aaaab1225e3: mov %r14d,(%rsp)
0x00002aaaab1225e7: mov %r9d,0x4(%rsp)
0x00002aaaab1225ec: mov %r13d,0x8(%rsp)
0x00002aaaab1225f1: mov %ebx,0x14(%rsp)
0x00002aaaab1225f5: nop
0x00002aaaab1225f6: nop
0x00002aaaab1225f7: callq 0x00002aaaab0f3fa0 ; OopMap{rbp=Oop [48]=Oop off=1628}
;*new ; - java.lang.String::getChars@35 (line 852)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
; {runtime_call}
0x00002aaaab1225fc: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab122606: rex.WB callq *%r10 ;*new ; - java.lang.String::getChars@35 (line 852)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
;; B73: # N1 <- B32 Freq: 9.99984e-07
0x00002aaaab122609: mov $0xffffffcc,%esi
0x00002aaaab12260e: mov %r8d,%ebp
0x00002aaaab122611: nop
0x00002aaaab122612: nop
0x00002aaaab122613: callq 0x00002aaaab0f3fa0 ; OopMap{[48]=Oop off=1656}
;*new ; - Test::charlie@47 (line 17)
; {runtime_call}
0x00002aaaab122618: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab122622: rex.WB callq *%r10
;; B74: # B88 B75 <- B51 B50 Freq: 1.99996e-06
0x00002aaaab122625: mov %r14,%rsi
0x00002aaaab122628: xor %edx,%edx
0x00002aaaab12262a: mov %r13d,%r9d
0x00002aaaab12262d: nop
0x00002aaaab12262e: nop
0x00002aaaab12262f: callq 0x00002aaaab11b020 ; OopMap{[48]=Oop off=1684}
;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@68 (line 17)
; {runtime_call}
;; B75: # B54 <- B74 Freq: 1.99992e-06
0x00002aaaab122634: jmpq 0x00002aaaab12246f
;; B76: # N1 <- B8 B7 Freq: 1.50975e-06
0x00002aaaab122639: mov $0xffffff86,%esi
0x00002aaaab12263e: mov (%rsp),%rbp
0x00002aaaab122642: mov %r13d,0x8(%rsp)
0x00002aaaab122647: callq 0x00002aaaab0f3fa0 ; OopMap{rbp=Oop [48]=Oop off=1708}
;*aload
; - Test::charlie@26 (line 14)
; {runtime_call}
0x00002aaaab12264c: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab122656: rex.WB callq *%r10 ;*aload
; - Test::charlie@26 (line 14)
;; B77: # B86 B78 <- B48 Freq: 4.76828e-07
0x00002aaaab122659: mov %r9d,0xc(%rsp)
0x00002aaaab12265e: mov %rbx,0x18(%rsp)
0x00002aaaab122663: mov %r14,0x10(%rsp)
0x00002aaaab122668: mov %r13d,0x8(%rsp) ;*ifne
; - java.lang.AbstractStringBuilder::append@13 (line 387)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@68 (line 17)
0x00002aaaab12266d: mov 0x30(%rsp),%rsi
0x00002aaaab122672: mov %r9d,%edx
0x00002aaaab122675: nop
0x00002aaaab122676: nop
0x00002aaaab122677: callq 0x00002aaaab0f2b20 ; OopMap{[16]=Oop [24]=Derived_oop_[16] [48]=Oop off=1756}
;*invokevirtual expandCapacity
; - java.lang.AbstractStringBuilder::append@36 (line 390)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@68 (line 17)
; {optimized virtual_call}
;; B78: # B49 <- B77 Freq: 4.76819e-07
0x00002aaaab12267c: mov 0x30(%rsp),%r10
0x00002aaaab122681: mov 0xc(%r10),%r8d ;*getfield count
; - java.lang.AbstractStringBuilder::append@47 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@68 (line 17)
0x00002aaaab122685: mov 0x10(%r10),%r10d ;*getfield value
; - java.lang.AbstractStringBuilder::append@43 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@68 (line 17)
0x00002aaaab122689: mov 0x8(%rsp),%r13d
0x00002aaaab12268e: mov 0x10(%rsp),%r14
0x00002aaaab122693: mov 0x18(%rsp),%rbx
0x00002aaaab122698: mov 0xc(%rsp),%r9d
0x00002aaaab12269d: mov %r9d,0x10(%rsp)
0x00002aaaab1226a2: jmpq 0x00002aaaab122434
;; B79: # N1 <- B12 Freq: 3.03811e-06
0x00002aaaab1226a7: mov $0xfffffff6,%esi
0x00002aaaab1226ac: nop
0x00002aaaab1226ad: nop
0x00002aaaab1226ae: nop
0x00002aaaab1226af: callq 0x00002aaaab0f3fa0 ; OopMap{off=1812}
;*arraylength
; - java.lang.AbstractStringBuilder::append@30 (line 389)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
; {runtime_call}
0x00002aaaab1226b4: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab1226be: rex.WB callq *%r10 ;*arraylength
; - java.lang.AbstractStringBuilder::append@30 (line 389)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
;; B80: # N1 <- B17 Freq: 3.0381e-06
0x00002aaaab1226c1: mov $0xfffffff6,%esi
0x00002aaaab1226c6: mov %r9d,%ebp
0x00002aaaab1226c9: mov %edi,(%rsp)
0x00002aaaab1226cc: mov %edx,0x4(%rsp)
0x00002aaaab1226d0: mov %eax,0x8(%rsp)
0x00002aaaab1226d4: nop
0x00002aaaab1226d5: nop
0x00002aaaab1226d6: nop
0x00002aaaab1226d7: callq 0x00002aaaab0f3fa0 ; OopMap{[4]=NarrowOop off=1852}
;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
; {runtime_call}
0x00002aaaab1226dc: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab1226e6: rex.WB callq *%r10
;; B81: # N1 <- B18 Freq: 3.0381e-06
0x00002aaaab1226e9: mov $0xfffffff6,%esi
0x00002aaaab1226ee: mov %r9d,(%rsp)
0x00002aaaab1226f2: mov %edi,0x4(%rsp)
0x00002aaaab1226f6: mov %eax,0x8(%rsp)
0x00002aaaab1226fa: nop
0x00002aaaab1226fb: callq 0x00002aaaab0f3fa0 ; OopMap{rbp=NarrowOop off=1888}
;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
; {runtime_call}
0x00002aaaab122700: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab12270a: rex.WB callq *%r10 ;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
;; B82: # N1 <- B10 Freq: 1.4297e-06
0x00002aaaab12270d: mov $0xffffffad,%esi
0x00002aaaab122712: mov (%rsp),%rbp
0x00002aaaab122716: mov %r14d,(%rsp)
0x00002aaaab12271a: mov %r11d,0x8(%rsp)
0x00002aaaab12271f: mov %r13d,0x14(%rsp)
0x00002aaaab122724: nop
0x00002aaaab122725: nop
0x00002aaaab122726: nop
0x00002aaaab122727: callq 0x00002aaaab0f3fa0 ; OopMap{rbp=Oop [8]=NarrowOop [48]=Oop off=1932}
;*ifnonnull
; - java.lang.AbstractStringBuilder::append@1 (line 385)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
; {runtime_call}
0x00002aaaab12272c: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab122736: rex.WB callq *%r10 ;*ifnonnull
; - java.lang.AbstractStringBuilder::append@1 (line 385)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
;; B83: # N1 <- B5 Freq: 1.01328e-06
0x00002aaaab122739: mov $0xfffffff6,%esi
0x00002aaaab12273e: nop
0x00002aaaab12273f: callq 0x00002aaaab0f3fa0 ; OopMap{off=1956}
;*arraylength
; - Test::charlie@13 (line 14)
; {runtime_call}
0x00002aaaab122744: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab12274e: rex.WB callq *%r10
;; B84: # N1 <- B47 Freq: 1.01326e-06
0x00002aaaab122751: mov $0xfffffff6,%esi
0x00002aaaab122756: nop
0x00002aaaab122757: callq 0x00002aaaab0f3fa0 ; OopMap{off=1980}
;*arraylength
; - java.lang.AbstractStringBuilder::append@30 (line 389)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@68 (line 17)
; {runtime_call}
0x00002aaaab12275c: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab122766: rex.WB callq *%r10
;; B85: # N1 <- B49 Freq: 1.01326e-06
0x00002aaaab122769: mov $0xfffffff6,%esi
0x00002aaaab12276e: mov %r14,%rbp
0x00002aaaab122771: mov %r8d,(%rsp)
0x00002aaaab122775: mov %r13d,0x4(%rsp)
0x00002aaaab12277a: nop
0x00002aaaab12277b: callq 0x00002aaaab0f3fa0 ; OopMap{rbp=Oop off=2016}
;*invokestatic arraycopy
; - java.lang.String::getChars@62 (line 854)
; - java.lang.AbstractStringBuilder::append@50 (line 391)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@68 (line 17)
; {runtime_call}
0x00002aaaab122780: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab12278a: rex.WB callq *%r10 ;*invokevirtual expandCapacity
; - java.lang.AbstractStringBuilder::append@36 (line 390)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@68 (line 17)
;; B86: # B89 <- B77 Freq: 4.76828e-12
0x00002aaaab12278d: jmp 0x00002aaaab122791 ;*invokevirtual expandCapacity
; - java.lang.AbstractStringBuilder::append@36 (line 390)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
;; B87: # B91 <- B70 Freq: 1.42969e-11
0x00002aaaab12278f: jmp 0x00002aaaab122796 ;*invokevirtual expandCapacity
; - java.lang.AbstractStringBuilder::append@36 (line 390)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@68 (line 17)
;; B88: # B89 <- B74 Freq: 1.99996e-11
;; B89: # B96 <- B86 B88 Freq: 2.47679e-11
0x00002aaaab122791: mov %rax,%rsi
0x00002aaaab122794: jmp 0x00002aaaab1227ad ;*invokevirtual expandCapacity
; - java.lang.AbstractStringBuilder::append@36 (line 390)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@36 (line 15)
;; B90: # B91 <- B67 Freq: 1.19931e-10
;; B91: # B96 <- B87 B90 Freq: 1.34228e-10
0x00002aaaab122796: mov %rax,%rsi
0x00002aaaab122799: jmp 0x00002aaaab1227ad ;*new
; - Test::charlie@0 (line 13)
;; B92: # B96 <- B61 Freq: 1.00017e-09
0x00002aaaab12279b: mov %rax,%rsi
0x00002aaaab12279e: jmp 0x00002aaaab1227ad ;*newarray
; - java.lang.AbstractStringBuilder::<init>@6 (line 45)
; - java.lang.StringBuilder::<init>@3 (line 68)
; - Test::charlie@4 (line 13)
;; B93: # B96 <- B63 Freq: 1.00017e-09
0x00002aaaab1227a0: mov %rax,%rsi
0x00002aaaab1227a3: jmp 0x00002aaaab1227ad ;*invokevirtual expandCapacity
; - java.lang.AbstractStringBuilder::append@36 (line 390)
; - java.lang.StringBuilder::append@2 (line 119)
; - Test::charlie@68 (line 17)
;; B94: # B96 <- B65 Freq: 1.01028e-09
0x00002aaaab1227a5: mov %rax,%rsi
0x00002aaaab1227a8: jmp 0x00002aaaab1227ad ;*invokevirtual toString
; - Test::charlie@73 (line 18)
;; B95: # B96 <- B55 Freq: 9.99981e-06
0x00002aaaab1227aa: mov %rax,%rsi ;*invokespecial <init>
; - Test::charlie@4 (line 13)
;; B96: # N1 <- B93 B91 B92 B95 B89 B94 Freq: 1.0003e-05
0x00002aaaab1227ad: add $0x50,%rsp
0x00002aaaab1227b1: pop %rbp
0x00002aaaab1227b2: jmpq 0x00002aaaab117a20 ; {runtime_call}
0x00002aaaab1227b7: hlt
0x00002aaaab1227b8: hlt
0x00002aaaab1227b9: hlt
0x00002aaaab1227ba: hlt
0x00002aaaab1227bb: hlt
0x00002aaaab1227bc: hlt
0x00002aaaab1227bd: hlt
0x00002aaaab1227be: hlt
0x00002aaaab1227bf: hlt
[Stub Code]
0x00002aaaab1227c0: mov $0x0,%rbx ; {no_reloc}
0x00002aaaab1227ca: jmpq 0x00002aaaab1227ca ; {runtime_call}
0x00002aaaab1227cf: mov $0x0,%rbx ; {static_stub}
0x00002aaaab1227d9: jmpq 0x00002aaaab1227d9 ; {runtime_call}
0x00002aaaab1227de: mov $0x0,%rbx ; {static_stub}
0x00002aaaab1227e8: jmpq 0x00002aaaab1227e8 ; {runtime_call}
[Exception Handler]
0x00002aaaab1227ed: jmpq 0x00002aaaab101c20 ; {runtime_call}
[Deopt Handler Code]
0x00002aaaab1227f2: callq 0x00002aaaab1227f7
0x00002aaaab1227f7: subq $0x5,(%rsp)
0x00002aaaab1227fc: jmpq 0x00002aaaab0f3ae0 ; {runtime_call}
0x00002aaaab122801: int3
0x00002aaaab122802: int3
0x00002aaaab122803: int3
0x00002aaaab122804: int3
0x00002aaaab122805: int3
0x00002aaaab122806: int3
0x00002aaaab122807: int3
Decoding compiled method 0x00002aaaab121a10:
Code:
[Entry Point]
[Verified Entry Point]
[Constants]
# {method} 'stringSize' '(I)I' in 'java/lang/Integer'
# parm0: rsi = int
# [sp+0x30] (sp of caller)
;; N1: # B1 <- B21 B22 Freq: 1
;; B1: # B20 B2 <- BLOCK HEAD IS JUNK Freq: 1
0x00002aaaab121b40: mov %eax,-0x8000(%rsp)
0x00002aaaab121b47: push %rbp
0x00002aaaab121b48: sub $0x20,%rsp ;*synchronization entry
; - java.lang.Integer::stringSize@-1 (line 361)
0x00002aaaab121b4c: mov $0xc9414068,%r10 ; {oop(a 'java/lang/Class' = 'java/lang/Integer')}
0x00002aaaab121b56: mov 0x80(%r10),%r9d ;*getstatic sizeTable
; - java.lang.Integer::stringSize@3 (line 362)
0x00002aaaab121b5d: mov 0x10(%r9),%r10d
0x00002aaaab121b61: cmp %r10d,%esi
0x00002aaaab121b64: jle 0x00002aaaab121bfe
;; B2: # B19 B3 <- B1 Freq: 0.499951
0x00002aaaab121b6a: mov 0x14(%r9),%r11d
0x00002aaaab121b6e: cmp %r11d,%esi
0x00002aaaab121b71: jle 0x00002aaaab121bf7
;; B3: # B18 B4 <- B2 Freq: 0.249951
0x00002aaaab121b77: mov 0x18(%r9),%r11d
0x00002aaaab121b7b: cmp %r11d,%esi
0x00002aaaab121b7e: jle 0x00002aaaab121bf0
;; B4: # B17 B5 <- B3 Freq: 0.124964
0x00002aaaab121b80: mov 0x1c(%r9),%r11d
0x00002aaaab121b84: cmp %r11d,%esi
0x00002aaaab121b87: jle 0x00002aaaab121be9
;; B5: # B16 B6 <- B4 Freq: 0.0624757
0x00002aaaab121b89: mov 0x20(%r9),%r11d
0x00002aaaab121b8d: cmp %r11d,%esi
0x00002aaaab121b90: jle 0x00002aaaab121be2 ;*if_icmpgt
; - java.lang.Integer::stringSize@8 (line 362)
;; B6: # B15 B7 <- B5 Freq: 0.0312348
0x00002aaaab121b92: mov 0x24(%r9),%r11d ;*iaload
; - java.lang.Integer::stringSize@7 (line 362)
0x00002aaaab121b96: cmp %r11d,%esi
0x00002aaaab121b99: jle 0x00002aaaab121bdb ;*if_icmpgt
; - java.lang.Integer::stringSize@8 (line 362)
;; B7: # B14 B8 <- B6 Freq: 0.0156159
0x00002aaaab121b9b: mov 0x28(%r9),%r11d ;*iaload
; - java.lang.Integer::stringSize@7 (line 362)
0x00002aaaab121b9f: cmp %r11d,%esi
0x00002aaaab121ba2: jle 0x00002aaaab121bd4 ;*if_icmpgt
; - java.lang.Integer::stringSize@8 (line 362)
;; B8: # B13 B9 <- B7 Freq: 0.00780719
0x00002aaaab121ba4: mov 0x2c(%r9),%r11d ;*iaload
; - java.lang.Integer::stringSize@7 (line 362)
0x00002aaaab121ba8: cmp %r11d,%esi
0x00002aaaab121bab: jle 0x00002aaaab121bcd ;*if_icmpgt
; - java.lang.Integer::stringSize@8 (line 362)
;; B9: # B12 B10 <- B8 Freq: 0.00390321
0x00002aaaab121bad: mov 0x30(%r9),%r11d ;*iaload
; - java.lang.Integer::stringSize@7 (line 362)
0x00002aaaab121bb1: cmp %r11d,%esi
0x00002aaaab121bb4: jle 0x00002aaaab121bc6 ;*if_icmpgt
; - java.lang.Integer::stringSize@8 (line 362)
;; B10: # B22 B11 <- B9 Freq: 0.00195142
0x00002aaaab121bb6: mov 0x34(%r9),%r10d ;*iaload
; - java.lang.Integer::stringSize@7 (line 362)
0x00002aaaab121bba: cmp %r10d,%esi
0x00002aaaab121bbd: jg 0x00002aaaab121c0f ;*if_icmpgt
; - java.lang.Integer::stringSize@8 (line 362)
;; B11: # B21 <- B10 Freq: 0.00195142
0x00002aaaab121bbf: mov $0xa,%eax
0x00002aaaab121bc4: jmp 0x00002aaaab121c03
;; B12: # B21 <- B9 Freq: 0.0019518
0x00002aaaab121bc6: mov $0x9,%eax
0x00002aaaab121bcb: jmp 0x00002aaaab121c03
;; B13: # B21 <- B8 Freq: 0.00390397
0x00002aaaab121bcd: mov $0x8,%eax
0x00002aaaab121bd2: jmp 0x00002aaaab121c03
;; B14: # B21 <- B7 Freq: 0.00780871
0x00002aaaab121bd4: mov $0x7,%eax
0x00002aaaab121bd9: jmp 0x00002aaaab121c03
;; B15: # B21 <- B6 Freq: 0.0156189
0x00002aaaab121bdb: mov $0x6,%eax
0x00002aaaab121be0: jmp 0x00002aaaab121c03
;; B16: # B21 <- B5 Freq: 0.0312409
0x00002aaaab121be2: mov $0x5,%eax
0x00002aaaab121be7: jmp 0x00002aaaab121c03
;; B17: # B21 <- B4 Freq: 0.0624879
0x00002aaaab121be9: mov $0x4,%eax
0x00002aaaab121bee: jmp 0x00002aaaab121c03
;; B18: # B21 <- B3 Freq: 0.124988
0x00002aaaab121bf0: mov $0x3,%eax
0x00002aaaab121bf5: jmp 0x00002aaaab121c03
;; B19: # B21 <- B2 Freq: 0.25
0x00002aaaab121bf7: mov $0x2,%eax
0x00002aaaab121bfc: jmp 0x00002aaaab121c03
;; B20: # B21 <- B1 Freq: 0.500049
0x00002aaaab121bfe: mov $0x1,%eax ;*iadd
; - java.lang.Integer::stringSize@13 (line 363)
;; B21: # N1 <- B19 B18 B14 B16 B12 B17 B13 B15 B11 B20 Freq: 1
0x00002aaaab121c03: add $0x20,%rsp
0x00002aaaab121c07: pop %rbp
0x00002aaaab121c08: test %eax,-0x429c0e(%rip) # 0x00002aaaaacf8000
; {poll_return}
0x00002aaaab121c0e: retq
;; B22: # N1 <- B10 Freq: 1.97733e-09
0x00002aaaab121c0f: mov %esi,(%rsp)
0x00002aaaab121c12: mov %r9d,0x4(%rsp)
0x00002aaaab121c17: mov $0xffffffe4,%esi
0x00002aaaab121c1c: nop
0x00002aaaab121c1d: nop
0x00002aaaab121c1e: nop
0x00002aaaab121c1f: callq 0x00002aaaab0f3fa0 ; OopMap{[4]=NarrowOop off=228}
;*iaload
; - java.lang.Integer::stringSize@7 (line 362)
; {runtime_call}
0x00002aaaab121c24: mov $0x2ae74d33c620,%r10 ; {runtime_call}
0x00002aaaab121c2e: rex.WB callq *%r10 ;*iinc
; - java.lang.Integer::stringSize@15 (line 361)
0x00002aaaab121c31: hlt
0x00002aaaab121c32: hlt
0x00002aaaab121c33: hlt
0x00002aaaab121c34: hlt
0x00002aaaab121c35: hlt
0x00002aaaab121c36: hlt
0x00002aaaab121c37: hlt
0x00002aaaab121c38: hlt
0x00002aaaab121c39: hlt
0x00002aaaab121c3a: hlt
0x00002aaaab121c3b: hlt
0x00002aaaab121c3c: hlt
0x00002aaaab121c3d: hlt
0x00002aaaab121c3e: hlt
0x00002aaaab121c3f: hlt
[Exception Handler]
[Stub Code]
0x00002aaaab121c40: jmpq 0x00002aaaab101c20 ; {no_reloc}
[Deopt Handler Code]
0x00002aaaab121c45: callq 0x00002aaaab121c4a
0x00002aaaab121c4a: subq $0x5,(%rsp)
0x00002aaaab121c4f: jmpq 0x00002aaaab0f3ae0 ; {runtime_call}
0x00002aaaab121c54: int3
0x00002aaaab121c55: int3
0x00002aaaab121c56: int3
0x00002aaaab121c57: int3
===================================================================================================================
# before: alpha(String, int, char[]), beta(String, int, char[])
VM option '+UnlockDiagnosticVMOptions'
VM option '+LogCompilation'
VM option '+PrintCompilation'
VM option '+AggressiveOpts'
VM option '+PrintOptimizeStringConcat'
CompilerOracle: exclude *.main
446 1 n java.lang.System::arraycopy (0 bytes) (static)
518 3 java.lang.AbstractStringBuilder::stringSizeOfInt (21 bytes)
528 2 java.lang.Object::<init> (1 bytes)
542 4 java.lang.Integer::getChars (131 bytes)
### Excluding compile: static Test::main
820 5 java.lang.String::length (5 bytes)
822 6 java.lang.Math::min (11 bytes)
824 7 java.lang.String::getChars (66 bytes)
829 8 java.lang.AbstractStringBuilder::append (60 bytes)
Warning: TraceDependencies results may be inflated by VerifyDependencies
838 9 java.lang.StringBuilder::append (8 bytes)
846 10 java.lang.String::<init> (72 bytes)
856 11 java.util.Arrays::copyOfRange (63 bytes)
858 12 java.lang.AbstractStringBuilder::<init> (12 bytes)
862 13 java.lang.StringBuilder::toString (17 bytes)
872 14 java.lang.StringBuilder::<init> (7 bytes)
876 15 Test::alpha (23 bytes)
considering toString call in Test::alpha @ bci:19
fusion would fail for
28 Allocate === 5 6 7 8 1 ( 26 24 25 1 10 11 12 ) [[ 29 30 31 38 39 40 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Test::alpha @ bci:0 !jvms: Test::alpha @ bci:0
290 Proj === 289 [[ 309 301 ]] #0 !jvms: AbstractStringBuilder::append @ bci:34 StringBuilder::append @ bci:2 Test::alpha @ bci:16
289 MemBarCPUOrder === 251 1 196 1 1 [[ 290 291 ]] !jvms: AbstractStringBuilder::append @ bci:34 StringBuilder::append @ bci:2 Test::alpha @ bci:16
fusion would fail for region
28 Allocate === 5 6 7 8 1 ( 26 24 25 1 10 11 12 ) [[ 29 30 31 38 39 40 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Test::alpha @ bci:0 !jvms: Test::alpha @ bci:0
256 If === 250 255 [[ 257 258 ]] P=0.000001, C=-1.000000 !jvms: AbstractStringBuilder::append @ bci:34 StringBuilder::append @ bci:2 Test::alpha @ bci:16
283 Catch === 278 281 [[ 284 285 ]] !jvms: AbstractStringBuilder::append @ bci:34 StringBuilder::append @ bci:2 Test::alpha @ bci:16
271 CallLeafNoFP === 258 1 214 8 1 ( 264 269 263 1 ) [[ 272 274 ]] # jshort_arraycopy void ( NotNull *+bot, NotNull *+bot, long, half ) !jvms: AbstractStringBuilder::append @ bci:34 StringBuilder::append @ bci:2 Test::alpha @ bci:16
257 IfTrue === 256 [[ 251 ]] #1 !jvms: AbstractStringBuilder::append @ bci:34 StringBuilder::append @ bci:2 Test::alpha @ bci:16
284 CatchProj === 283 [[ 251 ]] #0@bci -1 !jvms: AbstractStringBuilder::append @ bci:34 StringBuilder::append @ bci:2 Test::alpha @ bci:16
272 Proj === 271 [[ 251 ]] #0 !jvms: AbstractStringBuilder::append @ bci:34 StringBuilder::append @ bci:2 Test::alpha @ bci:16
251 Region === 251 272 _ 284 257 _ [[ 251 252 253 289 ]] !jvms: AbstractStringBuilder::append @ bci:34 StringBuilder::append @ bci:2 Test::alpha @ bci:16
923 16 java.lang.StringBuilder::append (8 bytes)
932 17 java.lang.AbstractStringBuilder::append (71 bytes)
952 18 java.lang.StringBuilder::append (8 bytes)
959 19 java.lang.AbstractStringBuilder::append (44 bytes)
3852 20 Test::beta (20 bytes)
3852 21 java.lang.StringBuilder::<init> (18 bytes)
considering toString call in Test::beta @ bci:16
fusion would fail for
28 Allocate === 5 6 7 8 1 ( 26 24 25 1 10 11 12 ) [[ 29 30 31 38 39 40 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Test::beta @ bci:0 !jvms: Test::beta @ bci:0
259 Proj === 258 [[ 278 270 ]] #0 !jvms: AbstractStringBuilder::append @ bci:34 StringBuilder::append @ bci:2 Test::beta @ bci:13
258 MemBarCPUOrder === 220 1 165 1 1 [[ 259 260 ]] !jvms: AbstractStringBuilder::append @ bci:34 StringBuilder::append @ bci:2 Test::beta @ bci:13
fusion would fail for region
28 Allocate === 5 6 7 8 1 ( 26 24 25 1 10 11 12 ) [[ 29 30 31 38 39 40 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Test::beta @ bci:0 !jvms: Test::beta @ bci:0
225 If === 219 224 [[ 226 227 ]] P=0.000001, C=-1.000000 !jvms: AbstractStringBuilder::append @ bci:34 StringBuilder::append @ bci:2 Test::beta @ bci:13
252 Catch === 247 250 [[ 253 254 ]] !jvms: AbstractStringBuilder::append @ bci:34 StringBuilder::append @ bci:2 Test::beta @ bci:13
240 CallLeafNoFP === 227 1 183 8 1 ( 233 238 232 1 ) [[ 241 243 ]] # jshort_arraycopy void ( NotNull *+bot, NotNull *+bot, long, half ) !jvms: AbstractStringBuilder::append @ bci:34 StringBuilder::append @ bci:2 Test::beta @ bci:13
226 IfTrue === 225 [[ 220 ]] #1 !jvms: AbstractStringBuilder::append @ bci:34 StringBuilder::append @ bci:2 Test::beta @ bci:13
253 CatchProj === 252 [[ 220 ]] #0@bci -1 !jvms: AbstractStringBuilder::append @ bci:34 StringBuilder::append @ bci:2 Test::beta @ bci:13
241 Proj === 240 [[ 220 ]] #0 !jvms: AbstractStringBuilder::append @ bci:34 StringBuilder::append @ bci:2 Test::beta @ bci:13
220 Region === 220 241 _ 253 226 _ [[ 220 221 222 258 ]] !jvms: AbstractStringBuilder::append @ bci:34 StringBuilder::append @ bci:2 Test::beta @ bci:13
6396 22 Test::charlie (77 bytes)
considering toString call in Test::charlie @ bci:65
fusion would succeed (2 0) for Test::charlie @ bci:47
11 Parm === 3 [[ 230 213 188 28 155 141 48 119 106 367 ]] Parm1: int !jvms: Test::charlie @ bci:-1
12 Parm === 3 [[ 266 274 248 28 230 213 48 188 155 141 106 119 367 ]] Parm2: char !jvms: Test::charlie @ bci:-1
0--> 266 CallStaticJava === 272 261 262 8 1 ( 279 12 1 1 1 45 1 1 1 1 45 ) [[ 280 281 282 284 293 292 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, char ) Test::charlie @ bci:62 !jvms: Test::charlie @ bci:62
1--> 248 CallStaticJava === 238 243 244 8 1 ( 205 235 1 1 12 45 1 1 1 1 45 ) [[ 249 250 251 253 262 261 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Test::charlie @ bci:58 !jvms: Test::charlie @ bci:58
2--> 230 CallStaticJava === 220 225 226 8 1 ( 11 1 1 12 45 1 1 1 1 45 205 ) [[ 231 232 233 235 244 243 ]] # Static java.lang.Integer::toString java/lang/String:exact * ( int ) Test::charlie @ bci:55 !jvms: Test::charlie @ bci:55
3--> 297 CallStaticJava === 303 292 293 8 1 ( 310 1 1 1 45 1 1 1 1 45 ) [[ 311 312 313 315 324 323 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Test::charlie @ bci:65 !jvms: Test::charlie @ bci:65
4--> 213 CallStaticJava === 202 199 187 8 1 ( 205 1 11 12 45 1 1 1 1 45 205 ) [[ 214 215 216 226 225 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact * ) Test::charlie @ bci:51 !jvms: Test::charlie @ bci:51
5--> 188 Allocate === 93 185 186 8 1 ( 26 24 25 1 1 11 12 45 1 1 1 1 45 ) [[ 189 190 191 198 199 200 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Test::charlie @ bci:47 !jvms: Test::charlie @ bci:47
6--> 303 IfTrue === 302 [[ 297 310 ]] #1 !jvms: Test::charlie @ bci:65
7--> 272 IfTrue === 271 [[ 266 279 ]] #1 !jvms: Test::charlie @ bci:62
considering toString call in Test::charlie @ bci:73
fusion would fail for
28 Allocate === 5 6 7 8 1 ( 26 24 25 1 10 11 12 1 1 1 1 1 ) [[ 29 30 31 38 39 40 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Test::charlie @ bci:0 !jvms: Test::charlie @ bci:0
336 CatchProj === 335 [[ 346 ]] #0@bci -1 !jvms: Test::charlie @ bci:68
335 Catch === 329 330 [[ 336 337 ]] !jvms: Test::charlie @ bci:68
329 Proj === 328 [[ 335 ]] #0 !jvms: Test::charlie @ bci:68
328 CallStaticJava === 318 323 324 8 1 ( 45 315 1 1 1 45 1 1 1 1 ) [[ 329 330 331 342 341 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Test::charlie @ bci:68 !jvms: Test::charlie @ bci:68
318 CatchProj === 317 [[ 328 ]] #0@bci -1 !jvms: Test::charlie @ bci:65
317 Catch === 311 312 [[ 318 319 ]] !jvms: Test::charlie @ bci:65
311 Proj === 297 [[ 317 ]] #0 !jvms: Test::charlie @ bci:65
297 CallStaticJava === 303 292 293 8 1 ( 310 1 1 1 45 1 1 1 1 45 ) [[ 311 312 313 315 324 323 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Test::charlie @ bci:65 !jvms: Test::charlie @ bci:65
287 CatchProj === 286 [[ 302 ]] #0@bci -1 !jvms: Test::charlie @ bci:62
286 Catch === 280 281 [[ 287 288 ]] !jvms: Test::charlie @ bci:62
280 Proj === 266 [[ 286 ]] #0 !jvms: Test::charlie @ bci:62
266 CallStaticJava === 272 261 262 8 1 ( 279 12 1 1 1 45 1 1 1 1 45 ) [[ 280 281 282 284 293 292 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, char ) Test::charlie @ bci:62 !jvms: Test::charlie @ bci:62
256 CatchProj === 255 [[ 271 ]] #0@bci -1 !jvms: Test::charlie @ bci:58
255 Catch === 249 250 [[ 256 257 ]] !jvms: Test::charlie @ bci:58
249 Proj === 248 [[ 255 ]] #0 !jvms: Test::charlie @ bci:58
248 CallStaticJava === 238 243 244 8 1 ( 205 235 1 1 12 45 1 1 1 1 45 ) [[ 249 250 251 253 262 261 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Test::charlie @ bci:58 !jvms: Test::charlie @ bci:58
238 CatchProj === 237 [[ 248 ]] #0@bci -1 !jvms: Test::charlie @ bci:55
237 Catch === 231 232 [[ 238 239 ]] !jvms: Test::charlie @ bci:55
231 Proj === 230 [[ 237 ]] #0 !jvms: Test::charlie @ bci:55
230 CallStaticJava === 220 225 226 8 1 ( 11 1 1 12 45 1 1 1 1 45 205 ) [[ 231 232 233 235 244 243 ]] # Static java.lang.Integer::toString java/lang/String:exact * ( int ) Test::charlie @ bci:55 !jvms: Test::charlie @ bci:55
220 CatchProj === 219 [[ 230 ]] #0@bci -1 !jvms: Test::charlie @ bci:51
219 Catch === 214 215 [[ 220 221 ]] !jvms: Test::charlie @ bci:51
214 Proj === 213 [[ 219 ]] #0 !jvms: Test::charlie @ bci:51
213 CallStaticJava === 202 199 187 8 1 ( 205 1 11 12 45 1 1 1 1 45 205 ) [[ 214 215 216 226 225 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact * ) Test::charlie @ bci:51 !jvms: Test::charlie @ bci:51
193 CatchProj === 192 [[ 201 ]] #0@bci -1 !jvms: Test::charlie @ bci:47
192 Catch === 189 191 [[ 193 194 ]] !jvms: Test::charlie @ bci:47
189 Proj === 188 [[ 192 ]] #0 !jvms: Test::charlie @ bci:47
188 Allocate === 93 185 186 8 1 ( 26 24 25 1 1 11 12 45 1 1 1 1 45 ) [[ 189 190 191 198 199 200 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Test::charlie @ bci:47 !jvms: Test::charlie @ bci:47
fusion would fail for region
28 Allocate === 5 6 7 8 1 ( 26 24 25 1 10 11 12 1 1 1 1 1 ) [[ 29 30 31 38 39 40 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Test::charlie @ bci:0 !jvms: Test::charlie @ bci:0
88 If === 71 87 [[ 89 90 ]] P=0.250104, C=7241.000000 !jvms: Test::charlie @ bci:23
180 If === 163 179 [[ 181 182 ]] P=0.749896, C=5430.000000 !jvms: Test::charlie @ bci:23
89 IfTrue === 88 [[ 93 ]] #1 !jvms: Test::charlie @ bci:23
182 IfFalse === 180 [[ 93 ]] #0 !jvms: Test::charlie @ bci:23
93 Region === 93 182 89 [[ 93 188 185 186 ]] !jvms: Test::charlie @ bci:46
6407 23 java.lang.Integer::stringSize (21 bytes)
===================================================================================================================
# after: alpha(String, int, char), beta(String, int, char)
java -cp . -XX:+PrintOptimizeStringConcat Test
VM option '+UnlockDiagnosticVMOptions'
VM option '+LogCompilation'
VM option '+PrintCompilation'
VM option '+AggressiveOpts'
VM option '+PrintOptimizeStringConcat'
CompilerOracle: exclude *.main
452 2 n java.lang.System::arraycopy (0 bytes) (static)
458 1 java.lang.Object::<init> (1 bytes)
475 4 java.lang.Integer::getChars (131 bytes)
488 3 java.lang.AbstractStringBuilder::stringSizeOfInt (21 bytes)
521 5 java.lang.String::length (5 bytes)
524 6 java.lang.StringBuilder::append (8 bytes)
Warning: TraceDependencies results may be inflated by VerifyDependencies
529 7 java.lang.AbstractStringBuilder::append (40 bytes)
531 8 java.lang.Math::min (11 bytes)
533 9 java.lang.String::getChars (66 bytes)
538 10 java.lang.AbstractStringBuilder::append (60 bytes)
547 11 java.lang.StringBuilder::append (8 bytes)
### Excluding compile: static Test::main
556 12 java.lang.String::<init> (72 bytes)
567 13 java.util.Arrays::copyOfRange (63 bytes)
574 14 java.lang.AbstractStringBuilder::<init> (12 bytes)
576 15 java.lang.StringBuilder::toString (17 bytes)
586 16 java.lang.StringBuilder::<init> (7 bytes)
588 17 Test::alpha (23 bytes)
considering toString call in Test::alpha @ bci:19
fusion would succeed (3 0) for Test::alpha @ bci:0
10 Parm === 3 [[ 65 48 28 185 ]] Parm0: java/lang/String:exact * Oop:java/lang/String:exact * !jvms: Test::alpha @ bci:-1
11 Parm === 3 [[ 87 97 65 28 48 185 ]] Parm1: int !jvms: Test::alpha @ bci:-1
12 Parm === 3 [[ 120 128 87 28 65 48 185 ]] Parm2: char !jvms: Test::alpha @ bci:-1
0--> 120 CallStaticJava === 126 115 116 8 1 ( 133 12 1 1 1 ) [[ 134 135 136 138 147 146 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, char ) Test::alpha @ bci:16 !jvms: Test::alpha @ bci:16
1--> 87 CallStaticJava === 94 78 79 8 1 ( 102 11 1 1 12 ) [[ 103 104 105 107 116 115 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, int ) Test::alpha @ bci:12 !jvms: Test::alpha @ bci:12
2--> 65 CallStaticJava === 55 60 61 8 1 ( 45 10 1 11 12 ) [[ 66 67 68 70 79 78 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Test::alpha @ bci:8 !jvms: Test::alpha @ bci:8
3--> 151 CallStaticJava === 157 146 147 8 1 ( 164 1 1 1 ) [[ 165 166 167 169 178 177 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Test::alpha @ bci:19 !jvms: Test::alpha @ bci:19
4--> 48 CallStaticJava === 42 39 27 8 1 ( 45 10 11 12 45 ) [[ 49 50 51 61 60 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact * ) Test::alpha @ bci:4 !jvms: Test::alpha @ bci:4
5--> 28 Allocate === 5 6 7 8 1 ( 26 24 25 1 10 11 12 ) [[ 29 30 31 38 39 40 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Test::alpha @ bci:0 !jvms: Test::alpha @ bci:0
6--> 157 IfTrue === 156 [[ 151 164 ]] #1 !jvms: Test::alpha @ bci:19
7--> 126 IfTrue === 125 [[ 120 133 ]] #1 !jvms: Test::alpha @ bci:16
8--> 94 IfTrue === 93 [[ 87 102 ]] #1 !jvms: Test::alpha @ bci:12
606 19 java.lang.AbstractStringBuilder::append (71 bytes)
618 18 java.lang.StringBuilder::append (8 bytes)
2363 21 java.lang.StringBuilder::<init> (18 bytes)
2375 20 Test::beta (20 bytes)
considering toString call in Test::beta @ bci:16
fusion would succeed (2 0) for Test::beta @ bci:0
10 Parm === 3 [[ 48 28 154 ]] Parm0: java/lang/String:exact * Oop:java/lang/String:exact * !jvms: Test::beta @ bci:-1
11 Parm === 3 [[ 65 48 28 154 ]] Parm1: int !jvms: Test::beta @ bci:-1
12 Parm === 3 [[ 87 97 65 28 48 154 ]] Parm2: char !jvms: Test::beta @ bci:-1
0--> 87 CallStaticJava === 94 78 79 8 1 ( 102 12 1 1 1 ) [[ 103 104 105 107 116 115 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, char ) Test::beta @ bci:13 !jvms: Test::beta @ bci:13
1--> 65 CallStaticJava === 55 60 61 8 1 ( 45 11 1 1 12 ) [[ 66 67 68 70 79 78 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, int ) Test::beta @ bci:9 !jvms: Test::beta @ bci:9
2--> 120 CallStaticJava === 126 115 116 8 1 ( 133 1 1 1 ) [[ 134 135 136 138 147 146 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Test::beta @ bci:16 !jvms: Test::beta @ bci:16
3--> 48 CallStaticJava === 42 39 27 8 1 ( 45 10 1 11 12 45 ) [[ 49 50 51 61 60 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Test::beta @ bci:5 !jvms: Test::beta @ bci:5
4--> 28 Allocate === 5 6 7 8 1 ( 26 24 25 1 10 11 12 ) [[ 29 30 31 38 39 40 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Test::beta @ bci:0 !jvms: Test::beta @ bci:0
5--> 126 IfTrue === 125 [[ 120 133 ]] #1 !jvms: Test::beta @ bci:16
6--> 94 IfTrue === 93 [[ 87 102 ]] #1 !jvms: Test::beta @ bci:13
4098 22 Test::charlie (77 bytes)
considering toString call in Test::charlie @ bci:65
fusion would succeed (2 0) for Test::charlie @ bci:47
11 Parm === 3 [[ 230 213 188 28 155 141 48 119 106 367 ]] Parm1: int !jvms: Test::charlie @ bci:-1
12 Parm === 3 [[ 266 274 248 28 230 213 48 188 155 141 106 119 367 ]] Parm2: char !jvms: Test::charlie @ bci:-1
0--> 266 CallStaticJava === 272 261 262 8 1 ( 279 12 1 1 1 45 1 1 1 1 45 ) [[ 280 281 282 284 293 292 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, char ) Test::charlie @ bci:62 !jvms: Test::charlie @ bci:62
1--> 248 CallStaticJava === 238 243 244 8 1 ( 205 235 1 1 12 45 1 1 1 1 45 ) [[ 249 250 251 253 262 261 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Test::charlie @ bci:58 !jvms: Test::charlie @ bci:58
2--> 230 CallStaticJava === 220 225 226 8 1 ( 11 1 1 12 45 1 1 1 1 45 205 ) [[ 231 232 233 235 244 243 ]] # Static java.lang.Integer::toString java/lang/String:exact * ( int ) Test::charlie @ bci:55 !jvms: Test::charlie @ bci:55
3--> 297 CallStaticJava === 303 292 293 8 1 ( 310 1 1 1 45 1 1 1 1 45 ) [[ 311 312 313 315 324 323 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Test::charlie @ bci:65 !jvms: Test::charlie @ bci:65
4--> 213 CallStaticJava === 202 199 187 8 1 ( 205 1 11 12 45 1 1 1 1 45 205 ) [[ 214 215 216 226 225 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact * ) Test::charlie @ bci:51 !jvms: Test::charlie @ bci:51
5--> 188 Allocate === 93 185 186 8 1 ( 26 24 25 1 1 11 12 45 1 1 1 1 45 ) [[ 189 190 191 198 199 200 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Test::charlie @ bci:47 !jvms: Test::charlie @ bci:47
6--> 303 IfTrue === 302 [[ 297 310 ]] #1 !jvms: Test::charlie @ bci:65
7--> 272 IfTrue === 271 [[ 266 279 ]] #1 !jvms: Test::charlie @ bci:62
considering toString call in Test::charlie @ bci:73
fusion would fail for
28 Allocate === 5 6 7 8 1 ( 26 24 25 1 10 11 12 1 1 1 1 1 ) [[ 29 30 31 38 39 40 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Test::charlie @ bci:0 !jvms: Test::charlie @ bci:0
336 CatchProj === 335 [[ 346 ]] #0@bci -1 !jvms: Test::charlie @ bci:68
335 Catch === 329 330 [[ 336 337 ]] !jvms: Test::charlie @ bci:68
329 Proj === 328 [[ 335 ]] #0 !jvms: Test::charlie @ bci:68
328 CallStaticJava === 318 323 324 8 1 ( 45 315 1 1 1 45 1 1 1 1 ) [[ 329 330 331 342 341 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Test::charlie @ bci:68 !jvms: Test::charlie @ bci:68
318 CatchProj === 317 [[ 328 ]] #0@bci -1 !jvms: Test::charlie @ bci:65
317 Catch === 311 312 [[ 318 319 ]] !jvms: Test::charlie @ bci:65
311 Proj === 297 [[ 317 ]] #0 !jvms: Test::charlie @ bci:65
297 CallStaticJava === 303 292 293 8 1 ( 310 1 1 1 45 1 1 1 1 45 ) [[ 311 312 313 315 324 323 ]] # Static java.lang.StringBuilder::toString java/lang/String:exact * ( java/lang/StringBuilder:NotNull:exact * ) Test::charlie @ bci:65 !jvms: Test::charlie @ bci:65
287 CatchProj === 286 [[ 302 ]] #0@bci -1 !jvms: Test::charlie @ bci:62
286 Catch === 280 281 [[ 287 288 ]] !jvms: Test::charlie @ bci:62
280 Proj === 266 [[ 286 ]] #0 !jvms: Test::charlie @ bci:62
266 CallStaticJava === 272 261 262 8 1 ( 279 12 1 1 1 45 1 1 1 1 45 ) [[ 280 281 282 284 293 292 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, char ) Test::charlie @ bci:62 !jvms: Test::charlie @ bci:62
256 CatchProj === 255 [[ 271 ]] #0@bci -1 !jvms: Test::charlie @ bci:58
255 Catch === 249 250 [[ 256 257 ]] !jvms: Test::charlie @ bci:58
249 Proj === 248 [[ 255 ]] #0 !jvms: Test::charlie @ bci:58
248 CallStaticJava === 238 243 244 8 1 ( 205 235 1 1 12 45 1 1 1 1 45 ) [[ 249 250 251 253 262 261 ]] # Static java.lang.StringBuilder::append java/lang/StringBuilder:exact * ( java/lang/StringBuilder:NotNull:exact *, java/lang/String:exact * ) Test::charlie @ bci:58 !jvms: Test::charlie @ bci:58
238 CatchProj === 237 [[ 248 ]] #0@bci -1 !jvms: Test::charlie @ bci:55
237 Catch === 231 232 [[ 238 239 ]] !jvms: Test::charlie @ bci:55
231 Proj === 230 [[ 237 ]] #0 !jvms: Test::charlie @ bci:55
230 CallStaticJava === 220 225 226 8 1 ( 11 1 1 12 45 1 1 1 1 45 205 ) [[ 231 232 233 235 244 243 ]] # Static java.lang.Integer::toString java/lang/String:exact * ( int ) Test::charlie @ bci:55 !jvms: Test::charlie @ bci:55
220 CatchProj === 219 [[ 230 ]] #0@bci -1 !jvms: Test::charlie @ bci:51
219 Catch === 214 215 [[ 220 221 ]] !jvms: Test::charlie @ bci:51
214 Proj === 213 [[ 219 ]] #0 !jvms: Test::charlie @ bci:51
213 CallStaticJava === 202 199 187 8 1 ( 205 1 11 12 45 1 1 1 1 45 205 ) [[ 214 215 216 226 225 ]] # Static java.lang.StringBuilder::<init> void ( java/lang/StringBuilder:NotNull:exact * ) Test::charlie @ bci:51 !jvms: Test::charlie @ bci:51
193 CatchProj === 192 [[ 201 ]] #0@bci -1 !jvms: Test::charlie @ bci:47
192 Catch === 189 191 [[ 193 194 ]] !jvms: Test::charlie @ bci:47
189 Proj === 188 [[ 192 ]] #0 !jvms: Test::charlie @ bci:47
188 Allocate === 93 185 186 8 1 ( 26 24 25 1 1 11 12 45 1 1 1 1 45 ) [[ 189 190 191 198 199 200 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Test::charlie @ bci:47 !jvms: Test::charlie @ bci:47
fusion would fail for region
28 Allocate === 5 6 7 8 1 ( 26 24 25 1 10 11 12 1 1 1 1 1 ) [[ 29 30 31 38 39 40 ]] rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) Test::charlie @ bci:0 !jvms: Test::charlie @ bci:0
88 If === 71 87 [[ 89 90 ]] P=0.250110, C=6825.000000 !jvms: Test::charlie @ bci:23
180 If === 163 179 [[ 181 182 ]] P=0.749890, C=5118.000000 !jvms: Test::charlie @ bci:23
89 IfTrue === 88 [[ 93 ]] #1 !jvms: Test::charlie @ bci:23
182 IfFalse === 180 [[ 93 ]] #0 !jvms: Test::charlie @ bci:23
93 Region === 93 182 89 [[ 93 188 185 186 ]] !jvms: Test::charlie @ bci:46
4153 23 java.lang.Integer::stringSize (21 bytes)
public class Test {
private static final int LOOP = 10000000;
// C2 generates almost the same code for alpha and beta, when OptimizeStringConcat is on.
// Use -XX:+AggressiveOpts to turn it on.
// No StringBuilder instance is allocated when this optimization succeeded.
// Only applies to append(String), append(int), append(char).
// Doesn't accept control flow with merge points, which effectively disallows loops and conditional branches.
public static String alpha(String s, int i, char c) {
return new StringBuilder().append(s).append(i).append(c).toString();
}
public static String beta(String s, int i, char c) {
return new StringBuilder(s).append(i).append(c).toString();
}
public static String charlie(String[] ss, int i, char c) {
StringBuilder b = new StringBuilder();
for (String s : ss) {
b.append(s);
}
b.append(Integer.toString(i) + c);
return b.toString();
}
public static void main(String[] args) {
String s = "Dummy";
int i = 42;
char[] cs = new char[] { 'x', 'y', 'z' };
String[] ss = new String[] { "check", "this", "out" };
char c = '!';
for (int x = 0; x < LOOP; x++) {
alpha(s, i, c);
}
for (int x = 0; x < LOOP; x++) {
beta(s, i, c);
}
for (int x = 0; x < LOOP; x++) {
charlie(ss, i, c);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment