|
79 | 79 | (seq (Push rax) |
80 | 80 | (allocate 1) |
81 | 81 | (Pop rax) |
82 | | - (Mov (Offset rbx 0) rax) |
| 82 | + (Mov (Mem rbx 0) rax) |
83 | 83 | (Mov rax rbx) |
84 | 84 | (Or rax type-box) |
85 | 85 | (Add rbx 8))] |
86 | 86 | ['unbox |
87 | 87 | (seq (assert-box rax) |
88 | 88 | (Xor rax type-box) |
89 | | - (Mov rax (Offset rax 0)))] |
| 89 | + (Mov rax (Mem rax 0)))] |
90 | 90 | ['car |
91 | 91 | (seq (assert-cons rax) |
92 | 92 | (Xor rax type-cons) |
93 | | - (Mov rax (Offset rax 8)))] |
| 93 | + (Mov rax (Mem rax 8)))] |
94 | 94 | ['cdr |
95 | 95 | (seq (assert-cons rax) |
96 | 96 | (Xor rax type-cons) |
97 | | - (Mov rax (Offset rax 0)))] |
| 97 | + (Mov rax (Mem rax 0)))] |
98 | 98 | ['empty? (eq-imm '())] |
99 | 99 | ['box? |
100 | 100 | (type-pred ptr-mask type-box)] |
|
111 | 111 | (Xor rax type-vect) |
112 | 112 | (Cmp rax 0) |
113 | 113 | (Je zero) |
114 | | - (Mov rax (Offset rax 0)) |
| 114 | + (Mov rax (Mem rax 0)) |
115 | 115 | (Sal rax int-shift) |
116 | 116 | (Jmp done) |
117 | 117 | (Label zero) |
|
124 | 124 | (Xor rax type-str) |
125 | 125 | (Cmp rax 0) |
126 | 126 | (Je zero) |
127 | | - (Mov rax (Offset rax 0)) |
| 127 | + (Mov rax (Mem rax 0)) |
128 | 128 | (Sal rax int-shift) |
129 | 129 | (Jmp done) |
130 | 130 | (Label zero) |
|
181 | 181 | (seq (Push rax) |
182 | 182 | (allocate 2) |
183 | 183 | (Pop rax) |
184 | | - (Mov (Offset rbx 0) rax) |
| 184 | + (Mov (Mem rbx 0) rax) |
185 | 185 | (Pop rax) |
186 | | - (Mov (Offset rbx 8) rax) |
| 186 | + (Mov (Mem rbx 8) rax) |
187 | 187 | (Mov rax rbx) |
188 | 188 | (Or rax type-cons) |
189 | 189 | (Add rbx 16))] |
|
212 | 212 | (Or r9 type-vect) |
213 | 213 |
|
214 | 214 | (Sar r8 int-shift) |
215 | | - (Mov (Offset rbx 0) r8) |
| 215 | + (Mov (Mem rbx 0) r8) |
216 | 216 | (Add rbx 8) |
217 | 217 |
|
218 | 218 | (Label loop) |
219 | | - (Mov (Offset rbx 0) rax) |
| 219 | + (Mov (Mem rbx 0) rax) |
220 | 220 | (Add rbx 8) |
221 | 221 | (Sub r8 1) |
222 | 222 | (Cmp r8 0) |
|
235 | 235 | (Cmp rax 0) |
236 | 236 | (Jl 'raise_error_align) |
237 | 237 | (Xor r8 type-vect) ; r8 = ptr |
238 | | - (Mov r9 (Offset r8 0)) ; r9 = len |
| 238 | + (Mov r9 (Mem r8 0)) ; r9 = len |
239 | 239 | (Sar rax int-shift) ; rax = index |
240 | 240 | (Sub r9 1) |
241 | 241 | (Cmp r9 rax) |
242 | 242 | (Jl 'raise_error_align) |
243 | 243 | (Sal rax 3) |
244 | 244 | (Add r8 rax) |
245 | | - (Mov rax (Offset r8 8)))] |
| 245 | + (Mov rax (Mem r8 8)))] |
246 | 246 |
|
247 | 247 | ['make-string |
248 | 248 | (let ((loop (gensym)) |
|
269 | 269 | (Or r9 type-str) |
270 | 270 |
|
271 | 271 | (Sar r8 int-shift) |
272 | | - (Mov (Offset rbx 0) r8) |
| 272 | + (Mov (Mem rbx 0) r8) |
273 | 273 | (Add rbx 8) |
274 | 274 |
|
275 | 275 | (Sar rax char-shift) |
|
279 | 279 | (Sal r8 1) ; len is odd |
280 | 280 |
|
281 | 281 | (Label loop) |
282 | | - (Mov (Offset rbx 0) eax) |
| 282 | + (Mov (Mem rbx 0) eax) |
283 | 283 | (Add rbx 4) |
284 | 284 | (Sub r8 1) |
285 | 285 | (Cmp r8 0) |
|
300 | 300 | (Cmp rax 0) |
301 | 301 | (Jl 'raise_error_align) |
302 | 302 | (Xor r8 type-str) ; r8 = ptr |
303 | | - (Mov r9 (Offset r8 0)) ; r9 = len |
| 303 | + (Mov r9 (Mem r8 0)) ; r9 = len |
304 | 304 | (Sar rax int-shift) ; rax = index |
305 | 305 | (Sub r9 1) |
306 | 306 | (Cmp r9 rax) |
307 | 307 | (Jl 'raise_error_align) |
308 | 308 | (Sal rax 2) |
309 | 309 | (Add r8 rax) |
310 | | - (Mov 'eax (Offset r8 8)) |
| 310 | + (Mov 'eax (Mem r8 8)) |
311 | 311 | (Sal rax char-shift) |
312 | 312 | (Or rax type-char))] |
313 | 313 |
|
314 | 314 | ['set-box! |
315 | 315 | (seq (Pop r8) |
316 | 316 | (assert-box r8) |
317 | 317 | (Xor r8 type-box) |
318 | | - (Mov (Offset r8 0) rax) |
| 318 | + (Mov (Mem r8 0) rax) |
319 | 319 | (Mov rax (value->bits (void))))])) |
320 | 320 |
|
321 | 321 | ;; Op3 -> Asm |
|
329 | 329 | (Cmp r10 0) |
330 | 330 | (Jl 'raise_error_align) |
331 | 331 | (Xor r8 type-vect) ; r8 = ptr |
332 | | - (Mov r9 (Offset r8 0)) ; r9 = len |
| 332 | + (Mov r9 (Mem r8 0)) ; r9 = len |
333 | 333 | (Sar r10 int-shift) ; r10 = index |
334 | 334 | (Sub r9 1) |
335 | 335 | (Cmp r9 r10) |
336 | 336 | (Jl 'raise_error_align) |
337 | 337 | (Sal r10 3) |
338 | 338 | (Add r8 r10) |
339 | | - (Mov (Offset r8 8) rax) |
| 339 | + (Mov (Mem r8 8) rax) |
340 | 340 | (Mov rax (value->bits (void))))])) |
341 | 341 |
|
342 | 342 |
|
|
0 commit comments