|
|
|
|
|
|
163
|
(emit-expr (primcall-operand1 x) si env)
|
163
|
(emit-expr (primcall-operand1 x) si env)
|
|
164
|
(emit "movl %eax, 0(%rsi)") ; set the car
|
164
|
(emit "movl %eax, 0(%rsi)") ; set the car
|
|
165
|
(emit-expr (primcall-operand2 x) si env)
|
165
|
(emit-expr (primcall-operand2 x) si env)
|
|
166
|
(emit "movl %eax, 4(%rsi)") ; set the cdr
|
|
|
|
|
|
166
|
(emit "movl %eax, ~a(%rsi)" wordsize) ; set the cdr
|
|
167
|
(emit "movq %rsi, %rax") ; rax = rsi | 1 (cons cell/pair tag)
|
167
|
(emit "movq %rsi, %rax") ; rax = rsi | 1 (cons cell/pair tag)
|
|
168
|
(emit "orq $~a, %rax" #b001)
|
168
|
(emit "orq $~a, %rax" #b001)
|
|
169
|
(emit "addq $8, %rsi")) ; bump rsi
|
169
|
(emit "addq $8, %rsi")) ; bump rsi
|