src/: Abolish the special `va-*' instructions.
[sod] / src / method-proto.lisp
index 12cefc8..069f7e4 100644 (file)
                       (c-type-subtype (sod-method-type direct-method))
                       (lambda (var)
                         (ensure-var codegen *sod-tmp-ap* c-type-va-list)
-                        (emit-inst codegen
-                                   (make-va-copy-inst *sod-tmp-ap*
-                                                      *sod-ap*))
-                        (deliver-expr codegen var
-                                      (make-call-inst function arguments))
-                        (emit-inst codegen
-                                   (make-va-end-inst *sod-tmp-ap*))))
-       (deliver-expr codegen target (make-call-inst function arguments)))))
+                        (deliver-call codegen :void "va_copy"
+                                      *sod-tmp-ap* *sod-ap*)
+                        (apply #'deliver-call codegen var
+                               function arguments)
+                        (deliver-call codegen :void "va_end" *sod-tmp-ap*)))
+       (apply #'deliver-call codegen target function arguments))))
 
 (export 'ensure-ilayout-var)
 (defun ensure-ilayout-var (codegen super)