about summary refs log tree commit diff stats
path: root/src/emu/x64run.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/x64run.c')
-rw-r--r--src/emu/x64run.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/emu/x64run.c b/src/emu/x64run.c
index d1a37337..7f933920 100644
--- a/src/emu/x64run.c
+++ b/src/emu/x64run.c
@@ -2043,9 +2043,16 @@ x64emurun:
         case 0xF4:                      /* HLT */
             // this is a privilege opcode...
             #ifndef TEST_INTERPRETER
-            EmitSignal(emu, X64_SIGSEGV, (void*)R_RIP, 0xbad0);
-            STEP;
+            if (!box64_unittest_mode) {
+                EmitSignal(emu, X64_SIGSEGV, (void*)R_RIP, 0xbad0);
+                STEP;
+            } else
             #endif
+            {
+                printf_log(LOG_DEBUG, "HLT encountered in interpreter, exiting\n");
+                emu->quit = 1;
+                goto fini;
+            }
             break;
         case 0xF5:                      /* CMC */
             CHECK_FLAGS(emu);