diff options
Diffstat (limited to 'miasm2/arch')
| -rw-r--r-- | miasm2/arch/aarch64/sem.py | 2 | ||||
| -rw-r--r-- | miasm2/arch/mips32/ira.py | 10 | ||||
| -rw-r--r-- | miasm2/arch/mips32/jit.py | 2 | ||||
| -rw-r--r-- | miasm2/arch/x86/ira.py | 4 | ||||
| -rw-r--r-- | miasm2/arch/x86/sem.py | 2 |
5 files changed, 11 insertions, 9 deletions
diff --git a/miasm2/arch/aarch64/sem.py b/miasm2/arch/aarch64/sem.py index edc6e3a5..599cdc98 100644 --- a/miasm2/arch/aarch64/sem.py +++ b/miasm2/arch/aarch64/sem.py @@ -793,7 +793,7 @@ class ir_aarch64l(IntermediateRepresentation): dst = self.expr_fix_regs_for_mode(dst) src = self.expr_fix_regs_for_mode(src) new_assignblk[dst] = src - irbloc.irs[idx] = AssignBlock(new_assignblk) + irbloc.irs[idx] = AssignBlock(new_assignblk, assignblk.instr) if irbloc.dst is not None: irbloc.dst = self.expr_fix_regs_for_mode(irbloc.dst) diff --git a/miasm2/arch/mips32/ira.py b/miasm2/arch/mips32/ira.py index 92af5cc5..a2eab4fb 100644 --- a/miasm2/arch/mips32/ira.py +++ b/miasm2/arch/mips32/ira.py @@ -31,18 +31,18 @@ class ir_a_mips32l(ir_mips32l, ira): if expr_is_label(lr_val): lr_val = ExprInt(lr_val.name.offset, 32) - line = block.lines[-2] - if lr_val.arg != line.offset + 8: + instr = block.irs[-2].instr + if lr_val.arg != instr.offset + 8: raise ValueError("Wrong arg") # CALL lbl = block.get_next() new_lbl = self.gen_label() - irs = self.call_effects(pc_val, line) + irs = self.call_effects(pc_val, instr) irs.append(AssignBlock([ExprAff(self.IRDst, - ExprId(lbl, size=self.pc.size))])) + ExprId(lbl, size=self.pc.size))], + instr)) nblock = IRBlock(new_lbl, irs) - nblock.lines = [line] * len(irs) self.blocks[new_lbl] = nblock irb.dst = ExprId(new_lbl, size=self.pc.size) diff --git a/miasm2/arch/mips32/jit.py b/miasm2/arch/mips32/jit.py index 939a0e50..9b46589f 100644 --- a/miasm2/arch/mips32/jit.py +++ b/miasm2/arch/mips32/jit.py @@ -57,7 +57,7 @@ class mipsCGen(CGen): self.ir_arch.get_next_instr(instr)) irblock.dst = m2_expr.ExprId( self.ir_arch.get_next_instr(instr)) - irblock.irs[idx] = AssignBlock(new_assignblock) + irblock.irs[idx] = AssignBlock(new_assignblock, assignblock.instr) return irblocks_list diff --git a/miasm2/arch/x86/ira.py b/miasm2/arch/x86/ira.py index 1fcaaa52..d0bebfb6 100644 --- a/miasm2/arch/x86/ira.py +++ b/miasm2/arch/x86/ira.py @@ -53,7 +53,9 @@ class ir_a_x86_64(ir_x86_64, ir_a_x86_16): )), ExprAff(self.sp, ExprOp('call_func_stack', ad, self.sp)), - ])] + ], + instr + )] def sizeof_char(self): return 8 diff --git a/miasm2/arch/x86/sem.py b/miasm2/arch/x86/sem.py index b0cdc280..0312891b 100644 --- a/miasm2/arch/x86/sem.py +++ b/miasm2/arch/x86/sem.py @@ -4617,7 +4617,7 @@ class ir_x86_16(IntermediateRepresentation): dst = self.expr_fix_regs_for_mode(dst, mode) src = self.expr_fix_regs_for_mode(src, mode) new_assignblk[dst] = src - irbloc.irs[idx] = AssignBlock(new_assignblk) + irbloc.irs[idx] = AssignBlock(new_assignblk, assignblk.instr) if irbloc.dst is not None: irbloc.dst = self.expr_fix_regs_for_mode(irbloc.dst, mode) |