mblock_t Class Reference

Public Member Functions

void mark_lists_dirty (void)
 
void request_propagation (void)
 
bool needs_propagation (void) const
 
void request_demote64 (void)
 
bool lists_dirty (void) const
 
bool lists_ready (void) const
 
int make_lists_ready (void)
 
int npred (void) const
 
int nsucc (void) const
 
int pred (int n) const
 
int succ (int n) const
 
minsn_tinsert_into_block (minsn_t *nm, minsn_t *om)
 
minsn_tremove_from_block (minsn_t *m)
 
void print (vd_printer_t &vp) const
 
void dump (void) const
 
void vdump_block (const char *title, va_list va) const
 
void print_block_header (qstrvec_t *vec) const
 
int build_lists (bool kill_deads)
 
void append_use_list (mlist_t *lst, const mop_t &op, maymust_t maymust, bitrange_t mask=MAXRANGE) const
 
void append_def_list (mlist_t *lst, const mop_t &op, maymust_t maymust) const
 
mlist_t build_use_list (const minsn_t &ins, maymust_t maymust) const
 
mlist_t build_def_list (const minsn_t &ins, maymust_t maymust) const
 
int for_all_ops (mop_visitor_t &mv)
 
int for_all_insns (minsn_visitor_t &mv)
 
void make_nop (minsn_t *m)
 
bool is_used (mlist_t *list, const minsn_t *i1, const minsn_t *i2, maymust_t maymust=MAY_ACCESS) const
 
const minsn_tfind_first_use (mlist_t *list, const minsn_t *i1, const minsn_t *i2, maymust_t maymust=MAY_ACCESS) const
 
minsn_tfind_first_use (mlist_t *list, minsn_t *i1, const minsn_t *i2, maymust_t maymust=MAY_ACCESS) const
 
bool is_redefined (const mlist_t &list, const minsn_t *i1, const minsn_t *i2, maymust_t maymust=MAY_ACCESS) const
 
const minsn_tfind_redefinition (const mlist_t &list, const minsn_t *i1, const minsn_t *i2, maymust_t maymust=MAY_ACCESS) const
 
minsn_tfind_redefinition (const mlist_t &list, minsn_t *i1, const minsn_t *i2, maymust_t maymust=MAY_ACCESS) const
 
bool is_rhs_redefined (minsn_t *m, minsn_t *from, minsn_t *to)
 
bool is_accessed (mlist_t *list, const minsn_t *i1, const minsn_t *i2, access_type_t access_type, maymust_t maymust=MAY_ACCESS) const
 
int for_all_uses (mlist_t *list, minsn_t *i1, minsn_t *i2, struct mlist_mop_visitor_t &mmv)
 
minsn_tfind_access (const mop_t &op, minsn_t **parent, const minsn_t *mend, int fdflags) const
 Find the instruction that accesses the specified operand. More...
 
minsn_tfind_def (const mop_t &op, minsn_t **parent, const minsn_t *mend, int fdflags)
 
minsn_tfind_use (const mop_t &op, minsn_t **parent, const minsn_t *mend, int fdflags)
 
vrcode_t find_value_of (ivlset_t *vals, minsn_t *top, const mop_t &op)
 

Public Attributes

mblock_tnextb
 
mblock_tprevb
 
uint32 flags
 
ea_t start
 
ea_t end
 
minsn_thead
 
minsn_ttail
 
mbl_array_tmba
 
int serial
 
mblock_type_t type
 
mlist_t dead_at_start
 
mlist_t mustbuse
 
mlist_t maybuse
 
mlist_t mustbdef
 
mlist_t maybdef
 
rlist_t dnu
 
sval_t maxbsp
 
sval_t minbstkref
 
sval_t minbargref
 
intvec_t predset
 
intvec_t succset
 
qstring label
 

Friends

class codegen_t
 

Detailed Description

Examples:
hexrays_sample10.cpp, hexrays_sample11.cpp, and hexrays_sample12.cpp.

Definition at line 2306 of file hexrays.hpp.

Member Function Documentation

◆ find_access()

minsn_t * mblock_t::find_access ( const mop_t op,
minsn_t **  parent,
const minsn_t mend,
int  fdflags 
) const

Find the instruction that accesses the specified operand.

This function searches inside the current basic block.

Parameters
opoperand to search for
parentptr to ptr to a top level instruction. denotes the beginning of the search range.
mendend of the search range (excluded). NULL means to search until the block boundary. combination of FD_... bits
Returns
the instruction that accesses the operand. this instruction may be a sub-instruction. to find out the top level instruction, check out *parent. NULL means 'not found'.

Definition at line 8141 of file hexrays.hpp.

References hexdsp.