miasm
Reverse engineering framework
miasm.arch.mips32.jit.mipsCGen Class Reference
Inheritance diagram for miasm.arch.mips32.jit.mipsCGen:
Collaboration diagram for miasm.arch.mips32.jit.mipsCGen:

Public Member Functions

def __init__ (self, ir_arch)
 
def block2assignblks (self, block)
 
def gen_finalize (self, block)
 
- Public Member Functions inherited from miasm.jitter.codegen.CGen
def init_arch_C (self)
 
def dst_to_c (self, src)
 
def patch_c_id (self, expr)
 
def id_to_c (self, expr)
 
def add_label_index (self, dst2index, loc_key)
 
def assignblk_to_irbloc (self, instr, assignblk)
 
def add_local_var (self, dst_var, dst_index, expr)
 
def get_mem_prefetch (self, assignblk)
 
def gen_c_assignments (self, assignblk)
 
def gen_check_memory_exception (self, address)
 
def gen_check_cpu_exception (self, address)
 
def traverse_expr_dst (self, expr, dst2index)
 
def gen_assignblk_dst (self, dst)
 
def gen_post_instr_checks (self, attrib)
 
def gen_pre_code (self, instr_attrib)
 
def gen_post_code (self, attrib, pc_value)
 
def gen_goto_code (self, attrib, instr_offsets, dst)
 
def gen_dst_goto (self, attrib, instr_offsets, dst2index)
 
def gen_c_code (self, attrib, c_dst, c_assignmnts)
 
def get_caracteristics (self, assignblk, attrib)
 
def get_attributes (self, instr, irblocks, log_mn=False, log_regs=False)
 
def gen_bad_block (self)
 
def get_block_post_label (self, block)
 
def gen_init (self, block)
 
def gen_irblock (self, instr_attrib, attributes, instr_offsets, irblock)
 
def gen_c (self, block, log_mn=False, log_regs=False)
 

Public Attributes

 delay_slot_dst
 
 delay_slot_set
 
- Public Attributes inherited from miasm.jitter.codegen.CGen
 ir_arch
 
 PC
 
 translator
 
 id_to_c_id
 
 C_PC
 

Static Public Attributes

string CODE_INIT
 
string CODE_RETURN_NO_EXCEPTION
 
- Static Public Attributes inherited from miasm.jitter.codegen.CGen
string CODE_EXCEPTION_MEM_AT_INSTR
 
string CODE_EXCEPTION_AT_INSTR
 
string CODE_RETURN_EXCEPTION
 
string CODE_RETURN_NO_EXCEPTION
 
string CODE_CPU_EXCEPTION_POST_INSTR
 
string CODE_VM_EXCEPTION_POST_INSTR
 
string CODE_INIT
 
string CODE_BAD_BLOCK
 

Constructor & Destructor Documentation

◆ __init__()

def miasm.arch.mips32.jit.mipsCGen.__init__ (   self,
  ir_arch 
)

Reimplemented from miasm.jitter.codegen.CGen.

Member Function Documentation

◆ block2assignblks()

def miasm.arch.mips32.jit.mipsCGen.block2assignblks (   self,
  block 
)
Return the list of irblocks for a native @block
@block: AsmBlock

Reimplemented from miasm.jitter.codegen.CGen.

Here is the caller graph for this function:

◆ gen_finalize()

def miasm.arch.mips32.jit.mipsCGen.gen_finalize (   self,
  block 
)
Generate the C code for the final block instruction

Reimplemented from miasm.jitter.codegen.CGen.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ CODE_INIT

string miasm.arch.mips32.jit.mipsCGen.CODE_INIT
static
Initial value:
= CGen.CODE_INIT + r"""
unsigned int branch_dst_pc;
unsigned int branch_dst_irdst;
unsigned int branch_dst_set=0;
"""

◆ CODE_RETURN_NO_EXCEPTION

string miasm.arch.mips32.jit.mipsCGen.CODE_RETURN_NO_EXCEPTION
static
Initial value:
= r"""
%s:
if (branch_dst_set) {
%s = %s;
BlockDst->address = %s;
} else {
BlockDst->address = %s;
}
return JIT_RET_NO_EXCEPTION;
"""

◆ delay_slot_dst

miasm.arch.mips32.jit.mipsCGen.delay_slot_dst

◆ delay_slot_set

miasm.arch.mips32.jit.mipsCGen.delay_slot_set

The documentation for this class was generated from the following file: