about summary refs log tree commit diff stats
path: root/src/dynarec/dynarec_native_pass.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/dynarec/dynarec_native_pass.c')
-rw-r--r--src/dynarec/dynarec_native_pass.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/dynarec/dynarec_native_pass.c b/src/dynarec/dynarec_native_pass.c
index bf30503c..99cb2449 100644
--- a/src/dynarec/dynarec_native_pass.c
+++ b/src/dynarec/dynarec_native_pass.c
@@ -14,6 +14,7 @@
 #include "x64trace.h"
 #include "dynablock.h"
 #include "dynarec_native.h"
+#include "dynablock_private.h"
 #include "custommem.h"
 #include "elfloader.h"
 #include "x64test.h"
@@ -114,6 +115,10 @@ uintptr_t native_pass(dynarec_native_t* dyn, uintptr_t addr, int alternate, int
         dyn->f.dfnone_here = 0;
         NEW_INST;
         MESSAGE(LOG_DUMP, "New Instruction %s:%p, native:%p\n", is32bits?"x86":"x64",(void*)addr, (void*)dyn->block);
+        #ifdef ARCH_NOP
+        if(dyn->insts[ninst].x64.alive && dyn->insts[ninst].x64.self_loop)
+            CALLRET_LOOP();
+        #endif
         if(!ninst) {
             GOTEST(x1, x2);
         }