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