eval-cp removed for calls to thunks

This commit is contained in:
Abdulaziz Ghuloum 2006-12-04 23:15:03 -05:00
parent 876a2d7824
commit 6136e60716
2 changed files with 13 additions and 2 deletions

Binary file not shown.

View File

@ -1982,9 +1982,19 @@
(nop))
(case call-convention
[(normal apply)
(make-eval-cp (check? op) (Expr op nsi r (cons si live)))]
(make-eval-cp (check? op)
(Expr op nsi r
(if save-cp?
(cons si live)
live)))]
[(direct)
(make-eval-cp (check? op) (Expr op nsi r (cons si live)))]
(if (closure? op)
(nop)
(make-eval-cp #f
(Expr op nsi r
(if save-cp?
(cons si live)
live))))]
[(foreign)
(make-eval-cp #f (make-foreign-label op))]
[else (error who "invalid convention ~s" call-convention)]))
@ -3656,6 +3666,7 @@
`(int ,(fx* offset wordsize))
`(current-frame-offset)
(rp-label rp-convention)
;;; no padding for direct calls
L_CALL
(call (label direct-label))
(if save-cp? (movl (mem 0 fpr) cpr) '(nop))