diff options
| author | serpilliere <serpilliere@users.noreply.github.com> | 2018-07-05 18:36:01 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-07-05 18:36:01 +0200 |
| commit | 34aac8a90f77d461d9dee0b9cf0af3c2bff4d42f (patch) | |
| tree | 359f5947d1c0b26eb9a39e2f9b8244d171348feb /miasm2/arch/arm/ira.py | |
| parent | 6b6f5ab803d4f1c4d6e78c756f326e99281bc8b8 (diff) | |
| parent | dcb1d68179c3802daeeef46ef63593f59aee64e9 (diff) | |
| download | miasm-34aac8a90f77d461d9dee0b9cf0af3c2bff4d42f.tar.gz miasm-34aac8a90f77d461d9dee0b9cf0af3c2bff4d42f.zip | |
Merge pull request #738 from marilafo/fix_offset_branch_armtl
armtl change branch pc offset
Diffstat (limited to 'miasm2/arch/arm/ira.py')
| -rw-r--r-- | miasm2/arch/arm/ira.py | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/miasm2/arch/arm/ira.py b/miasm2/arch/arm/ira.py index 0c84c919..7b26a6e4 100644 --- a/miasm2/arch/arm/ira.py +++ b/miasm2/arch/arm/ira.py @@ -2,7 +2,8 @@ from miasm2.ir.analysis import ira from miasm2.arch.arm.sem import ir_arml, ir_armtl, ir_armb, ir_armtb - +from miasm2.expression.expression import ExprAff, ExprOp +from miasm2.ir.ir import AssignBlock class ir_a_arml_base(ir_arml, ira): def __init__(self, loc_db=None): @@ -21,6 +22,19 @@ class ir_a_arml(ir_a_arml_base): ir_a_arml_base.__init__(self, loc_db) self.ret_reg = self.arch.regs.R0 + def call_effects(self, ad, instr): + return [AssignBlock([ExprAff(self.ret_reg, ExprOp('call_func_ret', ad, + self.arch.regs.R0, + self.arch.regs.R1, + self.arch.regs.R2, + self.arch.regs.R3, + )), + ExprAff(self.sp, ExprOp('call_func_stack', + ad, self.sp)), + ], + instr + )] + def get_out_regs(self, _): return set([self.ret_reg, self.sp]) |