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