From 9f5889c1263d63b953b3a324da07321deef5ca58 Mon Sep 17 00:00:00 2001 From: Rose Hogenson Date: Sat, 27 Apr 2024 08:28:40 -0700 Subject: Add integer arithmetic. --- codegen.sml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'codegen.sml') diff --git a/codegen.sml b/codegen.sml index c7f0f2d..30928d4 100644 --- a/codegen.sml +++ b/codegen.sml @@ -144,7 +144,11 @@ struct in bodyASM @ funcsASM end - | Syntax.CPrimop (Syntax.PExit, [arg], _, _)=> [Syntax.OExit (translateVal arg)] + | Syntax.CPrimop (Syntax.PExit, [arg], _, _) => [Syntax.OExit (translateVal arg)] + | Syntax.CPrimop (Syntax.PAdd, [x, y], [res], [k]) => Syntax.OAdd (translate res, translateVal x, translateVal y) :: go k + | Syntax.CPrimop (Syntax.PSub, [x, y], [res], [k]) => Syntax.OSub (translate res, translateVal x, translateVal y) :: go k + | Syntax.CPrimop (Syntax.PMul, [x, y], [res], [k]) => Syntax.OMul (translate res, translateVal x, translateVal y) :: go k + | Syntax.CPrimop (Syntax.PDiv, [x, y], [res], [k]) => Syntax.ODiv (translate res, translateVal x, translateVal y) :: go k | _ => raise Fail ("malformed CPS:\n" ^ Syntax.cexpToString expr) in go expr end -- cgit v1.3.1