diff options
Diffstat (limited to 'miasm/arch/x86/lifter_model_call.py')
| -rw-r--r-- | miasm/arch/x86/lifter_model_call.py | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/miasm/arch/x86/lifter_model_call.py b/miasm/arch/x86/lifter_model_call.py deleted file mode 100644 index e75f8c69..00000000 --- a/miasm/arch/x86/lifter_model_call.py +++ /dev/null @@ -1,80 +0,0 @@ -#-*- coding:utf-8 -*- - -from miasm.expression.expression import ExprAssign, ExprOp -from miasm.ir.ir import AssignBlock -from miasm.ir.analysis import LifterModelCall -from miasm.arch.x86.sem import Lifter_X86_16, Lifter_X86_32, Lifter_X86_64 - - -class LifterModelCall_x86_16(Lifter_X86_16, LifterModelCall): - - def __init__(self, loc_db): - Lifter_X86_16.__init__(self, loc_db) - self.ret_reg = self.arch.regs.AX - - def get_out_regs(self, _): - return set([self.ret_reg, self.sp]) - -class LifterModelCall_x86_32(Lifter_X86_32, LifterModelCall_x86_16): - - def __init__(self, loc_db): - Lifter_X86_32.__init__(self, loc_db) - self.ret_reg = self.arch.regs.EAX - - def sizeof_char(self): - return 8 - - def sizeof_short(self): - return 16 - - def sizeof_int(self): - return 32 - - def sizeof_long(self): - return 32 - - def sizeof_pointer(self): - return 32 - - -class LifterModelCall_x86_64(Lifter_X86_64, LifterModelCall_x86_16): - - def __init__(self, loc_db): - Lifter_X86_64.__init__(self, loc_db) - self.ret_reg = self.arch.regs.RAX - - def call_effects(self, ad, instr): - call_assignblk = AssignBlock( - [ - ExprAssign( - self.ret_reg, - ExprOp( - 'call_func_ret', - ad, - self.sp, - self.arch.regs.RCX, - self.arch.regs.RDX, - self.arch.regs.R8, - self.arch.regs.R9, - ) - ), - ExprAssign(self.sp, ExprOp('call_func_stack', ad, self.sp)), - ], - instr - ) - return [call_assignblk], [] - - def sizeof_char(self): - return 8 - - def sizeof_short(self): - return 16 - - def sizeof_int(self): - return 32 - - def sizeof_long(self): - return 64 - - def sizeof_pointer(self): - return 64 |