From c1d57f46c0eb74fbea90db8df8b42dc3ac8c31d5 Mon Sep 17 00:00:00 2001 From: bd-912 Date: Sat, 27 Apr 2024 14:51:07 -0600 Subject: Fix Calling ArrayAlloc or other labels --- vaporize/VaporizeVisitor.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'vaporize/VaporizeVisitor.java') diff --git a/vaporize/VaporizeVisitor.java b/vaporize/VaporizeVisitor.java index c8cee17..aa462a5 100644 --- a/vaporize/VaporizeVisitor.java +++ b/vaporize/VaporizeVisitor.java @@ -113,9 +113,19 @@ public class VaporizeVisitor extends VInstr.VisitorP reg)); } - this.addVaporm(String.format(" call %s", - d.getInterval(n.addr.toString()) - .getAssignedRegister())); + MinimalLogger.severe(String.format("n addr: %s", + n.addr.toString())); + MinimalLogger.severe(String.format("Interval: %s", + d.getInterval(n.addr.toString()))); + LIRVar interval = d.getInterval(n.addr.toString()); + if (interval == null) + // a label + this.addVaporm(String.format(" call %s", + n.addr.toString())); + else + this.addVaporm(String.format(" call %s", + interval + .getAssignedRegister())); // get dest if (n.dest != null) { this.addVaporm(String.format(" %s = $v0", -- cgit v1.2.3