1*f0dffb02SXin Li 2*f0dffb02SXin Limethod Base.<init>():void 3*f0dffb02SXin Li{ 4*f0dffb02SXin Li............................. begin block 1 ............................. 5*f0dffb02SXin Li .src "entryHooks.java" 6*f0dffb02SXin Li .line 27 7*f0dffb02SXin Li .prologue_end 8*f0dffb02SXin Li .line 27 9*f0dffb02SXin Li 0| move-object v0, v2 10*f0dffb02SXin Li .local v0, "this", Base 11*f0dffb02SXin Li 1| move-object v1, v0 12*f0dffb02SXin Li 2| invoke-direct {v1}, java.lang.Object.<init>():void 13*f0dffb02SXin Li.............................. end block 1 .............................. 14*f0dffb02SXin Li............................. begin block 2 ............................. 15*f0dffb02SXin Li 5| return-void 16*f0dffb02SXin Li.............................. end block 2 .............................. 17*f0dffb02SXin Li} 18*f0dffb02SXin Li 19*f0dffb02SXin Limethod Base.foo(int, java.lang.String):int 20*f0dffb02SXin Li{ 21*f0dffb02SXin Li............................. begin block 1 ............................. 22*f0dffb02SXin Li .params "?", "?" 23*f0dffb02SXin Li .src "entryHooks.java" 24*f0dffb02SXin Li .line 31 25*f0dffb02SXin Li .prologue_end 26*f0dffb02SXin Li .line 31 27*f0dffb02SXin Li 0| move-object v0, v10 28*f0dffb02SXin Li .local v0, "this", Base 29*f0dffb02SXin Li 1| move v1, v11 30*f0dffb02SXin Li .local v1, "x", int 31*f0dffb02SXin Li 2| move-object v2, v12 32*f0dffb02SXin Li .local v2, "msg", java.lang.String 33*f0dffb02SXin Li 3| sget-object v3, java.lang.System.out 34*f0dffb02SXin Li.............................. end block 1 .............................. 35*f0dffb02SXin Li............................. begin block 2 ............................. 36*f0dffb02SXin Li 5| const-string v4, "Base.foo(%d, '%s')\n" 37*f0dffb02SXin Li.............................. end block 2 .............................. 38*f0dffb02SXin Li............................. begin block 3 ............................. 39*f0dffb02SXin Li 7| const/4 v5, #+2 (0x00000002 | 2.80260e-45) 40*f0dffb02SXin Li 8| new-array v5, v5, java.lang.Object[] 41*f0dffb02SXin Li.............................. end block 3 .............................. 42*f0dffb02SXin Li............................. begin block 4 ............................. 43*f0dffb02SXin Li 10| move-object v9, v5 44*f0dffb02SXin Li 11| move-object v5, v9 45*f0dffb02SXin Li 12| move-object v6, v9 46*f0dffb02SXin Li 13| const/4 v7, #+0 (0x00000000 | 0.00000) 47*f0dffb02SXin Li 14| move v8, v1 48*f0dffb02SXin Li 15| invoke-static {v8}, java.lang.Integer.valueOf(int):java.lang.Integer 49*f0dffb02SXin Li.............................. end block 4 .............................. 50*f0dffb02SXin Li............................. begin block 5 ............................. 51*f0dffb02SXin Li 18| move-result-object v8 52*f0dffb02SXin Li 19| aput-object v8, v6, v7 53*f0dffb02SXin Li.............................. end block 5 .............................. 54*f0dffb02SXin Li............................. begin block 6 ............................. 55*f0dffb02SXin Li 21| move-object v9, v5 56*f0dffb02SXin Li 22| move-object v5, v9 57*f0dffb02SXin Li 23| move-object v6, v9 58*f0dffb02SXin Li 24| const/4 v7, #+1 (0x00000001 | 1.40130e-45) 59*f0dffb02SXin Li 25| move-object v8, v2 60*f0dffb02SXin Li 26| aput-object v8, v6, v7 61*f0dffb02SXin Li.............................. end block 6 .............................. 62*f0dffb02SXin Li............................. begin block 7 ............................. 63*f0dffb02SXin Li 28| invoke-virtual {v3,v4,v5}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 64*f0dffb02SXin Li.............................. end block 7 .............................. 65*f0dffb02SXin Li............................. begin block 8 ............................. 66*f0dffb02SXin Li 31| move-result-object v3 67*f0dffb02SXin Li .line 32 68*f0dffb02SXin Li 32| move v3, v1 69*f0dffb02SXin Li 33| move v0, v3 70*f0dffb02SXin Li .end_local v0 71*f0dffb02SXin Li 34| return v0 72*f0dffb02SXin Li.............................. end block 8 .............................. 73*f0dffb02SXin Li} 74*f0dffb02SXin Li 75*f0dffb02SXin Limethod Derived.<init>():void 76*f0dffb02SXin Li{ 77*f0dffb02SXin Li............................. begin block 1 ............................. 78*f0dffb02SXin Li .src "entryHooks.java" 79*f0dffb02SXin Li .line 36 80*f0dffb02SXin Li .prologue_end 81*f0dffb02SXin Li .line 36 82*f0dffb02SXin Li 0| move-object v0, v2 83*f0dffb02SXin Li .local v0, "this", Derived 84*f0dffb02SXin Li 1| move-object v1, v0 85*f0dffb02SXin Li 2| invoke-direct {v1}, Base.<init>():void 86*f0dffb02SXin Li.............................. end block 1 .............................. 87*f0dffb02SXin Li............................. begin block 2 ............................. 88*f0dffb02SXin Li 5| return-void 89*f0dffb02SXin Li.............................. end block 2 .............................. 90*f0dffb02SXin Li} 91*f0dffb02SXin Li 92*f0dffb02SXin Limethod Derived.foo(int, java.lang.String):int 93*f0dffb02SXin Li{ 94*f0dffb02SXin Li............................. begin block 1 ............................. 95*f0dffb02SXin Li .params "?", "?" 96*f0dffb02SXin Li .src "entryHooks.java" 97*f0dffb02SXin Li .line 40 98*f0dffb02SXin Li .prologue_end 99*f0dffb02SXin Li .line 40 100*f0dffb02SXin Li 0| move-object v0, v10 101*f0dffb02SXin Li .local v0, "this", Derived 102*f0dffb02SXin Li 1| move v1, v11 103*f0dffb02SXin Li .local v1, "x", int 104*f0dffb02SXin Li 2| move-object v2, v12 105*f0dffb02SXin Li .local v2, "msg", java.lang.String 106*f0dffb02SXin Li 3| sget-object v3, java.lang.System.out 107*f0dffb02SXin Li.............................. end block 1 .............................. 108*f0dffb02SXin Li............................. begin block 2 ............................. 109*f0dffb02SXin Li 5| const-string v4, "Derived.foo(%d, '%s')\n" 110*f0dffb02SXin Li.............................. end block 2 .............................. 111*f0dffb02SXin Li............................. begin block 3 ............................. 112*f0dffb02SXin Li 7| const/4 v5, #+2 (0x00000002 | 2.80260e-45) 113*f0dffb02SXin Li 8| new-array v5, v5, java.lang.Object[] 114*f0dffb02SXin Li.............................. end block 3 .............................. 115*f0dffb02SXin Li............................. begin block 4 ............................. 116*f0dffb02SXin Li 10| move-object v9, v5 117*f0dffb02SXin Li 11| move-object v5, v9 118*f0dffb02SXin Li 12| move-object v6, v9 119*f0dffb02SXin Li 13| const/4 v7, #+0 (0x00000000 | 0.00000) 120*f0dffb02SXin Li 14| move v8, v1 121*f0dffb02SXin Li 15| invoke-static {v8}, java.lang.Integer.valueOf(int):java.lang.Integer 122*f0dffb02SXin Li.............................. end block 4 .............................. 123*f0dffb02SXin Li............................. begin block 5 ............................. 124*f0dffb02SXin Li 18| move-result-object v8 125*f0dffb02SXin Li 19| aput-object v8, v6, v7 126*f0dffb02SXin Li.............................. end block 5 .............................. 127*f0dffb02SXin Li............................. begin block 6 ............................. 128*f0dffb02SXin Li 21| move-object v9, v5 129*f0dffb02SXin Li 22| move-object v5, v9 130*f0dffb02SXin Li 23| move-object v6, v9 131*f0dffb02SXin Li 24| const/4 v7, #+1 (0x00000001 | 1.40130e-45) 132*f0dffb02SXin Li 25| move-object v8, v2 133*f0dffb02SXin Li 26| aput-object v8, v6, v7 134*f0dffb02SXin Li.............................. end block 6 .............................. 135*f0dffb02SXin Li............................. begin block 7 ............................. 136*f0dffb02SXin Li 28| invoke-virtual {v3,v4,v5}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 137*f0dffb02SXin Li.............................. end block 7 .............................. 138*f0dffb02SXin Li............................. begin block 8 ............................. 139*f0dffb02SXin Li 31| move-result-object v3 140*f0dffb02SXin Li .line 41 141*f0dffb02SXin Li 32| move v3, v1 142*f0dffb02SXin Li 33| const/4 v4, #+2 (0x00000002 | 2.80260e-45) 143*f0dffb02SXin Li 34| mul-int/lit8 v3, v3, #+2 (0x00000002 | 2.80260e-45) 144*f0dffb02SXin Li 36| move v0, v3 145*f0dffb02SXin Li .end_local v0 146*f0dffb02SXin Li 37| return v0 147*f0dffb02SXin Li.............................. end block 8 .............................. 148*f0dffb02SXin Li} 149*f0dffb02SXin Li 150*f0dffb02SXin Limethod Target.<init>():void 151*f0dffb02SXin Li{ 152*f0dffb02SXin Li............................. begin block 1 ............................. 153*f0dffb02SXin Li .src "entryHooks.java" 154*f0dffb02SXin Li .line 45 155*f0dffb02SXin Li .prologue_end 156*f0dffb02SXin Li .line 45 157*f0dffb02SXin Li 0| move-object v0, v2 158*f0dffb02SXin Li .local v0, "this", Target 159*f0dffb02SXin Li 1| move-object v1, v0 160*f0dffb02SXin Li 2| invoke-direct {v1}, java.lang.Object.<init>():void 161*f0dffb02SXin Li.............................. end block 1 .............................. 162*f0dffb02SXin Li............................. begin block 2 ............................. 163*f0dffb02SXin Li 5| return-void 164*f0dffb02SXin Li.............................. end block 2 .............................. 165*f0dffb02SXin Li} 166*f0dffb02SXin Li 167*f0dffb02SXin Limethod Target.main(java.lang.String[]):void 168*f0dffb02SXin Li{ 169*f0dffb02SXin Li............................. begin block 1 ............................. 170*f0dffb02SXin Li .params "?" 171*f0dffb02SXin Li .src "entryHooks.java" 172*f0dffb02SXin Li .line 51 173*f0dffb02SXin Li .prologue_end 174*f0dffb02SXin Li .line 51 175*f0dffb02SXin Li 0| move-object v0, v8 176*f0dffb02SXin Li .local v0, "args", java.lang.String[] 177*f0dffb02SXin Li 1| sget-object v1, java.lang.System.out 178*f0dffb02SXin Li.............................. end block 1 .............................. 179*f0dffb02SXin Li............................. begin block 2 ............................. 180*f0dffb02SXin Li 3| const-string v2, "Hello, world!" 181*f0dffb02SXin Li.............................. end block 2 .............................. 182*f0dffb02SXin Li............................. begin block 3 ............................. 183*f0dffb02SXin Li 5| invoke-virtual {v1,v2}, java.io.PrintStream.println(java.lang.String):void 184*f0dffb02SXin Li.............................. end block 3 .............................. 185*f0dffb02SXin Li............................. begin block 4 ............................. 186*f0dffb02SXin Li .line 52 187*f0dffb02SXin Li 8| sget-object v1, java.lang.System.out 188*f0dffb02SXin Li.............................. end block 4 .............................. 189*f0dffb02SXin Li............................. begin block 5 ............................. 190*f0dffb02SXin Li 10| const-string v2, "final = %d\n" 191*f0dffb02SXin Li.............................. end block 5 .............................. 192*f0dffb02SXin Li............................. begin block 6 ............................. 193*f0dffb02SXin Li 12| const/4 v3, #+1 (0x00000001 | 1.40130e-45) 194*f0dffb02SXin Li 13| new-array v3, v3, java.lang.Object[] 195*f0dffb02SXin Li.............................. end block 6 .............................. 196*f0dffb02SXin Li............................. begin block 7 ............................. 197*f0dffb02SXin Li 15| move-object v7, v3 198*f0dffb02SXin Li 16| move-object v3, v7 199*f0dffb02SXin Li 17| move-object v4, v7 200*f0dffb02SXin Li 18| const/4 v5, #+0 (0x00000000 | 0.00000) 201*f0dffb02SXin Li 19| invoke-static {}, Target.test():int 202*f0dffb02SXin Li.............................. end block 7 .............................. 203*f0dffb02SXin Li............................. begin block 8 ............................. 204*f0dffb02SXin Li 22| move-result v6 205*f0dffb02SXin Li 23| invoke-static {v6}, java.lang.Integer.valueOf(int):java.lang.Integer 206*f0dffb02SXin Li.............................. end block 8 .............................. 207*f0dffb02SXin Li............................. begin block 9 ............................. 208*f0dffb02SXin Li 26| move-result-object v6 209*f0dffb02SXin Li 27| aput-object v6, v4, v5 210*f0dffb02SXin Li.............................. end block 9 .............................. 211*f0dffb02SXin Li............................. begin block 10 ............................. 212*f0dffb02SXin Li 29| invoke-virtual {v1,v2,v3}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 213*f0dffb02SXin Li.............................. end block 10 .............................. 214*f0dffb02SXin Li............................. begin block 11 ............................. 215*f0dffb02SXin Li 32| move-result-object v1 216*f0dffb02SXin Li .line 53 217*f0dffb02SXin Li 33| sget-object v1, java.lang.System.out 218*f0dffb02SXin Li.............................. end block 11 .............................. 219*f0dffb02SXin Li............................. begin block 12 ............................. 220*f0dffb02SXin Li 35| const-string v2, "Good bye!" 221*f0dffb02SXin Li.............................. end block 12 .............................. 222*f0dffb02SXin Li............................. begin block 13 ............................. 223*f0dffb02SXin Li 37| invoke-virtual {v1,v2}, java.io.PrintStream.println(java.lang.String):void 224*f0dffb02SXin Li.............................. end block 13 .............................. 225*f0dffb02SXin Li............................. begin block 14 ............................. 226*f0dffb02SXin Li .line 54 227*f0dffb02SXin Li 40| return-void 228*f0dffb02SXin Li.............................. end block 14 .............................. 229*f0dffb02SXin Li} 230*f0dffb02SXin Li 231*f0dffb02SXin Limethod Target.test():int 232*f0dffb02SXin Li{ 233*f0dffb02SXin Li............................. begin block 1 ............................. 234*f0dffb02SXin Li .src "entryHooks.java" 235*f0dffb02SXin Li .line 58 236*f0dffb02SXin Li .prologue_end 237*f0dffb02SXin Li .line 58 238*f0dffb02SXin Li 0| new-instance v1, Target 239*f0dffb02SXin Li.............................. end block 1 .............................. 240*f0dffb02SXin Li............................. begin block 2 ............................. 241*f0dffb02SXin Li 2| move-object v4, v1 242*f0dffb02SXin Li 3| move-object v1, v4 243*f0dffb02SXin Li 4| move-object v2, v4 244*f0dffb02SXin Li 5| invoke-direct {v2}, Target.<init>():void 245*f0dffb02SXin Li.............................. end block 2 .............................. 246*f0dffb02SXin Li............................. begin block 3 ............................. 247*f0dffb02SXin Li 8| move-object v0, v1 248*f0dffb02SXin Li .line 59 249*f0dffb02SXin Li .local v0, "obj", Target 250*f0dffb02SXin Li 9| move-object v1, v0 251*f0dffb02SXin Li 10| new-instance v2, Derived 252*f0dffb02SXin Li.............................. end block 3 .............................. 253*f0dffb02SXin Li............................. begin block 4 ............................. 254*f0dffb02SXin Li 12| move-object v4, v2 255*f0dffb02SXin Li 13| move-object v2, v4 256*f0dffb02SXin Li 14| move-object v3, v4 257*f0dffb02SXin Li 15| invoke-direct {v3}, Derived.<init>():void 258*f0dffb02SXin Li.............................. end block 4 .............................. 259*f0dffb02SXin Li............................. begin block 5 ............................. 260*f0dffb02SXin Li 18| iput-object v2, v1, Target.test 261*f0dffb02SXin Li.............................. end block 5 .............................. 262*f0dffb02SXin Li............................. begin block 6 ............................. 263*f0dffb02SXin Li .line 60 264*f0dffb02SXin Li 20| move-object v1, v0 265*f0dffb02SXin Li 21| const/4 v2, #+3 (0x00000003 | 4.20390e-45) 266*f0dffb02SXin Li 22| const-string v3, "Testing..." 267*f0dffb02SXin Li.............................. end block 6 .............................. 268*f0dffb02SXin Li............................. begin block 7 ............................. 269*f0dffb02SXin Li 24| invoke-virtual {v1,v2,v3}, Target.foo(int, java.lang.String):int 270*f0dffb02SXin Li.............................. end block 7 .............................. 271*f0dffb02SXin Li............................. begin block 8 ............................. 272*f0dffb02SXin Li 27| move-result v1 273*f0dffb02SXin Li 28| move v0, v1 274*f0dffb02SXin Li .end_local v0 275*f0dffb02SXin Li 29| return v0 276*f0dffb02SXin Li.............................. end block 8 .............................. 277*f0dffb02SXin Li} 278*f0dffb02SXin Li 279*f0dffb02SXin Limethod Target.foo(int):int 280*f0dffb02SXin Li{ 281*f0dffb02SXin Li............................. begin block 1 ............................. 282*f0dffb02SXin Li .params "?" 283*f0dffb02SXin Li .src "entryHooks.java" 284*f0dffb02SXin Li .line 74 285*f0dffb02SXin Li .prologue_end 286*f0dffb02SXin Li .line 74 287*f0dffb02SXin Li 0| move-object v0, v3 288*f0dffb02SXin Li .local v0, "this", Target 289*f0dffb02SXin Li 1| move v1, v4 290*f0dffb02SXin Li .local v1, "x", int 291*f0dffb02SXin Li 2| const/4 v2, #+1 (0x00000001 | 1.40130e-45) 292*f0dffb02SXin Li 3| move v0, v2 293*f0dffb02SXin Li .end_local v0 294*f0dffb02SXin Li 4| return v0 295*f0dffb02SXin Li.............................. end block 1 .............................. 296*f0dffb02SXin Li} 297*f0dffb02SXin Li 298*f0dffb02SXin Limethod Target.foo(int, int):int 299*f0dffb02SXin Li{ 300*f0dffb02SXin Li............................. begin block 1 ............................. 301*f0dffb02SXin Li .params "?", "?" 302*f0dffb02SXin Li .src "entryHooks.java" 303*f0dffb02SXin Li .line 75 304*f0dffb02SXin Li .prologue_end 305*f0dffb02SXin Li .line 75 306*f0dffb02SXin Li 0| move-object v0, v4 307*f0dffb02SXin Li .local v0, "this", Target 308*f0dffb02SXin Li 1| move v1, v5 309*f0dffb02SXin Li .local v1, "x", int 310*f0dffb02SXin Li 2| move v2, v6 311*f0dffb02SXin Li .local v2, "y", int 312*f0dffb02SXin Li 3| const/4 v3, #+2 (0x00000002 | 2.80260e-45) 313*f0dffb02SXin Li 4| move v0, v3 314*f0dffb02SXin Li .end_local v0 315*f0dffb02SXin Li 5| return v0 316*f0dffb02SXin Li.............................. end block 1 .............................. 317*f0dffb02SXin Li} 318*f0dffb02SXin Li 319*f0dffb02SXin Limethod Target.foo(int, java.lang.String):int 320*f0dffb02SXin Li{ 321*f0dffb02SXin Li............................. begin block 1 ............................. 322*f0dffb02SXin Li .params "?", "?" 323*f0dffb02SXin Li .src "entryHooks.java" 324*f0dffb02SXin Li .line 65 325*f0dffb02SXin Li .prologue_end 326*f0dffb02SXin Li .line 65 327*f0dffb02SXin Li 0| move-object v0, v9 328*f0dffb02SXin Li .local v0, "this", Target 329*f0dffb02SXin Li 1| move v1, v10 330*f0dffb02SXin Li .local v1, "x", int 331*f0dffb02SXin Li 2| move-object v2, v11 332*f0dffb02SXin Li .local v2, "msg", java.lang.String 333*f0dffb02SXin Li 3| const/4 v5, #+0 (0x00000000 | 0.00000) 334*f0dffb02SXin Li 4| move v3, v5 335*f0dffb02SXin Li .line 66 336*f0dffb02SXin Li .local v3, "sum", int 337*f0dffb02SXin Li 5| const/4 v5, #+0 (0x00000000 | 0.00000) 338*f0dffb02SXin Li 6| move v4, v5 339*f0dffb02SXin Li.............................. end block 1 .............................. 340*f0dffb02SXin Li............................. begin block 2 ............................. 341*f0dffb02SXin LiLabel_1: 342*f0dffb02SXin Li .local v4, "i", int 343*f0dffb02SXin Li 7| move v5, v4 344*f0dffb02SXin Li 8| move v6, v1 345*f0dffb02SXin Li 9| if-ge v5, v6, Label_2 346*f0dffb02SXin Li.............................. end block 2 .............................. 347*f0dffb02SXin Li............................. begin block 3 ............................. 348*f0dffb02SXin Li .line 68 349*f0dffb02SXin Li 11| move v5, v3 350*f0dffb02SXin Li 12| move-object v6, v0 351*f0dffb02SXin Li 13| iget-object v6, v6, Target.test 352*f0dffb02SXin Li.............................. end block 3 .............................. 353*f0dffb02SXin Li............................. begin block 4 ............................. 354*f0dffb02SXin Li 15| move v7, v4 355*f0dffb02SXin Li 16| move-object v8, v2 356*f0dffb02SXin Li 17| invoke-virtual {v6,v7,v8}, Base.foo(int, java.lang.String):int 357*f0dffb02SXin Li.............................. end block 4 .............................. 358*f0dffb02SXin Li............................. begin block 5 ............................. 359*f0dffb02SXin Li 20| move-result v6 360*f0dffb02SXin Li 21| add-int/2addr v5, v6 361*f0dffb02SXin Li 22| move v3, v5 362*f0dffb02SXin Li .line 66 363*f0dffb02SXin Li 23| add-int/lit8 v4, v4, #+1 (0x00000001 | 1.40130e-45) 364*f0dffb02SXin Li 25| goto Label_1 365*f0dffb02SXin Li.............................. end block 5 .............................. 366*f0dffb02SXin Li............................. begin block 6 ............................. 367*f0dffb02SXin LiLabel_2: 368*f0dffb02SXin Li .line 70 369*f0dffb02SXin Li 26| move v5, v3 370*f0dffb02SXin Li 27| move v0, v5 371*f0dffb02SXin Li .end_local v0 372*f0dffb02SXin Li 28| return v0 373*f0dffb02SXin Li.............................. end block 6 .............................. 374*f0dffb02SXin Li} 375*f0dffb02SXin Li 376*f0dffb02SXin Limethod Target.foo(int, java.lang.String, java.lang.String):int 377*f0dffb02SXin Li{ 378*f0dffb02SXin Li............................. begin block 1 ............................. 379*f0dffb02SXin Li .params "?", "?", "?" 380*f0dffb02SXin Li .src "entryHooks.java" 381*f0dffb02SXin Li .line 76 382*f0dffb02SXin Li .prologue_end 383*f0dffb02SXin Li .line 76 384*f0dffb02SXin Li 0| move-object v0, v5 385*f0dffb02SXin Li .local v0, "this", Target 386*f0dffb02SXin Li 1| move v1, v6 387*f0dffb02SXin Li .local v1, "x", int 388*f0dffb02SXin Li 2| move-object v2, v7 389*f0dffb02SXin Li .local v2, "msg", java.lang.String 390*f0dffb02SXin Li 3| move-object v3, v8 391*f0dffb02SXin Li .local v3, "msg2", java.lang.String 392*f0dffb02SXin Li 4| const/4 v4, #+3 (0x00000003 | 4.20390e-45) 393*f0dffb02SXin Li 5| move v0, v4 394*f0dffb02SXin Li .end_local v0 395*f0dffb02SXin Li 6| return v0 396*f0dffb02SXin Li.............................. end block 1 .............................. 397*f0dffb02SXin Li} 398*f0dffb02SXin Li 399*f0dffb02SXin Limethod Target.foo(int, java.lang.String[]):int 400*f0dffb02SXin Li{ 401*f0dffb02SXin Li............................. begin block 1 ............................. 402*f0dffb02SXin Li .params "?", "?" 403*f0dffb02SXin Li .src "entryHooks.java" 404*f0dffb02SXin Li .line 77 405*f0dffb02SXin Li .prologue_end 406*f0dffb02SXin Li .line 77 407*f0dffb02SXin Li 0| move-object v0, v4 408*f0dffb02SXin Li .local v0, "this", Target 409*f0dffb02SXin Li 1| move v1, v5 410*f0dffb02SXin Li .local v1, "x", int 411*f0dffb02SXin Li 2| move-object v2, v6 412*f0dffb02SXin Li .local v2, "msgs", java.lang.String[] 413*f0dffb02SXin Li 3| const/4 v3, #+4 (0x00000004 | 5.60519e-45) 414*f0dffb02SXin Li 4| move v0, v3 415*f0dffb02SXin Li .end_local v0 416*f0dffb02SXin Li 5| return v0 417*f0dffb02SXin Li.............................. end block 1 .............................. 418*f0dffb02SXin Li} 419*f0dffb02SXin Li 420*f0dffb02SXin Limethod Target.foo(int, java.lang.String[][]):java.lang.Integer 421*f0dffb02SXin Li{ 422*f0dffb02SXin Li............................. begin block 1 ............................. 423*f0dffb02SXin Li .params "?", "?" 424*f0dffb02SXin Li .src "entryHooks.java" 425*f0dffb02SXin Li .line 78 426*f0dffb02SXin Li .prologue_end 427*f0dffb02SXin Li .line 78 428*f0dffb02SXin Li 0| move-object v0, v4 429*f0dffb02SXin Li .local v0, "this", Target 430*f0dffb02SXin Li 1| move v1, v5 431*f0dffb02SXin Li .local v1, "x", int 432*f0dffb02SXin Li 2| move-object v2, v6 433*f0dffb02SXin Li .local v2, "msgs", java.lang.String[][] 434*f0dffb02SXin Li 3| const/4 v3, #+5 (0x00000005 | 7.00649e-45) 435*f0dffb02SXin Li 4| invoke-static {v3}, java.lang.Integer.valueOf(int):java.lang.Integer 436*f0dffb02SXin Li.............................. end block 1 .............................. 437*f0dffb02SXin Li............................. begin block 2 ............................. 438*f0dffb02SXin Li 7| move-result-object v3 439*f0dffb02SXin Li 8| move-object v0, v3 440*f0dffb02SXin Li .end_local v0 441*f0dffb02SXin Li 9| return-object v0 442*f0dffb02SXin Li.............................. end block 2 .............................. 443*f0dffb02SXin Li} 444*f0dffb02SXin Li 445*f0dffb02SXin Limethod Target.foo():void 446*f0dffb02SXin Li{ 447*f0dffb02SXin Li............................. begin block 1 ............................. 448*f0dffb02SXin Li .src "entryHooks.java" 449*f0dffb02SXin Li .line 73 450*f0dffb02SXin Li .prologue_end 451*f0dffb02SXin Li .line 73 452*f0dffb02SXin Li 0| return-void 453*f0dffb02SXin Li.............................. end block 1 .............................. 454*f0dffb02SXin Li} 455*f0dffb02SXin Li 456*f0dffb02SXin Limethod Tracer.<init>():void 457*f0dffb02SXin Li{ 458*f0dffb02SXin Li............................. begin block 1 ............................. 459*f0dffb02SXin Li .src "entryHooks.java" 460*f0dffb02SXin Li .line 2 461*f0dffb02SXin Li .prologue_end 462*f0dffb02SXin Li .line 2 463*f0dffb02SXin Li 0| move-object v0, v2 464*f0dffb02SXin Li .local v0, "this", Tracer 465*f0dffb02SXin Li 1| move-object v1, v0 466*f0dffb02SXin Li 2| invoke-direct {v1}, java.lang.Object.<init>():void 467*f0dffb02SXin Li.............................. end block 1 .............................. 468*f0dffb02SXin Li............................. begin block 2 ............................. 469*f0dffb02SXin Li 5| return-void 470*f0dffb02SXin Li.............................. end block 2 .............................. 471*f0dffb02SXin Li} 472*f0dffb02SXin Li 473*f0dffb02SXin Limethod Tracer.onEntry(java.lang.String):void 474*f0dffb02SXin Li{ 475*f0dffb02SXin Li............................. begin block 1 ............................. 476*f0dffb02SXin Li .params "?" 477*f0dffb02SXin Li .src "entryHooks.java" 478*f0dffb02SXin Li .line 6 479*f0dffb02SXin Li .prologue_end 480*f0dffb02SXin Li .line 6 481*f0dffb02SXin Li 0| move-object v0, v5 482*f0dffb02SXin Li .local v0, "methodName", java.lang.String 483*f0dffb02SXin Li 1| sget-object v1, java.lang.System.out 484*f0dffb02SXin Li.............................. end block 1 .............................. 485*f0dffb02SXin Li............................. begin block 2 ............................. 486*f0dffb02SXin Li 3| new-instance v2, java.lang.StringBuilder 487*f0dffb02SXin Li.............................. end block 2 .............................. 488*f0dffb02SXin Li............................. begin block 3 ............................. 489*f0dffb02SXin Li 5| move-object v4, v2 490*f0dffb02SXin Li 6| move-object v2, v4 491*f0dffb02SXin Li 7| move-object v3, v4 492*f0dffb02SXin Li 8| invoke-direct {v3}, java.lang.StringBuilder.<init>():void 493*f0dffb02SXin Li.............................. end block 3 .............................. 494*f0dffb02SXin Li............................. begin block 4 ............................. 495*f0dffb02SXin Li 11| const-string v3, "OnEntry(" 496*f0dffb02SXin Li.............................. end block 4 .............................. 497*f0dffb02SXin Li............................. begin block 5 ............................. 498*f0dffb02SXin Li 13| invoke-virtual {v2,v3}, java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder 499*f0dffb02SXin Li.............................. end block 5 .............................. 500*f0dffb02SXin Li............................. begin block 6 ............................. 501*f0dffb02SXin Li 16| move-result-object v2 502*f0dffb02SXin Li 17| move-object v3, v0 503*f0dffb02SXin Li 18| invoke-virtual {v2,v3}, java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder 504*f0dffb02SXin Li.............................. end block 6 .............................. 505*f0dffb02SXin Li............................. begin block 7 ............................. 506*f0dffb02SXin Li 21| move-result-object v2 507*f0dffb02SXin Li 22| const-string v3, ")" 508*f0dffb02SXin Li.............................. end block 7 .............................. 509*f0dffb02SXin Li............................. begin block 8 ............................. 510*f0dffb02SXin Li 24| invoke-virtual {v2,v3}, java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder 511*f0dffb02SXin Li.............................. end block 8 .............................. 512*f0dffb02SXin Li............................. begin block 9 ............................. 513*f0dffb02SXin Li 27| move-result-object v2 514*f0dffb02SXin Li 28| invoke-virtual {v2}, java.lang.StringBuilder.toString():java.lang.String 515*f0dffb02SXin Li.............................. end block 9 .............................. 516*f0dffb02SXin Li............................. begin block 10 ............................. 517*f0dffb02SXin Li 31| move-result-object v2 518*f0dffb02SXin Li 32| invoke-virtual {v1,v2}, java.io.PrintStream.println(java.lang.String):void 519*f0dffb02SXin Li.............................. end block 10 .............................. 520*f0dffb02SXin Li............................. begin block 11 ............................. 521*f0dffb02SXin Li .line 7 522*f0dffb02SXin Li 35| return-void 523*f0dffb02SXin Li.............................. end block 11 .............................. 524*f0dffb02SXin Li} 525*f0dffb02SXin Li 526*f0dffb02SXin Limethod Tracer.onFooEntry(Target, int, java.lang.String):void 527*f0dffb02SXin Li{ 528*f0dffb02SXin Li............................. begin block 1 ............................. 529*f0dffb02SXin Li .params "?", "?", "?" 530*f0dffb02SXin Li .src "entryHooks.java" 531*f0dffb02SXin Li .line 11 532*f0dffb02SXin Li .prologue_end 533*f0dffb02SXin Li .line 11 534*f0dffb02SXin Li 0| move-object v0, v10 535*f0dffb02SXin Li .local v0, "__this", Target 536*f0dffb02SXin Li 1| move v1, v11 537*f0dffb02SXin Li .local v1, "x", int 538*f0dffb02SXin Li 2| move-object v2, v12 539*f0dffb02SXin Li .local v2, "msg", java.lang.String 540*f0dffb02SXin Li 3| sget-object v3, java.lang.System.out 541*f0dffb02SXin Li.............................. end block 1 .............................. 542*f0dffb02SXin Li............................. begin block 2 ............................. 543*f0dffb02SXin Li 5| const-string v4, ">>> onFooEntry(%s, %d, %s)\n" 544*f0dffb02SXin Li.............................. end block 2 .............................. 545*f0dffb02SXin Li............................. begin block 3 ............................. 546*f0dffb02SXin Li 7| const/4 v5, #+3 (0x00000003 | 4.20390e-45) 547*f0dffb02SXin Li 8| new-array v5, v5, java.lang.Object[] 548*f0dffb02SXin Li.............................. end block 3 .............................. 549*f0dffb02SXin Li............................. begin block 4 ............................. 550*f0dffb02SXin Li 10| move-object v9, v5 551*f0dffb02SXin Li 11| move-object v5, v9 552*f0dffb02SXin Li 12| move-object v6, v9 553*f0dffb02SXin Li 13| const/4 v7, #+0 (0x00000000 | 0.00000) 554*f0dffb02SXin Li 14| move-object v8, v0 555*f0dffb02SXin Li 15| aput-object v8, v6, v7 556*f0dffb02SXin Li.............................. end block 4 .............................. 557*f0dffb02SXin Li............................. begin block 5 ............................. 558*f0dffb02SXin Li 17| move-object v9, v5 559*f0dffb02SXin Li 18| move-object v5, v9 560*f0dffb02SXin Li 19| move-object v6, v9 561*f0dffb02SXin Li 20| const/4 v7, #+1 (0x00000001 | 1.40130e-45) 562*f0dffb02SXin Li 21| move v8, v1 563*f0dffb02SXin Li 22| invoke-static {v8}, java.lang.Integer.valueOf(int):java.lang.Integer 564*f0dffb02SXin Li.............................. end block 5 .............................. 565*f0dffb02SXin Li............................. begin block 6 ............................. 566*f0dffb02SXin Li 25| move-result-object v8 567*f0dffb02SXin Li 26| aput-object v8, v6, v7 568*f0dffb02SXin Li.............................. end block 6 .............................. 569*f0dffb02SXin Li............................. begin block 7 ............................. 570*f0dffb02SXin Li 28| move-object v9, v5 571*f0dffb02SXin Li 29| move-object v5, v9 572*f0dffb02SXin Li 30| move-object v6, v9 573*f0dffb02SXin Li 31| const/4 v7, #+2 (0x00000002 | 2.80260e-45) 574*f0dffb02SXin Li 32| move-object v8, v2 575*f0dffb02SXin Li 33| aput-object v8, v6, v7 576*f0dffb02SXin Li.............................. end block 7 .............................. 577*f0dffb02SXin Li............................. begin block 8 ............................. 578*f0dffb02SXin Li 35| invoke-virtual {v3,v4,v5}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 579*f0dffb02SXin Li.............................. end block 8 .............................. 580*f0dffb02SXin Li............................. begin block 9 ............................. 581*f0dffb02SXin Li 38| move-result-object v3 582*f0dffb02SXin Li .line 12 583*f0dffb02SXin Li 39| return-void 584*f0dffb02SXin Li.............................. end block 9 .............................. 585*f0dffb02SXin Li} 586*f0dffb02SXin Li 587*f0dffb02SXin Limethod Tracer.onFooExit(int):int 588*f0dffb02SXin Li{ 589*f0dffb02SXin Li............................. begin block 1 ............................. 590*f0dffb02SXin Li .params "?" 591*f0dffb02SXin Li .src "entryHooks.java" 592*f0dffb02SXin Li .line 16 593*f0dffb02SXin Li .prologue_end 594*f0dffb02SXin Li .line 16 595*f0dffb02SXin Li 0| move v0, v8 596*f0dffb02SXin Li .local v0, "retValue", int 597*f0dffb02SXin Li 1| sget-object v1, java.lang.System.out 598*f0dffb02SXin Li.............................. end block 1 .............................. 599*f0dffb02SXin Li............................. begin block 2 ............................. 600*f0dffb02SXin Li 3| const-string v2, ">>> onFooExit(%d)\n" 601*f0dffb02SXin Li.............................. end block 2 .............................. 602*f0dffb02SXin Li............................. begin block 3 ............................. 603*f0dffb02SXin Li 5| const/4 v3, #+1 (0x00000001 | 1.40130e-45) 604*f0dffb02SXin Li 6| new-array v3, v3, java.lang.Object[] 605*f0dffb02SXin Li.............................. end block 3 .............................. 606*f0dffb02SXin Li............................. begin block 4 ............................. 607*f0dffb02SXin Li 8| move-object v7, v3 608*f0dffb02SXin Li 9| move-object v3, v7 609*f0dffb02SXin Li 10| move-object v4, v7 610*f0dffb02SXin Li 11| const/4 v5, #+0 (0x00000000 | 0.00000) 611*f0dffb02SXin Li 12| move v6, v0 612*f0dffb02SXin Li 13| invoke-static {v6}, java.lang.Integer.valueOf(int):java.lang.Integer 613*f0dffb02SXin Li.............................. end block 4 .............................. 614*f0dffb02SXin Li............................. begin block 5 ............................. 615*f0dffb02SXin Li 16| move-result-object v6 616*f0dffb02SXin Li 17| aput-object v6, v4, v5 617*f0dffb02SXin Li.............................. end block 5 .............................. 618*f0dffb02SXin Li............................. begin block 6 ............................. 619*f0dffb02SXin Li 19| invoke-virtual {v1,v2,v3}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 620*f0dffb02SXin Li.............................. end block 6 .............................. 621*f0dffb02SXin Li............................. begin block 7 ............................. 622*f0dffb02SXin Li 22| move-result-object v1 623*f0dffb02SXin Li .line 17 624*f0dffb02SXin Li 23| move v1, v0 625*f0dffb02SXin Li 24| const/16 v2, #+100 (0x00000064 | 1.40130e-43) 626*f0dffb02SXin Li 26| add-int/lit8 v1, v1, #+100 (0x00000064 | 1.40130e-43) 627*f0dffb02SXin Li 28| move v0, v1 628*f0dffb02SXin Li .end_local v0 629*f0dffb02SXin Li 29| return v0 630*f0dffb02SXin Li.............................. end block 7 .............................. 631*f0dffb02SXin Li} 632*f0dffb02SXin Li 633*f0dffb02SXin Limethod Tracer.wrapFoo(Base, int, java.lang.String):int 634*f0dffb02SXin Li{ 635*f0dffb02SXin Li............................. begin block 1 ............................. 636*f0dffb02SXin Li .params "?", "?", "?" 637*f0dffb02SXin Li .src "entryHooks.java" 638*f0dffb02SXin Li .line 22 639*f0dffb02SXin Li .prologue_end 640*f0dffb02SXin Li .line 22 641*f0dffb02SXin Li 0| move-object v0, v10 642*f0dffb02SXin Li .local v0, "_this", Base 643*f0dffb02SXin Li 1| move v1, v11 644*f0dffb02SXin Li .local v1, "x", int 645*f0dffb02SXin Li 2| move-object v2, v12 646*f0dffb02SXin Li .local v2, "msg", java.lang.String 647*f0dffb02SXin Li 3| sget-object v3, java.lang.System.out 648*f0dffb02SXin Li.............................. end block 1 .............................. 649*f0dffb02SXin Li............................. begin block 2 ............................. 650*f0dffb02SXin Li 5| const-string v4, ">>> %s.test(%d, %s)\n" 651*f0dffb02SXin Li.............................. end block 2 .............................. 652*f0dffb02SXin Li............................. begin block 3 ............................. 653*f0dffb02SXin Li 7| const/4 v5, #+3 (0x00000003 | 4.20390e-45) 654*f0dffb02SXin Li 8| new-array v5, v5, java.lang.Object[] 655*f0dffb02SXin Li.............................. end block 3 .............................. 656*f0dffb02SXin Li............................. begin block 4 ............................. 657*f0dffb02SXin Li 10| move-object v9, v5 658*f0dffb02SXin Li 11| move-object v5, v9 659*f0dffb02SXin Li 12| move-object v6, v9 660*f0dffb02SXin Li 13| const/4 v7, #+0 (0x00000000 | 0.00000) 661*f0dffb02SXin Li 14| move-object v8, v0 662*f0dffb02SXin Li 15| invoke-virtual {v8}, java.lang.Object.getClass():java.lang.Class 663*f0dffb02SXin Li.............................. end block 4 .............................. 664*f0dffb02SXin Li............................. begin block 5 ............................. 665*f0dffb02SXin Li 18| move-result-object v8 666*f0dffb02SXin Li 19| invoke-virtual {v8}, java.lang.Class.getName():java.lang.String 667*f0dffb02SXin Li.............................. end block 5 .............................. 668*f0dffb02SXin Li............................. begin block 6 ............................. 669*f0dffb02SXin Li 22| move-result-object v8 670*f0dffb02SXin Li 23| aput-object v8, v6, v7 671*f0dffb02SXin Li.............................. end block 6 .............................. 672*f0dffb02SXin Li............................. begin block 7 ............................. 673*f0dffb02SXin Li 25| move-object v9, v5 674*f0dffb02SXin Li 26| move-object v5, v9 675*f0dffb02SXin Li 27| move-object v6, v9 676*f0dffb02SXin Li 28| const/4 v7, #+1 (0x00000001 | 1.40130e-45) 677*f0dffb02SXin Li 29| move v8, v1 678*f0dffb02SXin Li 30| invoke-static {v8}, java.lang.Integer.valueOf(int):java.lang.Integer 679*f0dffb02SXin Li.............................. end block 7 .............................. 680*f0dffb02SXin Li............................. begin block 8 ............................. 681*f0dffb02SXin Li 33| move-result-object v8 682*f0dffb02SXin Li 34| aput-object v8, v6, v7 683*f0dffb02SXin Li.............................. end block 8 .............................. 684*f0dffb02SXin Li............................. begin block 9 ............................. 685*f0dffb02SXin Li 36| move-object v9, v5 686*f0dffb02SXin Li 37| move-object v5, v9 687*f0dffb02SXin Li 38| move-object v6, v9 688*f0dffb02SXin Li 39| const/4 v7, #+2 (0x00000002 | 2.80260e-45) 689*f0dffb02SXin Li 40| move-object v8, v2 690*f0dffb02SXin Li 41| aput-object v8, v6, v7 691*f0dffb02SXin Li.............................. end block 9 .............................. 692*f0dffb02SXin Li............................. begin block 10 ............................. 693*f0dffb02SXin Li 43| invoke-virtual {v3,v4,v5}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream 694*f0dffb02SXin Li.............................. end block 10 .............................. 695*f0dffb02SXin Li............................. begin block 11 ............................. 696*f0dffb02SXin Li 46| move-result-object v3 697*f0dffb02SXin Li .line 23 698*f0dffb02SXin Li 47| move-object v3, v0 699*f0dffb02SXin Li 48| move v4, v1 700*f0dffb02SXin Li 49| move-object v5, v2 701*f0dffb02SXin Li 50| invoke-virtual {v3,v4,v5}, Base.foo(int, java.lang.String):int 702*f0dffb02SXin Li.............................. end block 11 .............................. 703*f0dffb02SXin Li............................. begin block 12 ............................. 704*f0dffb02SXin Li 53| move-result v3 705*f0dffb02SXin Li 54| const/16 v4, #+10 (0x0000000a | 1.40130e-44) 706*f0dffb02SXin Li 56| add-int/lit8 v3, v3, #+10 (0x0000000a | 1.40130e-44) 707*f0dffb02SXin Li 58| move v0, v3 708*f0dffb02SXin Li .end_local v0 709*f0dffb02SXin Li 59| return v0 710*f0dffb02SXin Li.............................. end block 12 .............................. 711*f0dffb02SXin Li} 712