@@ -27,37 +27,87 @@ library {
2727script {
2828 pub entry fn __entry () - > __ptr never , ! 3 {
2929 local mut { u64 , u64 } __aggr_memcpy_0
30+ local { ptr } __anon_0
31+ local { u64 , u64 } __anon_00
32+ local { u64 , u64 } __tmp_block_arg
3033 local u64 _result
3134 local { u64 , u64 } args
35+ local mut { ptr } buffer
3236
3337 entry ():
3438 v0 = const u64 0, !5
3539 v1 = gtf v0 , 10 , ! 11
3640 v2 = bitcast v1 to ptr , ! 12
37- v3 = cast_ptr v2 to __ptr { u64 , u64 }, ! 15
38- v4 = get_local __ptr { u64 , u64 }, __aggr_memcpy_0
39- mem_copy_val v4 , v3
40- v5 = get_local __ptr { u64 , u64 }, args , ! 16
41+ v3 = const bool true, !13
42+ cbr v3 , decode_script_data_0_decode_from_raw_ptr_1_block0 (), decode_script_data_0_decode_from_raw_ptr_1_block1 (), ! 17
43+
44+ decode_script_data_0_decode_from_raw_ptr_1_block0 ():
45+ v4 = cast_ptr v2 to __ptr { u64 , u64 }, ! 18
46+ v5 = get_local __ptr { u64 , u64 }, __aggr_memcpy_0
4147 mem_copy_val v5 , v4
42- v6 = get_local __ptr { u64 , u64 }, args , ! 17
43- v7 = const u64 0
44- v8 = get_elem_ptr v6 , __ptr u64 , v7 , ! 18
45- v9 = load v8
46- v10 = get_local __ptr { u64 , u64 }, args , ! 19
47- v11 = const u64 1
48- v12 = get_elem_ptr v10 , __ptr u64 , v11 , ! 20
49- v13 = load v12
50- v14 = call main_9 (v9 , v13 ), ! 23
51- v15 = get_local __ptr u64 , _result , ! 24
52- store v14 to v15 , ! 24
53- v16 = get_local __ptr u64 , _result , ! 25
54- v17 = const u64 8
55- retd v16 v17 , ! 29
48+ v6 = get_local __ptr { u64 , u64 }, __tmp_block_arg
49+ mem_copy_val v6 , v5
50+ br decode_script_data_0_decode_from_raw_ptr_1_block2 (v6 ), ! 19
51+
52+ decode_script_data_0_decode_from_raw_ptr_1_block1 ():
53+ v7 = get_local __ptr { ptr }, __anon_0 , ! 21
54+ v8 = const u64 0
55+ v9 = get_elem_ptr v7 , __ptr ptr , v8 , ! 22
56+ store v2 to v9 , ! 23
57+ v10 = get_local __ptr { ptr }, buffer , ! 25
58+ mem_copy_val v10 , v7
59+ v11 = get_local __ptr { ptr }, buffer , ! 27
60+ v12 = const u64 0
61+ v13 = get_elem_ptr v11 , __ptr ptr , v12 , ! 35
62+ v14 = load v13 , ! 36
63+ v15 = asm (ptr : v14 , val ) - > u64 val , ! 38 {
64+ lw val ptr i0 , ! 39
65+ }
66+ v16 = load v13 , ! 40
67+ v17 = const u64 8, !41
68+ v18 = add v16 , v17 , ! 42
69+ store v18 to v13 , ! 44
70+ v19 = load v13 , ! 47
71+ v20 = asm (ptr : v19 , val ) - > u64 val , ! 48 {
72+ lw val ptr i0 , ! 39
73+ }
74+ v21 = load v13 , ! 49
75+ v22 = const u64 8, !50
76+ v23 = add v21 , v22 , ! 51
77+ store v23 to v13 , ! 52
78+ v24 = get_local __ptr { u64 , u64 }, __anon_00 , ! 54
79+ v25 = const u64 0
80+ v26 = get_elem_ptr v24 , __ptr u64 , v25 , ! 55
81+ store v15 to v26 , ! 56
82+ v27 = const u64 1
83+ v28 = get_elem_ptr v24 , __ptr u64 , v27 , ! 57
84+ store v20 to v28 , ! 58
85+ v29 = get_local __ptr { u64 , u64 }, __tmp_block_arg
86+ mem_copy_val v29 , v24
87+ br decode_script_data_0_decode_from_raw_ptr_1_block2 (v29 ), ! 59
88+
89+ decode_script_data_0_decode_from_raw_ptr_1_block2 (v30 : __ptr { u64 , u64 }):
90+ v31 = get_local __ptr { u64 , u64 }, args , ! 60
91+ mem_copy_val v31 , v30
92+ v32 = get_local __ptr { u64 , u64 }, args , ! 61
93+ v33 = const u64 0
94+ v34 = get_elem_ptr v32 , __ptr u64 , v33 , ! 62
95+ v35 = load v34
96+ v36 = get_local __ptr { u64 , u64 }, args , ! 63
97+ v37 = const u64 1
98+ v38 = get_elem_ptr v36 , __ptr u64 , v37 , ! 64
99+ v39 = load v38
100+ v40 = call main_11 (v35 , v39 ), ! 67
101+ v41 = get_local __ptr u64 , _result , ! 68
102+ store v40 to v41 , ! 68
103+ v42 = get_local __ptr u64 , _result , ! 69
104+ v43 = const u64 8
105+ retd v42 v43 , ! 73
56106 }
57107
58- entry_orig fn main_9 (baba ! 31 : u64 , keke ! 32 : u64 ) - > u64 , ! 35 {
108+ entry_orig fn main_11 (baba ! 75 : u64 , keke ! 76 : u64 ) - > u64 , ! 79 {
59109 entry (baba : u64 , keke : u64 ):
60- v0 = add baba , keke , ! 38
110+ v0 = add baba , keke , ! 82
61111 ret u64 v0
62112 }
63113}
@@ -70,37 +120,81 @@ script {
70120! 5 = span ! 4 1542 1543
71121! 6 = span ! 0 64 99
72122! 7 = fn_call_path_span ! 0 64 82
73- ! 8 = span ! 4 175056 175088
74- ! 9 = fn_call_path_span ! 4 175056 175086
123+ ! 8 = span ! 4 184944 184976
124+ ! 9 = fn_call_path_span ! 4 184944 184974
75125! 10 = span ! 4 1525 1549
76126! 11 = (! 6 ! 7 ! 8 ! 9 ! 10 )
77127! 12 = (! 6 ! 7 ! 8 ! 9 ! 10 )
78- ! 13 = span ! 4 175031 175089
79- ! 14 = fn_call_path_span ! 4 175031 175050
80- ! 15 = (! 6 ! 7 ! 13 ! 14 )
81- ! 16 = span ! 0 40 100
82- ! 17 = span ! 0 141 145
83- ! 18 = span ! 0 146 147
84- ! 19 = span ! 0 149 153
85- ! 20 = span ! 0 154 155
86- ! 21 = span ! 0 136 156
87- ! 22 = fn_call_path_span ! 0 136 140
88- ! 23 = (! 21 ! 22 )
89- ! 24 = span ! 0 117 157
90- ! 25 = span ! 0 200 207
91- ! 26 = span ! 0 174 208
92- ! 27 = fn_call_path_span ! 0 174 191
93- ! 28 = span ! 4 93230 93256
94- ! 29 = (! 26 ! 27 ! 28 )
95- ! 30 = " test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64/src/main.sw"
96- ! 31 = span ! 30 17 21
97- ! 32 = span ! 30 28 32
98- ! 33 = span ! 30 9 65
99- ! 34 = fn_name_span ! 30 12 16
100- ! 35 = (! 33 ! 34 )
101- ! 36 = span ! 30 52 63
102- ! 37 = fn_call_path_span ! 30 57 58
103- ! 38 = (! 36 ! 37 )
128+ ! 13 = span ! 4 95125 95129
129+ ! 14 = span ! 4 184919 184977
130+ ! 15 = fn_call_path_span ! 4 184919 184938
131+ ! 16 = span ! 4 184659 184683
132+ ! 17 = (! 6 ! 7 ! 14 ! 15 ! 16 )
133+ ! 18 = (! 6 ! 7 ! 14 ! 15 )
134+ ! 19 = (! 6 ! 7 ! 14 ! 15 )
135+ ! 20 = span ! 4 184792 184812
136+ ! 21 = (! 6 ! 7 ! 14 ! 15 ! 20 )
137+ ! 22 = (! 6 ! 7 ! 14 ! 15 )
138+ ! 23 = (! 6 ! 7 ! 14 ! 15 ! 20 )
139+ ! 24 = span ! 4 184775 184813
140+ ! 25 = (! 6 ! 7 ! 14 ! 15 ! 24 )
141+ ! 26 = span ! 4 184836 184842
142+ ! 27 = (! 6 ! 7 ! 14 ! 15 ! 26 )
143+ ! 28 = span ! 4 184822 184843
144+ ! 29 = fn_call_path_span ! 4 184822 184835
145+ ! 30 = span ! 4 148317 148338
146+ ! 31 = fn_call_path_span ! 4 148317 148330
147+ ! 32 = span ! 4 95201 95229
148+ ! 33 = fn_call_path_span ! 4 95208 95220
149+ ! 34 = span ! 4 625 641
150+ ! 35 = (! 6 ! 7 ! 14 ! 15 ! 28 ! 29 ! 30 ! 31 ! 32 ! 33 ! 34 )
151+ ! 36 = (! 6 ! 7 ! 14 ! 15 ! 28 ! 29 ! 30 ! 31 ! 32 ! 33 )
152+ ! 37 = span ! 4 2212 2293
153+ ! 38 = (! 6 ! 7 ! 14 ! 15 ! 28 ! 29 ! 30 ! 31 ! 32 ! 33 ! 37 )
154+ ! 39 = span ! 4 2250 2263
155+ ! 40 = (! 6 ! 7 ! 14 ! 15 ! 28 ! 29 ! 30 ! 31 ! 32 ! 33 )
156+ ! 41 = (! 6 ! 7 ! 14 ! 15 ! 28 ! 29 ! 30 ! 31 ! 32 ! 33 )
157+ ! 42 = (! 6 ! 7 ! 14 ! 15 ! 28 ! 29 ! 30 ! 31 ! 32 ! 33 )
158+ ! 43 = span ! 4 2303 2342
159+ ! 44 = (! 6 ! 7 ! 14 ! 15 ! 28 ! 29 ! 30 ! 31 ! 32 ! 33 ! 43 )
160+ ! 45 = span ! 4 148340 148361
161+ ! 46 = fn_call_path_span ! 4 148340 148353
162+ ! 47 = (! 6 ! 7 ! 14 ! 15 ! 28 ! 29 ! 45 ! 46 ! 32 ! 33 )
163+ ! 48 = (! 6 ! 7 ! 14 ! 15 ! 28 ! 29 ! 45 ! 46 ! 32 ! 33 ! 37 )
164+ ! 49 = (! 6 ! 7 ! 14 ! 15 ! 28 ! 29 ! 45 ! 46 ! 32 ! 33 )
165+ ! 50 = (! 6 ! 7 ! 14 ! 15 ! 28 ! 29 ! 45 ! 46 ! 32 ! 33 )
166+ ! 51 = (! 6 ! 7 ! 14 ! 15 ! 28 ! 29 ! 45 ! 46 ! 32 ! 33 )
167+ ! 52 = (! 6 ! 7 ! 14 ! 15 ! 28 ! 29 ! 45 ! 46 ! 32 ! 33 ! 43 )
168+ ! 53 = span ! 4 148316 148362
169+ ! 54 = (! 6 ! 7 ! 14 ! 15 ! 28 ! 29 ! 53 )
170+ ! 55 = (! 6 ! 7 ! 14 ! 15 ! 28 ! 29 ! 53 )
171+ ! 56 = (! 6 ! 7 ! 14 ! 15 ! 28 ! 29 ! 53 )
172+ ! 57 = (! 6 ! 7 ! 14 ! 15 ! 28 ! 29 ! 53 )
173+ ! 58 = (! 6 ! 7 ! 14 ! 15 ! 28 ! 29 ! 53 )
174+ ! 59 = (! 6 ! 7 ! 14 ! 15 )
175+ ! 60 = span ! 0 40 100
176+ ! 61 = span ! 0 141 145
177+ ! 62 = span ! 0 146 147
178+ ! 63 = span ! 0 149 153
179+ ! 64 = span ! 0 154 155
180+ ! 65 = span ! 0 136 156
181+ ! 66 = fn_call_path_span ! 0 136 140
182+ ! 67 = (! 65 ! 66 )
183+ ! 68 = span ! 0 117 157
184+ ! 69 = span ! 0 200 207
185+ ! 70 = span ! 0 174 208
186+ ! 71 = fn_call_path_span ! 0 174 191
187+ ! 72 = span ! 4 93230 93256
188+ ! 73 = (! 70 ! 71 ! 72 )
189+ ! 74 = " test/src/e2e_vm_tests/test_programs/should_pass/language/main_args/main_args_two_u64/src/main.sw"
190+ ! 75 = span ! 74 17 21
191+ ! 76 = span ! 74 28 32
192+ ! 77 = span ! 74 9 65
193+ ! 78 = fn_name_span ! 74 12 16
194+ ! 79 = (! 77 ! 78 )
195+ ! 80 = span ! 74 52 63
196+ ! 81 = fn_call_path_span ! 74 57 58
197+ ! 82 = (! 80 ! 81 )
104198
105199;; ASM : Final program
106200;; Program kind : Script
@@ -115,23 +209,25 @@ lw $$ds $$tmp i1
115209add $$ds $$ds $$tmp
116210cfei i0 ; allocate stack space for globals
117211move $$locbase $sp ; save locals base register for function __entry
118- cfei i40 ; allocate 40 bytes for locals and 0 slots for call arguments
212+ cfei i88 ; allocate 88 bytes for locals and 0 slots for call arguments
119213gtf $r0 $zero i10 ; get transaction field
120214mcpi $$locbase $r0 i16 ; copy memory
121- addi $r0 $$locbase i24 ; get offset to local __ptr { u64 , u64 }
215+ addi $r0 $$locbase i40 ; get offset to local __ptr { u64 , u64 }
122216mcpi $r0 $$locbase i16 ; copy memory
123- lw $r0 $$locbase i3 ; load word
124- lw $r1 $$locbase i4 ; load word
217+ addi $r1 $$locbase i64 ; get offset to local __ptr { u64 , u64 }
218+ mcpi $r1 $r0 i16 ; copy memory
219+ lw $r0 $$locbase i8 ; load word
220+ lw $r1 $$locbase i9 ; load word
125221move $$arg0 $r0 ; [call ]: pass argument 0
126222move $$arg1 $r1 ; [call ]: pass argument 1
127- jal $$reta $pc i5 ; [call ]: call main_9
128- sw $$locbase $$retv i2 ; store word
129- addi $r0 $$locbase i16 ; get offset to local __ptr u64
223+ jal $$reta $pc i5 ; [call ]: call main_11
224+ sw $$locbase $$retv i7 ; store word
225+ addi $r0 $$locbase i56 ; get offset to local __ptr u64
130226movi $r1 i8 ; initialize constant into register
131227retd $r0 $r1
132228pshl i1 ; save registers 16..40
133229pshh i524288 ; save registers 40..64
134- move $$locbase $sp ; save locals base register for function main_9
230+ move $$locbase $sp ; save locals base register for function main_11
135231add $r0 $$arg0 $$arg1
136232move $$retv $r0 ; set return value
137233poph i524288 ; restore registers 40..64
@@ -144,35 +240,37 @@ jal $zero $$reta i0 ; return from call
144240
1452410x00000000 MOVE R60 $pc ;; [26 , 240 , 48 , 0 ]
1462420x00000004 JMPF $zero 0x4 ;; [116 , 0 , 0 , 4 ]
147- 0x00000008 ;; [0 , 0 , 0 , 0 , 0 , 0 , 0 , 128 ]
243+ 0x00000008 ;; [0 , 0 , 0 , 0 , 0 , 0 , 0 , 136 ]
1482440x00000010 ;; [0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ]
1492450x00000018 LW R63 R60 0x1 ;; [93 , 255 , 192 , 1 ]
1502460x0000001c ADD R63 R63 R60 ;; [16 , 255 , 255 , 0 ]
1512470x00000020 MOVE R59 $sp ;; [26 , 236 , 80 , 0 ]
152- 0x00000024 CFEI 0x28 ;; [145 , 0 , 0 , 40 ]
248+ 0x00000024 CFEI 0x58 ;; [145 , 0 , 0 , 88 ]
1532490x00000028 GTF $writable $zero 0xa ;; [97 , 64 , 0 , 10 ]
1542500x0000002c MCPI R59 $writable 0x10 ;; [96 , 237 , 0 , 16 ]
155- 0x00000030 ADDI $writable R59 0x18 ;; [80 , 67 , 176 , 24 ]
251+ 0x00000030 ADDI $writable R59 0x28 ;; [80 , 67 , 176 , 40 ]
1562520x00000034 MCPI $writable R59 0x10 ;; [96 , 67 , 176 , 16 ]
157- 0x00000038 LW $writable R59 0x3 ;; [93 , 67 , 176 , 3 ]
158- 0x0000003c LW R17 R59 0x4 ;; [93 , 71 , 176 , 4 ]
159- 0x00000040 MOVE R58 $writable ;; [26 , 233 , 0 , 0 ]
160- 0x00000044 MOVE R57 R17 ;; [26 , 229 , 16 , 0 ]
161- 0x00000048 JAL R62 $pc 0x5 ;; [153 , 248 , 48 , 5 ]
162- 0x0000004c SW R59 R61 0x2 ;; [95 , 239 , 208 , 2 ]
163- 0x00000050 ADDI $writable R59 0x10 ;; [80 , 67 , 176 , 16 ]
164- 0x00000054 MOVI R17 0x8 ;; [114 , 68 , 0 , 8 ]
165- 0x00000058 RETD $writable R17 ;; [37 , 65 , 16 , 0 ]
166- 0x0000005c PSHL 0x1 ;; [149 , 0 , 0 , 1 ]
167- 0x00000060 PSHH 0x80000 ;; [150 , 8 , 0 , 0 ]
168- 0x00000064 MOVE R59 $sp ;; [26 , 236 , 80 , 0 ]
169- 0x00000068 ADD $writable R58 R57 ;; [16 , 67 , 174 , 64 ]
170- 0x0000006c MOVE R61 $writable ;; [26 , 245 , 0 , 0 ]
171- 0x00000070 POPH 0x80000 ;; [152 , 8 , 0 , 0 ]
172- 0x00000074 POPL 0x1 ;; [151 , 0 , 0 , 1 ]
173- 0x00000078 JAL $zero R62 0x0 ;; [153 , 3 , 224 , 0 ]
174- 0x0000007c NOOP ;; [71 , 0 , 0 , 0 ]
253+ 0x00000038 ADDI R17 R59 0x40 ;; [80 , 71 , 176 , 64 ]
254+ 0x0000003c MCPI R17 $writable 0x10 ;; [96 , 69 , 0 , 16 ]
255+ 0x00000040 LW $writable R59 0x8 ;; [93 , 67 , 176 , 8 ]
256+ 0x00000044 LW R17 R59 0x9 ;; [93 , 71 , 176 , 9 ]
257+ 0x00000048 MOVE R58 $writable ;; [26 , 233 , 0 , 0 ]
258+ 0x0000004c MOVE R57 R17 ;; [26 , 229 , 16 , 0 ]
259+ 0x00000050 JAL R62 $pc 0x5 ;; [153 , 248 , 48 , 5 ]
260+ 0x00000054 SW R59 R61 0x7 ;; [95 , 239 , 208 , 7 ]
261+ 0x00000058 ADDI $writable R59 0x38 ;; [80 , 67 , 176 , 56 ]
262+ 0x0000005c MOVI R17 0x8 ;; [114 , 68 , 0 , 8 ]
263+ 0x00000060 RETD $writable R17 ;; [37 , 65 , 16 , 0 ]
264+ 0x00000064 PSHL 0x1 ;; [149 , 0 , 0 , 1 ]
265+ 0x00000068 PSHH 0x80000 ;; [150 , 8 , 0 , 0 ]
266+ 0x0000006c MOVE R59 $sp ;; [26 , 236 , 80 , 0 ]
267+ 0x00000070 ADD $writable R58 R57 ;; [16 , 67 , 174 , 64 ]
268+ 0x00000074 MOVE R61 $writable ;; [26 , 245 , 0 , 0 ]
269+ 0x00000078 POPH 0x80000 ;; [152 , 8 , 0 , 0 ]
270+ 0x0000007c POPL 0x1 ;; [151 , 0 , 0 , 1 ]
271+ 0x00000080 JAL $zero R62 0x0 ;; [153 , 3 , 224 , 0 ]
272+ 0x00000084 NOOP ;; [71 , 0 , 0 , 0 ]
175273.data_section :
176274;; -- - END OF TARGET BYTECODE -- -
177275
178- Finished release [optimized + fuel ] target (s ) [128 B ] in ???
276+ Finished release [optimized + fuel ] target (s ) [136 B ] in ???
0 commit comments