(moves)))
(defun static-fun-template-vop (num-args num-results)
- (assert (and (<= num-args register-arg-count)
+ (unless (and (<= num-args register-arg-count)
(<= num-results register-arg-count))
- (num-args num-results)
- "Either too many args (~D) or too many results (~D). Max = ~D"
- num-args num-results register-arg-count)
+ (error "either too many args (~W) or too many results (~W); max = ~W"
+ num-args num-results register-arg-count))
(let ((num-temps (max num-args num-results)))
(collect ((temp-names) (temps) (arg-names) (args) (result-names) (results))
(dotimes (i num-results)
(inst lw entry-point null-tn (static-fun-offset symbol))
(when cur-nfp
(store-stack-tn nfp-save cur-nfp))
- (inst move ocfp cfp-tn)
+ (move ocfp cfp-tn)
(inst compute-lra-from-code lra code-tn lra-label temp)
(note-this-location vop :call-site)
(inst j entry-point)
- (inst move cfp-tn csp-tn)
+ (move cfp-tn csp-tn t)
(emit-return-pc lra-label)
,(collect ((bindings) (links))
(do ((temp (temp-names) (cdr temp))
,@(moves (result-names) (temp-names))))))))
-) ; eval-when (compile load eval)
+) ; EVAL-WHEN
(expand