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