~ chicken-core (chicken-5) 8bf06ffe7406e98eba296dc18c6760880e5340ae
commit 8bf06ffe7406e98eba296dc18c6760880e5340ae Author: Peter Bex <peter@more-magic.net> AuthorDate: Sat Aug 22 18:15:10 2015 +0200 Commit: Peter Bex <peter@more-magic.net> CommitDate: Sat Aug 22 19:37:26 2015 +0200 use av instead of stack when restoring args in trampoline diff --git a/c-backend.scm b/c-backend.scm index ae99e98d..2230e95e 100644 --- a/c-backend.scm +++ b/c-backend.scm @@ -616,11 +616,10 @@ [nsrv '()] ) (define (restore n) - (do ((i (- n 1) (- i 1)) - (j 0 (+ j 1)) ) - ((negative? i)) - (gen #t "C_word t" i "=C_pick(" j ");") ) - (gen #t "C_adjust_stack(-" n ");") ) + (do ((i 0 (add1 i)) + (j (sub1 n) (sub1 j))) + ((>= i n)) + (gen #t "C_word t" i "=av[" j "];"))) (##sys#hash-table-for-each (lambda (id ll)Trap