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 6| move-object v2, v0 11*f0dffb02SXin Li 7| invoke-direct {v2}, java.lang.Object.<init>():void 12*f0dffb02SXin Li 10| return-void 13*f0dffb02SXin Li.............................. end block 1 .............................. 14*f0dffb02SXin Li} 15*f0dffb02SXin Li 16*f0dffb02SXin Limethod Base$Nested.<init>():void 17*f0dffb02SXin Li{ 18*f0dffb02SXin Li............................. begin block 1 ............................. 19*f0dffb02SXin Li 0| move-object v0, v2 20*f0dffb02SXin Li 1| move-object v1, v0 21*f0dffb02SXin Li 2| invoke-direct {v1}, java.lang.Object.<init>():void 22*f0dffb02SXin Li 5| return-void 23*f0dffb02SXin Li.............................. end block 1 .............................. 24*f0dffb02SXin Li} 25*f0dffb02SXin Li 26*f0dffb02SXin Limethod Base.<init>():void 27*f0dffb02SXin Li{ 28*f0dffb02SXin Li............................. begin block 1 ............................. 29*f0dffb02SXin Li 0| move-object v0, v2 30*f0dffb02SXin Li 1| move-object v1, v0 31*f0dffb02SXin Li 2| invoke-direct {v1}, java.lang.Object.<init>():void 32*f0dffb02SXin Li 5| return-void 33*f0dffb02SXin Li.............................. end block 1 .............................. 34*f0dffb02SXin Li} 35*f0dffb02SXin Li 36*f0dffb02SXin Limethod Base.test(int):void 37*f0dffb02SXin Li{ 38*f0dffb02SXin Li............................. begin block 1 ............................. 39*f0dffb02SXin Li 0| move-object v0, v6 40*f0dffb02SXin Li 1| move v1, v7 41*f0dffb02SXin Li 2| invoke-static {}, Hello.printStackTrace():void 42*f0dffb02SXin Li 5| sget-object v2, java.lang.System.out 43*f0dffb02SXin Li 7| new-instance v3, java.lang.StringBuilder 44*f0dffb02SXin Li 9| move-object v5, v3 45*f0dffb02SXin Li 10| move-object v3, v5 46*f0dffb02SXin Li 11| move-object v4, v5 47*f0dffb02SXin Li 12| invoke-direct {v4}, java.lang.StringBuilder.<init>():void 48*f0dffb02SXin Li 15| const-string v4, "Base.test " 49*f0dffb02SXin Li 17| invoke-virtual {v3,v4}, java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder 50*f0dffb02SXin Li 20| move-result-object v3 51*f0dffb02SXin Li 21| move v4, v1 52*f0dffb02SXin Li 22| invoke-virtual {v3,v4}, java.lang.StringBuilder.append(int):java.lang.StringBuilder 53*f0dffb02SXin Li 25| move-result-object v3 54*f0dffb02SXin Li 26| invoke-virtual {v3}, java.lang.StringBuilder.toString():java.lang.String 55*f0dffb02SXin Li 29| move-result-object v3 56*f0dffb02SXin Li 30| invoke-virtual {v2,v3}, java.io.PrintStream.println(java.lang.String):void 57*f0dffb02SXin Li 33| return-void 58*f0dffb02SXin Li.............................. end block 1 .............................. 59*f0dffb02SXin Li} 60*f0dffb02SXin Li 61*f0dffb02SXin Limethod Derived.<init>():void 62*f0dffb02SXin Li{ 63*f0dffb02SXin Li............................. begin block 1 ............................. 64*f0dffb02SXin Li 0| move-object v0, v2 65*f0dffb02SXin Li 1| move-object v1, v0 66*f0dffb02SXin Li 2| invoke-direct {v1}, Base.<init>():void 67*f0dffb02SXin Li 5| return-void 68*f0dffb02SXin Li.............................. end block 1 .............................. 69*f0dffb02SXin Li} 70*f0dffb02SXin Li 71*f0dffb02SXin Limethod Derived.test(int):void 72*f0dffb02SXin Li{ 73*f0dffb02SXin Li............................. begin block 1 ............................. 74*f0dffb02SXin Li 0| move-object v0, v6 75*f0dffb02SXin Li 1| move v1, v7 76*f0dffb02SXin Li 2| sget-object v2, java.lang.System.out 77*f0dffb02SXin Li 4| new-instance v3, java.lang.StringBuilder 78*f0dffb02SXin Li 6| move-object v5, v3 79*f0dffb02SXin Li 7| move-object v3, v5 80*f0dffb02SXin Li 8| move-object v4, v5 81*f0dffb02SXin Li 9| invoke-direct {v4}, java.lang.StringBuilder.<init>():void 82*f0dffb02SXin Li 12| const-string v4, "Derived.test " 83*f0dffb02SXin Li 14| invoke-virtual {v3,v4}, java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder 84*f0dffb02SXin Li 17| move-result-object v3 85*f0dffb02SXin Li 18| move v4, v1 86*f0dffb02SXin Li 19| invoke-virtual {v3,v4}, java.lang.StringBuilder.append(int):java.lang.StringBuilder 87*f0dffb02SXin Li 22| move-result-object v3 88*f0dffb02SXin Li 23| invoke-virtual {v3}, java.lang.StringBuilder.toString():java.lang.String 89*f0dffb02SXin Li 26| move-result-object v3 90*f0dffb02SXin Li 27| invoke-virtual {v2,v3}, java.io.PrintStream.println(java.lang.String):void 91*f0dffb02SXin Li 30| return-void 92*f0dffb02SXin Li.............................. end block 1 .............................. 93*f0dffb02SXin Li} 94*f0dffb02SXin Li 95*f0dffb02SXin Limethod Hello.<init>():void 96*f0dffb02SXin Li{ 97*f0dffb02SXin Li............................. begin block 1 ............................. 98*f0dffb02SXin Li 0| move-object v0, v2 99*f0dffb02SXin Li 1| move-object v1, v0 100*f0dffb02SXin Li 2| invoke-direct {v1}, java.lang.Object.<init>():void 101*f0dffb02SXin Li 5| return-void 102*f0dffb02SXin Li.............................. end block 1 .............................. 103*f0dffb02SXin Li} 104*f0dffb02SXin Li 105*f0dffb02SXin Limethod Hello.main(java.lang.String[]):void 106*f0dffb02SXin Li{ 107*f0dffb02SXin Li............................. begin block 1 ............................. 108*f0dffb02SXin Li 0| move-object v0, v6 109*f0dffb02SXin Li 1| sget-object v2, java.lang.System.out 110*f0dffb02SXin Li 3| const-string v3, "-------------------------------------------------------\n" 111*f0dffb02SXin Li 5| const/4 v4, #+0 (0x00000000 | 0.00000) 112*f0dffb02SXin Li 6| new-array v4, v4, java.lang.Object[] 113*f0dffb02SXin Li 8| invoke-virtual {v2,v3,v4}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 114*f0dffb02SXin Li 11| move-result-object v2 115*f0dffb02SXin Li 12| sget-object v2, java.lang.System.out 116*f0dffb02SXin Li 14| const-string v3, "Hello, world (original)" 117*f0dffb02SXin Li 16| invoke-virtual {v2,v3}, java.io.PrintStream.println(java.lang.String):void 118*f0dffb02SXin Li 19| sget-object v2, java.lang.System.out 119*f0dffb02SXin Li 21| const-string v3, "-------------------------------------------------------\n" 120*f0dffb02SXin Li 23| const/4 v4, #+0 (0x00000000 | 0.00000) 121*f0dffb02SXin Li 24| new-array v4, v4, java.lang.Object[] 122*f0dffb02SXin Li 26| invoke-virtual {v2,v3,v4}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 123*f0dffb02SXin Li 29| move-result-object v2 124*f0dffb02SXin Li 30| new-instance v2, Base 125*f0dffb02SXin Li 32| move-object v5, v2 126*f0dffb02SXin Li 33| move-object v2, v5 127*f0dffb02SXin Li 34| move-object v3, v5 128*f0dffb02SXin Li 35| invoke-direct {v3}, Base.<init>():void 129*f0dffb02SXin Li 38| move-object v1, v2 130*f0dffb02SXin Li 39| move-object v2, v1 131*f0dffb02SXin Li 40| const/4 v3, #+1 (0x00000001 | 1.40130e-45) 132*f0dffb02SXin Li 41| invoke-virtual {v2,v3}, Base.test(int):void 133*f0dffb02SXin Li 44| sget-object v2, java.lang.System.out 134*f0dffb02SXin Li 46| const-string v3, "-------------------------------------------------------\n" 135*f0dffb02SXin Li 48| const/4 v4, #+0 (0x00000000 | 0.00000) 136*f0dffb02SXin Li 49| new-array v4, v4, java.lang.Object[] 137*f0dffb02SXin Li 51| invoke-virtual {v2,v3,v4}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 138*f0dffb02SXin Li 54| move-result-object v2 139*f0dffb02SXin Li 55| new-instance v2, Derived 140*f0dffb02SXin Li 57| move-object v5, v2 141*f0dffb02SXin Li 58| move-object v2, v5 142*f0dffb02SXin Li 59| move-object v3, v5 143*f0dffb02SXin Li 60| invoke-direct {v3}, Derived.<init>():void 144*f0dffb02SXin Li 63| move-object v1, v2 145*f0dffb02SXin Li 64| move-object v2, v1 146*f0dffb02SXin Li 65| const/4 v3, #+2 (0x00000002 | 2.80260e-45) 147*f0dffb02SXin Li 66| invoke-virtual {v2,v3}, Base.test(int):void 148*f0dffb02SXin Li 69| return-void 149*f0dffb02SXin Li.............................. end block 1 .............................. 150*f0dffb02SXin Li} 151*f0dffb02SXin Li 152*f0dffb02SXin Limethod Hello.printStackTrace():void 153*f0dffb02SXin Li{ 154*f0dffb02SXin Li............................. begin block 1 ............................. 155*f0dffb02SXin Li 0| new-instance v5, java.lang.Throwable 156*f0dffb02SXin Li 2| move-object v11, v5 157*f0dffb02SXin Li 3| move-object v5, v11 158*f0dffb02SXin Li 4| move-object v6, v11 159*f0dffb02SXin Li 5| invoke-direct {v6}, java.lang.Throwable.<init>():void 160*f0dffb02SXin Li 8| invoke-virtual {v5}, java.lang.Throwable.getStackTrace():java.lang.StackTraceElement[] 161*f0dffb02SXin Li 11| move-result-object v5 162*f0dffb02SXin Li 12| move-object v0, v5 163*f0dffb02SXin Li 13| move-object v5, v0 164*f0dffb02SXin Li 14| move-object v1, v5 165*f0dffb02SXin Li 15| move-object v5, v1 166*f0dffb02SXin Li 16| array-length v5, v5 167*f0dffb02SXin Li 17| move v2, v5 168*f0dffb02SXin Li 18| const/4 v5, #+0 (0x00000000 | 0.00000) 169*f0dffb02SXin Li 19| move v3, v5 170*f0dffb02SXin Li.............................. end block 1 .............................. 171*f0dffb02SXin Li............................. begin block 2 ............................. 172*f0dffb02SXin LiLabel_1: 173*f0dffb02SXin Li 20| move v5, v3 174*f0dffb02SXin Li 21| move v6, v2 175*f0dffb02SXin Li 22| if-ge v5, v6, Label_2 176*f0dffb02SXin Li.............................. end block 2 .............................. 177*f0dffb02SXin Li............................. begin block 3 ............................. 178*f0dffb02SXin Li 24| move-object v5, v1 179*f0dffb02SXin Li 25| move v6, v3 180*f0dffb02SXin Li 26| aget-object v5, v5, v6 181*f0dffb02SXin Li 28| move-object v4, v5 182*f0dffb02SXin Li 29| sget-object v5, java.lang.System.out 183*f0dffb02SXin Li 31| const-string v6, " %s\n" 184*f0dffb02SXin Li 33| const/4 v7, #+1 (0x00000001 | 1.40130e-45) 185*f0dffb02SXin Li 34| new-array v7, v7, java.lang.Object[] 186*f0dffb02SXin Li 36| move-object v11, v7 187*f0dffb02SXin Li 37| move-object v7, v11 188*f0dffb02SXin Li 38| move-object v8, v11 189*f0dffb02SXin Li 39| const/4 v9, #+0 (0x00000000 | 0.00000) 190*f0dffb02SXin Li 40| move-object v10, v4 191*f0dffb02SXin Li 41| invoke-virtual {v10}, java.lang.StackTraceElement.toString():java.lang.String 192*f0dffb02SXin Li 44| move-result-object v10 193*f0dffb02SXin Li 45| aput-object v10, v8, v9 194*f0dffb02SXin Li 47| invoke-virtual {v5,v6,v7}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 195*f0dffb02SXin Li 50| move-result-object v5 196*f0dffb02SXin Li 51| add-int/lit8 v3, v3, #+1 (0x00000001 | 1.40130e-45) 197*f0dffb02SXin Li 53| goto Label_1 198*f0dffb02SXin Li.............................. end block 3 .............................. 199*f0dffb02SXin Li............................. begin block 4 ............................. 200*f0dffb02SXin LiLabel_2: 201*f0dffb02SXin Li 54| return-void 202*f0dffb02SXin Li.............................. end block 4 .............................. 203*f0dffb02SXin Li} 204