diff options
| author | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2016-07-19 13:29:54 +0200 |
|---|---|---|
| committer | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2016-08-31 18:34:24 +0200 |
| commit | 39b1c59354395006deebcc5a93455e23b9596577 (patch) | |
| tree | 6328464db4d3956c9d72c3b01bc21a8f9887a06f /miasm2/jitter/jitcore.py | |
| parent | e30034c94f45a21959974a4e74bff4523dfb7fa1 (diff) | |
| download | miasm-39b1c59354395006deebcc5a93455e23b9596577.tar.gz miasm-39b1c59354395006deebcc5a93455e23b9596577.zip | |
Jitter: Use mem access for automod
Diffstat (limited to '')
| -rw-r--r-- | miasm2/jitter/jitcore.py | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/miasm2/jitter/jitcore.py b/miasm2/jitter/jitcore.py index 42e6d7a9..04bd707a 100644 --- a/miasm2/jitter/jitcore.py +++ b/miasm2/jitter/jitcore.py @@ -51,8 +51,6 @@ class JitCore(object): self.blocs_mem_interval = interval() self.disasm_cb = None self.split_dis = set() - self.addr_mod = interval() - self.options = {"jit_maxline": 50 # Maximum number of line jitted } @@ -261,12 +259,21 @@ class JitCore(object): return modified_blocs - def updt_automod_code(self, vm): - """Remove code jitted in range self.addr_mod + def updt_automod_code_range(self, vm, mem_range): + """Remove jitted code in range @mem_range @vm: VmMngr instance + @mem_range: list of start/stop addresses """ - for addr_start, addr_stop in vm.get_memory_write(): + for addr_start, addr_stop in mem_range: self.del_bloc_in_range(addr_start, addr_stop) self.__updt_jitcode_mem_range(vm) - self.addr_mod = interval() vm.reset_memory_access() + + def updt_automod_code(self, vm): + """Remove jitted code updated by memory write + @vm: VmMngr instance + """ + mem_range = [] + for addr_start, addr_stop in vm.get_memory_write(): + mem_range.append((addr_start, addr_stop)) + self.updt_automod_code_range(vm, mem_range) |