mop_addr_t Class Reference

Address of an operand (mop_l, mop_v, mop_S, mop_r) More...

Inheritance diagram for mop_addr_t:

Public Member Functions

 mop_addr_t (const mop_addr_t &ra)
 mop_addr_t (const mop_t &ra, int isz, int osz)
mop_addr_toperator= (const mop_addr_t &rop)
int lexcompare (const mop_addr_t &ra) const
- Public Member Functions inherited from mop_t
void set_impptr_done (void)
void set_udt (void)
void set_undef_val (void)
bool is_impptr_done (void) const
bool is_udt (void) const
bool probably_floating (void) const
bool is_ccflags (void) const
bool is_undef_val (void) const
 mop_t (const mop_t &rop)
 mop_t (mreg_t _r, int _s)
mop_toperator= (const mop_t &rop)
void zero (void)
void swap (mop_t &rop)
void erase (void)
void erase_but_keep_size (void)
void print (qstring *vout, int shins_flags=SHINS_SHORT|SHINS_VALNUM) const
const char * dstr (void) const
bool create_from_mlist (mbl_array_t *mba, const mlist_t &lst, sval_t fullsize)
 Create operand from mlist_t. More...
bool create_from_ivlset (mbl_array_t *mba, const ivlset_t &ivs, sval_t fullsize)
 Create operand from ivlset_t. More...
void create_from_vdloc (mbl_array_t *mba, const vdloc_t &loc, int _size)
 Create operand from vdloc_t. More...
void create_from_scattered_vdloc (mbl_array_t *mba, const char *name, tinfo_t type, const vdloc_t &loc)
 Create operand from scattered vdloc_t. More...
void create_from_insn (const minsn_t *m)
 Create operand from an instruction. More...
void make_number (uint64 _value, int _size, ea_t _ea=BADADDR, int opnum=0)
 Create an integer constant operand. More...
bool make_fpnum (const void *bytes, size_t _size)
 Create a floating point constant operand. More...
void _make_reg (mreg_t reg)
 Create a register operand without erasing previous data. More...
void _make_reg (mreg_t reg, int _size)
void make_reg (mreg_t reg)
 Create a register operand.
void make_reg (mreg_t reg, int _size)
void _make_lvar (mbl_array_t *mba, int idx, sval_t off=0)
 Create a local variable operand. More...
void _make_gvar (ea_t ea)
 Create a global variable operand without erasing previous data. More...
void make_gvar (ea_t ea)
 Create a global variable operand.
void _make_stkvar (mbl_array_t *mba, sval_t off)
 Create a stack variable operand. More...
void make_reg_pair (int loreg, int hireg, int halfsize)
 Create pair of registers. More...
void _make_insn (minsn_t *ins)
 Create a nested instruction without erasing previous data. More...
void make_insn (minsn_t *ins)
 Create a nested instruction.
void _make_blkref (int blknum)
 Create a block reference operand without erasing previous data. More...
void make_blkref (int blknum)
 Create a global variable operand.
void make_helper (const char *name)
 Create a helper operand. More...
void _make_strlit (const char *str)
 Create a constant string operand.
void _make_strlit (qstring *str)
void _make_callinfo (mcallinfo_t *fi)
 Create a call info operand without erasing previous data. More...
void _make_cases (mcases_t *_cases)
 Create a 'switch cases' operand without erasing previous data. More...
void _make_pair (mop_pair_t *_pair)
 Create a pair operand without erasing previous data. More...
bool is_reg (void) const
 Is a register operand?
bool is_reg (mreg_t _r) const
 Is the specified register?
bool is_reg (mreg_t _r, int _size) const
 Is the specified register of the specified size?
bool is_cc (void) const
 Is a condition code?
bool is_bit_reg (void) const
bool is_kreg (void) const
 Is a kernel register?
bool is_mob (int serial) const
 Is a block reference to the specified block?
bool is_scattered (void) const
 Is a scattered operand?
bool is_glbaddr () const
 Is address of a global memory cell?
bool is_glbaddr (ea_t ea) const
 Is address of the specified global memory cell?
