From 3ef2df713660be2717b012604a0e216935feb5f7 Mon Sep 17 00:00:00 2001 From: Apoorva Ranade Date: Wed, 5 May 2021 22:56:11 +0530 Subject: [PATCH] Fixed IfStmt --- src/main/java/chocopy/pa3/CodeGenImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/chocopy/pa3/CodeGenImpl.java b/src/main/java/chocopy/pa3/CodeGenImpl.java index b67cb93..7e9fa1b 100644 --- a/src/main/java/chocopy/pa3/CodeGenImpl.java +++ b/src/main/java/chocopy/pa3/CodeGenImpl.java @@ -589,11 +589,11 @@ public class CodeGenImpl extends CodeGenBase Register result = node.condition.dispatch(this); Label ln = generateLocalLabel(); - backend.emitBEQZ(result, ln,"Jump to end of loop"); + elseBlock.push(generateLocalLabel()); + backend.emitBEQZ(result, elseBlock.peek(),"Jump to end of loop"); for(Stmt s:node.thenBody) s.dispatch(this); backend.emitJ(ln, "Jump to end of if statement"); - elseBlock.push(generateLocalLabel()); backend.emitLocalLabel(elseBlock.peek(), "Else part of if statement"); for(Stmt s:node.elseBody) s.dispatch(this);