about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorLeslie Zhai <zhaixiang@loongson.cn>2024-12-05 20:03:06 +0800
committerGitHub <noreply@github.com>2024-12-05 20:03:06 +0800
commitc2d7dc573a2293b3143bf5ec551683198d725c7f (patch)
tree91409fa74f55f9eecd0a481a85a00de9f86d8b0f /src
parenta30433ea120ba502045782296db85bb27f643d6b (diff)
downloadbox64-c2d7dc573a2293b3143bf5ec551683198d725c7f.tar.gz
box64-c2d7dc573a2293b3143bf5ec551683198d725c7f.zip
[LA64_DYNAREC] Added HLT opcode (#2112)
Diffstat (limited to 'src')
-rw-r--r--src/dynarec/la64/dynarec_la64_00.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/dynarec/la64/dynarec_la64_00.c b/src/dynarec/la64/dynarec_la64_00.c
index 67891c7b..22310ce1 100644
--- a/src/dynarec/la64/dynarec_la64_00.c
+++ b/src/dynarec/la64/dynarec_la64_00.c
@@ -2253,6 +2253,17 @@ uintptr_t dynarec64_00(dynarec_la64_t* dyn, uintptr_t addr, uintptr_t ip, int ni
         case 0xF0:
             addr = dynarec64_F0(dyn, addr, ip, ninst, rex, rep, ok, need_epilog);
             break;
+        case 0xF4:
+            INST_NAME("HLT");
+            SETFLAGS(X_ALL, SF_SET_NODF); // Hack to set flags in "don't care" state
+            GETIP(ip);
+            STORE_XEMU_CALL();
+            CALL(native_priv, -1);
+            LOAD_XEMU_CALL();
+            jump_to_epilog(dyn, 0, xRIP, ninst);
+            *need_epilog = 0;
+            *ok = 0;
+            break;
         case 0xF6:
             nextop = F8;
             switch ((nextop >> 3) & 7) {