// $Id: LocalScalarVarDescriptor.java,v 1.4 1999/12/10 00:45:01 mpp Exp $

package IR2;

public class LocalScalarVarDescriptor extends ScalarVarDescriptor {
  private int offset = -1;

  public LocalScalarVarDescriptor(String name, int type, int line) {
	super(name, type, line);
  }

  /* Memory slot assignment. */
  public int set_offset(int in_offset) {
    offset = in_offset;
    return offset + 1;
  }

  public void set_proxy(DelocalizedLValue p) { proxy = p; }

  /* DelocalizedLValue implementation. */
  public void load_into_reg(Codegen c, DelocalizedRegister r) {
    c.generate_load_local(r, offset);
  }

  public void store_from_reg(Codegen c, DelocalizedRegister r) {
    c.generate_save_local(offset, r);
  }


  /* Walkable implementation. */
  public String node_name() {
    return "local_scalar_var_descriptor";
  }
}
