diff options
| author | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2019-01-02 16:22:43 +0100 |
|---|---|---|
| committer | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2019-01-11 07:21:49 +0100 |
| commit | a424a91dba4342eaa616fcb2fc5a3659784a4565 (patch) | |
| tree | c07145bd0ce96c0cdeae5ad1a2f80132347a2b0d /miasm2/arch/msp430/ira.py | |
| parent | ba8308d7762e45db47c01937c8334ffac29ac0ac (diff) | |
| download | miasm-a424a91dba4342eaa616fcb2fc5a3659784a4565.tar.gz miasm-a424a91dba4342eaa616fcb2fc5a3659784a4565.zip | |
MSP430: Explicit flags
Diffstat (limited to 'miasm2/arch/msp430/ira.py')
| -rw-r--r-- | miasm2/arch/msp430/ira.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/miasm2/arch/msp430/ira.py b/miasm2/arch/msp430/ira.py index 2a850d82..5b19956e 100644 --- a/miasm2/arch/msp430/ira.py +++ b/miasm2/arch/msp430/ira.py @@ -2,7 +2,8 @@ from miasm2.ir.analysis import ira from miasm2.arch.msp430.sem import ir_msp430 - +from miasm2.ir.ir import AssignBlock +from miasm2.expression.expression import * class ir_a_msp430_base(ir_msp430, ira): @@ -10,6 +11,15 @@ class ir_a_msp430_base(ir_msp430, ira): ir_msp430.__init__(self, loc_db) self.ret_reg = self.arch.regs.R15 + def call_effects(self, addr, instr): + call_assignblk = AssignBlock( + [ + ExprAssign(self.ret_reg, ExprOp('call_func_ret', addr, self.sp, self.arch.regs.R15)), + ExprAssign(self.sp, ExprOp('call_func_stack', addr, self.sp)) + ], + instr + ) + return [call_assignblk], [] class ir_a_msp430(ir_a_msp430_base): |