| |
| method Target.<init>():void |
| { |
| .src "exitHooks.java" |
| .line 28 |
| 0| move-object/16 v15, v25 |
| 3| move-object/16 v14, v15 |
| 6| move-object/16 v13, v14 |
| .prologue_end |
| .line 28 |
| 9| move-object v11, v13 |
| .local v11, "this", Target |
| 10| move-object v12, v11 |
| 11| invoke-direct {v12}, java.lang.Object.<init>():void |
| 14| return-void |
| } |
| |
| method Target.main(java.lang.String[]):void |
| { |
| .params "?" |
| .src "exitHooks.java" |
| .line 32 |
| 0| move-object/16 v15, v26 |
| 3| move-object/16 v14, v15 |
| 6| move-object/16 v13, v14 |
| .prologue_end |
| .line 32 |
| 9| move-object v10, v13 |
| .local v10, "args", java.lang.String[] |
| 10| sget-object v11, java.lang.System.out |
| 12| const-string v12, "Hello, world!\n{" |
| 14| invoke-virtual {v11,v12}, java.io.PrintStream.println(java.lang.String):void |
| .line 33 |
| 17| invoke-static {}, Target.test():void |
| .line 34 |
| 20| sget-object v11, java.lang.System.out |
| 22| const-string v12, "}\nGood bye!" |
| 24| invoke-virtual {v11,v12}, java.io.PrintStream.println(java.lang.String):void |
| .line 35 |
| 27| return-void |
| } |
| |
| method Target.test():void |
| { |
| .src "exitHooks.java" |
| .line 39 |
| .prologue_end |
| .line 39 |
| 0| new-instance v1, Target |
| 2| move-object v8, v1 |
| 3| move-object v1, v8 |
| 4| move-object v2, v8 |
| 5| invoke-direct {v2}, Target.<init>():void |
| 8| move-object v0, v1 |
| .line 40 |
| .local v0, "obj", Target |
| 9| sget-object v1, java.lang.System.out |
| 11| const-string v2, "Object(true) : %s\n" |
| 13| const/4 v3, #+1 (0x00000001 | 1.40130e-45) |
| 14| new-array v3, v3, java.lang.Object[] |
| 16| move-object v8, v3 |
| 17| move-object v3, v8 |
| 18| move-object v4, v8 |
| 19| const/4 v5, #+0 (0x00000000 | 0.00000) |
| 20| move-object v6, v0 |
| 21| const/4 v7, #+1 (0x00000001 | 1.40130e-45) |
| 22| invoke-virtual {v6,v7}, Target.testObject(boolean):java.lang.Object |
| 25| move-result-object v6 |
| 26| aput-object v6, v4, v5 |
| 28| invoke-virtual {v1,v2,v3}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream |
| 31| move-result-object v1 |
| .line 41 |
| 32| sget-object v1, java.lang.System.out |
| 34| const-string v2, "Object(false) : %s\n" |
| 36| const/4 v3, #+1 (0x00000001 | 1.40130e-45) |
| 37| new-array v3, v3, java.lang.Object[] |
| 39| move-object v8, v3 |
| 40| move-object v3, v8 |
| 41| move-object v4, v8 |
| 42| const/4 v5, #+0 (0x00000000 | 0.00000) |
| 43| move-object v6, v0 |
| 44| const/4 v7, #+0 (0x00000000 | 0.00000) |
| 45| invoke-virtual {v6,v7}, Target.testObject(boolean):java.lang.Object |
| 48| move-result-object v6 |
| 49| aput-object v6, v4, v5 |
| 51| invoke-virtual {v1,v2,v3}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream |
| 54| move-result-object v1 |
| .line 42 |
| 55| sget-object v1, java.lang.System.out |
| 57| const-string v2, "double : %s\n" |
| 59| const/4 v3, #+1 (0x00000001 | 1.40130e-45) |
| 60| new-array v3, v3, java.lang.Object[] |
| 62| move-object v8, v3 |
| 63| move-object v3, v8 |
| 64| move-object v4, v8 |
| 65| const/4 v5, #+0 (0x00000000 | 0.00000) |
| 66| move-object v6, v0 |
| 67| const/4 v7, #+3 (0x00000003 | 4.20390e-45) |
| 68| invoke-virtual {v6,v7}, Target.testDouble(int):double |
| 71| move-result-wide v6:v7 |
| 72| invoke-static {v6,v7}, java.lang.Double.valueOf(double):java.lang.Double |
| 75| move-result-object v6 |
| 76| aput-object v6, v4, v5 |
| 78| invoke-virtual {v1,v2,v3}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream |
| 81| move-result-object v1 |
| .line 43 |
| 82| sget-object v1, java.lang.System.out |
| 84| const-string v2, "int : %s\n" |
| 86| const/4 v3, #+1 (0x00000001 | 1.40130e-45) |
| 87| new-array v3, v3, java.lang.Object[] |
| 89| move-object v8, v3 |
| 90| move-object v3, v8 |
| 91| move-object v4, v8 |
| 92| const/4 v5, #+0 (0x00000000 | 0.00000) |
| 93| move-object v6, v0 |
| 94| const/16 v7, #+100 (0x00000064 | 1.40130e-43) |
| 96| invoke-virtual {v6,v7}, Target.testInt(int):int |
| 99| move-result v6 |
| 100| invoke-static {v6}, java.lang.Integer.valueOf(int):java.lang.Integer |
| 103| move-result-object v6 |
| 104| aput-object v6, v4, v5 |
| 106| invoke-virtual {v1,v2,v3}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream |
| 109| move-result-object v1 |
| .line 44 |
| 110| move-object v1, v0 |
| 111| const/4 v2, #+1 (0x00000001 | 1.40130e-45) |
| 112| invoke-virtual {v1,v2}, Target.testVoid(boolean):void |
| .line 45 |
| 115| return-void |
| } |
| |
| method Target.testDouble(int):double |
| { |
| .params "?" |
| .src "exitHooks.java" |
| .line 60 |
| 0| move-object/16 v14, v27 |
| 3| move/16 v15, v28 |
| 6| move-object/16 v13, v14 |
| 9| move/16 v14, v15 |
| 12| move-object/16 v12, v13 |
| 15| move/16 v13, v14 |
| .prologue_end |
| .line 60 |
| 18| move-object v8, v12 |
| .local v8, "this", Target |
| 19| move v9, v13 |
| .local v9, "n", int |
| 20| move v10, v9 |
| 21| packed-switch v10, Label_5 |
| .line 65 |
| 24| const-wide v10:v11, #+4621762822593629389 (0x4023cccccccccccd | 9.90000) |
| 29| move-wide v8:v9, v10:v11 |
| Label_1: |
| .end_local v8 |
| 30| return-wide v8:v9 |
| Label_2: |
| .line 62 |
| .restart_local v8 |
| 31| const-wide v10:v11, #+4607632778762754458 (0x3ff199999999999a | 1.10000) |
| 36| move-wide v8:v9, v10:v11 |
| 37| goto/16 Label_1 |
| Label_3: |
| .line 63 |
| 39| const-wide v10:v11, #+4612136378390124954 (0x400199999999999a | 2.20000) |
| 44| move-wide v8:v9, v10:v11 |
| 45| goto/16 Label_1 |
| Label_4: |
| .line 64 |
| 47| const-wide v10:v11, #+4614613358185178726 (0x400a666666666666 | 3.30000) |
| 52| move-wide v8:v9, v10:v11 |
| 53| goto/16 Label_1 |
| 55| nop |
| Label_5: <aligned> |
| .line 60 |
| 56| packed-switch-payload |
| 1: Label_2 |
| 2: Label_3 |
| 3: Label_4 |
| } |
| |
| method Target.testInt(int):int |
| { |
| .params "?" |
| .src "exitHooks.java" |
| .line 71 |
| 0| move-object/16 v14, v26 |
| 3| move/16 v15, v27 |
| 6| move-object/16 v13, v14 |
| 9| move/16 v14, v15 |
| 12| move-object/16 v12, v13 |
| 15| move/16 v13, v14 |
| .prologue_end |
| .line 71 |
| 18| move-object v9, v12 |
| .local v9, "this", Target |
| 19| move v10, v13 |
| .local v10, "n", int |
| 20| move v11, v10 |
| 21| sparse-switch v11, Label_5 |
| .line 76 |
| 24| const/16 v11, #+123 (0x0000007b | 1.72360e-43) |
| 26| move v9, v11 |
| Label_1: |
| .end_local v9 |
| 27| return v9 |
| Label_2: |
| .line 73 |
| .restart_local v9 |
| 28| const/4 v11, #+1 (0x00000001 | 1.40130e-45) |
| 29| move v9, v11 |
| 30| goto/16 Label_1 |
| Label_3: |
| .line 74 |
| 32| const/4 v11, #+2 (0x00000002 | 2.80260e-45) |
| 33| move v9, v11 |
| 34| goto/16 Label_1 |
| Label_4: |
| .line 75 |
| 36| const/4 v11, #+3 (0x00000003 | 4.20390e-45) |
| 37| move v9, v11 |
| 38| goto/16 Label_1 |
| .line 71 |
| 40| nop |
| 41| nop |
| Label_5: <aligned> |
| 42| sparse-switch-payload |
| 10: Label_2 |
| 20: Label_3 |
| 30: Label_4 |
| } |
| |
| method Target.testObject(boolean):java.lang.Object |
| { |
| .params "?" |
| .src "exitHooks.java" |
| .line 49 |
| 0| move-object/16 v14, v28 |
| 3| move/16 v15, v29 |
| 6| move-object/16 v13, v14 |
| 9| move/16 v14, v15 |
| 12| move-object/16 v12, v13 |
| 15| move/16 v13, v14 |
| .prologue_end |
| .line 49 |
| 18| move-object v7, v12 |
| .local v7, "this", Target |
| 19| move v8, v13 |
| .local v8, "flag", boolean |
| 20| move v9, v8 |
| 21| if-eqz v9, Label_2 |
| .line 51 |
| 23| sget-object v9, java.lang.System.out |
| 25| const-string v10, "Flag!\n" |
| 27| const/4 v11, #+0 (0x00000000 | 0.00000) |
| 28| new-array v11, v11, java.lang.Object[] |
| 30| invoke-virtual {v9,v10,v11}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream |
| 33| move-result-object v9 |
| .line 52 |
| 34| const-string v9, "Sigh" |
| 36| move-object v7, v9 |
| Label_1: |
| .line 55 |
| .end_local v7 |
| 37| return-object v7 |
| Label_2: |
| .restart_local v7 |
| 38| const-string v9, "Blah" |
| 40| move-object v7, v9 |
| 41| goto/16 Label_1 |
| } |
| |
| method Target.testVoid(boolean):void |
| { |
| .params "?" |
| .src "exitHooks.java" |
| .line 82 |
| 0| move-object/16 v14, v28 |
| 3| move/16 v15, v29 |
| 6| move-object/16 v13, v14 |
| 9| move/16 v14, v15 |
| 12| move-object/16 v12, v13 |
| 15| move/16 v13, v14 |
| .prologue_end |
| .line 82 |
| 18| move-object v7, v12 |
| .local v7, "this", Target |
| 19| move v8, v13 |
| .local v8, "flag", boolean |
| 20| move v9, v8 |
| 21| if-eqz v9, Label_2 |
| .line 84 |
| 23| sget-object v9, java.lang.System.out |
| 25| const-string v10, "True!\n" |
| 27| const/4 v11, #+0 (0x00000000 | 0.00000) |
| 28| new-array v11, v11, java.lang.Object[] |
| 30| invoke-virtual {v9,v10,v11}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream |
| 33| move-result-object v9 |
| Label_1: |
| .line 85 |
| .line 90 |
| 34| return-void |
| Label_2: |
| .line 89 |
| 35| sget-object v9, java.lang.System.out |
| 37| const-string v10, "False!\n" |
| 39| const/4 v11, #+0 (0x00000000 | 0.00000) |
| 40| new-array v11, v11, java.lang.Object[] |
| 42| invoke-virtual {v9,v10,v11}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream |
| 45| move-result-object v9 |
| .line 90 |
| 46| goto/16 Label_1 |
| } |
| |
| method Tracer.<init>():void |
| { |
| .src "exitHooks.java" |
| .line 2 |
| 0| move-object/16 v15, v25 |
| 3| move-object/16 v14, v15 |
| 6| move-object/16 v13, v14 |
| .prologue_end |
| .line 2 |
| 9| move-object v11, v13 |
| .local v11, "this", Tracer |
| 10| move-object v12, v11 |
| 11| invoke-direct {v12}, java.lang.Object.<init>():void |
| 14| return-void |
| } |
| |
| method Tracer.onExit(double):double |
| { |
| .params "?" |
| .src "exitHooks.java" |
| .line 12 |
| 0| move-wide/16 v14:v15, v33:v34 |
| 3| move-wide/16 v13:v14, v14:v15 |
| 6| move-wide/16 v12:v13, v13:v14 |
| .prologue_end |
| .line 12 |
| 9| move-wide v2:v3, v12:v13 |
| .local v2, "value", double |
| 10| sget-object v4, java.lang.System.out |
| 12| const-string v5, ">>> onExit(double: %f)\n" |
| 14| const/4 v6, #+1 (0x00000001 | 1.40130e-45) |
| 15| new-array v6, v6, java.lang.Object[] |
| 17| move-object v11, v6 |
| 18| move-object v6, v11 |
| 19| move-object v7, v11 |
| 20| const/4 v8, #+0 (0x00000000 | 0.00000) |
| 21| move-wide v9:v10, v2:v3 |
| 22| invoke-static {v9,v10}, java.lang.Double.valueOf(double):java.lang.Double |
| 25| move-result-object v9 |
| 26| aput-object v9, v7, v8 |
| 28| invoke-virtual {v4,v5,v6}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream |
| 31| move-result-object v4 |
| .line 13 |
| 32| move-wide v4:v5, v2:v3 |
| 33| neg-double v4:v5, v4:v5 |
| 34| move-wide v2:v3, v4:v5 |
| .end_local v2 |
| 35| return-wide v2:v3 |
| } |
| |
| method Tracer.onExit(int):int |
| { |
| .params "?" |
| .src "exitHooks.java" |
| .line 18 |
| 0| move/16 v15, v31 |
| 3| move/16 v14, v15 |
| 6| move/16 v13, v14 |
| .prologue_end |
| .line 18 |
| 9| move v5, v13 |
| .local v5, "value", int |
| 10| sget-object v6, java.lang.System.out |
| 12| const-string v7, ">>> onExit(int: %d)\n" |
| 14| const/4 v8, #+1 (0x00000001 | 1.40130e-45) |
| 15| new-array v8, v8, java.lang.Object[] |
| 17| move-object v12, v8 |
| 18| move-object v8, v12 |
| 19| move-object v9, v12 |
| 20| const/4 v10, #+0 (0x00000000 | 0.00000) |
| 21| move v11, v5 |
| 22| invoke-static {v11}, java.lang.Integer.valueOf(int):java.lang.Integer |
| 25| move-result-object v11 |
| 26| aput-object v11, v9, v10 |
| 28| invoke-virtual {v6,v7,v8}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream |
| 31| move-result-object v6 |
| .line 19 |
| 32| move v6, v5 |
| 33| const/16 v7, #+10 (0x0000000a | 1.40130e-44) |
| 35| mul-int/lit8 v6, v6, #+10 (0x0000000a | 1.40130e-44) |
| 37| move v5, v6 |
| .end_local v5 |
| 38| return v5 |
| } |
| |
| method Tracer.onExit(java.lang.Object):java.lang.Object |
| { |
| .params "?" |
| .src "exitHooks.java" |
| .line 6 |
| 0| move-object/16 v15, v31 |
| 3| move-object/16 v14, v15 |
| 6| move-object/16 v13, v14 |
| .prologue_end |
| .line 6 |
| 9| move-object v5, v13 |
| .local v5, "value", java.lang.Object |
| 10| sget-object v6, java.lang.System.out |
| 12| const-string v7, ">>> onExit(Object: %s)\n" |
| 14| const/4 v8, #+1 (0x00000001 | 1.40130e-45) |
| 15| new-array v8, v8, java.lang.Object[] |
| 17| move-object v12, v8 |
| 18| move-object v8, v12 |
| 19| move-object v9, v12 |
| 20| const/4 v10, #+0 (0x00000000 | 0.00000) |
| 21| move-object v11, v5 |
| 22| aput-object v11, v9, v10 |
| 24| invoke-virtual {v6,v7,v8}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream |
| 27| move-result-object v6 |
| .line 7 |
| 28| move-object v6, v5 |
| 29| move-object v5, v6 |
| .end_local v5 |
| 30| return-object v5 |
| } |
| |
| method Tracer.onExit():void |
| { |
| .src "exitHooks.java" |
| .line 24 |
| .prologue_end |
| .line 24 |
| 0| sget-object v0, java.lang.System.out |
| 2| const-string v1, ">>> onExit(void)\n" |
| 4| const/4 v2, #+0 (0x00000000 | 0.00000) |
| 5| new-array v2, v2, java.lang.Object[] |
| 7| invoke-virtual {v0,v1,v2}, java.io.PrintStream.printf(java.lang.String, java.lang.Object[]):java.io.PrintStream |
| 10| move-result-object v0 |
| .line 25 |
| 11| return-void |
| } |