summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xpp2cc.py9
1 files changed, 5 insertions, 4 deletions
diff --git a/pp2cc.py b/pp2cc.py
index 60aaa48..684fddb 100755
--- a/pp2cc.py
+++ b/pp2cc.py
@@ -602,10 +602,6 @@ class Parse(object):
# else...
else_block = self.parseExpression(node.iffalse, linked_node)
assert len(else_block), "Else block is empty"
- result_reg_else = self.registers.find_register(else_block, fatal=True)
- # for consistency with the result of expr_true
- if result_reg_else != result_reg:
- lines.append(self.asm.binary_op("LOAD", result_reg, result_reg_else))
# add labels for the else block
if self.asm.has_label(else_block[0]):
lines.append(self.asm.noop(lbl_el))
@@ -613,6 +609,11 @@ class Parse(object):
else_block[0] = self.asm.insert_label(else_block[0], lbl_el)
lines += else_block
+ result_reg_else = self.registers.find_register(else_block, fatal=True)
+ # for consistency with the result of expr_true
+ if result_reg_else != result_reg:
+ lines.append(self.asm.binary_op("LOAD", result_reg, result_reg_else))
+
lines.append(self.asm.noop(lbl_end, register=result_reg))
return lines
def convertInteger(self, value=None, node=None):