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:  

Reply via email to