boot2

Playing with the boostrap
git clone https://git.ryansepassi.com/git/boot2.git
Log | Files | Refs | README

002-one-param.scm (577B)


      1 ;; tests/cc-cg/02-one-param.scm — function with one int param, return it.
      2 ;; Mirrors the Phase 1 milestone shape (int main(int argc) { return argc; }).
      3 ;; Exercises cg-fn-begin's param spill path and cg-push-sym → cg-load.
      4 
      5 (let* ((cg     (cg-init))
      6        (params (cg-fn-begin cg "main"
      7                             (list (cons "argc" %t-i32))
      8                             %t-i32))
      9        (argc*  (cdr (car params))))
     10   (cg-push-sym cg argc*)        ; lval frame
     11   (cg-load cg)                  ; rval i32
     12   (cg-return cg)
     13   (cg-fn-end cg)
     14   (write-bv-fd 1 (cg-finish cg)))