Wire Sysio Wire Sysion 1.0.0
Loading...
Searching...
No Matches
Xbyak::Address Class Reference

#include <xbyak.h>

Inheritance diagram for Xbyak::Address:
Collaboration diagram for Xbyak::Address:

Public Types

enum  Mode { M_ModRM , M_64bitDisp , M_rip , M_ripAddr }
 
- Public Types inherited from Xbyak::Operand
enum  Kind {
  NONE = 0 , MEM = 1 << 0 , REG = 1 << 1 , MMX = 1 << 2 ,
  FPU = 1 << 3 , XMM = 1 << 4 , YMM = 1 << 5 , ZMM = 1 << 6 ,
  OPMASK = 1 << 7 , BNDREG = 1 << 8
}
 
enum  Code {
  EAX = 0 , ECX , EDX , EBX ,
  ESP , EBP , ESI , EDI ,
  AX = 0 , CX , DX , BX ,
  SP , BP , SI , DI ,
  AL = 0 , CL , DL , BL ,
  AH , CH , DH , BH
}
 

Public Member Functions

 Address (uint32 sizeBit, bool broadcast, const RegExp &e)
 
void permitVsib () const
 
RegExp getRegExp (bool optimize=true) const
 
Mode getMode () const
 
bool is32bit () const
 
bool isOnlyDisp () const
 
size_t getDisp () const
 
uint8 getRex () const
 
bool is64bitDisp () const
 
bool isBroadcast () const
 
const LabelgetLabel () const
 
bool operator== (const Address &rhs) const
 
bool operator!= (const Address &rhs) const
 
- Public Member Functions inherited from Xbyak::Operand
 Operand ()
 
 Operand (int idx, Kind kind, int bit, bool ext8bit=0)
 
Kind getKind () const
 
int getIdx () const
 
bool isNone () const
 
bool isMMX () const
 
bool isXMM () const
 
bool isYMM () const
 
bool isZMM () const
 
bool isXMEM () const
 
bool isYMEM () const
 
bool isZMEM () const
 
bool isOPMASK () const
 
bool isBNDREG () const
 
bool isREG (int bit=0) const
 
bool isMEM (int bit=0) const
 
bool isFPU () const
 
bool isExt8bit () const
 
bool isExtIdx () const
 
bool isExtIdx2 () const
 
bool hasEvex () const
 
bool hasRex () const
 
bool hasZero () const
 
int getOpmaskIdx () const
 
int getRounding () const
 
void setKind (Kind kind)
 
void setBit (int bit)
 
void setOpmaskIdx (int idx, bool ignore_idx0=false)
 
void setRounding (int idx)
 
void setZero ()
 
bool isHigh8bit () const
 
bool is (int kind, uint32 bit=0) const
 
bool isBit (uint32 bit) const
 
uint32 getBit () const
 
const char * toString () const
 
bool isEqualIfNotInherited (const Operand &rhs) const
 
bool operator== (const Operand &rhs) const
 
bool operator!= (const Operand &rhs) const
 
const AddressgetAddress () const
 
const ReggetReg () const
 

Additional Inherited Members

- Protected Member Functions inherited from Xbyak::Operand
void setIdx (int idx)
 
- Protected Attributes inherited from Xbyak::Operand
unsigned int zero_:1
 
unsigned int mask_:3
 
unsigned int rounding_:3
 

Detailed Description

Definition at line 993 of file xbyak.h.

Member Enumeration Documentation

◆ Mode

Enumerator
M_ModRM 
M_64bitDisp 
M_rip 
M_ripAddr 

Definition at line 995 of file xbyak.h.

995 {
996 M_ModRM,
998 M_rip,
1000 };

Constructor & Destructor Documentation

◆ Address()

Xbyak::Address::Address ( uint32 sizeBit,
bool broadcast,
const RegExp & e )
inline

Definition at line 1001 of file xbyak.h.

1002 : Operand(0, MEM, sizeBit), e_(e), label_(0), mode_(M_ModRM), permitVsib_(false), broadcast_(broadcast)
1003 {
1004 e_.verify();
1005 }
void verify() const
Definition xbyak.h:730

Member Function Documentation

◆ getDisp()

size_t Xbyak::Address::getDisp ( ) const
inline

Definition at line 1020 of file xbyak.h.

1020{ verify(); return e_.getDisp(); }
size_t getDisp() const
Definition xbyak.h:729
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getLabel()

const Label * Xbyak::Address::getLabel ( ) const
inline

Definition at line 1029 of file xbyak.h.

1029{ return label_; }

◆ getMode()

Mode Xbyak::Address::getMode ( ) const
inline

Definition at line 1017 of file xbyak.h.

1017{ return mode_; }

◆ getRegExp()

RegExp Xbyak::Address::getRegExp ( bool optimize = true) const
inline

Definition at line 1013 of file xbyak.h.

1014 {
1015 return optimize ? e_.optimize() : e_;
1016 }
RegExp optimize() const
Definition xbyak.h:712

◆ getRex()

uint8 Xbyak::Address::getRex ( ) const
inline

Definition at line 1021 of file xbyak.h.

1022 {
1023 verify();
1024 if (mode_ != M_ModRM) return 0;
1025 return getRegExp().getRex();
1026 }
RegExp getRegExp(bool optimize=true) const
Definition xbyak.h:1013
uint8 getRex() const
Definition xbyak.h:740

◆ is32bit()

bool Xbyak::Address::is32bit ( ) const
inline

Definition at line 1018 of file xbyak.h.

1018{ verify(); return e_.getBase().getBit() == 32 || e_.getIndex().getBit() == 32; }
uint32 getBit() const
Definition xbyak.h:453
const Reg & getBase() const
Definition xbyak.h:726
const Reg & getIndex() const
Definition xbyak.h:727
Here is the call graph for this function:

◆ is64bitDisp()

bool Xbyak::Address::is64bitDisp ( ) const
inline

Definition at line 1027 of file xbyak.h.

1027{ verify(); return mode_ == M_64bitDisp; } // for moffset
Here is the caller graph for this function:

◆ isBroadcast()

bool Xbyak::Address::isBroadcast ( ) const
inline

Definition at line 1028 of file xbyak.h.

1028{ return broadcast_; }

◆ isOnlyDisp()

bool Xbyak::Address::isOnlyDisp ( ) const
inline

Definition at line 1019 of file xbyak.h.

1019{ verify(); return !e_.getBase().getBit() && !e_.getIndex().getBit(); } // for mov eax
Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator!=()

bool Xbyak::Address::operator!= ( const Address & rhs) const
inline

Definition at line 1034 of file xbyak.h.

1034{ return !operator==(rhs); }
bool operator==(const Address &rhs) const
Definition xbyak.h:1030
Here is the call graph for this function:

◆ operator==()

bool Xbyak::Address::operator== ( const Address & rhs) const
inline

Definition at line 1030 of file xbyak.h.

1031 {
1032 return getBit() == rhs.getBit() && e_ == rhs.e_ && label_ == rhs.label_ && mode_ == rhs.mode_ && permitVsib_ == rhs.permitVsib_ && broadcast_ == rhs.broadcast_;
1033 }
Here is the caller graph for this function:

◆ permitVsib()

void Xbyak::Address::permitVsib ( ) const
inline

Definition at line 1012 of file xbyak.h.

1012{ permitVsib_ = true; }

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