Staging initial cgen changes

This commit is contained in:
Justin Ethier 2018-09-14 18:06:50 -04:00
parent 927856ec55
commit d4e3c65ca7

View file

@ -912,16 +912,31 @@
");")))
(else ;; CPS, IE normal behavior
(set-c-call-arity! num-cargs)
(c-code
(string-append
(c:allocs->str (c:allocs cfun) "\n")
(c:allocs->str (c:allocs cargs) "\n")
"return_closcall" (number->string num-cargs)
"(data,"
this-cont
(if (> num-cargs 0) "," "")
(c:body cargs)
");"))))))
(with-fnc (ast:lambda-id (closure->lam fun)) (lambda (fnc)
(if (and #f (adbf:well-known fnc))
#f
;;(c-code
;; (string-append
;; (c:allocs->str (c:allocs cfun) "\n")
;; (c:allocs->str (c:allocs cargs) "\n")
;; "return_direct_with_clo" (number->string num-cargs)
;; "(data,"
;; this-cont
;; ","
;; // TODO: fnc name, twice
;; (if (> num-cargs 0) "," "")
;; (c:body cargs)
;; ");"))
(c-code
(string-append
(c:allocs->str (c:allocs cfun) "\n")
(c:allocs->str (c:allocs cargs) "\n")
"return_closcall" (number->string num-cargs)
"(data,"
this-cont
(if (> num-cargs 0) "," "")
(c:body cargs)
");")))))))))
((equal? 'Cyc-seq fun)
(let ((exps (foldr