chiark
/
gitweb
/
~mdw
/
sod
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
src/: Enhance `definst' to allow general BVL syntax.
[sod]
/
src
/
method-impl.lisp
diff --git
a/src/method-impl.lisp
b/src/method-impl.lisp
index 725a0ec2b817555159fc221ef5112bd995799b2e..8501a021bd9edc579f6f6108a712fdbb0e2340dd 100644
(file)
--- a/
src/method-impl.lisp
+++ b/
src/method-impl.lisp
@@
-443,10
+443,8
@@
(defmethod compute-method-entry-functions ((method basic-effective-method))
;; If this is a varargs method then we've made the
;; `:valist' role. Also make the `nil' role.
(when parm-n
;; If this is a varargs method then we've made the
;; `:valist' role. Also make the `nil' role.
(when parm-n
- (let ((call (make-call-inst name
- (cons "me"
- (mapcar #'argument-name
- entry-args))))
+ (let ((call (apply #'make-call-inst name "me"
+ (mapcar #'argument-name entry-args)))
(main (method-entry-function-name method head nil))
(main-type (c-type (fun (lisp return-type)
("me" (* (class tail)))
(main (method-entry-function-name method head nil))
(main-type (c-type (fun (lisp return-type)
("me" (* (class tail)))
@@
-455,13
+453,11
@@
(defmethod compute-method-entry-functions ((method basic-effective-method))
(ensure-var codegen *sod-ap* c-type-va-list)
(convert-stmts codegen entry-target return-type
(lambda (target)
(ensure-var codegen *sod-ap* c-type-va-list)
(convert-stmts codegen entry-target return-type
(lambda (target)
- (emit-inst codegen
- (make-va-start-inst
- *sod-ap*
- (argument-name parm-n)))
+ (deliver-call codegen :void "va_start"
+ *sod-ap* parm-n)
(deliver-expr codegen target call)
(deliver-expr codegen target call)
- (
emit-inst codegen
-
(make-va-end-inst *sod-ap*)
)))
+ (
deliver-call codegen :void "va_end"
+
*sod-ap*
)))
(codegen-pop-function codegen main main-type))))))
;; Generate the method body. We'll work out what to do with it later.
(codegen-pop-function codegen main main-type))))))
;; Generate the method body. We'll work out what to do with it later.
@@
-498,9
+494,8
@@
(defmethod compute-method-entry-functions ((method basic-effective-method))
(nconc insts (and result
(list (make-return-inst result)))))
(nconc insts (and result
(list (make-return-inst result)))))
- (let ((call (make-call-inst emf-name
- (cons "sod__obj" (mapcar #'argument-name
- emf-arg-tail)))))
+ (let ((call (apply #'make-call-inst emf-name "sod__obj"
+ (mapcar #'argument-name emf-arg-tail))))
(dolist (tail chain-tails)
(setup-entry tail)
(deliver-expr codegen entry-target call)
(dolist (tail chain-tails)
(setup-entry tail)
(deliver-expr codegen entry-target call)