Aleksey, please see the attachments which are the source code, the HIR
before HIR2LIR and the final LIR.
With more thoughts, I plan to do the optimization in HIR simplifier first
because it looks much easier than in LIR peephole. When I finish that step,
I'll try LIR peephole later.
Xiaoming
On Mon, Oct 13, 2008 at 4:02 AM, Aleksey Shipilev <
[EMAIL PROTECTED]> wrote:
> Hi, Xiaoming!
>
> I see you're deeply interested in Jitrino :) I'm actually surprised
> that LIR is so clean... Can you show full LIR dump for
> unsignedMultAddAdd? But now, let's see the refined version of your LIR
> dump:
>
> mov [esp-100], eax
> mov [esp-104], eax
> xor edx, edx
> mov eax, [esp-100]
> mul edx, eax, edx
> mov ebx, eax
> xor eax, eax
> mov edi, [esp-24]
> mul edx, eax, edi
> add ebx, eax
> mov eax, [esp-104]
> mul edx, eax, edi
> mov [esp-100], eax
> add edx, ebx
>
> ...after noticing that "xor reg,reg" === "reg = 0" and propagating zero:
>
> mov [esp-100], eax
> mov [esp-104], eax
> mov eax, [esp-100]
> mov edi, [esp-24]
> mov eax, [esp-104]
> mul edx, eax, edi
> mov [esp-100], eax
>
> ...and some more sweep:
>
> mov edi, [esp-24]
> mul edx, eax, edi
> mov [esp-100], eax
>
> Looks pretty good for me.
>
> Thanks,
> Aleksey.
>
> On Sat, Oct 11, 2008 at 8:44 AM, xiaoming gu <[EMAIL PROTECTED]>
> wrote:
> > Hi, all. I find the benefits of this patch come from changing a 64-bit
> MUL
> > (3 32-bit MUL and 2 32-bit ADD) to a 32-bit MUL. At present, the
> > optimization is done as a magic replacement, which is not a common way to
> > generate code. (https://issues.apache.org/jira/browse/HARMONY-5826)
> >
> > Assume A and B are both 64-bit operands and we are doing A*B. In 32-bit
> > machine, the MUL operation is usually translated to (High 32-bit of
> A)*(Low
> > 32-bit of b)+(Low 32-bit of A)*(High 32-bit of B)+(Low 32-bit of A)*(Low
> > 32-bit of A). But when we know High 32-bit of A and B are both 0, only
> (Low
> > 32-bit of A)*(Low 32-bit of A) needed.
> >
> > Following are the HIR and LIR for result = (a & ffffffffL) * (b &
> ffffffffL)
> > + (c & ffffffffL) + (d & ffffffffL) without this patch. We can do the
> > optimization in HIR simplifier or LIR peephole. I'm not sure whether
> > changing int64 operation to int32 operation will bring overhead for
> 64-bit
> > machine. I think maybe peephole is a better place. I find there is no
> > peephole optimization for XOR. If JIT could find out the result of XOR is
> 0,
> > then propagates the 0 to MUL and related MUL is eliminated. The left
> problem
> > is whether there is sufficient data-flow analysis in LIR to do the
> > propagation and elimination.
> > =====HIR=====
> > I42:ldci8 #4294967295 -) t38:int64
> > I43:and t37, t38 -) t39:int64
> > I44:convi8 g23 -) t40:int64
> > I45:and t40, t38 -) t41:int64
> > I46:mul t39, t41 -) t42:int64
> > =====LIR=====
> > 238B02A6 I329: MOV s286[v208(ESP)+t285(-100)]:I_32,v19(EAX):I_32
> > 238B02AA I328: MOV t291[v208(ESP)+t290(-104)]:I_32,v19(EAX):I_32
> > 238B02AE I327: (ID:s8(EFLGS):U_32) =XOR t206(EDX):I_32,t206(EDX):I_32
> > 238B02B0 I326: MOV s292(EAX):I_32,s286[v208(ESP)+t285(-100)]:I_32
> > 238B02B4 I70: (ID:s8(EFLGS):U_32) =MUL
> > s139(EDX):I_32,s292(EAX):I_32,t206(EDX):I_32
> > 238B02B6 I325: MOV s140(EBX):I_32,s292(EAX):I_32
> > 238B02B8 I324: (ID:s8(EFLGS):U_32) =XOR s292(EAX):I_32,s292(EAX):I_32
> > 238B02BA I323: MOV t289(EDI):I_32,v217[v208(ESP)+t216(-24)]:I_32
> > 238B02BE I73: (ID:s8(EFLGS):U_32) =MUL
> > s139(EDX):I_32,s292(EAX):I_32,t289(EDI):I_32
> > 238B02C0 I74: (ID:s8(EFLGS):U_32) =ADD s140(EBX):I_32,s292(EAX):I_32
> > 238B02C2 I322: MOV v19(EAX):I_32,t291[v208(ESP)+t290(-104)]:I_32
> > DEADBEEF I75: (AD:s293(EAX):I_32) =CopyPseudoInst/MOV
> (AU:v19(EAX):I_32)
> >
> > 238B02C6 I76: (ID:s8(EFLGS):U_32) =MUL
> > s139(EDX):I_32,s293(EAX):I_32,t289(EDI):I_32
> > 238B02C8 I321: MOV s286[v208(ESP)+t285(-100)]:I_32,s293(EAX):I_32
> > 238B02CC I77: (ID:s8(EFLGS):U_32) =ADD s139(EDX):I_32,s140(EBX):I_32
> >
> > Any comments? Thanks.
> >
> > Xiaoming
> >
>
-------- irDump: MultAddAdd::main --------
Block ENTRY_L0:
Predecessors:
Successors: L5 UNWIND
I0:--- MethodEntry(MultAddAdd::main): () bcmap:0
I1:defarg -) g1:cls:java/lang/String[]
I4:chknull g1 -) g4:tau bcmap:2
GOTO L5
Block L5:
Predecessors: ENTRY_L0
Successors: L6 UNWIND
I89:L5: bcmap:2
I2:tauhastype g1,cls:java/lang/String[] -) g2:tau
I3:ldci4 #0 -) g3:I_32
I5:arraylen g1 ((g4,g2)) -) g5:I_32
I6:chkbounds g3 .lt. g5 -) g6:tau bcmap:2
GOTO L6
Block L6:
Predecessors: L5
Successors: L7 UNWIND
I90:L6: bcmap:2
I7:tauand g2, g6 -) t7:tau
I8:ldbase g1 -) g8:ref:cls:java/lang/String
I10:ldind.unc:str [g8] ((g4,t7)) -) g10:cls:java/lang/String
I11:tausafe() -) g11:tau
I12:tauunsafe() -) g12:tau
I13:ldci4 #588558424 -) g13:I_32
I14:ldci4 #2 -) g14:I_32
I15:callvmhelper VM_RT_GET_INVOKESTATIC_ADDR_WITHRESOLVE (g13, g14) -)
g15:(Ljava/lang/String;)I bcmap:3
GOTO L7
Block L7:
Predecessors: L6
Successors: L8 UNWIND
I91:L7: bcmap:3
I17:callimem [g15](g10) ((g11,g12)) -) g16:I_32
GOTO L8
Block L8:
Predecessors: L7
Successors: L9 UNWIND
I92:L8: bcmap:8
I18:ldci4 #1 -) g17:I_32
I19:chkbounds g17 .lt. g5 -) g18:tau bcmap:9
GOTO L9
Block L9:
Predecessors: L8
Successors: L10 UNWIND
I93:L9: bcmap:9
I20:tauand g2, g18 -) t19:tau
I21:addindex g8, g17 -) t20:ref:cls:java/lang/String
I22:ldind.unc:str [t20] ((g4,t19)) -) g21:cls:java/lang/String
I23:callvmhelper VM_RT_GET_INVOKESTATIC_ADDR_WITHRESOLVE (g13, g14) -)
g22:(Ljava/lang/String;)I bcmap:10
GOTO L10
Block L10:
Predecessors: L9
Successors: L11 UNWIND
I94:L10: bcmap:10
I25:callimem [g22](g21) ((g11,g12)) -) g23:I_32
GOTO L11
Block L11:
Predecessors: L10
Successors: L12 UNWIND
I95:L11: bcmap:16
I26:chkbounds g14 .lt. g5 -) g24:tau bcmap:16
GOTO L12
Block L12:
Predecessors: L11
Successors: L13 UNWIND
I96:L12: bcmap:16
I27:tauand g2, g24 -) t25:tau
I28:addindex g8, g14 -) t26:ref:cls:java/lang/String
I29:ldind.unc:str [t26] ((g4,t25)) -) g27:cls:java/lang/String
I30:callvmhelper VM_RT_GET_INVOKESTATIC_ADDR_WITHRESOLVE (g13, g14) -)
g28:(Ljava/lang/String;)I bcmap:17
GOTO L13
Block L13:
Predecessors: L12
Successors: L14 UNWIND
I97:L13: bcmap:17
I32:callimem [g28](g27) ((g11,g12)) -) g29:I_32
GOTO L14
Block L14:
Predecessors: L13
Successors: L15 UNWIND
I98:L14: bcmap:22
I33:ldci4 #3 -) g30:I_32
I34:chkbounds g30 .lt. g5 -) g31:tau bcmap:23
GOTO L15
Block L15:
Predecessors: L14
Successors: L16 UNWIND
I99:L15: bcmap:23
I35:tauand g2, g31 -) t32:tau
I36:addindex g8, g30 -) t33:ref:cls:java/lang/String
I37:ldind.unc:str [t33] ((g4,t32)) -) g34:cls:java/lang/String
I38:callvmhelper VM_RT_GET_INVOKESTATIC_ADDR_WITHRESOLVE (g13, g14) -)
g35:(Ljava/lang/String;)I bcmap:24
GOTO L16
Block L16:
Predecessors: L15
Successors: L17 UNWIND
I100:L16: bcmap:24
I40:callimem [g35](g34) ((g11,g12)) -) g36:I_32
GOTO L17
Block L17:
Predecessors: L16
Successors: L18 UNWIND
I101:L17: bcmap:30
I53:ldci4 #5 -) t50:I_32
I55:callvmhelper VM_RT_GET_STATIC_FIELD_ADDR_WITHRESOLVE (g13, t50, g3) -)
g49:ref:cls:.Unresolved bcmap:59
GOTO L18
Block L18:
Predecessors: L17
Successors: L19 UNWIND
I102:L18: bcmap:59
I56:ldind.unc:uno [g49] ((g11,g11)) -) g52:cls:.Unresolved
I57:ldci4 #6 -) t53:I_32
I58:callvmhelper VM_RT_NEWOBJ_WITHRESOLVE (g13, t53) -) g54:cls:.Unresolved
bcmap:62
GOTO L19
Block L19:
Predecessors: L18
Successors: L20 UNWIND
I103:L19: bcmap:66
I59:chknull g54 -) g55:tau bcmap:66
GOTO L20
Block L20:
Predecessors: L19
Successors: L21 UNWIND
I104:L20: bcmap:66
I60:ldci4 #7 -) t56:I_32
I61:callvmhelper VM_RT_GET_INVOKE_SPECIAL_ADDR_WITHRESOLVE (g13, t56) -)
g57:()V bcmap:66
GOTO L21
Block L21:
Predecessors: L20
Successors: L22 UNWIND
I105:L21: bcmap:66
I63:callimem [g57](g54) ((g55,g12)) -)
GOTO L22
Block L22:
Predecessors: L21
Successors: L23 UNWIND
I106:L22: bcmap:69
I65:ldci4 #9 -) t59:I_32
I66:callvmhelper VM_RT_GET_INVOKEVIRTUAL_ADDR_WITHRESOLVE (g13, t59, g54) -)
g60:(Ljava/lang/String;)Ljava/lang/StringBuilder; bcmap:71
GOTO L23
Block L23:
Predecessors: L22
Successors: L24 UNWIND
I107:L23: bcmap:71
I64:ldref.unc (8) -) t58:cls:java/lang/String bcmap:69
I68:callimem [g60](g54, t58) ((g55,g12)) -) g61:cls:.Unresolved
GOTO L24
Block L24:
Predecessors: L23
Successors: L25 UNWIND
I108:L24: bcmap:76
I69:chknull g61 -) g62:tau bcmap:76
GOTO L25
Block L25:
Predecessors: L24
Successors: L26 UNWIND
I109:L25: bcmap:76
I70:ldci4 #10 -) t63:I_32
I71:callvmhelper VM_RT_GET_INVOKEVIRTUAL_ADDR_WITHRESOLVE (g13, t63, g61) -)
g64:(J)Ljava/lang/StringBuilder; bcmap:76
GOTO L26
Block L26:
Predecessors: L25
Successors: L27 UNWIND
I110:L26: bcmap:76
I41:convi8 g16 -) t37:int64
I42:ldci8 #4294967295 -) t38:int64
I43:and t37, t38 -) t39:int64
I44:convi8 g23 -) t40:int64
I45:and t40, t38 -) t41:int64
I46:mul t39, t41 -) t42:int64
I47:convi8 g29 -) t43:int64
I48:and t43, t38 -) t44:int64
I49:add t42, t44 -) t45:int64
I50:convi8 g36 -) t46:int64
I51:and t46, t38 -) t47:int64
I52:add t45, t47 -) t48:int64
I73:callimem [g64](g61, t48) ((g62,g12)) -) g65:cls:.Unresolved
GOTO L27
Block L27:
Predecessors: L26
Successors: L28 UNWIND
I111:L27: bcmap:79
I74:chknull g65 -) g66:tau bcmap:79
GOTO L28
Block L28:
Predecessors: L27
Successors: L29 UNWIND
I112:L28: bcmap:79
I75:ldci4 #11 -) t67:I_32
I76:callvmhelper VM_RT_GET_INVOKEVIRTUAL_ADDR_WITHRESOLVE (g13, t67, g65) -)
g68:()Ljava/lang/String; bcmap:79
GOTO L29
Block L29:
Predecessors: L28
Successors: L30 UNWIND
I113:L29: bcmap:79
I78:callimem [g68](g65) ((g66,g12)) -) g69:cls:java/lang/String
GOTO L30
Block L30:
Predecessors: L29
Successors: L31 UNWIND
I114:L30: bcmap:82
I79:chknull g52 -) g70:tau bcmap:82
GOTO L31
Block L31:
Predecessors: L30
Successors: L32 UNWIND
I115:L31: bcmap:82
I80:ldci4 #12 -) t71:I_32
I81:callvmhelper VM_RT_GET_INVOKEVIRTUAL_ADDR_WITHRESOLVE (g13, t71, g52) -)
g72:(Ljava/lang/String;)V bcmap:82
GOTO L32
Block L32:
Predecessors: L31
Successors: L33 UNWIND
I116:L32: bcmap:82
I83:callimem [g72](g52, g69) ((g70,g12)) -)
GOTO L33
Block UNWIND:
Predecessors: ENTRY_L0 L5 L6 L7 L8 L9 L10 L11 L12 L13 L14 L15 L16 L17 L18 L19
L20 L21 L22 L23 L24 L25 L26 L27 L28 L29 L30 L31 L32
Successors: EXIT
I87:L3:
GOTO EXIT
Block L33:
Predecessors: L32
Successors: RETURN
I117:L33: bcmap:85
I84:return
Block RETURN:
Predecessors: L33
Successors: EXIT
I86:L2: bcmap:unknown
GOTO EXIT
Block EXIT:
Predecessors: RETURN UNWIND
Successors:
I88:L4:
BB_0_prolog
PersistentId = 0
ExecCnt = 10000
Loop: Depth=0, !hdr, hdr=NULL
Predcessors:
Successors: BB_2 [Prob=1]
Layout Succ: BB_2
Block code address: 238B0020
DEADBEEF I0: (AD:s264[v260(ESP)+t263(4)]:cls:java/lang/String[])
=EntryPointPseudoInst
238B0020 I405: (ID:s8(EFLGS):U_32) =TEST
t317[v260(ESP)+t316(-76)]:intptr,v260(ESP):U_32
238B0024 I398: PUSH t313(EBX):U_32
238B0025 I397: PUSH t312(EBP):U_32
238B0026 I396: PUSH t311(ESI):U_32
238B0027 I395: PUSH t310(EDI):U_32
238B0028 I399: (ID:s8(EFLGS):U_32) =SUB v260(ESP):U_32,t314(48):I_32
DEADBEEF I205: (AD:s264[v260(ESP)+t263(4)]:cls:java/lang/String[])
=CopyPseudoInst/MOV (AU:s264[v260(ESP)+t263(4)]:cls:java/lang/String[])
BB_2
PersistentId = 5
ExecCnt = 10000
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_0_prolog
Successors: BB_3 [Prob=1e-007](Br=I5) BB_4 [Prob=1](Br=I5) UN_34
[Prob=1e-007]
Layout Succ: BB_4
Block code address: 238B002E
238B002E I394: MOV
t265(ESI):cls:java/lang/String[],s264[v260(ESP)+t263(4)]:cls:java/lang/String[]
238B0032 I393: MOV t3(EDI):I_32,t2[t265(ESI)+t1(8)]:I_32
238B0035 I406: (ID:s8(EFLGS):U_32) =TEST t3(EDI):I_32,t3(EDI):I_32
238B0037 I5: JBE BB_3 t9(604):I_32 (IU:s8(EFLGS):U_32)
BB_4
PersistentId = 6
ExecCnt = 10000
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_2
Successors: BB_5 [Prob=1] UN_34 [Prob=1e-007]
Layout Succ: BB_5
Block code address: 238B003D
238B003D I392: MOV
s10(ESI):ref:cls:java/lang/String,s264[v260(ESP)+t263(4)]:cls:java/lang/String[]
238B0041 I6: (ID:s8(EFLGS):U_32) =ADD
s10(ESI):ref:cls:java/lang/String,t11(12):I_32
238B0047 I391: MOV t13(ESI):cls:java/lang/String,t12[s10(ESI)]:string
238B0049 I390: PUSH t15(2):I_32
238B004E I389: PUSH t14(588558424):I_32
238B0053 I8: (AD:t16(EAX):(Ljava/lang/String;)I) =CALL
t17(-587853416:h:VM_RT_GET_INVOKESTATIC_ADDR_WITHRESOLVE):I_32
(AU:t14(588558424):I_32,t15(2):I_32) [bcmap:3]
DEADBEEF I407: GCInfoPseudoInst
(AU:t13(ESI):cls:java/lang/String,s264[v260(ESP)+t263(4)]:cls:java/lang/String[])
[phase:gcmap]([t13,0],[s264,0])
BB_5
PersistentId = 7
ExecCnt = 10000
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_4
Successors: BB_6 [Prob=1] UN_34 [Prob=1e-007]
Layout Succ: BB_6
Block code address: 238B0058
238B0058 I218: (ID:s8(EFLGS):U_32) =SUB v260(ESP):U_32,t295(8):I_32
238B005E I388: PUSH t13(ESI):cls:java/lang/String
238B005F I9: (AD:t222(EAX):I_32) =CALL t18[t16(EAX)]:ptr:uintptr
(AU:t13(ESI):cls:java/lang/String) [bcmap:3]
DEADBEEF I408: GCInfoPseudoInst
(AU:s264[v260(ESP)+t263(4)]:cls:java/lang/String[]) [phase:gcmap]([s264,0])
BB_6
PersistentId = 8
ExecCnt = 10000
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_5
Successors: BB_7 [Prob=1e-007](Br=I12) BB_8 [Prob=1](Br=I12) UN_34
[Prob=1e-007]
Layout Succ: BB_8
Block code address: 238B0061
238B0061 I11: (ID:s8(EFLGS):U_32) =CMP t3(EDI):I_32,t20(1):I_32
238B0067 I12: JBE BB_7 t24(535):I_32 (IU:s8(EFLGS):U_32)
BB_8
PersistentId = 9
ExecCnt = 9999.99
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_6
Successors: BB_9 [Prob=1] UN_34 [Prob=1e-007]
Layout Succ: BB_9
Block code address: 238B006D
238B006D I387: MOV t158(ESI):I_32,t222(EAX):I_32
238B006F I386: MOV
t266(EAX):cls:java/lang/String[],s264[v260(ESP)+t263(4)]:cls:java/lang/String[]
238B0073 I385: MOV
t29(EBP):cls:java/lang/String,t28[t266(EAX)+t123(16)]:string
238B0076 I384: PUSH t31(2):I_32
238B007B I383: PUSH t30(588558424):I_32
238B0080 I15: (AD:t32(EAX):(Ljava/lang/String;)I) =CALL
t33(-587853461:h:VM_RT_GET_INVOKESTATIC_ADDR_WITHRESOLVE):I_32
(AU:t30(588558424):I_32,t31(2):I_32) [bcmap:10]
DEADBEEF I409: GCInfoPseudoInst
(AU:t29(EBP):cls:java/lang/String,s264[v260(ESP)+t263(4)]:cls:java/lang/String[])
[phase:gcmap]([t29,0],[s264,0])
DEADBEEF I108: (AD:t221(ESI):I_32) =CopyPseudoInst/MOV
(AU:t158(ESI):I_32)
BB_9
PersistentId = 10
ExecCnt = 9999.99
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_8
Successors: BB_10 [Prob=1] UN_34 [Prob=1e-007]
Layout Succ: BB_10
Block code address: 238B0085
DEADBEEF I111: (AD:t159(ESI):I_32) =CopyPseudoInst/MOV
(AU:t221(ESI):I_32)
238B0085 I225: (ID:s8(EFLGS):U_32) =SUB v260(ESP):U_32,t297(8):I_32
238B008B I382: PUSH t29(EBP):cls:java/lang/String
238B008C I16: (AD:t233(EAX):I_32) =CALL t34[t32(EAX)]:ptr:uintptr
(AU:t29(EBP):cls:java/lang/String) [bcmap:10]
DEADBEEF I410: GCInfoPseudoInst
(AU:s264[v260(ESP)+t263(4)]:cls:java/lang/String[]) [phase:gcmap]([s264,0])
DEADBEEF I110: (AD:t220(ESI):I_32) =CopyPseudoInst/MOV
(AU:t159(ESI):I_32)
BB_10
PersistentId = 11
ExecCnt = 9999.99
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_9
Successors: BB_11 [Prob=1e-007](Br=I19) BB_12 [Prob=1](Br=I19) UN_34
[Prob=1e-007]
Layout Succ: BB_12
Block code address: 238B008E
238B008E I18: (ID:s8(EFLGS):U_32) =CMP t3(EDI):I_32,t36(2):I_32
238B0094 I19: JBE BB_11 t40(469):I_32 (IU:s8(EFLGS):U_32)
BB_12
PersistentId = 12
ExecCnt = 9999.99
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_10
Successors: BB_13 [Prob=1] UN_34 [Prob=1e-007]
Layout Succ: BB_13
Block code address: 238B009A
238B009A I381: MOV t161(EBP):I_32,t233(EAX):I_32
DEADBEEF I114: (AD:t160(ESI):I_32) =CopyPseudoInst/MOV
(AU:t220(ESI):I_32)
238B009C I380: MOV
t267(EAX):cls:java/lang/String[],s264[v260(ESP)+t263(4)]:cls:java/lang/String[]
238B00A0 I379: MOV
t45(EBX):cls:java/lang/String,t44[t267(EAX)+t124(20)]:string
238B00A3 I378: PUSH t41(2):I_32
238B00A8 I377: PUSH t46(588558424):I_32
238B00AD I22: (AD:t47(EAX):(Ljava/lang/String;)I) =CALL
t48(-587853506:h:VM_RT_GET_INVOKESTATIC_ADDR_WITHRESOLVE):I_32
(AU:t46(588558424):I_32,t41(2):I_32) [bcmap:17]
DEADBEEF I411: GCInfoPseudoInst
(AU:t45(EBX):cls:java/lang/String,s264[v260(ESP)+t263(4)]:cls:java/lang/String[])
[phase:gcmap]([t45,0],[s264,0])
DEADBEEF I113: (AD:t232(EBP):I_32) =CopyPseudoInst/MOV
(AU:t161(EBP):I_32)
DEADBEEF I112: (AD:t219(ESI):I_32) =CopyPseudoInst/MOV
(AU:t160(ESI):I_32)
BB_13
PersistentId = 13
ExecCnt = 9999.99
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_12
Successors: BB_14 [Prob=1] UN_34 [Prob=1e-007]
Layout Succ: BB_14
Block code address: 238B00B2
DEADBEEF I119: (AD:t163(EBP):I_32) =CopyPseudoInst/MOV
(AU:t232(EBP):I_32)
DEADBEEF I118: (AD:t162(ESI):I_32) =CopyPseudoInst/MOV
(AU:t219(ESI):I_32)
238B00B2 I232: (ID:s8(EFLGS):U_32) =SUB v260(ESP):U_32,t299(8):I_32
238B00B8 I376: PUSH t45(EBX):cls:java/lang/String
238B00B9 I23: (AD:t242(EAX):I_32) =CALL t49[t47(EAX)]:ptr:uintptr
(AU:t45(EBX):cls:java/lang/String) [bcmap:17]
DEADBEEF I412: GCInfoPseudoInst
(AU:s264[v260(ESP)+t263(4)]:cls:java/lang/String[]) [phase:gcmap]([s264,0])
238B00BB I375: MOV t231(EBX):I_32,t163(EBP):I_32
238B00BD I374: MOV t218(EDX):I_32,t162(ESI):I_32
BB_14
PersistentId = 14
ExecCnt = 9999.99
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_13
Successors: BB_15 [Prob=1e-007](Br=I26) BB_16 [Prob=1](Br=I26) UN_34
[Prob=1e-007]
Layout Succ: BB_16
Block code address: 238B00BF
238B00BF I25: (ID:s8(EFLGS):U_32) =CMP t3(EDI):I_32,t51(3):I_32
238B00C5 I26: JBE BB_15 t55(399):I_32 (IU:s8(EFLGS):U_32)
BB_16
PersistentId = 15
ExecCnt = 9999.99
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_14
Successors: BB_17 [Prob=1] UN_34 [Prob=1e-007]
Layout Succ: BB_17
Block code address: 238B00CB
238B00CB I373: MOV t166(EBP):I_32,t242(EAX):I_32
238B00CD I372: MOV t165(ESI):I_32,t231(EBX):I_32
238B00CF I371: MOV t164(EDI):I_32,t218(EDX):I_32
238B00D1 I370: MOV
t268(EAX):cls:java/lang/String[],s264[v260(ESP)+t263(4)]:cls:java/lang/String[]
238B00D5 I369: MOV
t60(EBX):cls:java/lang/String,t59[t268(EAX)+t125(24)]:string
238B00D8 I368: PUSH t62(2):I_32
238B00DD I367: PUSH t61(588558424):I_32
238B00E2 I29: (AD:t63(EAX):(Ljava/lang/String;)I) =CALL
t64(-587853559:h:VM_RT_GET_INVOKESTATIC_ADDR_WITHRESOLVE):I_32
(AU:t61(588558424):I_32,t62(2):I_32) [bcmap:24]
DEADBEEF I413: GCInfoPseudoInst (AU:t60(EBX):cls:java/lang/String)
[phase:gcmap]([t60,0])
DEADBEEF I122: (AD:t241(EBP):I_32) =CopyPseudoInst/MOV
(AU:t166(EBP):I_32)
DEADBEEF I121: (AD:t230(ESI):I_32) =CopyPseudoInst/MOV
(AU:t165(ESI):I_32)
DEADBEEF I120: (AD:t217(EDI):I_32) =CopyPseudoInst/MOV
(AU:t164(EDI):I_32)
BB_17
PersistentId = 16
ExecCnt = 9999.99
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_16
Successors: BB_18 [Prob=1] UN_34 [Prob=1e-007]
Layout Succ: BB_18
Block code address: 238B00E7
DEADBEEF I131: (AD:t169(EBP):I_32) =CopyPseudoInst/MOV
(AU:t241(EBP):I_32)
DEADBEEF I130: (AD:t168(ESI):I_32) =CopyPseudoInst/MOV
(AU:t230(ESI):I_32)
DEADBEEF I129: (AD:t167(EDI):I_32) =CopyPseudoInst/MOV
(AU:t217(EDI):I_32)
238B00E7 I239: (ID:s8(EFLGS):U_32) =SUB v260(ESP):U_32,t301(8):I_32
238B00ED I366: PUSH t60(EBX):cls:java/lang/String
238B00EE I30: (AD:t249(EAX):I_32) =CALL t65[t63(EAX)]:ptr:uintptr
(AU:t60(EBX):cls:java/lang/String) [bcmap:24]
DEADBEEF I128: (AD:t240(EBP):I_32) =CopyPseudoInst/MOV
(AU:t169(EBP):I_32)
DEADBEEF I127: (AD:t229(ESI):I_32) =CopyPseudoInst/MOV
(AU:t168(ESI):I_32)
DEADBEEF I126: (AD:t216(EDI):I_32) =CopyPseudoInst/MOV
(AU:t167(EDI):I_32)
BB_18
PersistentId = 17
ExecCnt = 9999.98
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_17
Successors: BB_19 [Prob=1] UN_34 [Prob=1e-007]
Layout Succ: BB_19
Block code address: 238B00F0
238B00F0 I365: MOV t173(EBX):I_32,t249(EAX):I_32
DEADBEEF I138: (AD:t172(EBP):I_32) =CopyPseudoInst/MOV
(AU:t240(EBP):I_32)
DEADBEEF I137: (AD:t171(ESI):I_32) =CopyPseudoInst/MOV
(AU:t229(ESI):I_32)
DEADBEEF I136: (AD:t170(EDI):I_32) =CopyPseudoInst/MOV
(AU:t216(EDI):I_32)
238B00F2 I364: PUSH t69(0):I_32
238B00F7 I363: PUSH t68(5):I_32
238B00FC I362: PUSH t67(588558424):I_32
238B0101 I31: (AD:t70(EAX):ref:cls:.Unresolved) =CALL
t71(-587851942:h:VM_RT_GET_STATIC_FIELD_ADDR_WITHRESOLVE):I_32
(AU:t67(588558424):I_32,t68(5):I_32,t69(0):I_32) [bcmap:59]
DEADBEEF I135: (AD:t248(EBX):I_32) =CopyPseudoInst/MOV
(AU:t173(EBX):I_32)
DEADBEEF I134: (AD:t239(EBP):I_32) =CopyPseudoInst/MOV
(AU:t172(EBP):I_32)
DEADBEEF I133: (AD:t228(ESI):I_32) =CopyPseudoInst/MOV
(AU:t171(ESI):I_32)
DEADBEEF I132: (AD:t215(EDI):I_32) =CopyPseudoInst/MOV
(AU:t170(EDI):I_32)
BB_19
PersistentId = 18
ExecCnt = 9999.98
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_18
Successors: BB_21 [Prob=1] UN_34 [Prob=1e-007]
Layout Succ: BB_21
Block code address: 238B0106
DEADBEEF I147: (AD:t177(EBX):I_32) =CopyPseudoInst/MOV
(AU:t248(EBX):I_32)
DEADBEEF I146: (AD:t176(EBP):I_32) =CopyPseudoInst/MOV
(AU:t239(EBP):I_32)
DEADBEEF I145: (AD:t175(ESI):I_32) =CopyPseudoInst/MOV
(AU:t228(ESI):I_32)
DEADBEEF I144: (AD:t174(EDI):I_32) =CopyPseudoInst/MOV
(AU:t215(EDI):I_32)
238B0106 I360: MOV t307(EAX):cls:.Unresolved,t72[t70(EAX)]:unres_object
238B0108 I361: MOV
t270[v260(ESP)+t269(-20)]:cls:.Unresolved,t307(EAX):cls:.Unresolved
238B010C I359: PUSH t75(6):I_32
238B0111 I358: PUSH t74(588558424):I_32
238B0116 I33: (AD:t253(EAX):cls:.Unresolved) =CALL
t77(-587857243:h:VM_RT_NEWOBJ_WITHRESOLVE):I_32
(AU:t74(588558424):I_32,t75(6):I_32) [bcmap:62]
DEADBEEF I414: GCInfoPseudoInst
(AU:t270[v260(ESP)+t269(-20)]:cls:.Unresolved) [phase:gcmap]([t270,0])
DEADBEEF I143: (AD:t247(EBX):I_32) =CopyPseudoInst/MOV
(AU:t177(EBX):I_32)
DEADBEEF I142: (AD:t238(EBP):I_32) =CopyPseudoInst/MOV
(AU:t176(EBP):I_32)
DEADBEEF I141: (AD:t227(ESI):I_32) =CopyPseudoInst/MOV
(AU:t175(ESI):I_32)
238B011B I357: MOV t214(EDX):I_32,t174(EDI):I_32
BB_21
PersistentId = 20
ExecCnt = 9999.98
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_19
Successors: BB_22 [Prob=1] UN_34 [Prob=1e-007]
Layout Succ: BB_22
Block code address: 238B011D
238B011D I356: MOV
t272[v260(ESP)+t271(-24)]:cls:.Unresolved,t253(EAX):cls:.Unresolved
238B0121 I355: MOV t181(EDI):I_32,t247(EBX):I_32
DEADBEEF I155: (AD:t180(EBP):I_32) =CopyPseudoInst/MOV
(AU:t238(EBP):I_32)
DEADBEEF I154: (AD:t179(ESI):I_32) =CopyPseudoInst/MOV
(AU:t227(ESI):I_32)
238B0123 I354: MOV t178(EBX):I_32,t214(EDX):I_32
238B0125 I353: PUSH t79(7):I_32
238B012A I352: PUSH t78(588558424):I_32
238B012F I35: (AD:t80(EAX):()V) =CALL
t81(-587856996:h:VM_RT_GET_INVOKE_SPECIAL_ADDR_WITHRESOLVE):I_32
(AU:t78(588558424):I_32,t79(7):I_32) [bcmap:66]
DEADBEEF I415: GCInfoPseudoInst
(AU:t270[v260(ESP)+t269(-20)]:cls:.Unresolved,t272[v260(ESP)+t271(-24)]:cls:.Unresolved)
[phase:gcmap]([t270,0],[t272,0])
238B0134 I351: MOV
t252(EDX):cls:.Unresolved,t272[v260(ESP)+t271(-24)]:cls:.Unresolved
DEADBEEF I151: (AD:t246(EDI):I_32) =CopyPseudoInst/MOV
(AU:t181(EDI):I_32)
DEADBEEF I150: (AD:t237(EBP):I_32) =CopyPseudoInst/MOV
(AU:t180(EBP):I_32)
238B0138 I350: MOV t226(ECX):I_32,t179(ESI):I_32
DEADBEEF I148: (AD:t213(EBX):I_32) =CopyPseudoInst/MOV
(AU:t178(EBX):I_32)
BB_22
PersistentId = 21
ExecCnt = 9999.98
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_21
Successors: BB_23 [Prob=1] UN_34 [Prob=1e-007]
Layout Succ: BB_23
Block code address: 238B013A
238B013A I349: MOV t187(ESI):cls:.Unresolved,t252(EDX):cls:.Unresolved
238B013C I348: MOV t274[v260(ESP)+t273(-28)]:I_32,t246(EDI):I_32
238B0140 I347: MOV t185(EDI):I_32,t237(EBP):I_32
238B0142 I346: MOV t184(EBP):I_32,t226(ECX):I_32
DEADBEEF I163: (AD:t183(EBX):I_32) =CopyPseudoInst/MOV
(AU:t213(EBX):I_32)
238B0144 I248: (ID:s8(EFLGS):U_32) =SUB v260(ESP):U_32,t302(8):I_32
238B014A I345: PUSH t187(ESI):cls:.Unresolved
238B014B I36: CALL t82[t80(EAX)]:ptr:uintptr
(AU:t187(ESI):cls:.Unresolved) [bcmap:66]
DEADBEEF I416: GCInfoPseudoInst
(AU:t187(ESI):cls:.Unresolved,t270[v260(ESP)+t269(-20)]:cls:.Unresolved)
[phase:gcmap]([t187,0],[t270,0])
238B014D I344: MOV t251(ECX):cls:.Unresolved,t187(ESI):cls:.Unresolved
238B014F I343: MOV t245(ESI):I_32,t274[v260(ESP)+t273(-28)]:I_32
238B0153 I342: MOV t236(EDX):I_32,t185(EDI):I_32
DEADBEEF I159: (AD:t225(EBP):I_32) =CopyPseudoInst/MOV
(AU:t184(EBP):I_32)
238B0155 I341: MOV t212(EAX):I_32,t183(EBX):I_32
BB_23
PersistentId = 22
ExecCnt = 9999.98
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_22
Successors: BB_24 [Prob=1] UN_34 [Prob=1e-007]
Layout Succ: BB_24
Block code address: 238B0157
238B0157 I340: MOV t192(EDI):cls:.Unresolved,t251(ECX):cls:.Unresolved
238B0159 I339: MOV t276[v260(ESP)+t275(-32)]:I_32,t245(ESI):I_32
238B015D I338: MOV t190(EBX):I_32,t236(EDX):I_32
DEADBEEF I174: (AD:t189(EBP):I_32) =CopyPseudoInst/MOV
(AU:t225(EBP):I_32)
238B015F I337: MOV t188(ESI):I_32,t212(EAX):I_32
238B0161 I336: PUSH t192(EDI):cls:.Unresolved
238B0162 I335: PUSH t84(9):I_32
238B0167 I334: PUSH t83(588558424):I_32
238B016C I37:
(AD:t277(EAX):(Ljava/lang/String;)Ljava/lang/StringBuilder;) =CALL
t86(-587852849:h:VM_RT_GET_INVOKEVIRTUAL_ADDR_WITHRESOLVE):I_32
(AU:t83(588558424):I_32,t84(9):I_32,t192(EDI):cls:.Unresolved) [bcmap:71]
DEADBEEF I417: GCInfoPseudoInst
(AU:t192(EDI):cls:.Unresolved,t270[v260(ESP)+t269(-20)]:cls:.Unresolved)
[phase:gcmap]([t192,0],[t270,0])
238B0171 I333: MOV
v279[v260(ESP)+t278(-36)]:(Ljava/lang/String;)Ljava/lang/StringBuilder;,t277(EAX):(Ljava/lang/String;)Ljava/lang/StringBuilder;
DEADBEEF I172: (AD:t250(EDI):cls:.Unresolved) =CopyPseudoInst/MOV
(AU:t192(EDI):cls:.Unresolved)
238B0175 I332: MOV t244(EDX):I_32,t276[v260(ESP)+t275(-32)]:I_32
DEADBEEF I170: (AD:t235(EBX):I_32) =CopyPseudoInst/MOV
(AU:t190(EBX):I_32)
238B0179 I331: MOV t224(ECX):I_32,t189(EBP):I_32
238B017B I330: MOV t211(EAX):I_32,t188(ESI):I_32
BB_24
PersistentId = 23
ExecCnt = 9999.98
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_23
Successors: BB_26 [Prob=1] UN_34 [Prob=1e-007]
Layout Succ: BB_26
Block code address: 238B017D
DEADBEEF I189:
(AD:v279[v260(ESP)+t278(-36)]:(Ljava/lang/String;)Ljava/lang/StringBuilder;)
=CopyPseudoInst/MOV
(AU:v279[v260(ESP)+t278(-36)]:(Ljava/lang/String;)Ljava/lang/StringBuilder;)
238B017D I329: MOV
t283[v260(ESP)+t282(-40)]:cls:.Unresolved,t250(EDI):cls:.Unresolved
238B0181 I328: MOV t285[v260(ESP)+t284(-44)]:I_32,t244(EDX):I_32
238B0185 I327: MOV t195(EBP):I_32,t235(EBX):I_32
238B0187 I326: MOV t194(ESI):I_32,t224(ECX):I_32
238B0189 I325: MOV t193(EDI):I_32,t211(EAX):I_32
238B018B I324: PUSH t89(8):I_32
238B0190 I323: PUSH t88(588558424:id:cls:MultAddAdd):ptr:intptr
238B0195 I38: (AD:t87(EAX):cls:java/lang/String) =CALL
t90(-587856506:h:VM_RT_LDC_STRING):I_32
(AU:t88(588558424:id:cls:MultAddAdd):ptr:intptr,t89(8):I_32) [bcmap:69]
DEADBEEF I419: GCInfoPseudoInst
(AU:t270[v260(ESP)+t269(-20)]:cls:.Unresolved,t283[v260(ESP)+t282(-40)]:cls:.Unresolved)
[phase:gcmap]([t270,0],[t283,0])
238B019A I322: MOV
t85(EBX):(Ljava/lang/String;)Ljava/lang/StringBuilder;,v279[v260(ESP)+t278(-36)]:(Ljava/lang/String;)Ljava/lang/StringBuilder;
238B019E I321: MOV
t76(EDX):cls:.Unresolved,t283[v260(ESP)+t282(-40)]:cls:.Unresolved
238B01A2 I253: (ID:s8(EFLGS):U_32) =SUB v260(ESP):U_32,t303(4):I_32
238B01A8 I320: PUSH t76(EDX):cls:.Unresolved
238B01A9 I319: PUSH t87(EAX):cls:java/lang/String
238B01AA I39: (AD:t255(EAX):cls:.Unresolved) =CALL
t91[t85(EBX)]:ptr:uintptr
(AU:t76(EDX):cls:.Unresolved,t87(EAX):cls:java/lang/String) [bcmap:71]
DEADBEEF I418: GCInfoPseudoInst
(AU:t270[v260(ESP)+t269(-20)]:cls:.Unresolved) [phase:gcmap]([t270,0])
238B01AC I318: MOV t243(EBX):I_32,t285[v260(ESP)+t284(-44)]:I_32
DEADBEEF I180: (AD:t234(EBP):I_32) =CopyPseudoInst/MOV
(AU:t195(EBP):I_32)
DEADBEEF I179: (AD:t223(ESI):I_32) =CopyPseudoInst/MOV
(AU:t194(ESI):I_32)
238B01B0 I317: MOV t210(EDX):I_32,t193(EDI):I_32
BB_26
PersistentId = 25
ExecCnt = 9999.98
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_24
Successors: BB_41 [Prob=1] UN_34 [Prob=1e-007]
Layout Succ: BB_41
Block code address: 238B01B2
238B01B2 I316: MOV t203(EDI):cls:.Unresolved,t255(EAX):cls:.Unresolved
238B01B4 I315: MOV t289[v260(ESP)+t288(-52)]:I_32,t243(EBX):I_32
238B01B8 I314: MOV t201(EBX):I_32,t234(EBP):I_32
238B01BA I313: MOV t200(EBP):I_32,t223(ESI):I_32
238B01BC I312: MOV t199(ESI):I_32,t210(EDX):I_32
238B01BE I311: PUSH t203(EDI):cls:.Unresolved
238B01BF I310: PUSH t94(10):I_32
238B01C4 I309: PUSH t93(588558424):I_32
238B01C9 I41: (AD:t290(EAX):(J)Ljava/lang/StringBuilder;) =CALL
t96(-587852942:h:VM_RT_GET_INVOKEVIRTUAL_ADDR_WITHRESOLVE):I_32
(AU:t93(588558424):I_32,t94(10):I_32,t203(EDI):cls:.Unresolved) [bcmap:76]
DEADBEEF I420: GCInfoPseudoInst
(AU:t203(EDI):cls:.Unresolved,t270[v260(ESP)+t269(-20)]:cls:.Unresolved)
[phase:gcmap]([t203,0],[t270,0])
238B01CE I308: MOV
t292[v260(ESP)+t291(-56)]:(J)Ljava/lang/StringBuilder;,t290(EAX):(J)Ljava/lang/StringBuilder;
238B01D2 I307: MOV
t287[v260(ESP)+t286(-48)]:cls:.Unresolved,t203(EDI):cls:.Unresolved
238B01D6 I306: MOV t66(ECX):I_32,t289[v260(ESP)+t288(-52)]:I_32
DEADBEEF I192: (AD:t50(EBX):I_32) =CopyPseudoInst/MOV
(AU:t201(EBX):I_32)
238B01DA I305: MOV t35(EDI):I_32,t200(EBP):I_32
DEADBEEF I190: (AD:t19(ESI):I_32) =CopyPseudoInst/MOV
(AU:t199(ESI):I_32)
BB_41
PersistentId = 0
ExecCnt = 9999.98
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_26
Successors: BB_38 [Prob=1]
Layout Succ: BB_38
Block code address: 238B01DC
238B01DC I304: MOV s138(EAX):I_32,t19(ESI):I_32
238B01DE I303: (ID:s8(EFLGS):U_32) =XOR t206(EBP):I_32,t206(EBP):I_32
238B01E0 I70: (ID:s8(EFLGS):U_32) =MUL
t139(EDX):I_32,s138(EAX):I_32,t206(EBP):I_32
238B01E2 I302: MOV s140(EBP):I_32,s138(EAX):I_32
238B01E4 I301: (ID:s8(EFLGS):U_32) =XOR s208(EAX):I_32,s208(EAX):I_32
238B01E6 I73: (ID:s8(EFLGS):U_32) =MUL
t209(EDX):I_32,s208(EAX):I_32,t35(EDI):I_32
238B01E8 I74: (ID:s8(EFLGS):U_32) =ADD s140(EBP):I_32,s208(EAX):I_32
238B01EA I300: MOV s256(EAX):I_32,t19(ESI):I_32
238B01EC I76: (ID:s8(EFLGS):U_32) =MUL
s257(EDX):I_32,s256(EAX):I_32,t35(EDI):I_32
238B01EE I77: (ID:s8(EFLGS):U_32) =ADD s257(EDX):I_32,s140(EBP):I_32
BB_38
PersistentId = 0
ExecCnt = 9999.98
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_41
Successors: BB_29 [Prob=1] UN_34 [Prob=1e-007]
Layout Succ: BB_29
Block code address: 238B01F0
238B01F0 I299: MOV s146(EDI):U_32,s256(EAX):I_32
238B01F2 I84: (ID:s8(EFLGS):U_32) =ADD s146(EDI):U_32,t50(EBX):I_32
238B01F4 I298: MOV s153(ESI):I_32,s257(EDX):I_32
238B01F6 I85: (ID:s8(EFLGS):U_32) =ADC s153(ESI):I_32,t156(0):I_32
(IU:s8(EFLGS):U_32)
DEADBEEF I106: (AD:s152(EDI):U_32) =CopyPseudoInst/MOV
(AU:s146(EDI):U_32)
238B01FC I90: (ID:s8(EFLGS):U_32) =ADD s152(EDI):U_32,t66(ECX):I_32
DEADBEEF I107: (AD:s153(ESI):I_32) =CopyPseudoInst/MOV
(AU:s153(ESI):I_32)
238B01FE I91: (ID:s8(EFLGS):U_32) =ADC s153(ESI):I_32,t157(0):I_32
(IU:s8(EFLGS):U_32)
238B0204 I297: MOV
t293(ECX):(J)Ljava/lang/StringBuilder;,t292[v260(ESP)+t291(-56)]:(J)Ljava/lang/StringBuilder;
238B0208 I296: PUSH t287[v260(ESP)+t286(-48)]:cls:.Unresolved
238B020C I295: PUSH s153(ESI):I_32
238B020D I294: PUSH s152(EDI):U_32
238B020E I53: (AD:t258(EAX):cls:.Unresolved) =CALL
t109[t293(ECX)]:ptr:uintptr
(AU:t287[v260(ESP)+t286(-48)]:cls:.Unresolved,s152(EDI):U_32,s153(ESI):I_32)
[bcmap:76]
DEADBEEF I424: GCInfoPseudoInst
(AU:t270[v260(ESP)+t269(-20)]:cls:.Unresolved) [phase:gcmap]([t270,0])
BB_29
PersistentId = 28
ExecCnt = 9999.98
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_38
Successors: BB_30 [Prob=1] UN_34 [Prob=1e-007]
Layout Succ: BB_30
Block code address: 238B0210
238B0210 I293: MOV s110(EDI):cls:.Unresolved,t258(EAX):cls:.Unresolved
238B0212 I292: PUSH s110(EDI):cls:.Unresolved
238B0213 I291: PUSH t112(11):I_32
238B0218 I290: PUSH t111(588558424):I_32
238B021D I55: (AD:t113(EAX):()Ljava/lang/String;) =CALL
t114(-587853026:h:VM_RT_GET_INVOKEVIRTUAL_ADDR_WITHRESOLVE):I_32
(AU:t111(588558424):I_32,t112(11):I_32,s110(EDI):cls:.Unresolved) [bcmap:79]
DEADBEEF I421: GCInfoPseudoInst
(AU:s110(EDI):cls:.Unresolved,t270[v260(ESP)+t269(-20)]:cls:.Unresolved)
[phase:gcmap]([s110,0],[t270,0])
DEADBEEF I200: (AD:s110(EDI):cls:.Unresolved) =CopyPseudoInst/MOV
(AU:s110(EDI):cls:.Unresolved)
BB_30
PersistentId = 29
ExecCnt = 9999.98
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_29
Successors: BB_32 [Prob=1] UN_34 [Prob=1e-007]
Layout Succ: BB_32
Block code address: 238B0222
238B0222 I264: (ID:s8(EFLGS):U_32) =SUB v260(ESP):U_32,t304(8):I_32
238B0228 I289: PUSH s110(EDI):cls:.Unresolved
238B0229 I56: (AD:t259(EAX):cls:java/lang/String) =CALL
t115[t113(EAX)]:ptr:uintptr (AU:s110(EDI):cls:.Unresolved) [bcmap:79]
DEADBEEF I422: GCInfoPseudoInst
(AU:t270[v260(ESP)+t269(-20)]:cls:.Unresolved) [phase:gcmap]([t270,0])
BB_32
PersistentId = 31
ExecCnt = 9999.97
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_30
Successors: BB_33 [Prob=1] UN_34 [Prob=1e-007]
Layout Succ: BB_33
Block code address: 238B022B
238B022B I288: MOV
s116(EDI):cls:java/lang/String,t259(EAX):cls:java/lang/String
238B022D I287: PUSH t270[v260(ESP)+t269(-20)]:cls:.Unresolved
238B0231 I286: PUSH t118(12):I_32
238B0236 I285: PUSH t117(588558424):I_32
238B023B I58: (AD:t119(EAX):(Ljava/lang/String;)V) =CALL
t120(-587853056:h:VM_RT_GET_INVOKEVIRTUAL_ADDR_WITHRESOLVE):I_32
(AU:t117(588558424):I_32,t118(12):I_32,t270[v260(ESP)+t269(-20)]:cls:.Unresolved)
[bcmap:82]
DEADBEEF I423: GCInfoPseudoInst
(AU:s116(EDI):cls:java/lang/String,t270[v260(ESP)+t269(-20)]:cls:.Unresolved)
[phase:gcmap]([s116,0],[t270,0])
DEADBEEF I202: (AD:s116(EDI):cls:java/lang/String) =CopyPseudoInst/MOV
(AU:s116(EDI):cls:java/lang/String)
BB_33
PersistentId = 32
ExecCnt = 9999.97
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_32
Successors: BB_35_epilog [Prob=1] UN_34 [Prob=1e-007]
Layout Succ: BB_35_epilog
Block code address: 238B0240
238B0240 I269: (ID:s8(EFLGS):U_32) =SUB v260(ESP):U_32,t305(4):I_32
238B0246 I284: PUSH t270[v260(ESP)+t269(-20)]:cls:.Unresolved
238B024A I283: PUSH s116(EDI):cls:java/lang/String
238B024B I59: CALL t121[t119(EAX)]:ptr:uintptr
(AU:t270[v260(ESP)+t269(-20)]:cls:.Unresolved,s116(EDI):cls:java/lang/String)
[bcmap:82]
BB_35_epilog
PersistentId = 33
ExecCnt = 9999.97
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_33
Successors: EN_37 [Prob=1]
Layout Succ: BB_15
Block code address: 238B024D
238B024D I400: (ID:s8(EFLGS):U_32) =ADD v260(ESP):U_32,t315(48):I_32
238B0253 I401: POP t310(EDI):U_32
238B0254 I402: POP t311(ESI):U_32
238B0255 I403: POP t312(EBP):U_32
238B0256 I404: POP t313(EBX):U_32
238B0257 I60: RET t122(12):int16
BB_15
PersistentId = 0
ExecCnt = 0.000999999
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_14
Successors: UN_34 [Prob=1]
Layout Succ: BB_11
Block code address: 238B025A
238B025A I234: (ID:s8(EFLGS):U_32) =SUB v260(ESP):U_32,t300(4):I_32
238B0260 I282: PUSH
t52(4920360:id:cls:java/lang/ArrayIndexOutOfBoundsException):ptr:intptr
238B0265 I281: PUSH t53(0):ptr:intptr
238B026A I24: CALL t54(-587855919:h:VM_RT_THROW_LAZY):I_32
(AU:t52(4920360:id:cls:java/lang/ArrayIndexOutOfBoundsException):ptr:intptr,t53(0):ptr:intptr)
[bcmap:23]
BB_11
PersistentId = 0
ExecCnt = 0.000999999
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_10
Successors: UN_34 [Prob=1]
Layout Succ: BB_7
Block code address: 238B026F
238B026F I227: (ID:s8(EFLGS):U_32) =SUB v260(ESP):U_32,t298(4):I_32
238B0275 I280: PUSH
t37(4920360:id:cls:java/lang/ArrayIndexOutOfBoundsException):ptr:intptr
238B027A I279: PUSH t38(0):ptr:intptr
238B027F I17: CALL t39(-587855940:h:VM_RT_THROW_LAZY):I_32
(AU:t37(4920360:id:cls:java/lang/ArrayIndexOutOfBoundsException):ptr:intptr,t38(0):ptr:intptr)
[bcmap:16]
BB_7
PersistentId = 0
ExecCnt = 0.001
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_6
Successors: UN_34 [Prob=1]
Layout Succ: BB_3
Block code address: 238B0284
238B0284 I220: (ID:s8(EFLGS):U_32) =SUB v260(ESP):U_32,t296(4):I_32
238B028A I278: PUSH
t21(4920360:id:cls:java/lang/ArrayIndexOutOfBoundsException):ptr:intptr
238B028F I277: PUSH t22(0):ptr:intptr
238B0294 I10: CALL t23(-587855961:h:VM_RT_THROW_LAZY):I_32
(AU:t21(4920360:id:cls:java/lang/ArrayIndexOutOfBoundsException):ptr:intptr,t22(0):ptr:intptr)
[bcmap:9]
BB_3
PersistentId = 0
ExecCnt = 0.001
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_2
Successors: UN_34 [Prob=1]
Layout Succ: NULL
Block code address: 238B0299
238B0299 I213: (ID:s8(EFLGS):U_32) =SUB v260(ESP):U_32,t294(4):I_32
238B029F I276: PUSH
t5(4920360:id:cls:java/lang/ArrayIndexOutOfBoundsException):ptr:intptr
238B02A4 I275: PUSH t6(0):ptr:intptr
238B02A9 I3: CALL t7(-587855982:h:VM_RT_THROW_LAZY):I_32
(AU:t5(4920360:id:cls:java/lang/ArrayIndexOutOfBoundsException):ptr:intptr,t6(0):ptr:intptr)
[bcmap:2]
UN_34
PersistentId = 3
ExecCnt = 0.028
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_2 BB_4 BB_5 BB_6 BB_8 BB_9 BB_10 BB_12 BB_13 BB_14 BB_16
BB_17 BB_18 BB_19 BB_21 BB_22 BB_23 BB_24 BB_26 BB_38 BB_29 BB_30 BB_32 BB_33
BB_3 BB_7 BB_11 BB_15
Successors: EN_37 [Prob=1]
EN_37
PersistentId = 4
ExecCnt = 10000
Loop: Depth=0, !hdr, hdr=NULL
Predcessors: BB_35_epilog UN_34
Successors: