about summary refs log tree commit diff stats
path: root/miasm2/jitter/codegen.py
diff options
context:
space:
mode:
authorFabrice Desclaux <fabrice.desclaux@cea.fr>2017-05-07 20:10:38 +0200
committerFabrice Desclaux <fabrice.desclaux@cea.fr>2017-05-24 12:23:20 +0200
commit11d55f727529de9bbdf88f776584b3cbb7667c20 (patch)
treef36e8c5fd1baca6ec60b937c3eba068d74d96aa1 /miasm2/jitter/codegen.py
parentd3e5587207f68763ea483c0deeef160b3ebec155 (diff)
downloadmiasm-11d55f727529de9bbdf88f776584b3cbb7667c20.tar.gz
miasm-11d55f727529de9bbdf88f776584b3cbb7667c20.zip
IR: Make IRBlock immutable
Diffstat (limited to 'miasm2/jitter/codegen.py')
-rw-r--r--miasm2/jitter/codegen.py12
1 files changed, 5 insertions, 7 deletions
diff --git a/miasm2/jitter/codegen.py b/miasm2/jitter/codegen.py
index 15f172ee..61a9a784 100644
--- a/miasm2/jitter/codegen.py
+++ b/miasm2/jitter/codegen.py
@@ -577,18 +577,16 @@ class CGen(object):
             instr_attrib, irblocks_attributes = self.get_attributes(instr, irblocks, log_mn, log_regs)
 
             for index, irblock in enumerate(irblocks):
-                self.ir_arch.irbloc_fix_regs_for_mode(
-                    irblock, self.ir_arch.attrib)
-
-                if irblock.label.offset is None:
+                new_irblock = self.ir_arch.irbloc_fix_regs_for_mode(irblock, self.ir_arch.attrib)
+                if new_irblock.label.offset is None:
                     out.append("%-40s // %.16X %s" %
-                               (str(irblock.label.name) + ":", instr.offset, instr))
+                               (str(new_irblock.label.name) + ":", instr.offset, instr))
                 else:
                     out.append("%-40s // %.16X %s" %
-                               (self.label_to_jitlabel(irblock.label) + ":", instr.offset, instr))
+                               (self.label_to_jitlabel(new_irblock.label) + ":", instr.offset, instr))
                 if index == 0:
                     out += self.gen_pre_code(instr_attrib)
-                out += self.gen_irblock(instr_attrib, irblocks_attributes[index], instr_offsets, irblock)
+                out += self.gen_irblock(instr_attrib, irblocks_attributes[index], instr_offsets, new_irblock)
 
         out += self.gen_finalize(block)
         return ['\t' + line for line in out]