From b2323713eee1b61b375dba6142c31c3f922361ad Mon Sep 17 00:00:00 2001 From: Recolic Keghart <root@recolic.net> Date: Thu, 2 May 2019 00:31:00 -0700 Subject: [PATCH] FINAL --- src/main/java/chocopy/pa3/CodeGenImpl.java | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/main/java/chocopy/pa3/CodeGenImpl.java b/src/main/java/chocopy/pa3/CodeGenImpl.java index b2a79b6..8b7a059 100644 --- a/src/main/java/chocopy/pa3/CodeGenImpl.java +++ b/src/main/java/chocopy/pa3/CodeGenImpl.java @@ -183,8 +183,6 @@ public class CodeGenImpl extends CodeGenBase { emitPush(tmpReg, null); backend.emitMV(tmpReg, SP, "Return STR OBJ address."); } - - } // Every function needs a register manager. @@ -466,13 +464,8 @@ public class CodeGenImpl extends CodeGenBase { epilogue = generateLocalLabel(); } - // FIXME: Example of statement. @Override public RiscVBackend.Register analyze(ReturnStmt node) { - // FIXME: Here, we emit an instruction that does nothing. Clearly, - // this is wrong, and you'll have to fix it. - // This is here just to demonstrate how to emit a - // RISC-V instruction. RiscVBackend.Register returnValReg = node.value.dispatch(this); if (returnValReg == null) return null; @@ -505,7 +498,8 @@ public class CodeGenImpl extends CodeGenBase { @Override public RiscVBackend.Register analyze(ExprStmt node) { - node.expr.dispatch(this); + RiscVBackend.Register ret = node.expr.dispatch(this); + regMgr.returnOne(ret); return null; } -- GitLab