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