about summary refs log tree commit diff stats
path: root/miasm2/arch/mips32/ira.py
diff options
context:
space:
mode:
authorFabrice Desclaux <fabrice.desclaux@cea.fr>2018-07-18 07:44:59 +0200
committerFabrice Desclaux <fabrice.desclaux@cea.fr>2018-07-18 07:45:08 +0200
commit7d2227eeb09a0ec43a837082570a0cb955651daa (patch)
tree04780ca818378f42bc91efe2fc2d88a2d77692f7 /miasm2/arch/mips32/ira.py
parentcf74092981e4f3fa7bed9ce182a38e570653a138 (diff)
downloadmiasm-7d2227eeb09a0ec43a837082570a0cb955651daa.tar.gz
miasm-7d2227eeb09a0ec43a837082570a0cb955651daa.zip
IR/Analysis: call_effects can add extra blocks
Diffstat (limited to 'miasm2/arch/mips32/ira.py')
-rw-r--r--miasm2/arch/mips32/ira.py5
1 files changed, 3 insertions, 2 deletions
diff --git a/miasm2/arch/mips32/ira.py b/miasm2/arch/mips32/ira.py
index 3caa8b12..def75750 100644
--- a/miasm2/arch/mips32/ira.py
+++ b/miasm2/arch/mips32/ira.py
@@ -37,11 +37,12 @@ class ir_a_mips32l(ir_mips32l, ira):
             # CALL
             lbl = block.get_next()
             new_lbl = self.gen_label()
-            irs = self.call_effects(pc_val, instr)
+            call_assignblks, extra_irblocks = self.call_effects(pc_val, instr)
+            ir_blocks += extra_irblocks
             irs.append(AssignBlock([ExprAff(self.IRDst,
                                             ExprId(lbl, size=self.pc.size))],
                                    instr))
-            new_irblocks.append(IRBlock(new_lbl, irs))
+            new_irblocks.append(IRBlock(new_lbl, call_assignblks))
             new_irblocks.append(irb.set_dst(ExprId(new_lbl, size=self.pc.size)))
         return new_irblocks