miasm
Reverse engineering framework
miasm.jitter.llvmconvert.LLVMContext Class Reference
Inheritance diagram for miasm.jitter.llvmconvert.LLVMContext:
Collaboration diagram for miasm.jitter.llvmconvert.LLVMContext:

Public Member Functions

def __init__ (self, name="mod")
 
def canonize_label_name (self, label)
 
def optimise_level (self, level=2)
 
def init_exec_engine (self)
 
def new_module (self, name="mod")
 
def get_execengine (self)
 
def get_passmanager (self)
 
def get_module (self)
 
def add_shared_library (self, filename)
 
def add_fc (self, fc, readonly=False)
 
def add_op (self)
 
def memory_lookup (self, func, addr, size)
 
def memory_write (self, func, addr, size, value)
 

Public Attributes

 target_machine
 
 pass_manager
 
 exec_engine
 
 mod
 

Static Public Attributes

dictionary known_fc = {}
 

Constructor & Destructor Documentation

◆ __init__()

def miasm.jitter.llvmconvert.LLVMContext.__init__ (   self,
  name = "mod" 
)

Member Function Documentation

◆ add_fc()

def miasm.jitter.llvmconvert.LLVMContext.add_fc (   self,
  fc,
  readonly = False 
)
Here is the caller graph for this function:

◆ add_op()

def miasm.jitter.llvmconvert.LLVMContext.add_op (   self)
Here is the call graph for this function:

◆ add_shared_library()

def miasm.jitter.llvmconvert.LLVMContext.add_shared_library (   self,
  filename 
)
Here is the caller graph for this function:

◆ canonize_label_name()

def miasm.jitter.llvmconvert.LLVMContext.canonize_label_name (   self,
  label 
)
Canonize @label names to a common form.
@label: str or asmlabel instance

◆ get_execengine()

def miasm.jitter.llvmconvert.LLVMContext.get_execengine (   self)

◆ get_module()

def miasm.jitter.llvmconvert.LLVMContext.get_module (   self)

◆ get_passmanager()

def miasm.jitter.llvmconvert.LLVMContext.get_passmanager (   self)

◆ init_exec_engine()

def miasm.jitter.llvmconvert.LLVMContext.init_exec_engine (   self)

◆ memory_lookup()

def miasm.jitter.llvmconvert.LLVMContext.memory_lookup (   self,
  func,
  addr,
  size 
)
Perform a memory lookup at @addr of size @size (in bit)

Reimplemented in miasm.jitter.llvmconvert.LLVMContext_IRCompilation, and miasm.jitter.llvmconvert.LLVMContext_JIT.

◆ memory_write()

def miasm.jitter.llvmconvert.LLVMContext.memory_write (   self,
  func,
  addr,
  size,
  value 
)
Perform a memory write at @addr of size @size (in bit) with LLVM IR @value

Reimplemented in miasm.jitter.llvmconvert.LLVMContext_IRCompilation, and miasm.jitter.llvmconvert.LLVMContext_JIT.

◆ new_module()

def miasm.jitter.llvmconvert.LLVMContext.new_module (   self,
  name = "mod" 
)
Create a module, with needed functions

Reimplemented in miasm.jitter.llvmconvert.LLVMContext_JIT.

◆ optimise_level()

def miasm.jitter.llvmconvert.LLVMContext.optimise_level (   self,
  level = 2 
)
Set the optimisation level to @level from 0 to 2
0: non-optimized
2: optimized

Member Data Documentation

◆ exec_engine

miasm.jitter.llvmconvert.LLVMContext.exec_engine

◆ known_fc

dictionary miasm.jitter.llvmconvert.LLVMContext.known_fc = {}
static

◆ mod

miasm.jitter.llvmconvert.LLVMContext.mod

◆ pass_manager

miasm.jitter.llvmconvert.LLVMContext.pass_manager

◆ target_machine

miasm.jitter.llvmconvert.LLVMContext.target_machine

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