dspl.backend.x86.operands
Class X86MemoryOperand

java.lang.Object
  extended by dspl.backend.x86.operands.X86Operand
      extended by dspl.backend.x86.operands.X86MemoryOperand

public class X86MemoryOperand
extends X86Operand

X86MemoryOperand represents a direct access into a memory location

For example: movl %eax, someVar (where someVar is a memory location)

Author:
David

Field Summary
 Variable var
           
 
Fields inherited from class dspl.backend.x86.operands.X86Operand
OPERAND_CLASS_ANY, OPERAND_CLASS_LVALUE, OPERAND_TYPE_IMMEDIATE, OPERAND_TYPE_INDEXED_MEMORY, OPERAND_TYPE_MEMORY, OPERAND_TYPE_REGISTER
 
Constructor Summary
X86MemoryOperand(Variable var)
           
 
Method Summary
static boolean canBeMemoryOperand(Variable var)
          Checks to make sure that the variable can be a memory operand
Intended to be called before calling new X86MemoryOperand, specificall in X86VariableManager, within prepareVariables, if one needs to get an Immediate into an lvalue, then prepareVariable will first try to put it into memory before trying to put it into a reg, this check will allowing skipping the memory operand if it cannot do it.
 void freeOperand()
          Frees any resources (registers) that have been allocated for the operand
 int getOperandSize()
          Returns the operand's byte size, should be either 1, 2, or 4
 int getOperandType()
          Returns the X86Operand type, must be one of X86Operand.OPERAND_TYPE_xxx
 java.lang.String toString()
           
 
Methods inherited from class dspl.backend.x86.operands.X86Operand
isMemoryType
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

var

public Variable var
Constructor Detail

X86MemoryOperand

public X86MemoryOperand(Variable var)
Method Detail

canBeMemoryOperand

public static boolean canBeMemoryOperand(Variable var)
Checks to make sure that the variable can be a memory operand
Intended to be called before calling new X86MemoryOperand, specificall in X86VariableManager, within prepareVariables, if one needs to get an Immediate into an lvalue, then prepareVariable will first try to put it into memory before trying to put it into a reg, this check will allowing skipping the memory operand if it cannot do it.

Parameters:
var -
Returns:

freeOperand

public void freeOperand()
Description copied from class: X86Operand
Frees any resources (registers) that have been allocated for the operand

Specified by:
freeOperand in class X86Operand

getOperandType

public int getOperandType()
Description copied from class: X86Operand
Returns the X86Operand type, must be one of X86Operand.OPERAND_TYPE_xxx

Specified by:
getOperandType in class X86Operand
Returns:

toString

public java.lang.String toString()
Specified by:
toString in class X86Operand
Returns:
gnu assembler-friendly representation of the operand

getOperandSize

public int getOperandSize()
Description copied from class: X86Operand
Returns the operand's byte size, should be either 1, 2, or 4

Specified by:
getOperandSize in class X86Operand
Returns: