public void inherit(LGraph graph, NodeBlock other) { if (other == null) { stack_ = new AbstractStack(graph.nargs); for (int i = 0; i < graph.nargs; i++) { DDeclareLocal local = new DDeclareLocal(lir_.pc, null); local.setOffset((i * 4) + 12); add(local); stack_.init((i * 4) + 12, local); } } else if (stack_ == null) { //Debug.Assert(other.stack_ != null); stack_ = new AbstractStack(other.stack_); } else { // Right now we only create phis for pri/alt. joinRegs(Register.Pri, other.stack_.pri); joinRegs(Register.Alt, other.stack_.alt); } }
public void push(DDeclareLocal local) { stack_.Add(new StackEntry(local, local.value)); local.setOffset(depth); }
public void inherit(LGraph graph, NodeBlock other) { if (other == null) { stack_ = new AbstractStack(graph.nargs); for (int i = 0; i < graph.nargs; i++) { DDeclareLocal local = new DDeclareLocal(lir_.pc, null); local.setOffset((i * 4) + 12); add(local); stack_.init((i * 4) + 12, local); } } else if (stack_ == null) { //Debug.Assert(other.stack_ != null); stack_ = new AbstractStack(other.stack_); } else { // Right now we only create phis for pri/alt. joinRegs(Register.Pri, other.stack_.pri); joinRegs(Register.Alt, other.stack_.alt); } }
public void push(DDeclareLocal local) { stack_.Add(new StackEntry(local, local.value)); local.setOffset(depth); }