EncoderBase.Operand Class Reference

#include <enc_base.h>

List of all members.


Detailed Description

Contains info about a single instructions's operand - its location, size and a value for immediate or RegName for register operands.


Public Member Functions

 Operand ()
 Initializes the instance with empty size and kind.
 Operand (RegName reg)
 Creates register operand from given RegName.
 Operand (OpndSize sz, OpndKind kind, RegName reg)
 Creates register operand from given RegName and with the specified size and kind.
 Operand (OpndSize size, long long ival)
 Creates immediate operand with the given size and value.
 Operand (int ival)
 Creates immediate operand of OpndSize_32.
 Operand (short ival)
 Creates immediate operand of OpndSize_16.
 Operand (char ival)
 Creates immediate operand of OpndSize_8.
 Operand (OpndSize size, RegName base, RegName index, unsigned scale, int disp)
 Creates memory operand.
 Operand (OpndSize size, RegName base, int disp)
 Creates memory operand with only base and displacement.
OpndKind kind (void) const
 Returns kind of the operand.
OpndSize size (void) const
 Returns size of the operand.
unsigned hash (void) const
 Returns hash of the operand.
bool need_rex (void) const
bool is_mem (void) const
 Tests whether operand is memory operand.
bool is_imm (void) const
 Tests whether operand is immediate operand.
bool is_reg (void) const
 Tests whether operand is register operand.
bool is_gpreg (void) const
 Tests whether operand is general-purpose register operand.
bool is_fpreg (void) const
 Tests whether operand is float-point pseudo-register operand.
bool is_xmmreg (void) const
 Tests whether operand is XMM register operand.
RegName base (void) const
 Returns base of memory operand (RegName_Null if not memory).
RegName index (void) const
 Returns index of memory operand (RegName_Null if not memory).
unsigned scale (void) const
 Returns scale of memory operand (0 if not memory).
int disp (void) const
 Returns displacement of memory operand (0 if not memory).
RegName reg (void) const
 Returns RegName of register operand (RegName_Null if not register).
long long imm (void) const
 Returns value of immediate operand (0 if not immediate).

Friends

class EncoderBase::Operands


Constructor & Destructor Documentation

EncoderBase.Operand.Operand (  ) 

Initializes the instance with empty size and kind.

EncoderBase.Operand.Operand ( RegName  reg  ) 

Creates register operand from given RegName.

EncoderBase.Operand.Operand ( OpndSize  sz,
OpndKind  kind,
RegName  reg 
)

Creates register operand from given RegName and with the specified size and kind.

Used to speedup Operand creation as there is no need to extract size and kind from the RegName. The provided size and kind must match the RegName's ones though.

EncoderBase.Operand.Operand ( OpndSize  size,
long long  ival 
)

Creates immediate operand with the given size and value.

EncoderBase.Operand.Operand ( int  ival  ) 

Creates immediate operand of OpndSize_32.

EncoderBase.Operand.Operand ( short  ival  ) 

Creates immediate operand of OpndSize_16.

EncoderBase.Operand.Operand ( char  ival  ) 

Creates immediate operand of OpndSize_8.

EncoderBase.Operand.Operand ( OpndSize  size,
RegName  base,
RegName  index,
unsigned  scale,
int  disp 
)

Creates memory operand.

EncoderBase.Operand.Operand ( OpndSize  size,
RegName  base,
int  disp 
)

Creates memory operand with only base and displacement.


Member Function Documentation

OpndKind EncoderBase.Operand.kind ( void   )  const

Returns kind of the operand.

OpndSize EncoderBase.Operand.size ( void   )  const

Returns size of the operand.

unsigned EncoderBase.Operand.hash ( void   )  const

Returns hash of the operand.

bool EncoderBase.Operand.need_rex ( void   )  const

bool EncoderBase.Operand.is_mem ( void   )  const

Tests whether operand is memory operand.

bool EncoderBase.Operand.is_imm ( void   )  const

Tests whether operand is immediate operand.

bool EncoderBase.Operand.is_reg ( void   )  const

Tests whether operand is register operand.

bool EncoderBase.Operand.is_gpreg ( void   )  const

Tests whether operand is general-purpose register operand.

bool EncoderBase.Operand.is_fpreg ( void   )  const

Tests whether operand is float-point pseudo-register operand.

bool EncoderBase.Operand.is_xmmreg ( void   )  const

Tests whether operand is XMM register operand.

RegName EncoderBase.Operand.base ( void   )  const

Returns base of memory operand (RegName_Null if not memory).

RegName EncoderBase.Operand.index ( void   )  const

Returns index of memory operand (RegName_Null if not memory).

unsigned EncoderBase.Operand.scale ( void   )  const

Returns scale of memory operand (0 if not memory).

int EncoderBase.Operand.disp ( void   )  const

Returns displacement of memory operand (0 if not memory).

RegName EncoderBase.Operand.reg ( void   )  const

Returns RegName of register operand (RegName_Null if not register).

long long EncoderBase.Operand.imm ( void   )  const

Returns value of immediate operand (0 if not immediate).


Friends And Related Function Documentation

friend class EncoderBase::Operands [friend]


Member Data Documentation

int EncoderBase.Operand.m_disp

RegName EncoderBase.Operand.m_reg

long long EncoderBase.Operand.m_imm64


The documentation for this class was generated from the following file:

Genereated on Tue Mar 11 19:25:42 2008 by Doxygen.

(c) Copyright 2005, 2008 The Apache Software Foundation or its licensors, as applicable.