Microcode of one basic block. More...
#include <hexrays.hpp>
Public Member Functions | |
void | mark_lists_dirty () |
void | request_propagation () |
bool | needs_propagation () const |
void | request_demote64 () |
bool | lists_dirty () const |
bool | lists_ready () const |
int | make_lists_ready () |
int | npred () const |
Get number of block predecessors. More... | |
int | nsucc () const |
Get number of block successors. More... | |
int | pred (int n) const |
int | succ (int n) const |
bool | empty () const |
void | print (vd_printer_t &vp) const |
Print block contents. More... | |
void | dump () const |
Dump block info. More... | |
void | vdump_block (const char *title, va_list va) const |
void | dump_block (const char *title,...) const |
minsn_t * | insert_into_block (minsn_t *nm, minsn_t *om) |
Insert instruction into the doubly linked list. More... | |
minsn_t * | remove_from_block (minsn_t *m) |
Remove instruction from the doubly linked list. More... | |
int | for_all_insns (minsn_visitor_t &mv) |
Visit all instructions. More... | |
int | for_all_ops (mop_visitor_t &mv) |
Visit all operands. More... | |
int | for_all_uses (mlist_t *list, minsn_t *i1, minsn_t *i2, mlist_mop_visitor_t &mmv) |
Visit all operands that use LIST. More... | |
int | optimize_insn (minsn_t *m, int optflags=OPTI_MINSTKREF|OPTI_COMBINSNS) |
Optimize one instruction in the context of the block. More... | |
int | optimize_block () |
Optimize a basic block. More... | |
int | build_lists (bool kill_deads) |
Build def-use lists and eliminate deads. More... | |
int | optimize_useless_jump () |
Remove a jump at the end of the block if it is useless. More... | |
void | append_use_list (mlist_t *list, const mop_t &op, maymust_t maymust, bitrange_t mask=MAXRANGE) const |
Append use-list of an operand. More... | |
void | append_def_list (mlist_t *list, const mop_t &op, maymust_t maymust) const |
Append def-list of an operand. More... | |
mlist_t | build_use_list (const minsn_t &ins, maymust_t maymust) const |
Build use-list of an instruction. More... | |
mlist_t | build_def_list (const minsn_t &ins, maymust_t maymust) const |
Build def-list of an instruction. More... | |
bool | is_used (mlist_t *list, const minsn_t *i1, const minsn_t *i2, maymust_t maymust=MAY_ACCESS) const |
Is the list used by the specified instruction range? More... | |
const minsn_t * | find_first_use (mlist_t *list, const minsn_t *i1, const minsn_t *i2, maymust_t maymust=MAY_ACCESS) const |
Find the first insn that uses the specified list in the insn range. More... | |
minsn_t * | find_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 |
Is the list redefined by the specified instructions? More... | |
const minsn_t * | find_redefinition (const mlist_t &list, const minsn_t *i1, const minsn_t *i2, maymust_t maymust=MAY_ACCESS) const |
Find the first insn that redefines any part of the list in the insn range. More... | |
minsn_t * | find_redefinition (const mlist_t &list, minsn_t *i1, const minsn_t *i2, maymust_t maymust=MAY_ACCESS) const |
bool | is_rhs_redefined (const minsn_t *ins, const minsn_t *i1, const minsn_t *i2) const |
Is the right hand side of the instruction redefined the insn range? "right hand side" corresponds to the source operands of the instruction. More... | |
minsn_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. More... | |
minsn_t * | find_def (const mop_t &op, minsn_t **p_i1, const minsn_t *i2, int fdflags) |
minsn_t * | find_use (const mop_t &op, minsn_t **p_i1, const minsn_t *i2, int fdflags) |
bool | get_valranges (valrng_t *res, const vivl_t &vivl, int vrflags) const |
Find possible values for a block. More... | |
bool | get_valranges (valrng_t *res, const vivl_t &vivl, const minsn_t *m, int vrflags) const |
Find possible values for an instruction. More... | |
void | make_nop (minsn_t *m) |
Erase the instruction (convert it to nop) and mark the lists dirty. More... | |
size_t | get_reginsn_qty () const |
Calculate number of regular instructions in the block. More... | |
bool | is_call_block () const |
bool | is_unknown_call () const |
bool | is_nway () const |
bool | is_branch () const |
bool | is_simple_goto_block () const |
bool | is_simple_jcnd_block () const |
Public Attributes | |
mblock_t * | nextb |
next block in the doubly linked list More... | |
mblock_t * | prevb |
previous block in the doubly linked list More... | |
uint32 | flags |
combination of Basic block properties bits More... | |
ea_t | start |
start address More... | |
ea_t | end |
end address note: we cannot rely on start/end addresses very much because instructions are propagated between blocks More... | |
minsn_t * | head |
pointer to the first instruction of the block More... | |
minsn_t * | tail |
pointer to the last instruction of the block More... | |
mba_t * | mba |
the parent micro block array More... | |
int | serial |
block number More... | |
mblock_type_t | type |
block type (BLT_NONE - not computed yet) More... | |
mlist_t | dead_at_start |
data that is dead at the block entry More... | |
mlist_t | mustbuse |
data that must be used by the block More... | |
mlist_t | maybuse |
data that may be used by the block More... | |
mlist_t | mustbdef |
data that must be defined by the block More... | |
mlist_t | maybdef |
data that may be defined by the block More... | |
mlist_t | dnu |
data that is defined but not used in the block More... | |
sval_t | maxbsp |
maximal sp value in the block (0...stacksize) More... | |
sval_t | minbstkref |
lowest stack location accessible with indirect addressing (offset from the stack bottom) initially it is 0 (not computed) More... | |
sval_t | minbargref |
the same for arguments More... | |
intvec_t | predset |
control flow graph: list of our predecessors use npred() and pred() to access it More... | |
intvec_t | succset |
control flow graph: list of our successors use nsucc() and succ() to access it More... | |
char | reserved [] |
Friends | |
class | codegen_t |
Detailed Description
Microcode of one basic block.
All blocks are part of a doubly linked list. They can also be addressed by indexing the mba->natural array. A block contains a doubly linked list of instructions, various location lists that are used for data flow analysis, and other attributes.
- Examples
- hexrays_sample10.cpp, hexrays_sample11.cpp, hexrays_sample12.cpp, hexrays_sample15.cpp, hexrays_sample16.cpp, and hexrays_sample18.cpp.
Definition at line 3804 of file hexrays.hpp.
Member Function Documentation
◆ append_def_list()
Append def-list of an operand.
This function calculates list of locations that may or must be modified by the operand and appends it to LIST.
- Parameters
-
list ptr to the output buffer. we will append to it. op operand to calculate the def list of maymust should we calculate 'may-def' or 'must-def' list? see maymust_t for more details.
Definition at line 11143 of file hexrays.hpp.
◆ append_use_list()
void mblock_t::append_use_list | ( | mlist_t * | list, |
const mop_t & | op, | ||
maymust_t | maymust, | ||
bitrange_t | mask = MAXRANGE |
||
) | const |
Append use-list of an operand.
This function calculates list of locations that may or must be used by the operand and appends it to LIST.
- Parameters
-
list ptr to the output buffer. we will append to it. op operand to calculate the use list of maymust should we calculate 'may-use' or 'must-use' list? see maymust_t for more details. mask if only part of the operand should be considered, a bitmask can be used to specify which part. example: op=AX,mask=0xFF means that we will consider only AL.
Definition at line 11137 of file hexrays.hpp.
◆ build_def_list()
Build def-list of an instruction.
This function calculates list of locations that may or must be modified by the instruction. Examples: "stx ebx.4, ds.2, eax.4", may-list: all aliasable memory "stx ebx.4, ds.2, eax.4", must-list: empty Since STX uses EAX for indirect access, it may modify any aliasable memory. On the other hand, we cannot tell for sure which memory cells will be modified, this is why the must-list is empty.
- Parameters
-
ins instruction to calculate the def list of maymust should we calculate 'may-def' or 'must-def' list? see maymust_t for more details.
- Returns
- the calculated def-list
- Examples
- hexrays_sample12.cpp, hexrays_sample15.cpp, and hexrays_sample16.cpp.
Definition at line 11157 of file hexrays.hpp.
◆ build_lists()
int mblock_t::build_lists | ( | bool | kill_deads | ) |
Build def-use lists and eliminate deads.
- Parameters
-
kill_deads do delete dead instructions?
- Returns
- the number of eliminated instructions Better mblock_t::call make_lists_ready() rather than this function.
Definition at line 11125 of file hexrays.hpp.
◆ build_use_list()
Build use-list of an instruction.
This function calculates list of locations that may or must be used by the instruction. Examples: "ldx ds.2, eax.4, ebx.4", may-list: all aliasable memory "ldx ds.2, eax.4, ebx.4", must-list: empty Since LDX uses EAX for indirect access, it may access any aliasable memory. On the other hand, we cannot tell for sure which memory cells will be accessed, this is why the must-list is empty.
- Parameters
-
ins instruction to calculate the use list of maymust should we calculate 'may-use' or 'must-use' list? see maymust_t for more details.
- Returns
- the calculated use-list
- Examples
- hexrays_sample12.cpp, hexrays_sample15.cpp, and hexrays_sample16.cpp.
Definition at line 11149 of file hexrays.hpp.
◆ dump()
void mblock_t::dump | ( | ) | const |
Dump block info.
This function is useful for debugging, see mba_t::dump for info
Definition at line 11071 of file hexrays.hpp.
◆ dump_block()
void mblock_t::dump_block | ( | const char * | title, |
... | |||
) | const |
Definition at line 3903 of file hexrays.hpp.
◆ empty()
bool mblock_t::empty | ( | ) | const |
Definition at line 3892 of file hexrays.hpp.
◆ 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 search inside one block.
- Parameters
-
op operand to search for parent ptr to ptr to a top level instruction. denotes the beginning of the search range. mend end instruction of the range (must be a top level insn) mend is excluded from the range. it can be specified as nullptr. parent and mend must belong to the same block. fdflags combination of bits for mblock_t::find_access bits
- Returns
- the instruction that accesses the operand. this instruction may be a sub-instruction. to find out the top level instruction, check out *p_i1. nullptr means 'not found'.
Definition at line 11183 of file hexrays.hpp.
◆ find_def()
Definition at line 4169 of file hexrays.hpp.
◆ find_first_use() [1/2]
const minsn_t * mblock_t::find_first_use | ( | mlist_t * | list, |
const minsn_t * | i1, | ||
const minsn_t * | i2, | ||
maymust_t | maymust = MAY_ACCESS |
||
) | const |
Find the first insn that uses the specified list in the insn range.
- Parameters
-
list list of locations. LIST may be modified by the function: redefined locations will be removed from it. i1 starting instruction of the range (must be a top level insn) i2 end instruction of the range (must be a top level insn) i2 is excluded from the range. it can be specified as nullptr. i1 and i2 must belong to the same block. maymust should we search in 'may-access' or 'must-access' mode?
- Returns
- pointer to such instruction or nullptr. Upon return LIST will contain only locations not redefined by insns [i1..result]
Definition at line 11165 of file hexrays.hpp.
◆ find_first_use() [2/2]
minsn_t * mblock_t::find_first_use | ( | mlist_t * | list, |
minsn_t * | i1, | ||
const minsn_t * | i2, | ||
maymust_t | maymust = MAY_ACCESS |
||
) | const |
Definition at line 4082 of file hexrays.hpp.
◆ find_redefinition() [1/2]
const minsn_t * mblock_t::find_redefinition | ( | const mlist_t & | list, |
const minsn_t * | i1, | ||
const minsn_t * | i2, | ||
maymust_t | maymust = MAY_ACCESS |
||
) | const |
Find the first insn that redefines any part of the list in the insn range.
- Parameters
-
list list of locations to check. i1 starting instruction of the range (must be a top level insn) i2 end instruction of the range (must be a top level insn) i2 is excluded from the range. it can be specified as nullptr. i1 and i2 must belong to the same block. maymust should we search in 'may-access' or 'must-access' mode?
- Returns
- pointer to such instruction or nullptr.
Definition at line 11171 of file hexrays.hpp.
◆ find_redefinition() [2/2]
minsn_t * mblock_t::find_redefinition | ( | const mlist_t & | list, |
minsn_t * | i1, | ||
const minsn_t * | i2, | ||
maymust_t | maymust = MAY_ACCESS |
||
) | const |
Definition at line 4119 of file hexrays.hpp.
◆ find_use()
Definition at line 4177 of file hexrays.hpp.
◆ for_all_insns()
int mblock_t::for_all_insns | ( | minsn_visitor_t & | mv | ) |
Visit all instructions.
This function visits subinstructions too.
- Parameters
-
mv instruction visitor
- Returns
- zero or the value returned by mv.visit_insn() See also mba_t::for_all_topinsns()
Definition at line 11095 of file hexrays.hpp.
◆ for_all_ops()
int mblock_t::for_all_ops | ( | mop_visitor_t & | mv | ) |
Visit all operands.
This function visit subinstruction operands too.
- Parameters
-
mv operand visitor
- Returns
- zero or the value returned by mv.visit_mop()
Definition at line 11101 of file hexrays.hpp.
◆ for_all_uses()
int mblock_t::for_all_uses | ( | mlist_t * | list, |
minsn_t * | i1, | ||
minsn_t * | i2, | ||
mlist_mop_visitor_t & | mmv | ||
) |
Visit all operands that use LIST.
- Parameters
-
list ptr to the list of locations. it may be modified: parts that get redefined by the instructions in [i1,i2) will be deleted. i1 starting instruction. must be a top level insn. i2 ending instruction (excluded). must be a top level insn. mmv operand visitor
- Returns
- zero or the value returned by mmv.visit_mop()
Definition at line 11107 of file hexrays.hpp.
◆ get_reginsn_qty()
size_t mblock_t::get_reginsn_qty | ( | ) | const |
Calculate number of regular instructions in the block.
Assertions are skipped by this function.
- Returns
- Number of non-assertion instructions in the block.
Definition at line 11201 of file hexrays.hpp.
◆ get_valranges() [1/2]
bool mblock_t::get_valranges | ( | valrng_t * | res, |
const vivl_t & | vivl, | ||
const minsn_t * | m, | ||
int | vrflags | ||
) | const |
Find possible values for an instruction.
- Parameters
-
res set of value ranges vivl what to search for m insn to search value ranges at.
- See also
- bits for get_valranges bits
- Parameters
-
vrflags combination of bits for get_valranges bits
Definition at line 11195 of file hexrays.hpp.
◆ get_valranges() [2/2]
Find possible values for a block.
- Parameters
-
res set of value ranges vivl what to search for vrflags combination of bits for get_valranges bits
- Examples
- hexrays_sample15.cpp.
Definition at line 11189 of file hexrays.hpp.
◆ insert_into_block()
Insert instruction into the doubly linked list.
- Parameters
-
nm new instruction om existing instruction, part of the doubly linked list if nullptr, then the instruction will be inserted at the beginning of the list NM will be inserted immediately after OM
- Returns
- pointer to NM
Definition at line 11083 of file hexrays.hpp.
◆ is_branch()
bool mblock_t::is_branch | ( | ) | const |
Definition at line 4230 of file hexrays.hpp.
◆ is_call_block()
bool mblock_t::is_call_block | ( | ) | const |
Definition at line 4227 of file hexrays.hpp.
◆ is_nway()
bool mblock_t::is_nway | ( | ) | const |
Definition at line 4229 of file hexrays.hpp.
◆ is_redefined()
bool mblock_t::is_redefined | ( | const mlist_t & | list, |
const minsn_t * | i1, | ||
const minsn_t * | i2, | ||
maymust_t | maymust = MAY_ACCESS |
||
) | const |
Is the list redefined by the specified instructions?
- Parameters
-
list list of locations to check. i1 starting instruction of the range (must be a top level insn) i2 end instruction of the range (must be a top level insn) i2 is excluded from the range. it can be specified as nullptr. i1 and i2 must belong to the same block. maymust should we search in 'may-access' or 'must-access' mode?
Definition at line 4097 of file hexrays.hpp.
◆ is_rhs_redefined()
bool mblock_t::is_rhs_redefined | ( | const minsn_t * | ins, |
const minsn_t * | i1, | ||
const minsn_t * | i2 | ||
) | const |
Is the right hand side of the instruction redefined the insn range? "right hand side" corresponds to the source operands of the instruction.
- Parameters
-
ins instruction to consider i1 starting instruction of the range (must be a top level insn) i2 end instruction of the range (must be a top level insn) i2 is excluded from the range. it can be specified as nullptr. i1 and i2 must belong to the same block.
Definition at line 11177 of file hexrays.hpp.
◆ is_simple_goto_block()
bool mblock_t::is_simple_goto_block | ( | ) | const |
Definition at line 4231 of file hexrays.hpp.
◆ is_simple_jcnd_block()
bool mblock_t::is_simple_jcnd_block | ( | ) | const |
Definition at line 4237 of file hexrays.hpp.
◆ is_unknown_call()
bool mblock_t::is_unknown_call | ( | ) | const |
Definition at line 4228 of file hexrays.hpp.
◆ is_used()
bool mblock_t::is_used | ( | mlist_t * | list, |
const minsn_t * | i1, | ||
const minsn_t * | i2, | ||
maymust_t | maymust = MAY_ACCESS |
||
) | const |
Is the list used by the specified instruction range?
- Parameters
-
list list of locations. LIST may be modified by the function: redefined locations will be removed from it. i1 starting instruction of the range (must be a top level insn) i2 end instruction of the range (must be a top level insn) i2 is excluded from the range. it can be specified as nullptr. i1 and i2 must belong to the same block. maymust should we search in 'may-access' or 'must-access' mode?
Definition at line 4067 of file hexrays.hpp.
◆ lists_dirty()
bool mblock_t::lists_dirty | ( | ) | const |
Definition at line 3871 of file hexrays.hpp.
◆ lists_ready()
bool mblock_t::lists_ready | ( | ) | const |
Definition at line 3872 of file hexrays.hpp.
◆ make_lists_ready()
int mblock_t::make_lists_ready | ( | ) |
Definition at line 3873 of file hexrays.hpp.
◆ make_nop()
void mblock_t::make_nop | ( | minsn_t * | m | ) |
Erase the instruction (convert it to nop) and mark the lists dirty.
This is the recommended function to use because it also marks the block use-def lists dirty.
Definition at line 4220 of file hexrays.hpp.
References minsn_t::_make_nop().
◆ mark_lists_dirty()
void mblock_t::mark_lists_dirty | ( | ) |
Definition at line 3867 of file hexrays.hpp.
◆ needs_propagation()
bool mblock_t::needs_propagation | ( | ) | const |
Definition at line 3869 of file hexrays.hpp.
◆ npred()
int mblock_t::npred | ( | ) | const |
Get number of block predecessors.
Definition at line 3881 of file hexrays.hpp.
◆ nsucc()
int mblock_t::nsucc | ( | ) | const |
Get number of block successors.
Definition at line 3883 of file hexrays.hpp.
◆ optimize_block()
int mblock_t::optimize_block | ( | ) |
Optimize a basic block.
Usually there is no need to call this function explicitly because the decompiler will call it itself if optinsn_t::func or optblock_t::func return non-zero.
- Returns
- number of changes made to the block
Definition at line 11119 of file hexrays.hpp.
◆ optimize_insn()
int mblock_t::optimize_insn | ( | minsn_t * | m, |
int | optflags = OPTI_MINSTKREF|OPTI_COMBINSNS |
||
) |
Optimize one instruction in the context of the block.
- Parameters
-
m pointer to a top level instruction optflags combination of optimization flags bits
- Returns
- number of changes made to the block This function may change other instructions in the block too. However, it will not destroy top level instructions (it may convert them to nop's). This function performs only intrablock modifications. See also minsn_t::optimize_solo()
Definition at line 11113 of file hexrays.hpp.
◆ optimize_useless_jump()
int mblock_t::optimize_useless_jump | ( | ) |
Remove a jump at the end of the block if it is useless.
This function preserves any side effects when removing a useless jump. Both conditional and unconditional jumps are handled (and jtbl too). This function deletes useless jumps, not only replaces them with a nop. (please note that \optimize_insn does not handle useless jumps).
- Returns
- number of changes made to the block
Definition at line 11131 of file hexrays.hpp.
◆ pred()
int mblock_t::pred | ( | int | n | ) | const |
Definition at line 3885 of file hexrays.hpp.
◆ print()
void mblock_t::print | ( | vd_printer_t & | vp | ) | const |
Print block contents.
- Parameters
-
vp print helpers class. it can be used to direct the printed info to any destination
Definition at line 11065 of file hexrays.hpp.
◆ remove_from_block()
Remove instruction from the doubly linked list.
- Parameters
-
m instruction to remove The removed instruction is not deleted, the caller gets its ownership
- Returns
- pointer to the next instruction
Definition at line 11089 of file hexrays.hpp.
◆ request_demote64()
void mblock_t::request_demote64 | ( | ) |
Definition at line 3870 of file hexrays.hpp.
◆ request_propagation()
void mblock_t::request_propagation | ( | ) |
Definition at line 3868 of file hexrays.hpp.
◆ succ()
int mblock_t::succ | ( | int | n | ) | const |
Definition at line 3887 of file hexrays.hpp.
◆ vdump_block()
void mblock_t::vdump_block | ( | const char * | title, |
va_list | va | ||
) | const |
Definition at line 11077 of file hexrays.hpp.
Friends And Related Function Documentation
◆ codegen_t
|
friend |
Definition at line 3806 of file hexrays.hpp.
Member Data Documentation
◆ dead_at_start
mlist_t mblock_t::dead_at_start |
data that is dead at the block entry
Definition at line 3846 of file hexrays.hpp.
◆ dnu
mlist_t mblock_t::dnu |
data that is defined but not used in the block
Definition at line 3851 of file hexrays.hpp.
◆ end
ea_t mblock_t::end |
end address note: we cannot rely on start/end addresses very much because instructions are propagated between blocks
Definition at line 3836 of file hexrays.hpp.
◆ flags
uint32 mblock_t::flags |
combination of Basic block properties bits
Definition at line 3812 of file hexrays.hpp.
◆ head
minsn_t* mblock_t::head |
pointer to the first instruction of the block
- Examples
- hexrays_sample11.cpp, and hexrays_sample12.cpp.
Definition at line 3840 of file hexrays.hpp.
◆ maxbsp
sval_t mblock_t::maxbsp |
maximal sp value in the block (0...stacksize)
Definition at line 3853 of file hexrays.hpp.
◆ maybdef
mlist_t mblock_t::maybdef |
data that may be defined by the block
Definition at line 3850 of file hexrays.hpp.
◆ maybuse
mlist_t mblock_t::maybuse |
data that may be used by the block
Definition at line 3848 of file hexrays.hpp.
◆ mba
mba_t* mblock_t::mba |
the parent micro block array
- Examples
- hexrays_sample11.cpp.
Definition at line 3842 of file hexrays.hpp.
◆ minbargref
sval_t mblock_t::minbargref |
the same for arguments
Definition at line 3857 of file hexrays.hpp.
◆ minbstkref
sval_t mblock_t::minbstkref |
lowest stack location accessible with indirect addressing (offset from the stack bottom) initially it is 0 (not computed)
Definition at line 3854 of file hexrays.hpp.
◆ mustbdef
mlist_t mblock_t::mustbdef |
data that must be defined by the block
Definition at line 3849 of file hexrays.hpp.
◆ mustbuse
mlist_t mblock_t::mustbuse |
data that must be used by the block
Definition at line 3847 of file hexrays.hpp.
◆ nextb
mblock_t* mblock_t::nextb |
next block in the doubly linked list
Definition at line 3810 of file hexrays.hpp.
◆ predset
intvec_t mblock_t::predset |
control flow graph: list of our predecessors use npred() and pred() to access it
- Examples
- hexrays_sample11.cpp.
Definition at line 3859 of file hexrays.hpp.
◆ prevb
mblock_t* mblock_t::prevb |
previous block in the doubly linked list
Definition at line 3811 of file hexrays.hpp.
◆ reserved
char mblock_t::reserved[] |
Definition at line 3865 of file hexrays.hpp.
◆ serial
int mblock_t::serial |
block number
- Examples
- hexrays_sample11.cpp, and hexrays_sample12.cpp.
Definition at line 3843 of file hexrays.hpp.
◆ start
ea_t mblock_t::start |
◆ succset
intvec_t mblock_t::succset |
control flow graph: list of our successors use nsucc() and succ() to access it
- Examples
- hexrays_sample11.cpp.
Definition at line 3861 of file hexrays.hpp.
◆ tail
minsn_t* mblock_t::tail |
pointer to the last instruction of the block
- Examples
- hexrays_sample11.cpp, and hexrays_sample12.cpp.
Definition at line 3841 of file hexrays.hpp.
◆ type
mblock_type_t mblock_t::type |
block type (BLT_NONE - not computed yet)
Definition at line 3844 of file hexrays.hpp.