Skip to content

Commit bf6548b

Browse files
clonkerr0qs
authored andcommitted
Add tests with non-zero PUSH #[$] asm instructions
1 parent f7058d8 commit bf6548b

File tree

4 files changed

+182
-0
lines changed

4 files changed

+182
-0
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
--asm-json --pretty-json --strict-assembly --json-indent 4
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
object "root" {
2+
code {
3+
// this produces non-zero PUSH #[$] assembly item values
4+
mstore(42, datasize("sub1.sub1_2"))
5+
mstore(42, datasize("sub2.sub2_2"))
6+
}
7+
object "sub1" {
8+
code {}
9+
object "sub1_2" {
10+
code {}
11+
}
12+
}
13+
object "sub2" {
14+
code {}
15+
object "sub2_2" {
16+
code {}
17+
}
18+
}
19+
}
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
2+
======= input.yul (EVM) =======
3+
4+
EVM assembly:
5+
{
6+
".code": [
7+
{
8+
"begin": 60,
9+
"end": 83,
10+
"name": "PUSH #[$]",
11+
"source": -1,
12+
"value": "000000000000000000000000000000000000000000000000ffffffffffffffff"
13+
},
14+
{
15+
"begin": 56,
16+
"end": 58,
17+
"name": "PUSH",
18+
"source": -1,
19+
"value": "2A"
20+
},
21+
{
22+
"begin": 49,
23+
"end": 84,
24+
"name": "MSTORE",
25+
"source": -1
26+
},
27+
{
28+
"begin": 108,
29+
"end": 131,
30+
"name": "PUSH #[$]",
31+
"source": -1,
32+
"value": "000000000000000000000000000000000000000000000000fffffffffffffffe"
33+
},
34+
{
35+
"begin": 104,
36+
"end": 106,
37+
"name": "PUSH",
38+
"source": -1,
39+
"value": "2A"
40+
},
41+
{
42+
"begin": 97,
43+
"end": 132,
44+
"name": "MSTORE",
45+
"source": -1
46+
},
47+
{
48+
"begin": 25,
49+
"end": 148,
50+
"name": "STOP",
51+
"source": -1
52+
}
53+
],
54+
".data": {
55+
"0": {
56+
".code": [
57+
{
58+
"begin": 182,
59+
"end": 189,
60+
"name": "STOP",
61+
"source": -1
62+
}
63+
],
64+
".data": {
65+
"0": {
66+
".code": [
67+
{
68+
"begin": 233,
69+
"end": 240,
70+
"name": "STOP",
71+
"source": -1
72+
}
73+
]
74+
}
75+
}
76+
},
77+
"1": {
78+
".code": [
79+
{
80+
"begin": 290,
81+
"end": 297,
82+
"name": "STOP",
83+
"source": -1
84+
}
85+
],
86+
".data": {
87+
"0": {
88+
".code": [
89+
{
90+
"begin": 341,
91+
"end": 348,
92+
"name": "STOP",
93+
"source": -1
94+
}
95+
]
96+
}
97+
}
98+
}
99+
},
100+
"sourceList": []
101+
}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
// sub_0 and children
2+
PUSH #[$] 0x0000
3+
// negative indices for nested subobjects in DFS order
4+
PUSH #[$] 0x000000000000000000000000000000000000000000000000ffffffffffffffff
5+
PUSH #[$] 0x000000000000000000000000000000000000000000000000fffffffffffffffe
6+
PUSH #[$] 0x000000000000000000000000000000000000000000000000fffffffffffffffd
7+
PUSH #[$] 0x000000000000000000000000000000000000000000000000fffffffffffffffc
8+
// sub_1 and children
9+
PUSH #[$] 0x0001
10+
PUSH #[$] 0x000000000000000000000000000000000000000000000000fffffffffffffffb
11+
12+
.sub
13+
// referencing sub_0.sub_0 from inside sub_0
14+
PUSH #[$] 0x0000
15+
// referencing sub_0.sub_0.sub_0 from inside sub_0
16+
PUSH #[$] 0x000000000000000000000000000000000000000000000000ffffffffffffffff
17+
.sub
18+
.sub
19+
.sub
20+
.sub
21+
.sub
22+
.sub
23+
// ----
24+
// Assembly:
25+
// dataSize(sub_0)
26+
// dataSize(sub_0.sub_0)
27+
// dataSize(sub_0.sub_0.sub_0)
28+
// dataSize(sub_0.sub_1)
29+
// dataSize(sub_0.sub_2)
30+
// dataSize(sub_1)
31+
// dataSize(sub_1.sub_0)
32+
// stop
33+
//
34+
// sub_0: assembly {
35+
// dataSize(sub_0)
36+
// dataSize(sub_0.sub_0)
37+
// stop
38+
//
39+
// sub_0: assembly {
40+
// stop
41+
//
42+
// sub_0: assembly {
43+
// }
44+
// }
45+
//
46+
// sub_1: assembly {
47+
// }
48+
//
49+
// sub_2: assembly {
50+
// }
51+
// }
52+
//
53+
// sub_1: assembly {
54+
// stop
55+
//
56+
// sub_0: assembly {
57+
// }
58+
// }
59+
// Bytecode: 6005600160006000600060016000fe
60+
// Opcodes: PUSH1 0x5 PUSH1 0x1 PUSH1 0x0 PUSH1 0x0 PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 INVALID
61+
// SourceMappings: :::-:0;;;;;;

0 commit comments

Comments
 (0)