Home | History | Annotate | Download | only in expected
      1 
      2 method Base$Inner.<init>(Base):void
      3 {
      4 	.params "?"
      5 	.src "hello.java"
      6 	.line 8
      7 	.prologue_end
      8 	.line 8
      9 	    0| invoke-static/range {v4..v5}, Tracer.OnEntry(Base$Inner, Base):void
     10 	    3| move-object v0, v4
     11 	.local v0, "this", Base$Inner
     12 	    4| move-object v1, v5
     13 	.local v1, "this$0", Base
     14 	    5| move-object v2, v0
     15 	    6| move-object v3, v1
     16 	    7| iput-object v3, v2, Base$Inner.this$0
     17 	    9| move-object v2, v0
     18 	   10| invoke-direct {v2}, java.lang.Object.<init>():void
     19 	   13| return-void
     20 }
     21 
     22 method Base$Nested.<init>():void
     23 {
     24 	.src "hello.java"
     25 	.line 4
     26 	.prologue_end
     27 	.line 4
     28 	    0| invoke-static/range {v2..v2}, Tracer.OnEntry(Base$Nested):void
     29 	    3| move-object v0, v2
     30 	.local v0, "this", Base$Nested
     31 	    4| move-object v1, v0
     32 	    5| invoke-direct {v1}, java.lang.Object.<init>():void
     33 	    8| return-void
     34 }
     35 
     36 method Base.<init>():void
     37 {
     38 	.src "hello.java"
     39 	.line 2
     40 	.prologue_end
     41 	.line 2
     42 	    0| invoke-static/range {v2..v2}, Tracer.OnEntry(Base):void
     43 	    3| move-object v0, v2
     44 	.local v0, "this", Base
     45 	    4| move-object v1, v0
     46 	    5| invoke-direct {v1}, java.lang.Object.<init>():void
     47 	    8| return-void
     48 }
     49 
     50 method Base.test(int):void
     51 {
     52 	.params "?"
     53 	.src "hello.java"
     54 	.line 14
     55 	.prologue_end
     56 	.line 14
     57 	    0| invoke-static/range {v6..v7}, Tracer.OnEntry(Base, int):void
     58 	    3| move-object v0, v6
     59 	.local v0, "this", Base
     60 	    4| move v1, v7
     61 	.local v1, "n", int
     62 	    5| invoke-static {}, Hello.printStackTrace():void
     63 	.line 15
     64 	    8| sget-object v2, java.lang.System.out
     65 	   10| new-instance v3, java.lang.StringBuilder
     66 	   12| move-object v5, v3
     67 	   13| move-object v3, v5
     68 	   14| move-object v4, v5
     69 	   15| invoke-direct {v4}, java.lang.StringBuilder.<init>():void
     70 	   18| const-string v4, "Base.test "
     71 	   20| invoke-virtual {v3,v4}, java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder
     72 	   23| move-result-object v3
     73 	   24| move v4, v1
     74 	   25| invoke-virtual {v3,v4}, java.lang.StringBuilder.append(int):java.lang.StringBuilder
     75 	   28| move-result-object v3
     76 	   29| invoke-virtual {v3}, java.lang.StringBuilder.toString():java.lang.String
     77 	   32| move-result-object v3
     78 	   33| invoke-virtual {v2,v3}, java.io.PrintStream.println(java.lang.String):void
     79 	.line 16
     80 	   36| return-void
     81 }
     82 
     83 method Derived.<init>():void
     84 {
     85 	.src "hello.java"
     86 	.line 19
     87 	.prologue_end
     88 	.line 19
     89 	    0| invoke-static/range {v2..v2}, Tracer.OnEntry(Derived):void
     90 	    3| move-object v0, v2
     91 	.local v0, "this", Derived
     92 	    4| move-object v1, v0
     93 	    5| invoke-direct {v1}, Base.<init>():void
     94 	    8| return-void
     95 }
     96 
     97 method Derived.test(int):void
     98 {
     99 	.params "?"
    100 	.src "hello.java"
    101 	.line 23
    102 	.prologue_end
    103 	.line 23
    104 	    0| invoke-static/range {v6..v7}, Tracer.OnEntry(Derived, int):void
    105 	    3| move-object v0, v6
    106 	.local v0, "this", Derived
    107 	    4| move v1, v7
    108 	.local v1, "n", int
    109 	    5| sget-object v2, java.lang.System.out
    110 	    7| new-instance v3, java.lang.StringBuilder
    111 	    9| move-object v5, v3
    112 	   10| move-object v3, v5
    113 	   11| move-object v4, v5
    114 	   12| invoke-direct {v4}, java.lang.StringBuilder.<init>():void
    115 	   15| const-string v4, "Derived.test "
    116 	   17| invoke-virtual {v3,v4}, java.lang.StringBuilder.append(java.lang.String):java.lang.StringBuilder
    117 	   20| move-result-object v3
    118 	   21| move v4, v1
    119 	   22| invoke-virtual {v3,v4}, java.lang.StringBuilder.append(int):java.lang.StringBuilder
    120 	   25| move-result-object v3
    121 	   26| invoke-virtual {v3}, java.lang.StringBuilder.toString():java.lang.String
    122 	   29| move-result-object v3
    123 	   30| invoke-virtual {v2,v3}, java.io.PrintStream.println(java.lang.String):void
    124 	.line 24
    125 	   33| return-void
    126 }
    127 
    128 method Hello.<init>():void
    129 {
    130 	.src "hello.java"
    131 	.line 27
    132 	.prologue_end
    133 	.line 27
    134 	    0| invoke-static/range {v2..v2}, Tracer.OnEntry(Hello):void
    135 	    3| move-object v0, v2
    136 	.local v0, "this", Hello
    137 	    4| move-object v1, v0
    138 	    5| invoke-direct {v1}, java.lang.Object.<init>():void
    139 	    8| return-void
    140 }
    141 
    142 method Hello.main(java.lang.String[]):void
    143 {
    144 	.params "?"
    145 	.src "hello.java"
    146 	.line 31
    147 	.prologue_end
    148 	.line 31
    149 	    0| invoke-static/range {v6..v6}, Tracer.OnEntry(java.lang.String[]):void
    150 	    3| move-object v0, v6
    151 	.local v0, "args", java.lang.String[]
    152 	    4| sget-object v2, java.lang.System.out
    153 	    6| const-string v3, "-------------------------------------------------------\n"
    154 	    8| const/4 v4, #+0 (0x00000000 | 0.00000)
    155 	    9| new-array v4, v4, java.lang.Object[]
    156 	   11| invoke-virtual {v2,v3,v4}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
    157 	   14| move-result-object v2
    158 	.line 32
    159 	   15| sget-object v2, java.lang.System.out
    160 	   17| const-string v3, "Hello, world (original)"
    161 	   19| invoke-virtual {v2,v3}, java.io.PrintStream.println(java.lang.String):void
    162 	.line 36
    163 	   22| sget-object v2, java.lang.System.out
    164 	   24| const-string v3, "-------------------------------------------------------\n"
    165 	   26| const/4 v4, #+0 (0x00000000 | 0.00000)
    166 	   27| new-array v4, v4, java.lang.Object[]
    167 	   29| invoke-virtual {v2,v3,v4}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
    168 	   32| move-result-object v2
    169 	.line 37
    170 	   33| new-instance v2, Base
    171 	   35| move-object v5, v2
    172 	   36| move-object v2, v5
    173 	   37| move-object v3, v5
    174 	   38| invoke-direct {v3}, Base.<init>():void
    175 	   41| move-object v1, v2
    176 	.line 38
    177 	.local v1, "x", Base
    178 	   42| move-object v2, v1
    179 	   43| const/4 v3, #+1 (0x00000001 | 1.40130e-45)
    180 	   44| invoke-virtual {v2,v3}, Base.test(int):void
    181 	.line 40
    182 	   47| sget-object v2, java.lang.System.out
    183 	   49| const-string v3, "-------------------------------------------------------\n"
    184 	   51| const/4 v4, #+0 (0x00000000 | 0.00000)
    185 	   52| new-array v4, v4, java.lang.Object[]
    186 	   54| invoke-virtual {v2,v3,v4}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
    187 	   57| move-result-object v2
    188 	.line 41
    189 	   58| new-instance v2, Derived
    190 	   60| move-object v5, v2
    191 	   61| move-object v2, v5
    192 	   62| move-object v3, v5
    193 	   63| invoke-direct {v3}, Derived.<init>():void
    194 	   66| move-object v1, v2
    195 	.line 42
    196 	   67| move-object v2, v1
    197 	   68| const/4 v3, #+2 (0x00000002 | 2.80260e-45)
    198 	   69| invoke-virtual {v2,v3}, Base.test(int):void
    199 	.line 43
    200 	   72| return-void
    201 }
    202 
    203 method Hello.printStackTrace():void
    204 {
    205 	.src "hello.java"
    206 	.line 47
    207 	.prologue_end
    208 	.line 47
    209 	    0| invoke-static/range {}, Tracer.OnEntry():void
    210 	    3| new-instance v5, java.lang.Throwable
    211 	    5| move-object v11, v5
    212 	    6| move-object v5, v11
    213 	    7| move-object v6, v11
    214 	    8| invoke-direct {v6}, java.lang.Throwable.<init>():void
    215 	   11| invoke-virtual {v5}, java.lang.Throwable.getStackTrace():java.lang.StackTraceElement[]
    216 	   14| move-result-object v5
    217 	   15| move-object v0, v5
    218 	.line 48
    219 	.local v0, "callstack", java.lang.StackTraceElement[]
    220 	   16| move-object v5, v0
    221 	   17| move-object v1, v5
    222 	   18| move-object v5, v1
    223 	   19| array-length v5, v5
    224 	   20| move v2, v5
    225 	   21| const/4 v5, #+0 (0x00000000 | 0.00000)
    226 	   22| move v3, v5
    227 Label_1:
    228 	   23| move v5, v3
    229 	   24| move v6, v2
    230 	   25| if-ge v5, v6, Label_2
    231 	   27| move-object v5, v1
    232 	   28| move v6, v3
    233 	   29| aget-object v5, v5, v6
    234 	   31| move-object v4, v5
    235 	.line 50
    236 	.local v4, "e", java.lang.StackTraceElement
    237 	   32| sget-object v5, java.lang.System.out
    238 	   34| const-string v6, "   %s\n"
    239 	   36| const/4 v7, #+1 (0x00000001 | 1.40130e-45)
    240 	   37| new-array v7, v7, java.lang.Object[]
    241 	   39| move-object v11, v7
    242 	   40| move-object v7, v11
    243 	   41| move-object v8, v11
    244 	   42| const/4 v9, #+0 (0x00000000 | 0.00000)
    245 	   43| move-object v10, v4
    246 	   44| invoke-virtual {v10}, java.lang.StackTraceElement.toString():java.lang.String
    247 	   47| move-result-object v10
    248 	   48| aput-object v10, v8, v9
    249 	   50| invoke-virtual {v5,v6,v7}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
    250 	   53| move-result-object v5
    251 	.line 48
    252 	   54| add-int/lit8 v3, v3, #+1 (0x00000001 | 1.40130e-45)
    253 	   56| goto/16 Label_1
    254 Label_2:
    255 	.line 52
    256 	.end_local v4
    257 	   58| return-void
    258 }
    259 
    260 method Hello.wrapTest(Base, int):void
    261 {
    262 	.params "?", "?"
    263 	.src "hello.java"
    264 	.line 56
    265 	.prologue_end
    266 	.line 56
    267 	    0| invoke-static/range {v9..v10}, Tracer.OnEntry(Base, int):void
    268 	    3| move-object v0, v9
    269 	.local v0, "_this", Base
    270 	    4| move v1, v10
    271 	.local v1, "n", int
    272 	    5| sget-object v2, java.lang.System.out
    273 	    7| const-string v3, ">>> %s.test(int n = %d)\n"
    274 	    9| const/4 v4, #+2 (0x00000002 | 2.80260e-45)
    275 	   10| new-array v4, v4, java.lang.Object[]
    276 	   12| move-object v8, v4
    277 	   13| move-object v4, v8
    278 	   14| move-object v5, v8
    279 	   15| const/4 v6, #+0 (0x00000000 | 0.00000)
    280 	   16| move-object v7, v0
    281 	   17| invoke-virtual {v7}, java.lang.Object.getClass():java.lang.Class
    282 	   20| move-result-object v7
    283 	   21| invoke-virtual {v7}, java.lang.Class.getName():java.lang.String
    284 	   24| move-result-object v7
    285 	   25| aput-object v7, v5, v6
    286 	   27| move-object v8, v4
    287 	   28| move-object v4, v8
    288 	   29| move-object v5, v8
    289 	   30| const/4 v6, #+1 (0x00000001 | 1.40130e-45)
    290 	   31| move v7, v1
    291 	   32| invoke-static {v7}, java.lang.Integer.valueOf(int):java.lang.Integer
    292 	   35| move-result-object v7
    293 	   36| aput-object v7, v5, v6
    294 	   38| invoke-virtual {v2,v3,v4}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream
    295 	   41| move-result-object v2
    296 	.line 57
    297 	   42| move-object v2, v0
    298 	   43| move v3, v1
    299 	   44| invoke-virtual {v2,v3}, Base.test(int):void
    300 	.line 58
    301 	   47| return-void
    302 }
    303