summaryrefslogtreecommitdiff
path: root/vaporize
diff options
context:
space:
mode:
authorbd-912 <bdunahu@colostate.edu>2024-04-27 14:51:07 -0600
committerbd-912 <bdunahu@colostate.edu>2024-04-27 14:51:07 -0600
commitc1d57f46c0eb74fbea90db8df8b42dc3ac8c31d5 (patch)
tree17652cbbe3db6532774a5c536abaad109536aae5 /vaporize
parent47729aecfe2026cd700d7a81a628f2038991ed8d (diff)
Fix Calling ArrayAlloc or other labels
Diffstat (limited to 'vaporize')
-rw-r--r--vaporize/VaporizeVisitor.java16
1 files changed, 13 insertions, 3 deletions
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<LIRDict, RuntimeException>
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",