diff options
| author | Ajax <commial@gmail.com> | 2016-01-08 15:41:46 +0100 |
|---|---|---|
| committer | Ajax <commial@gmail.com> | 2016-01-08 16:06:24 +0100 |
| commit | adb97c99ad7e9e9a40480609b5633dc2e1e9b0ce (patch) | |
| tree | 3443160fb0c7f06b583a094b5b59d1d7c5369dda | |
| parent | ee293b843e56b77b9bfd1b01dc3ce94b5340a5d4 (diff) | |
| download | miasm-adb97c99ad7e9e9a40480609b5633dc2e1e9b0ce.tar.gz miasm-adb97c99ad7e9e9a40480609b5633dc2e1e9b0ce.zip | |
MnemoDis: enter atomic mode for a disasm boost
| -rw-r--r-- | miasm2/core/asmbloc.py | 1 | ||||
| -rw-r--r-- | miasm2/core/cpu.py | 5 |
2 files changed, 5 insertions, 1 deletions
diff --git a/miasm2/core/asmbloc.py b/miasm2/core/asmbloc.py index 71e577cf..fb910b3a 100644 --- a/miasm2/core/asmbloc.py +++ b/miasm2/core/asmbloc.py @@ -375,7 +375,6 @@ def dis_bloc(mnemo, pool_bin, cur_bloc, offset, job_done, symbol_pool, off_i = offset try: - # print repr(pool_bin.getbytes(offset, 4)) instr = mnemo.dis(pool_bin, attrib, offset) except (Disasm_Exception, IOError), e: log_asmbloc.warning(e) diff --git a/miasm2/core/cpu.py b/miasm2/core/cpu.py index cfbc1dfb..f2c4c3b4 100644 --- a/miasm2/core/cpu.py +++ b/miasm2/core/cpu.py @@ -1093,6 +1093,8 @@ class cls_mn(object): if not isinstance(bs_o, bin_stream): bs_o = bin_stream_str(bs_o) + bs_o.enter_atomic_mode() + offset_o = offset pre_dis_info, bs, mode, offset, prefix_len = cls.pre_dis( bs_o, mode_o, offset) @@ -1180,6 +1182,9 @@ class cls_mn(object): alias = True out.append(instr) out_c.append(c) + + bs_o.leave_atomic_mode() + if not out: raise Disasm_Exception('cannot disasm at %X' % offset_o) if len(out) != 1: |