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