org.jikesrvm.compilers.opt.ir.operand
Class StackLocationOperand

java.lang.Object
  extended by org.jikesrvm.compilers.opt.ir.operand.Operand
      extended by org.jikesrvm.compilers.opt.ir.operand.StackLocationOperand

public final class StackLocationOperand
extends Operand

Represents a symbolic name for a stack location.

The stack location is defined by an offset from either the framepointer (top of stack frame) or stackpointer-home-location (bottom of frame).


Field Summary
private  boolean fromTop
          Is the offset from the top or bottom of stack frame?
private  int offset
          The offset (top/bottom of stack frame) corresponding to this stack location.
private  byte size
          Size (in bytes) reserved for the value of this operand.
 
Fields inherited from class org.jikesrvm.compilers.opt.ir.operand.Operand
instruction
 
Constructor Summary
StackLocationOperand(boolean fromTop, int offset, byte size)
           
StackLocationOperand(boolean fromTop, int offset, int size)
           
 
Method Summary
 Operand copy()
          Return a new operand that is semantically equivalent to this.
 int getOffset()
           
 byte getSize()
           
 boolean isFromTop()
           
 boolean similar(Operand op)
          Are two operands semantically equivalent?
 String toString()
           
 
Methods inherited from class org.jikesrvm.compilers.opt.ir.operand.Operand
asAddressConstant, asBlock, asBranch, asClassConstant, asCondition, asDoubleConstant, asFloatConstant, asIntConstant, asLocation, asLongConstant, asMemory, asMethod, asNullConstant, asObjectConstant, asRegister, asStackLocation, asStringConstant, asTIBConstant, asType, conservativelyApproximates, getIndexInInstruction, getType, isAddress, isAddressConstant, isBlock, isBranch, isClassConstant, isConstant, isDefinitelyNull, isDouble, isDoubleConstant, isFloat, isFloatConstant, isInt, isIntConstant, isIntLike, isLocation, isLong, isLongConstant, isMemory, isMethod, isMovableObjectConstant, isNullConstant, isObjectConstant, isRef, isRegister, isStackLocation, isStringConstant, isTIBConstant, isTrueGuard, isType, meet
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

fromTop

private boolean fromTop
Is the offset from the top or bottom of stack frame?


offset

private int offset
The offset (top/bottom of stack frame) corresponding to this stack location.


size

private byte size
Size (in bytes) reserved for the value of this operand.

Constructor Detail

StackLocationOperand

public StackLocationOperand(boolean fromTop,
                            int offset,
                            byte size)
Parameters:
fromTop - is the offset from the top of bottom of the frame?
offset - the offset of the stack location from the top/bottom of the frame
size - Size (in bytes) of the stack location.

StackLocationOperand

public StackLocationOperand(boolean fromTop,
                            int offset,
                            int size)
Parameters:
fromTop - is the offset from the top of bottom of the frame?
offset - the offset of the stack location from the top/bottom of the frame
size - Size (in bytes) of the stack location.
Method Detail

isFromTop

public boolean isFromTop()
Returns:
true if the stack location uses the top of the frame as its base, false if it uses the bottom of the frame as its base.

getOffset

public int getOffset()
Returns:
the offset from the frame pointer (top of stack frame) corresponding to this stack location.

getSize

public byte getSize()
Returns:
Size (in bytes) of this stack location.

toString

public String toString()
Overrides:
toString in class Object

similar

public boolean similar(Operand op)
Description copied from class: Operand
Are two operands semantically equivalent?

Specified by:
similar in class Operand
Parameters:
op - other operand
Returns:
true if this and op are semantically equivalent or false if they are not.

copy

public Operand copy()
Description copied from class: Operand
Return a new operand that is semantically equivalent to this.

Specified by:
copy in class Operand
Returns:
a copy of this