bool is_stkaddr () const
 Is address of a stack variable?
bool is_insn (void) const
 Is a sub-instruction?
bool is_insn (mcode_t code) const
 Is a sub-instruction with the specified opcode?
bool has_side_effects (bool include_ldx=false) const
 Has any side effects? More...
bool may_use_aliased_memory (void) const
 Is it possible for the operand to use aliased memory?
bool is01 (void) const
 Are the possible values of the operand only 0 and 1? This function returns true for 0/1 constants, bit registers, the result of 'set' insns, etc. More...
bool is_sign_extended_from (int nbytes) const
 Does the high part of the operand consist of the sign bytes? More...
bool is_zero_extended_from (int nbytes) const
 Does the high part of the operand consist of zero bytes? More...
bool is_extended_from (int nbytes, bool is_signed) const
 Does the high part of the operand consist of zero or sign bytes?
bool equal_mops (const mop_t &rop, int eqflags) const
 Compare operands. More...
bool operator== (const mop_t &rop) const
bool operator!= (const mop_t &rop) const
bool operator< (const mop_t &rop) const
 Lexographical operand comparison. More...
int lexcompare (const mop_t &rop) const
int for_all_ops (mop_visitor_t &mv, const tinfo_t *type=NULL, bool is_target=false)
 Visit the operand and all its sub-operands. More...
int for_all_scattered_submops (scif_visitor_t &sv) const
 Visit all sub-operands of a scattered operand. More...
uint64 value (bool is_signed) const
 Retrieve value of a constant integer operand. More...
int64 signed_value (void) const
uint64 unsigned_value (void) const
bool is_constant (uint64 *out=NULL, bool is_signed=true) const
 Retrieve value of a constant integer operand. More...
bool is_equal_to (uint64 n, bool is_signed=true) const
bool is_zero (void) const
bool is_one (void) const
bool is_positive_constant (void) const
bool is_negative_constant (void) const
member_t * get_stkvar (uval_t *p_off) const
 Retrieve the referenced stack variable. More...
bool get_stkoff (sval_t *p_off) const
 Get the referenced stack offset. More...
const minsn_tget_insn (mcode_t code) const
 Get subinstruction of the operand. More...
minsn_tget_insn (mcode_t code)
bool make_low_half (int width)
 Make the low part of the operand. More...
bool make_high_half (int width)
 Make the high part of the operand. More...
bool make_first_half (int width)
 Make the first part of the operand. More...
bool make_second_half (int width)
 Make the second part of the operand. More...
bool shift_mop (int offset)
 Shift the operand. More...
bool change_size (int nsize, side_effect_t sideff=WITH_SIDEFF)
 Change the operand size. More...
bool double_size (side_effect_t sideff=WITH_SIDEFF)
bool preserve_side_effects (mblock_t *blk, minsn_t *top, bool *moved_calls=NULL)
 Move subinstructions with side effects out of the operand. More...
void apply_ld_mcode (mcode_t mcode, ea_t ea, int newsize)
 Apply a unary opcode to the operand. More...
void apply_xdu (ea_t ea, int newsize)
void apply_xds (ea_t ea, int newsize)

Public Attributes

int insize
int outsize
- Public Attributes inherited from mop_t
mopt_t t
 Operand type.
uint8 oprops
 Operand properties.
uint16 valnum
 Value number. More...
int size
 Operand size. More...
union {
   mreg_t   r
   mnumber_t *   nnn
   minsn_t *   d
   stkvar_ref_t *   s
   ea_t   g
   int   b
   mcallinfo_t *   f
   lvar_ref_t *   l
   mop_addr_t *   a
   char *   helper
   char *   cstr
   mcases_t *   c
   fnumber_t *   fpc
   mop_pair_t *   pair
   scif_t *   scif
 The following union holds additional details about the operand. More...

Additional Inherited Members

- Static Public Member Functions inherited from mop_t
static bool is_bit_reg (mreg_t reg)
 Is a bit register? This includes condition codes and eventually other bit registers.

Detailed Description

Address of an operand (mop_l, mop_v, mop_S, mop_r)

Definition at line 2755 of file hexrays.hpp.