g e >>|
abort "Shit, an assignment, figure out something with storing vars or something"
//vars will be on stack in locals (possible pointers to heap)
- g (FunStmt _ _) = abort "CodeGen FunStmt unused" //not used
- g (ReturnStmt Nothing) = tell [Instr "ret" [] ""]
+ g (FunStmt _ _) = abort "CodeGen, FunStmt unused" //not used
+ g (ReturnStmt Nothing) = tell [Instr "ret" [] ""] //NOTE! Assumes only return address on stack, safe?
g (ReturnStmt (Just e)) =
g e >>|
tell [Instr "str" [Raw "RR"] ""] >>|