about summary refs log tree commit diff stats
path: root/example/expression/asm_to_ir.py
diff options
context:
space:
mode:
authorCamille Mougey <commial@gmail.com>2018-07-05 17:52:12 +0200
committerGitHub <noreply@github.com>2018-07-05 17:52:12 +0200
commita3961b92c47a9cc47510601b57267822fcbdcbdf (patch)
treeac39a9859983baff15d52533829d95ffa760f633 /example/expression/asm_to_ir.py
parentf5fd096d35a9b3811097c40f553c90d3036cc035 (diff)
parent045182c94d6bb1c9417b612d88fd469e0f87872f (diff)
downloadmiasm-a3961b92c47a9cc47510601b57267822fcbdcbdf.tar.gz
miasm-a3961b92c47a9cc47510601b57267822fcbdcbdf.zip
Merge pull request #784 from serpilliere/split_ir_graph
Split ir graph
Diffstat (limited to 'example/expression/asm_to_ir.py')
-rw-r--r--example/expression/asm_to_ir.py16
1 files changed, 7 insertions, 9 deletions
diff --git a/example/expression/asm_to_ir.py b/example/expression/asm_to_ir.py
index 6db07e9b..7036d960 100644
--- a/example/expression/asm_to_ir.py
+++ b/example/expression/asm_to_ir.py
@@ -7,6 +7,7 @@ from miasm2.core import asmblock
 from miasm2.arch.x86.ira import ir_a_x86_32
 from miasm2.analysis.data_flow import dead_simp
 
+
 # First, asm code
 asmcfg, loc_db = parse_asm.parse_txt(mn_x86, 32, '''
 main:
@@ -35,22 +36,19 @@ patches = asmblock.asm_resolve_final(mn_x86, asmcfg, loc_db)
 
 # Translate to IR
 ir_arch = ir_a_x86_32(loc_db)
-for block in asmcfg.blocks:
-    print 'add block'
-    print block
-    ir_arch.add_block(block)
+ircfg = ir_arch.new_ircfg_from_asmcfg(asmcfg)
 
 # Display IR
-for lbl, irblock in ir_arch.blocks.items():
+for lbl, irblock in ircfg.blocks.items():
     print irblock
 
 # Dead propagation
-open('graph.dot', 'w').write(ir_arch.graph.dot())
+open('graph.dot', 'w').write(ircfg.dot())
 print '*' * 80
-dead_simp(ir_arch)
-open('graph2.dot', 'w').write(ir_arch.graph.dot())
+dead_simp(ir_arch, ircfg)
+open('graph2.dot', 'w').write(ircfg.dot())
 
 # Display new IR
 print 'new ir blocks'
-for lbl, irblock in ir_arch.blocks.items():
+for lbl, irblock in ircfg.blocks.items():
     print irblock