1*f0dffb02SXin Li 2*f0dffb02SXin Limethod Base$Inner.<init>(Base):void 3*f0dffb02SXin Li{ 4*f0dffb02SXin Li............................. begin block 1 ............................. 5*f0dffb02SXin Li 0| move-object v0, v4 6*f0dffb02SXin Li 1| move-object v1, v5 7*f0dffb02SXin Li 2| move-object v2, v0 8*f0dffb02SXin Li 3| move-object v3, v1 9*f0dffb02SXin Li 4| iput-object v3, v2, Base$Inner.this$0 10*f0dffb02SXin Li.............................. end block 1 .............................. 11*f0dffb02SXin Li............................. begin block 2 ............................. 12*f0dffb02SXin Li 6| move-object v2, v0 13*f0dffb02SXin Li 7| invoke-direct {v2}, java.lang.Object.<init>():void 14*f0dffb02SXin Li.............................. end block 2 .............................. 15*f0dffb02SXin Li............................. begin block 3 ............................. 16*f0dffb02SXin Li 10| return-void 17*f0dffb02SXin Li.............................. end block 3 .............................. 18*f0dffb02SXin Li} 19*f0dffb02SXin Li 20*f0dffb02SXin Limethod Base$Nested.<init>():void 21*f0dffb02SXin Li{ 22*f0dffb02SXin Li............................. begin block 1 ............................. 23*f0dffb02SXin Li 0| move-object v0, v2 24*f0dffb02SXin Li 1| move-object v1, v0 25*f0dffb02SXin Li 2| invoke-direct {v1}, java.lang.Object.<init>():void 26*f0dffb02SXin Li.............................. end block 1 .............................. 27*f0dffb02SXin Li............................. begin block 2 ............................. 28*f0dffb02SXin Li 5| return-void 29*f0dffb02SXin Li.............................. end block 2 .............................. 30*f0dffb02SXin Li} 31*f0dffb02SXin Li 32*f0dffb02SXin Limethod Base.<init>():void 33*f0dffb02SXin Li{ 34*f0dffb02SXin Li............................. begin block 1 ............................. 35*f0dffb02SXin Li 0| move-object v0, v2 36*f0dffb02SXin Li 1| move-object v1, v0 37*f0dffb02SXin Li 2| invoke-direct {v1}, java.lang.Object.<init>():void 38*f0dffb02SXin Li.............................. end block 1 .............................. 39*f0dffb02SXin Li............................. begin block 2 ............................. 40*f0dffb02SXin Li 5| return-void 41*f0dffb02SXin Li.............................. end block 2 .............................. 42*f0dffb02SXin Li} 43*f0dffb02SXin Li 44*f0dffb02SXin Limethod Base.test(int):void 45*f0dffb02SXin Li{ 46*f0dffb02SXin Li............................. begin block 1 ............................. 47*f0dffb02SXin Li 0| move-object v0, v6 48*f0dffb02SXin Li 1| move v1, v7 49*f0dffb02SXin Li 2| invoke-static {}, Hello.printStackTrace():void 50*f0dffb02SXin Li.............................. end block 1 .............................. 51*f0dffb02SXin Li............................. begin block 2 ............................. 52*f0dffb02SXin Li 5| sget-object v2, java.lang.System.out 53*f0dffb02SXin Li.............................. end block 2 .............................. 54*f0dffb02SXin Li............................. begin block 3 ............................. 55*f0dffb02SXin Li 7| new-instance v3, java.lang.StringBuilder 56*f0dffb02SXin Li.............................. end block 3 .............................. 57*f0dffb02SXin Li............................. begin block 4 ............................. 58*f0dffb02SXin Li 9| move-object v5, v3 59*f0dffb02SXin Li 10| move-object v3, v5 60*f0dffb02SXin Li 11| move-object v4, v5 61*f0dffb02SXin Li 12| invoke-direct {v4}, java.lang.StringBuilder.<init>():void 62*f0dffb02SXin Li.............................. end block 4 .............................. 63*f0dffb02SXin Li............................. begin block 5 ............................. 64*f0dffb02SXin Li 15| const-string v4, "Base.test " 65*f0dffb02SXin Li.............................. end block 5 .............................. 66*f0dffb02SXin Li............................. begin block 6 ............................. 67*f0dffb02SXin Li 17| invoke-virtual {v3,v4}, java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder 68*f0dffb02SXin Li.............................. end block 6 .............................. 69*f0dffb02SXin Li............................. begin block 7 ............................. 70*f0dffb02SXin Li 20| move-result-object v3 71*f0dffb02SXin Li 21| move v4, v1 72*f0dffb02SXin Li 22| invoke-virtual {v3,v4}, java.lang.StringBuilder.append(int):java.lang.StringBuilder 73*f0dffb02SXin Li.............................. end block 7 .............................. 74*f0dffb02SXin Li............................. begin block 8 ............................. 75*f0dffb02SXin Li 25| move-result-object v3 76*f0dffb02SXin Li 26| invoke-virtual {v3}, java.lang.StringBuilder.toString():java.lang.String 77*f0dffb02SXin Li.............................. end block 8 .............................. 78*f0dffb02SXin Li............................. begin block 9 ............................. 79*f0dffb02SXin Li 29| move-result-object v3 80*f0dffb02SXin Li 30| invoke-virtual {v2,v3}, java.io.PrintStream.println(java.lang.String):void 81*f0dffb02SXin Li.............................. end block 9 .............................. 82*f0dffb02SXin Li............................. begin block 10 ............................. 83*f0dffb02SXin Li 33| return-void 84*f0dffb02SXin Li.............................. end block 10 .............................. 85*f0dffb02SXin Li} 86*f0dffb02SXin Li 87*f0dffb02SXin Limethod Derived.<init>():void 88*f0dffb02SXin Li{ 89*f0dffb02SXin Li............................. begin block 1 ............................. 90*f0dffb02SXin Li 0| move-object v0, v2 91*f0dffb02SXin Li 1| move-object v1, v0 92*f0dffb02SXin Li 2| invoke-direct {v1}, Base.<init>():void 93*f0dffb02SXin Li.............................. end block 1 .............................. 94*f0dffb02SXin Li............................. begin block 2 ............................. 95*f0dffb02SXin Li 5| return-void 96*f0dffb02SXin Li.............................. end block 2 .............................. 97*f0dffb02SXin Li} 98*f0dffb02SXin Li 99*f0dffb02SXin Limethod Derived.test(int):void 100*f0dffb02SXin Li{ 101*f0dffb02SXin Li............................. begin block 1 ............................. 102*f0dffb02SXin Li 0| move-object v0, v6 103*f0dffb02SXin Li 1| move v1, v7 104*f0dffb02SXin Li 2| sget-object v2, java.lang.System.out 105*f0dffb02SXin Li.............................. end block 1 .............................. 106*f0dffb02SXin Li............................. begin block 2 ............................. 107*f0dffb02SXin Li 4| new-instance v3, java.lang.StringBuilder 108*f0dffb02SXin Li.............................. end block 2 .............................. 109*f0dffb02SXin Li............................. begin block 3 ............................. 110*f0dffb02SXin Li 6| move-object v5, v3 111*f0dffb02SXin Li 7| move-object v3, v5 112*f0dffb02SXin Li 8| move-object v4, v5 113*f0dffb02SXin Li 9| invoke-direct {v4}, java.lang.StringBuilder.<init>():void 114*f0dffb02SXin Li.............................. end block 3 .............................. 115*f0dffb02SXin Li............................. begin block 4 ............................. 116*f0dffb02SXin Li 12| const-string v4, "Derived.test " 117*f0dffb02SXin Li.............................. end block 4 .............................. 118*f0dffb02SXin Li............................. begin block 5 ............................. 119*f0dffb02SXin Li 14| invoke-virtual {v3,v4}, java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder 120*f0dffb02SXin Li.............................. end block 5 .............................. 121*f0dffb02SXin Li............................. begin block 6 ............................. 122*f0dffb02SXin Li 17| move-result-object v3 123*f0dffb02SXin Li 18| move v4, v1 124*f0dffb02SXin Li 19| invoke-virtual {v3,v4}, java.lang.StringBuilder.append(int):java.lang.StringBuilder 125*f0dffb02SXin Li.............................. end block 6 .............................. 126*f0dffb02SXin Li............................. begin block 7 ............................. 127*f0dffb02SXin Li 22| move-result-object v3 128*f0dffb02SXin Li 23| invoke-virtual {v3}, java.lang.StringBuilder.toString():java.lang.String 129*f0dffb02SXin Li.............................. end block 7 .............................. 130*f0dffb02SXin Li............................. begin block 8 ............................. 131*f0dffb02SXin Li 26| move-result-object v3 132*f0dffb02SXin Li 27| invoke-virtual {v2,v3}, java.io.PrintStream.println(java.lang.String):void 133*f0dffb02SXin Li.............................. end block 8 .............................. 134*f0dffb02SXin Li............................. begin block 9 ............................. 135*f0dffb02SXin Li 30| return-void 136*f0dffb02SXin Li.............................. end block 9 .............................. 137*f0dffb02SXin Li} 138*f0dffb02SXin Li 139*f0dffb02SXin Limethod Hello.<init>():void 140*f0dffb02SXin Li{ 141*f0dffb02SXin Li............................. begin block 1 ............................. 142*f0dffb02SXin Li 0| move-object v0, v2 143*f0dffb02SXin Li 1| move-object v1, v0 144*f0dffb02SXin Li 2| invoke-direct {v1}, java.lang.Object.<init>():void 145*f0dffb02SXin Li.............................. end block 1 .............................. 146*f0dffb02SXin Li............................. begin block 2 ............................. 147*f0dffb02SXin Li 5| return-void 148*f0dffb02SXin Li.............................. end block 2 .............................. 149*f0dffb02SXin Li} 150*f0dffb02SXin Li 151*f0dffb02SXin Limethod Hello.main(java.lang.String[]):void 152*f0dffb02SXin Li{ 153*f0dffb02SXin Li............................. begin block 1 ............................. 154*f0dffb02SXin Li 0| move-object v0, v6 155*f0dffb02SXin Li 1| sget-object v2, java.lang.System.out 156*f0dffb02SXin Li.............................. end block 1 .............................. 157*f0dffb02SXin Li............................. begin block 2 ............................. 158*f0dffb02SXin Li 3| const-string v3, "-------------------------------------------------------\n" 159*f0dffb02SXin Li.............................. end block 2 .............................. 160*f0dffb02SXin Li............................. begin block 3 ............................. 161*f0dffb02SXin Li 5| const/4 v4, #+0 (0x00000000 | 0.00000) 162*f0dffb02SXin Li 6| new-array v4, v4, java.lang.Object[] 163*f0dffb02SXin Li.............................. end block 3 .............................. 164*f0dffb02SXin Li............................. begin block 4 ............................. 165*f0dffb02SXin Li 8| invoke-virtual {v2,v3,v4}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 166*f0dffb02SXin Li.............................. end block 4 .............................. 167*f0dffb02SXin Li............................. begin block 5 ............................. 168*f0dffb02SXin Li 11| move-result-object v2 169*f0dffb02SXin Li 12| sget-object v2, java.lang.System.out 170*f0dffb02SXin Li.............................. end block 5 .............................. 171*f0dffb02SXin Li............................. begin block 6 ............................. 172*f0dffb02SXin Li 14| const-string v3, "Hello, world (original)" 173*f0dffb02SXin Li.............................. end block 6 .............................. 174*f0dffb02SXin Li............................. begin block 7 ............................. 175*f0dffb02SXin Li 16| invoke-virtual {v2,v3}, java.io.PrintStream.println(java.lang.String):void 176*f0dffb02SXin Li.............................. end block 7 .............................. 177*f0dffb02SXin Li............................. begin block 8 ............................. 178*f0dffb02SXin Li 19| sget-object v2, java.lang.System.out 179*f0dffb02SXin Li.............................. end block 8 .............................. 180*f0dffb02SXin Li............................. begin block 9 ............................. 181*f0dffb02SXin Li 21| const-string v3, "-------------------------------------------------------\n" 182*f0dffb02SXin Li.............................. end block 9 .............................. 183*f0dffb02SXin Li............................. begin block 10 ............................. 184*f0dffb02SXin Li 23| const/4 v4, #+0 (0x00000000 | 0.00000) 185*f0dffb02SXin Li 24| new-array v4, v4, java.lang.Object[] 186*f0dffb02SXin Li.............................. end block 10 .............................. 187*f0dffb02SXin Li............................. begin block 11 ............................. 188*f0dffb02SXin Li 26| invoke-virtual {v2,v3,v4}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 189*f0dffb02SXin Li.............................. end block 11 .............................. 190*f0dffb02SXin Li............................. begin block 12 ............................. 191*f0dffb02SXin Li 29| move-result-object v2 192*f0dffb02SXin Li 30| new-instance v2, Base 193*f0dffb02SXin Li.............................. end block 12 .............................. 194*f0dffb02SXin Li............................. begin block 13 ............................. 195*f0dffb02SXin Li 32| move-object v5, v2 196*f0dffb02SXin Li 33| move-object v2, v5 197*f0dffb02SXin Li 34| move-object v3, v5 198*f0dffb02SXin Li 35| invoke-direct {v3}, Base.<init>():void 199*f0dffb02SXin Li.............................. end block 13 .............................. 200*f0dffb02SXin Li............................. begin block 14 ............................. 201*f0dffb02SXin Li 38| move-object v1, v2 202*f0dffb02SXin Li 39| move-object v2, v1 203*f0dffb02SXin Li 40| const/4 v3, #+1 (0x00000001 | 1.40130e-45) 204*f0dffb02SXin Li 41| invoke-virtual {v2,v3}, Base.test(int):void 205*f0dffb02SXin Li.............................. end block 14 .............................. 206*f0dffb02SXin Li............................. begin block 15 ............................. 207*f0dffb02SXin Li 44| sget-object v2, java.lang.System.out 208*f0dffb02SXin Li.............................. end block 15 .............................. 209*f0dffb02SXin Li............................. begin block 16 ............................. 210*f0dffb02SXin Li 46| const-string v3, "-------------------------------------------------------\n" 211*f0dffb02SXin Li.............................. end block 16 .............................. 212*f0dffb02SXin Li............................. begin block 17 ............................. 213*f0dffb02SXin Li 48| const/4 v4, #+0 (0x00000000 | 0.00000) 214*f0dffb02SXin Li 49| new-array v4, v4, java.lang.Object[] 215*f0dffb02SXin Li.............................. end block 17 .............................. 216*f0dffb02SXin Li............................. begin block 18 ............................. 217*f0dffb02SXin Li 51| invoke-virtual {v2,v3,v4}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 218*f0dffb02SXin Li.............................. end block 18 .............................. 219*f0dffb02SXin Li............................. begin block 19 ............................. 220*f0dffb02SXin Li 54| move-result-object v2 221*f0dffb02SXin Li 55| new-instance v2, Derived 222*f0dffb02SXin Li.............................. end block 19 .............................. 223*f0dffb02SXin Li............................. begin block 20 ............................. 224*f0dffb02SXin Li 57| move-object v5, v2 225*f0dffb02SXin Li 58| move-object v2, v5 226*f0dffb02SXin Li 59| move-object v3, v5 227*f0dffb02SXin Li 60| invoke-direct {v3}, Derived.<init>():void 228*f0dffb02SXin Li.............................. end block 20 .............................. 229*f0dffb02SXin Li............................. begin block 21 ............................. 230*f0dffb02SXin Li 63| move-object v1, v2 231*f0dffb02SXin Li 64| move-object v2, v1 232*f0dffb02SXin Li 65| const/4 v3, #+2 (0x00000002 | 2.80260e-45) 233*f0dffb02SXin Li 66| invoke-virtual {v2,v3}, Base.test(int):void 234*f0dffb02SXin Li.............................. end block 21 .............................. 235*f0dffb02SXin Li............................. begin block 22 ............................. 236*f0dffb02SXin Li 69| return-void 237*f0dffb02SXin Li.............................. end block 22 .............................. 238*f0dffb02SXin Li} 239*f0dffb02SXin Li 240*f0dffb02SXin Limethod Hello.printStackTrace():void 241*f0dffb02SXin Li{ 242*f0dffb02SXin Li............................. begin block 1 ............................. 243*f0dffb02SXin Li 0| new-instance v5, java.lang.Throwable 244*f0dffb02SXin Li.............................. end block 1 .............................. 245*f0dffb02SXin Li............................. begin block 2 ............................. 246*f0dffb02SXin Li 2| move-object v11, v5 247*f0dffb02SXin Li 3| move-object v5, v11 248*f0dffb02SXin Li 4| move-object v6, v11 249*f0dffb02SXin Li 5| invoke-direct {v6}, java.lang.Throwable.<init>():void 250*f0dffb02SXin Li.............................. end block 2 .............................. 251*f0dffb02SXin Li............................. begin block 3 ............................. 252*f0dffb02SXin Li 8| invoke-virtual {v5}, java.lang.Throwable.getStackTrace():java.lang.StackTraceElement[] 253*f0dffb02SXin Li.............................. end block 3 .............................. 254*f0dffb02SXin Li............................. begin block 4 ............................. 255*f0dffb02SXin Li 11| move-result-object v5 256*f0dffb02SXin Li 12| move-object v0, v5 257*f0dffb02SXin Li 13| move-object v5, v0 258*f0dffb02SXin Li 14| move-object v1, v5 259*f0dffb02SXin Li 15| move-object v5, v1 260*f0dffb02SXin Li 16| array-length v5, v5 261*f0dffb02SXin Li.............................. end block 4 .............................. 262*f0dffb02SXin Li............................. begin block 5 ............................. 263*f0dffb02SXin Li 17| move v2, v5 264*f0dffb02SXin Li 18| const/4 v5, #+0 (0x00000000 | 0.00000) 265*f0dffb02SXin Li 19| move v3, v5 266*f0dffb02SXin Li.............................. end block 5 .............................. 267*f0dffb02SXin Li............................. begin block 6 ............................. 268*f0dffb02SXin LiLabel_1: 269*f0dffb02SXin Li 20| move v5, v3 270*f0dffb02SXin Li 21| move v6, v2 271*f0dffb02SXin Li 22| if-ge v5, v6, Label_2 272*f0dffb02SXin Li.............................. end block 6 .............................. 273*f0dffb02SXin Li............................. begin block 7 ............................. 274*f0dffb02SXin Li 24| move-object v5, v1 275*f0dffb02SXin Li 25| move v6, v3 276*f0dffb02SXin Li 26| aget-object v5, v5, v6 277*f0dffb02SXin Li.............................. end block 7 .............................. 278*f0dffb02SXin Li............................. begin block 8 ............................. 279*f0dffb02SXin Li 28| move-object v4, v5 280*f0dffb02SXin Li 29| sget-object v5, java.lang.System.out 281*f0dffb02SXin Li.............................. end block 8 .............................. 282*f0dffb02SXin Li............................. begin block 9 ............................. 283*f0dffb02SXin Li 31| const-string v6, " %s\n" 284*f0dffb02SXin Li.............................. end block 9 .............................. 285*f0dffb02SXin Li............................. begin block 10 ............................. 286*f0dffb02SXin Li 33| const/4 v7, #+1 (0x00000001 | 1.40130e-45) 287*f0dffb02SXin Li 34| new-array v7, v7, java.lang.Object[] 288*f0dffb02SXin Li.............................. end block 10 .............................. 289*f0dffb02SXin Li............................. begin block 11 ............................. 290*f0dffb02SXin Li 36| move-object v11, v7 291*f0dffb02SXin Li 37| move-object v7, v11 292*f0dffb02SXin Li 38| move-object v8, v11 293*f0dffb02SXin Li 39| const/4 v9, #+0 (0x00000000 | 0.00000) 294*f0dffb02SXin Li 40| move-object v10, v4 295*f0dffb02SXin Li 41| invoke-virtual {v10}, java.lang.StackTraceElement.toString():java.lang.String 296*f0dffb02SXin Li.............................. end block 11 .............................. 297*f0dffb02SXin Li............................. begin block 12 ............................. 298*f0dffb02SXin Li 44| move-result-object v10 299*f0dffb02SXin Li 45| aput-object v10, v8, v9 300*f0dffb02SXin Li.............................. end block 12 .............................. 301*f0dffb02SXin Li............................. begin block 13 ............................. 302*f0dffb02SXin Li 47| invoke-virtual {v5,v6,v7}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 303*f0dffb02SXin Li.............................. end block 13 .............................. 304*f0dffb02SXin Li............................. begin block 14 ............................. 305*f0dffb02SXin Li 50| move-result-object v5 306*f0dffb02SXin Li 51| add-int/lit8 v3, v3, #+1 (0x00000001 | 1.40130e-45) 307*f0dffb02SXin Li 53| goto Label_1 308*f0dffb02SXin Li.............................. end block 14 .............................. 309*f0dffb02SXin Li............................. begin block 15 ............................. 310*f0dffb02SXin LiLabel_2: 311*f0dffb02SXin Li 54| return-void 312*f0dffb02SXin Li.............................. end block 15 .............................. 313*f0dffb02SXin Li} 314