You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
446 lines
13 KiB
446 lines
13 KiB
|
|
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
|
|
}
|