diff options
| author | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2017-02-14 19:58:57 +0100 |
|---|---|---|
| committer | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2017-03-13 14:10:35 +0100 |
| commit | e94fb099ce7cf80f57d21306de4c2b59ce7b3006 (patch) | |
| tree | 5c3f23edb7451622c21b5bce32b18bc87b2e10df /miasm2/arch/x86/ira.py | |
| parent | 73828c4be50c21eae080d0e2150093a8641baab0 (diff) | |
| download | miasm-e94fb099ce7cf80f57d21306de4c2b59ce7b3006.tar.gz miasm-e94fb099ce7cf80f57d21306de4c2b59ce7b3006.zip | |
Arch: clean ira/jit
Diffstat (limited to '')
| -rw-r--r-- | miasm2/arch/x86/ira.py | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/miasm2/arch/x86/ira.py b/miasm2/arch/x86/ira.py index 5b80f5d5..1ff4cbe8 100644 --- a/miasm2/arch/x86/ira.py +++ b/miasm2/arch/x86/ira.py @@ -1,8 +1,6 @@ #-*- coding:utf-8 -*- -from miasm2.expression.expression import ExprAff, ExprOp, ExprId -from miasm2.core.graph import DiGraph -from miasm2.core.asmbloc import expr_is_label +from miasm2.expression.expression import ExprAff, ExprOp from miasm2.ir.ir import AssignBlock from miasm2.ir.analysis import ira from miasm2.arch.x86.sem import ir_x86_16, ir_x86_32, ir_x86_64 @@ -15,21 +13,21 @@ class ir_a_x86_16(ir_x86_16, ira): self.ret_reg = self.arch.regs.AX # for test XXX TODO - def set_dead_regs(self, b): - b.rw[-1][1].add(self.arch.regs.zf) - b.rw[-1][1].add(self.arch.regs.of) - b.rw[-1][1].add(self.arch.regs.pf) - b.rw[-1][1].add(self.arch.regs.cf) - b.rw[-1][1].add(self.arch.regs.nf) - b.rw[-1][1].add(self.arch.regs.af) - - def get_out_regs(self, b): + def set_dead_regs(self, irblock): + irblock.rw[-1][1].add(self.arch.regs.zf) + irblock.rw[-1][1].add(self.arch.regs.of) + irblock.rw[-1][1].add(self.arch.regs.pf) + irblock.rw[-1][1].add(self.arch.regs.cf) + irblock.rw[-1][1].add(self.arch.regs.nf) + irblock.rw[-1][1].add(self.arch.regs.af) + + def get_out_regs(self, _): return set([self.ret_reg, self.sp]) def add_unused_regs(self): - leaves = [self.blocs[n] for n in self.g.leafs()] - for b in leaves: - self.set_dead_regs(b) + leaves = [self.blocs[label] for label in self.g.leafs()] + for irblock in leaves: + self.set_dead_regs(irblock) class ir_a_x86_32(ir_x86_32, ir_a_x86_16): |