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