summaryrefslogtreecommitdiff
path: root/vaporize/VaporizeVisitor.java
diff options
context:
space:
mode:
Diffstat (limited to 'vaporize/VaporizeVisitor.java')
-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",