Public Member Functions | |
def | __init__ |
def | set_dead_regs |
def | get_out_regs |
def | add_unused_regs |
def | call_effects |
def | post_add_bloc |
def | mod_pc |
def | get_ir |
def | expr_fix_regs_for_mode |
def | expr_fix_regs_for_mode |
def | expraff_fix_regs_for_mode |
def | expraff_fix_regs_for_mode |
def | irbloc_fix_regs_for_mode |
def | irbloc_fix_regs_for_mode |
def | instr2ir |
def | get_label |
def | get_bloc |
def | add_instr |
def | merge_multi_affect |
def | getby_offset |
def | gen_pc_update |
def | add_bloc |
def | is_pc_written |
def | set_empty_dst_to_next |
def | gen_edges |
def | get_instr_label |
def | gen_label |
def | get_next_label |
def | simplify_blocs |
def | replace_expr_in_ir |
def | get_rw |
def | ExprIsLabel |
def | ira_regs_ids |
def | sort_dst |
def | dst_trackback |
def | gen_graph |
def | graph |
def | remove_dead_instr |
def | init_useful_instr |
def | remove_dead_code |
def | dump_bloc_state |
def | compute_reach_block |
def | compute_reach |
def | dead_simp |
def | gen_equations |
def | sizeof_char |
def | sizeof_short |
def | sizeof_int |
def | sizeof_long |
def | sizeof_pointer |
Static Public Member Functions | |
def | print_set |
Public Attributes | |
ret_reg | |
do_stk_segm | |
do_ds_segm | |
do_str_segm | |
do_all_segm | |
pc | |
sp | |
IRDst | |
symbol_pool | |
blocs | |
arch | |
attrib | |
g | |
|
inherited |
|
inherited |
def miasm2.arch.x86.ira.ir_a_x86_16.add_unused_regs | ( | self | ) |
def miasm2.arch.x86.ira.ir_a_x86_16.call_effects | ( | self, | |
ad | |||
) |
|
inherited |
Compute reach, defout and kill sets until a fixed point is reached. Source : Kennedy, K. (1979). A survey of data flow analysis techniques. IBM Thomas J. Watson Research Division, page 43 PRE: gen_graph()
Definition at line 326 of file analysis.py.
|
inherited |
Variable influence computation for a single block @irb: irbloc instance PRE: init_reach()
Definition at line 267 of file analysis.py.
|
inherited |
This function is used to analyse relation of a * complete function * This means the blocks under study represent a solid full function graph. Source : Kennedy, K. (1979). A survey of data flow analysis techniques. IBM Thomas J. Watson Research Division, page 43 PRE: gen_graph()
Definition at line 343 of file analysis.py.
|
inherited |
Definition at line 40 of file analysis.py.
|
inherited |
Definition at line 249 of file analysis.py.
|
inherited |
|
inherited |
|
inherited |
|
inherited |
Definition at line 3901 of file sem.py.
|
inherited |
|
inherited |
|
inherited |
|
inherited |
Gen irbloc digraph @link_all: also gen edges to non present irblocs
Definition at line 68 of file analysis.py.
|
inherited |
|
inherited |
|
inherited |
Returns the irbloc associated to an ExprId/ExprInt/label/int @ad: an ExprId/ExprInt/label/int
Definition at line 153 of file ir.py.
|
inherited |
Returns the label associated to an instruction @instr: current instruction
Definition at line 303 of file ir.py.
|
inherited |
|
inherited |
Transforms an ExprId/ExprInt/label/int into a label @ad: an ExprId/ExprInt/label/int
Definition at line 138 of file ir.py.
|
inherited |
def miasm2.arch.x86.ira.ir_a_x86_16.get_out_regs | ( | self, | |
b | |||
) |
|
inherited |
Calls get_rw(irb) for each bloc @regs_ids : ids of registers used in IR
Definition at line 329 of file ir.py.
|
inherited |
|
inherited |
Computes a set of triples (block, instruction number, instruction) containing initially useful instructions : - Instructions affecting final value of return registers - Instructions affecting IRDst register - Instructions writing in memory - Function call instructions Return set of intial useful instructions
Definition at line 140 of file analysis.py.
|
inherited |
|
inherited |
|
inherited |
|
inherited |
Definition at line 3906 of file sem.py.
|
inherited |
If multiple affection to a same ExprId are present in @affect_list, merge them (in place). For instance, XCGH AH, AL semantic is [ RAX = {RAX[0:8],0,8, RAX[0:8],8,16, RAX[16:64],16,64} RAX = {RAX[8:16],0,8, RAX[8:64],8,64} ] This function will update @affect_list to replace previous ExprAff by [ RAX = {RAX[8:16],0,8, RAX[0:8],8,16, RAX[16:64],16,64} ]
Definition at line 165 of file ir.py.
|
inherited |
def miasm2.arch.x86.ira.ir_a_x86_16.post_add_bloc | ( | self, | |
bloc, | |||
ir_blocs | |||
) |
|
staticinherited |
Print each triplet contained in a set @v_set: set containing triplets elements
Definition at line 242 of file analysis.py.
|
inherited |
Remove dead instructions in each block of the graph using the reach analysis . Returns True if a block has been modified PRE : compute_reach(self)
Definition at line 223 of file analysis.py.
|
inherited |
Remove dead affectations using previous reaches analysis @irb: irbloc instance @useful: useful statements from previous reach analysis Return True iff the block state has changed PRE: compute_reach(self)
Definition at line 120 of file analysis.py.
|
inherited |
def miasm2.arch.x86.ira.ir_a_x86_16.set_dead_regs | ( | self, | |
b | |||
) |
|
inherited |
|
inherited |
|
inherited |
Definition at line 381 of file analysis.py.
|
inherited |
Definition at line 389 of file analysis.py.
|
inherited |
Definition at line 393 of file analysis.py.
|
inherited |
Definition at line 397 of file analysis.py.
|
inherited |
Definition at line 385 of file analysis.py.
|
inherited |
Definition at line 23 of file analysis.py.
|
inherited |
Definition at line 73 of file analysis.py.