diff options
Diffstat (limited to 'vaporize/VaporizeVisitor.java')
-rw-r--r-- | vaporize/VaporizeVisitor.java | 16 |
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", |