X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/e0808c472145fc81e52898bc9ac289e10c4f4f41..HEAD:/src/codegen-test.lisp diff --git a/src/codegen-test.lisp b/src/codegen-test.lisp index c01dc8c..6821059 100644 --- a/src/codegen-test.lisp +++ b/src/codegen-test.lisp @@ -35,13 +35,13 @@ (codegen-push codegen) (loop for (name init) in '(("aa" 1) ("bb" 0)) - do (ensure-var codegen name (c-type int) init)) + do (ensure-var codegen name c-type-int init)) (codegen-push codegen) - (with-temporary-var (codegen r (c-type int)) + (with-temporary-var (codegen r c-type-int) (emit-inst codegen(make-set-inst r "u%v")) - (with-temporary-var (codegen q (c-type int)) + (with-temporary-var (codegen q c-type-int) (emit-inst codegen (make-set-inst q "u/v")) - (with-temporary-var (codegen a (c-type int)) + (with-temporary-var (codegen a c-type-int) (emit-insts codegen (list (make-set-inst a "aa") (make-set-inst "aa" "bb") @@ -50,7 +50,7 @@ (emit-insts codegen (list (make-set-inst "u" "v") (make-set-inst "v" r)))) (emit-inst codegen (make-while-inst "v" (codegen-pop-block codegen))) - (emit-inst codegen (make-if-inst "a" (make-set-inst "*a" "aa") nil)) + (emit-inst codegen (make-if-inst "a" (make-set-inst "*a" "aa"))) (deliver-expr codegen :return "u") (codegen-pop-function codegen "gcd" (c-type (fun int @@ -62,13 +62,11 @@ (loop for (name init) in '(("u" "atoi(argv[1])") ("v" "atoi(argv[2])") ("a")) - do (ensure-var codegen name (c-type int) init)) - (ensure-var codegen "g" (c-type int) - (make-call-inst "gcd" (list "u" "v" "&a"))) - (emit-inst codegen (make-expr-inst - (make-call-inst "printf" - (list "\"%d*%d == %d (mod %d)\\n\"" - "a" "u" "g" "v")))) + do (ensure-var codegen name c-type-int init)) + (ensure-var codegen "g" c-type-int + (make-call-inst "gcd" "u" "v" "&a")) + (deliver-call codegen :void "printf" + "\"%d*%d == %d (mod %d)\\n\"" "a" "u" "g" "v") (deliver-expr codegen :return 0) (codegen-pop-function codegen "main" (c-type (fun int