From 38e988763890809bac8825cf910dff565c2a4c8e Mon Sep 17 00:00:00 2001 From: Apoorva Ranade Date: Mon, 3 May 2021 20:02:48 +0530 Subject: [PATCH] Used incSp --- src/main/java/chocopy/pa3/CodeGenImpl.java | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/main/java/chocopy/pa3/CodeGenImpl.java b/src/main/java/chocopy/pa3/CodeGenImpl.java index e28e807..8405d03 100644 --- a/src/main/java/chocopy/pa3/CodeGenImpl.java +++ b/src/main/java/chocopy/pa3/CodeGenImpl.java @@ -536,11 +536,11 @@ public class CodeGenImpl extends CodeGenBase //Store address and length of lists on stack backend.emitSW(Register.A0, Register.FP, -sp_off*wordSize, "Store address of first list"); - sp_off++; + incSp(1); backend.emitSW(Register.T0, Register.FP, -sp_off*wordSize, "Store address of second list"); - sp_off++; + incSp(1); backend.emitSW(Register.T3, Register.FP, -sp_off*wordSize, "Store length of combined list"); - sp_off++; + incSp(1); //Allocate space on heap backend.emitLA(Register.A0, listClass.getPrototypeLabel(), "Load empty list"); @@ -581,7 +581,7 @@ public class CodeGenImpl extends CodeGenBase { node.right.dispatch(this); backend.emitSW(Register.A0, Register.FP, -sp_off*wordSize, "Push on stack slot "+sp_off); - sp_off++; + incSp(1); node.left.dispatch(this); sp_off--; backend.emitLW(Register.T0, Register.FP, -sp_off*wordSize, "Pop stack slot "+sp_off); @@ -656,7 +656,7 @@ public class CodeGenImpl extends CodeGenBase { node.right.dispatch(this); backend.emitSW(Register.A0, Register.FP, -sp_off*wordSize, "Push on stack slot "+sp_off); - sp_off++; + incSp(1); node.left.dispatch(this); sp_off--; backend.emitLW(Register.T0, Register.FP, -sp_off*wordSize, "Pop stack slot "+sp_off); @@ -667,7 +667,7 @@ public class CodeGenImpl extends CodeGenBase { node.right.dispatch(this); backend.emitSW(Register.A0, Register.FP, -sp_off*wordSize, "Push on stack slot "+sp_off); - sp_off++; + incSp(1); node.left.dispatch(this); sp_off--; backend.emitLW(Register.T0, Register.FP, -sp_off*wordSize, "Pop stack slot "+sp_off); @@ -679,7 +679,7 @@ public class CodeGenImpl extends CodeGenBase Label label = generateLocalLabel(); node.left.dispatch(this); backend.emitSW(Register.A0, Register.FP, -sp_off*wordSize, "Push on stack slot "+sp_off); - sp_off++; + incSp(1); backend.emitBEQZ(Register.A0, label, "If first operand is false, don't check second"); node.right.dispatch(this); sp_off--; @@ -692,7 +692,7 @@ public class CodeGenImpl extends CodeGenBase Label label = generateLocalLabel(); node.left.dispatch(this); backend.emitSW(Register.A0, Register.FP, -sp_off*wordSize, "Push on stack slot "+sp_off); - sp_off++; + incSp(1); backend.emitBNEZ(Register.A0, label, "If first operand is true, don't check second"); node.right.dispatch(this); sp_off--; @@ -714,7 +714,7 @@ public class CodeGenImpl extends CodeGenBase { node.right.dispatch(this); backend.emitSW(Register.A0, Register.FP, -sp_off*wordSize, "Push on stack slot "+sp_off); - sp_off++; + incSp(1); node.left.dispatch(this); sp_off--; backend.emitLW(Register.T0, Register.FP, -sp_off*wordSize, "Pop stack slot "+sp_off); @@ -783,7 +783,7 @@ public class CodeGenImpl extends CodeGenBase node.value.dispatch(this); backend.emitSW(Register.A0, Register.FP, -sp_off*wordSize, "Store variable "+node.var.identifier.name+" value in Stack"); offsetMap.put(svi, sp_off); - sp_off++; + incSp(1); return null; }