Home | History | Annotate | Download | only in expected
      1 
      2 method Target.<init>():void
      3 {
      4 ............................. begin block 1 .............................
      5 	.src "exitHooks.java"
      6 	.line 28
      7 	.prologue_end
      8 	.line 28
      9 	    0| move-object v0, v2
     10 	.local v0, "this", Target
     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 Target.main(java.lang.String[]):void
     18 {
     19 ............................. begin block 1 .............................
     20 	.params "?"
     21 	.src "exitHooks.java"
     22 	.line 32
     23 	.prologue_end
     24 	.line 32
     25 	    0| move-object v0, v3
     26 	.local v0, "args", java.lang.String[]
     27 	    1| sget-object v1, java.lang.System.out
     28 	    3| const-string v2, "Hello, world!\n{"
     29 	    5| invoke-virtual {v1,v2}, java.io.PrintStream.println(java.lang.String):void
     30 	.line 33
     31 	    8| invoke-static {}, Target.test():void
     32 	.line 34
     33 	   11| sget-object v1, java.lang.System.out
     34 	   13| const-string v2, "}\nGood bye!"
     35 	   15| invoke-virtual {v1,v2}, java.io.PrintStream.println(java.lang.String):void
     36 	.line 35
     37 	   18| return-void
     38 .............................. end block 1 ..............................
     39 }
     40 
     41 method Target.test():void
     42 {
     43 ............................. begin block 1 .............................
     44 	.src "exitHooks.java"
     45 	.line 39
     46 	.prologue_end
     47 	.line 39
     48 	    0| new-instance v1, Target
     49 	    2| move-object v8, v1
     50 	    3| move-object v1, v8
     51 	    4| move-object v2, v8
     52 	    5| invoke-direct {v2}, Target.<init>():void
     53 	    8| move-object v0, v1
     54 	.line 40
     55 	.local v0, "obj", Target
     56 	    9| sget-object v1, java.lang.System.out
     57 	   11| const-string v2, "Object(true)   : %s\n"
     58 	   13| const/4 v3, #+1 (0x00000001 | 1.40130e-45)
     59 	   14| new-array v3, v3, java.lang.Object[]
     60 	   16| move-object v8, v3
     61 	   17| move-object v3, v8
     62 	   18| move-object v4, v8
     63 	   19| const/4 v5, #+0 (0x00000000 | 0.00000)
     64 	   20| move-object v6, v0
     65 	   21| const/4 v7, #+1 (0x00000001 | 1.40130e-45)
     66 	   22| invoke-virtual {v6,v7}, Target.testObject(boolean):java.lang.Object
     67 	   25| move-result-object v6
     68 	   26| aput-object v6, v4, v5
     69 	   28| invoke-virtual {v1,v2,v3}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
     70 	   31| move-result-object v1
     71 	.line 41
     72 	   32| sget-object v1, java.lang.System.out
     73 	   34| const-string v2, "Object(false)  : %s\n"
     74 	   36| const/4 v3, #+1 (0x00000001 | 1.40130e-45)
     75 	   37| new-array v3, v3, java.lang.Object[]
     76 	   39| move-object v8, v3
     77 	   40| move-object v3, v8
     78 	   41| move-object v4, v8
     79 	   42| const/4 v5, #+0 (0x00000000 | 0.00000)
     80 	   43| move-object v6, v0
     81 	   44| const/4 v7, #+0 (0x00000000 | 0.00000)
     82 	   45| invoke-virtual {v6,v7}, Target.testObject(boolean):java.lang.Object
     83 	   48| move-result-object v6
     84 	   49| aput-object v6, v4, v5
     85 	   51| invoke-virtual {v1,v2,v3}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
     86 	   54| move-result-object v1
     87 	.line 42
     88 	   55| sget-object v1, java.lang.System.out
     89 	   57| const-string v2, "double         : %s\n"
     90 	   59| const/4 v3, #+1 (0x00000001 | 1.40130e-45)
     91 	   60| new-array v3, v3, java.lang.Object[]
     92 	   62| move-object v8, v3
     93 	   63| move-object v3, v8
     94 	   64| move-object v4, v8
     95 	   65| const/4 v5, #+0 (0x00000000 | 0.00000)
     96 	   66| move-object v6, v0
     97 	   67| const/4 v7, #+3 (0x00000003 | 4.20390e-45)
     98 	   68| invoke-virtual {v6,v7}, Target.testDouble(int):double
     99 	   71| move-result-wide v6:v7
    100 	   72| invoke-static {v6,v7}, java.lang.Double.valueOf(double):java.lang.Double
    101 	   75| move-result-object v6
    102 	   76| aput-object v6, v4, v5
    103 	   78| invoke-virtual {v1,v2,v3}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
    104 	   81| move-result-object v1
    105 	.line 43
    106 	   82| sget-object v1, java.lang.System.out
    107 	   84| const-string v2, "int            : %s\n"
    108 	   86| const/4 v3, #+1 (0x00000001 | 1.40130e-45)
    109 	   87| new-array v3, v3, java.lang.Object[]
    110 	   89| move-object v8, v3
    111 	   90| move-object v3, v8
    112 	   91| move-object v4, v8
    113 	   92| const/4 v5, #+0 (0x00000000 | 0.00000)
    114 	   93| move-object v6, v0
    115 	   94| const/16 v7, #+100 (0x00000064 | 1.40130e-43)
    116 	   96| invoke-virtual {v6,v7}, Target.testInt(int):int
    117 	   99| move-result v6
    118 	  100| invoke-static {v6}, java.lang.Integer.valueOf(int):java.lang.Integer
    119 	  103| move-result-object v6
    120 	  104| aput-object v6, v4, v5
    121 	  106| invoke-virtual {v1,v2,v3}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
    122 	  109| move-result-object v1
    123 	.line 44
    124 	  110| move-object v1, v0
    125 	  111| const/4 v2, #+1 (0x00000001 | 1.40130e-45)
    126 	  112| invoke-virtual {v1,v2}, Target.testVoid(boolean):void
    127 	.line 45
    128 	  115| return-void
    129 .............................. end block 1 ..............................
    130 }
    131 
    132 method Target.testDouble(int):double
    133 {
    134 ............................. begin block 1 .............................
    135 	.params "?"
    136 	.src "exitHooks.java"
    137 	.line 60
    138 	.prologue_end
    139 	.line 60
    140 	    0| move-object v0, v4
    141 	.local v0, "this", Target
    142 	    1| move v1, v5
    143 	.local v1, "n", int
    144 	    2| move v2, v1
    145 	    3| packed-switch v2, Label_5
    146 .............................. end block 1 ..............................
    147 ............................. begin block 2 .............................
    148 	.line 65
    149 	    6| const-wide v2:v3, #+4621762822593629389 (0x4023cccccccccccd | 9.90000)
    150 	   11| move-wide v0:v1, v2:v3
    151 .............................. end block 2 ..............................
    152 ............................. begin block 3 .............................
    153 Label_1:
    154 	.end_local v0
    155 	   12| return-wide v0:v1
    156 .............................. end block 3 ..............................
    157 ............................. begin block 4 .............................
    158 Label_2:
    159 	.line 62
    160 	.restart_local v0
    161 	   13| const-wide v2:v3, #+4607632778762754458 (0x3ff199999999999a | 1.10000)
    162 	   18| move-wide v0:v1, v2:v3
    163 	   19| goto Label_1
    164 .............................. end block 4 ..............................
    165 ............................. begin block 5 .............................
    166 Label_3:
    167 	.line 63
    168 	   20| const-wide v2:v3, #+4612136378390124954 (0x400199999999999a | 2.20000)
    169 	   25| move-wide v0:v1, v2:v3
    170 	   26| goto Label_1
    171 .............................. end block 5 ..............................
    172 ............................. begin block 6 .............................
    173 Label_4:
    174 	.line 64
    175 	   27| const-wide v2:v3, #+4614613358185178726 (0x400a666666666666 | 3.30000)
    176 	   32| move-wide v0:v1, v2:v3
    177 	   33| goto Label_1
    178 .............................. end block 6 ..............................
    179 Label_5: <aligned>
    180 	.line 60
    181 	   34| packed-switch-payload
    182 		    1: Label_2
    183 		    2: Label_3
    184 		    3: Label_4
    185 }
    186 
    187 method Target.testInt(int):int
    188 {
    189 ............................. begin block 1 .............................
    190 	.params "?"
    191 	.src "exitHooks.java"
    192 	.line 71
    193 	.prologue_end
    194 	.line 71
    195 	    0| move-object v0, v3
    196 	.local v0, "this", Target
    197 	    1| move v1, v4
    198 	.local v1, "n", int
    199 	    2| move v2, v1
    200 	    3| sparse-switch v2, Label_5
    201 .............................. end block 1 ..............................
    202 ............................. begin block 2 .............................
    203 	.line 76
    204 	    6| const/16 v2, #+123 (0x0000007b | 1.72360e-43)
    205 	    8| move v0, v2
    206 .............................. end block 2 ..............................
    207 ............................. begin block 3 .............................
    208 Label_1:
    209 	.end_local v0
    210 	    9| return v0
    211 .............................. end block 3 ..............................
    212 ............................. begin block 4 .............................
    213 Label_2:
    214 	.line 73
    215 	.restart_local v0
    216 	   10| const/4 v2, #+1 (0x00000001 | 1.40130e-45)
    217 	   11| move v0, v2
    218 	   12| goto Label_1
    219 .............................. end block 4 ..............................
    220 ............................. begin block 5 .............................
    221 Label_3:
    222 	.line 74
    223 	   13| const/4 v2, #+2 (0x00000002 | 2.80260e-45)
    224 	   14| move v0, v2
    225 	   15| goto Label_1
    226 .............................. end block 5 ..............................
    227 ............................. begin block 6 .............................
    228 Label_4:
    229 	.line 75
    230 	   16| const/4 v2, #+3 (0x00000003 | 4.20390e-45)
    231 	   17| move v0, v2
    232 	   18| goto Label_1
    233 .............................. end block 6 ..............................
    234 ............................. begin block 7 .............................
    235 	.line 71
    236 	   19| nop
    237 .............................. end block 7 ..............................
    238 Label_5: <aligned>
    239 	   20| sparse-switch-payload
    240 		   10: Label_2
    241 		   20: Label_3
    242 		   30: Label_4
    243 }
    244 
    245 method Target.testObject(boolean):java.lang.Object
    246 {
    247 ............................. begin block 1 .............................
    248 	.params "?"
    249 	.src "exitHooks.java"
    250 	.line 49
    251 	.prologue_end
    252 	.line 49
    253 	    0| move-object v0, v5
    254 	.local v0, "this", Target
    255 	    1| move v1, v6
    256 	.local v1, "flag", boolean
    257 	    2| move v2, v1
    258 	    3| if-eqz v2, Label_2
    259 .............................. end block 1 ..............................
    260 ............................. begin block 2 .............................
    261 	.line 51
    262 	    5| sget-object v2, java.lang.System.out
    263 	    7| const-string v3, "Flag!\n"
    264 	    9| const/4 v4, #+0 (0x00000000 | 0.00000)
    265 	   10| new-array v4, v4, java.lang.Object[]
    266 	   12| invoke-virtual {v2,v3,v4}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
    267 	   15| move-result-object v2
    268 	.line 52
    269 	   16| const-string v2, "Sigh"
    270 	   18| move-object v0, v2
    271 .............................. end block 2 ..............................
    272 ............................. begin block 3 .............................
    273 Label_1:
    274 	.line 55
    275 	.end_local v0
    276 	   19| return-object v0
    277 .............................. end block 3 ..............................
    278 ............................. begin block 4 .............................
    279 Label_2:
    280 	.restart_local v0
    281 	   20| const-string v2, "Blah"
    282 	   22| move-object v0, v2
    283 	   23| goto Label_1
    284 .............................. end block 4 ..............................
    285 }
    286 
    287 method Target.testVoid(boolean):void
    288 {
    289 ............................. begin block 1 .............................
    290 	.params "?"
    291 	.src "exitHooks.java"
    292 	.line 82
    293 	.prologue_end
    294 	.line 82
    295 	    0| move-object v0, v5
    296 	.local v0, "this", Target
    297 	    1| move v1, v6
    298 	.local v1, "flag", boolean
    299 	    2| move v2, v1
    300 	    3| if-eqz v2, Label_2
    301 .............................. end block 1 ..............................
    302 ............................. begin block 2 .............................
    303 	.line 84
    304 	    5| sget-object v2, java.lang.System.out
    305 	    7| const-string v3, "True!\n"
    306 	    9| const/4 v4, #+0 (0x00000000 | 0.00000)
    307 	   10| new-array v4, v4, java.lang.Object[]
    308 	   12| invoke-virtual {v2,v3,v4}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
    309 	   15| move-result-object v2
    310 .............................. end block 2 ..............................
    311 ............................. begin block 3 .............................
    312 Label_1:
    313 	.line 85
    314 	.line 90
    315 	   16| return-void
    316 .............................. end block 3 ..............................
    317 ............................. begin block 4 .............................
    318 Label_2:
    319 	.line 89
    320 	   17| sget-object v2, java.lang.System.out
    321 	   19| const-string v3, "False!\n"
    322 	   21| const/4 v4, #+0 (0x00000000 | 0.00000)
    323 	   22| new-array v4, v4, java.lang.Object[]
    324 	   24| invoke-virtual {v2,v3,v4}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
    325 	   27| move-result-object v2
    326 	.line 90
    327 	   28| goto Label_1
    328 .............................. end block 4 ..............................
    329 }
    330 
    331 method Tracer.<init>():void
    332 {
    333 ............................. begin block 1 .............................
    334 	.src "exitHooks.java"
    335 	.line 2
    336 	.prologue_end
    337 	.line 2
    338 	    0| move-object v0, v2
    339 	.local v0, "this", Tracer
    340 	    1| move-object v1, v0
    341 	    2| invoke-direct {v1}, java.lang.Object.<init>():void
    342 	    5| return-void
    343 .............................. end block 1 ..............................
    344 }
    345 
    346 method Tracer.onExit(double):double
    347 {
    348 ............................. begin block 1 .............................
    349 	.params "?"
    350 	.src "exitHooks.java"
    351 	.line 12
    352 	.prologue_end
    353 	.line 12
    354 	    0| move-wide v0:v1, v10:v11
    355 	.local v0, "value", double
    356 	    1| sget-object v2, java.lang.System.out
    357 	    3| const-string v3, ">>> onExit(double: %f)\n"
    358 	    5| const/4 v4, #+1 (0x00000001 | 1.40130e-45)
    359 	    6| new-array v4, v4, java.lang.Object[]
    360 	    8| move-object v9, v4
    361 	    9| move-object v4, v9
    362 	   10| move-object v5, v9
    363 	   11| const/4 v6, #+0 (0x00000000 | 0.00000)
    364 	   12| move-wide v7:v8, v0:v1
    365 	   13| invoke-static {v7,v8}, java.lang.Double.valueOf(double):java.lang.Double
    366 	   16| move-result-object v7
    367 	   17| aput-object v7, v5, v6
    368 	   19| invoke-virtual {v2,v3,v4}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
    369 	   22| move-result-object v2
    370 	.line 13
    371 	   23| move-wide v2:v3, v0:v1
    372 	   24| neg-double v2:v3, v2:v3
    373 	   25| move-wide v0:v1, v2:v3
    374 	.end_local v0
    375 	   26| return-wide v0:v1
    376 .............................. end block 1 ..............................
    377 }
    378 
    379 method Tracer.onExit(int):int
    380 {
    381 ............................. begin block 1 .............................
    382 	.params "?"
    383 	.src "exitHooks.java"
    384 	.line 18
    385 	.prologue_end
    386 	.line 18
    387 	    0| move v0, v8
    388 	.local v0, "value", int
    389 	    1| sget-object v1, java.lang.System.out
    390 	    3| const-string v2, ">>> onExit(int: %d)\n"
    391 	    5| const/4 v3, #+1 (0x00000001 | 1.40130e-45)
    392 	    6| new-array v3, v3, java.lang.Object[]
    393 	    8| move-object v7, v3
    394 	    9| move-object v3, v7
    395 	   10| move-object v4, v7
    396 	   11| const/4 v5, #+0 (0x00000000 | 0.00000)
    397 	   12| move v6, v0
    398 	   13| invoke-static {v6}, java.lang.Integer.valueOf(int):java.lang.Integer
    399 	   16| move-result-object v6
    400 	   17| aput-object v6, v4, v5
    401 	   19| invoke-virtual {v1,v2,v3}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
    402 	   22| move-result-object v1
    403 	.line 19
    404 	   23| move v1, v0
    405 	   24| const/16 v2, #+10 (0x0000000a | 1.40130e-44)
    406 	   26| mul-int/lit8 v1, v1, #+10 (0x0000000a | 1.40130e-44)
    407 	   28| move v0, v1
    408 	.end_local v0
    409 	   29| return v0
    410 .............................. end block 1 ..............................
    411 }
    412 
    413 method Tracer.onExit(java.lang.Object):java.lang.Object
    414 {
    415 ............................. begin block 1 .............................
    416 	.params "?"
    417 	.src "exitHooks.java"
    418 	.line 6
    419 	.prologue_end
    420 	.line 6
    421 	    0| move-object v0, v8
    422 	.local v0, "value", java.lang.Object
    423 	    1| sget-object v1, java.lang.System.out
    424 	    3| const-string v2, ">>> onExit(Object: %s)\n"
    425 	    5| const/4 v3, #+1 (0x00000001 | 1.40130e-45)
    426 	    6| new-array v3, v3, java.lang.Object[]
    427 	    8| move-object v7, v3
    428 	    9| move-object v3, v7
    429 	   10| move-object v4, v7
    430 	   11| const/4 v5, #+0 (0x00000000 | 0.00000)
    431 	   12| move-object v6, v0
    432 	   13| aput-object v6, v4, v5
    433 	   15| invoke-virtual {v1,v2,v3}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
    434 	   18| move-result-object v1
    435 	.line 7
    436 	   19| move-object v1, v0
    437 	   20| move-object v0, v1
    438 	.end_local v0
    439 	   21| return-object v0
    440 .............................. end block 1 ..............................
    441 }
    442 
    443 method Tracer.onExit():void
    444 {
    445 ............................. begin block 1 .............................
    446 	.src "exitHooks.java"
    447 	.line 24
    448 	.prologue_end
    449 	.line 24
    450 	    0| sget-object v0, java.lang.System.out
    451 	    2| const-string v1, ">>> onExit(void)\n"
    452 	    4| const/4 v2, #+0 (0x00000000 | 0.00000)
    453 	    5| new-array v2, v2, java.lang.Object[]
    454 	    7| invoke-virtual {v0,v1,v2}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
    455 	   10| move-result-object v0
    456 	.line 25
    457 	   11| return-void
    458 .............................. end block 1 ..............................
    459 }
    460