25 #ifndef _JIT_COMPILER2_X86_64MODRMOPERAND
26 #define _JIT_COMPILER2_X86_64MODRMOPERAND
108 if (index.
op != NULL)
113 return "ModRMOperand";
175 const static unsigned base = 0;
virtual NativeAddress * to_NativeAddress()=0
u1 getRex(const X86_64Register ®, bool opsiz64)
X86_64Register * cast_to< X86_64Register >(Register *reg)
u1 getModRM(const X86_64Register ®)
static const unsigned base
std::size_t op_size() const
virtual OStream & print(OStream &OS) const
X86_64ModRMOperand(const BaseOp &base, s4 disp)
X86_64Register * getBase()
IndexOp(MachineOperand *op)
X86_64Register * base86_64
X86_64ModRMOperand(const BaseOp &base)
virtual X86_64ModRMOperand * to_X86_64ModRMOperand()
X86_64ModRMOperand(const BaseOp &base, const IndexOp &index, Type::TypeID type, s4 disp=0)
virtual X86_64ModRMOperand * to_X86_64ModRMOperand()=0
virtual const char * get_name() const
GPRegister RBP("RBP", 0x5, false, 0x5 *8, 8)
X86_64ModRMOperand * cast_to< X86_64ModRMOperand >(MachineOperand *op)
u1 getSIB(const X86_64Register ®)
Simple stream class for formatted output.
X86_64Register * index86_64
static ScaleFactor get_scale(Type::TypeID type)
X86_64Register * getIndex()
virtual MachineAddress * to_MachineAddress()=0
Operands that can be directly used by the machine (register, memory, stackslot)
static const unsigned index
virtual NativeAddress * to_NativeAddress()
X86_64ModRMOperand(const BaseOp &base, const IndexOp &index, ScaleFactor scale, s4 disp=0)
embedded_operand_list embedded_operands
TODO describe.
X86_64ModRMOperand(const BaseOp &base, const IndexOp &index, s4 disp)
BaseOp(MachineOperand *op)