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