diff options
| author | Camille Mougey <commial@gmail.com> | 2018-07-05 17:52:12 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-07-05 17:52:12 +0200 |
| commit | a3961b92c47a9cc47510601b57267822fcbdcbdf (patch) | |
| tree | ac39a9859983baff15d52533829d95ffa760f633 /miasm2/arch/arm/sem.py | |
| parent | f5fd096d35a9b3811097c40f553c90d3036cc035 (diff) | |
| parent | 045182c94d6bb1c9417b612d88fd469e0f87872f (diff) | |
| download | miasm-a3961b92c47a9cc47510601b57267822fcbdcbdf.tar.gz miasm-a3961b92c47a9cc47510601b57267822fcbdcbdf.zip | |
Merge pull request #784 from serpilliere/split_ir_graph
Split ir graph
Diffstat (limited to 'miasm2/arch/arm/sem.py')
| -rw-r--r-- | miasm2/arch/arm/sem.py | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/miasm2/arch/arm/sem.py b/miasm2/arch/arm/sem.py index a3d12514..00250157 100644 --- a/miasm2/arch/arm/sem.py +++ b/miasm2/arch/arm/sem.py @@ -1572,8 +1572,10 @@ class ir_arml(IntermediateRepresentation): assignments = [] loc = loc_do - split = self.add_instr_to_irblock(block, instr, assignments, - irblocks, gen_pc_updt) + split = self.add_instr_to_current_state( + instr, block, assignments, + irblocks, gen_pc_updt + ) if split: raise NotImplementedError("Unsupported instr in IT block (%s)" % instr) @@ -1587,7 +1589,7 @@ class ir_arml(IntermediateRepresentation): ir_blocks_all.append(irblocks) return index, ir_blocks_all - def add_block(self, block, gen_pc_updt=False): + def add_asmblock_to_ircfg(self, block, ircfg, gen_pc_updt=False): """ Add a native block to the current IR @block: native assembly block @@ -1613,8 +1615,10 @@ class ir_arml(IntermediateRepresentation): label = None continue - split = self.add_instr_to_irblock(block, instr, assignments, - ir_blocks_all, gen_pc_updt) + split = self.add_instr_to_current_state( + instr, block, assignments, + ir_blocks_all, gen_pc_updt + ) if split: ir_blocks_all.append(IRBlock(label, assignments)) label = None @@ -1622,9 +1626,9 @@ class ir_arml(IntermediateRepresentation): if label is not None: ir_blocks_all.append(IRBlock(label, assignments)) - new_ir_blocks_all = self.post_add_block(block, ir_blocks_all) + new_ir_blocks_all = self.post_add_asmblock_to_ircfg(block, ircfg, ir_blocks_all) for irblock in new_ir_blocks_all: - self.blocks[irblock.loc_key] = irblock + ircfg.add_irblock(irblock) return new_ir_blocks_all |