diff options
Diffstat (limited to 'src/dynarec')
| -rw-r--r-- | src/dynarec/dynarec_native_pass.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/dynarec/dynarec_native_pass.c b/src/dynarec/dynarec_native_pass.c index f7d02f13..5fdcc11b 100644 --- a/src/dynarec/dynarec_native_pass.c +++ b/src/dynarec/dynarec_native_pass.c @@ -256,7 +256,7 @@ uintptr_t native_pass(dynarec_native_t* dyn, uintptr_t addr, int alternate, int } #else // check if block need to be stopped, because it's a 00 00 opcode (unreadeable is already checked earlier) - if((ok>0) && !dyn->forward && !(*(uint32_t*)addr)) { + if((ok>0) && !dyn->forward && (!(getProtection(addr)&PROT_READ) || !(*(uint32_t*)addr))) { if (dyn->need_dump) dynarec_log(LOG_NONE, "Stopping block at %p reason: %s\n", (void*)addr, "Next opcode is 00 00 00 00"); ok = 0; need_epilog = 1; |