about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-02-01 20:08:50 +0100
committerptitSeb <sebastien.chev@gmail.com>2024-02-01 20:09:22 +0100
commit7781bfcbac18e77e1d0c624cc33491d26cd0beb9 (patch)
treefb2b60f5e86c9856cd270074fba9d3ff15b81e31 /src
parent0fd81e067ff4738d09528411ca864fd552f4c6ff (diff)
downloadbox64-7781bfcbac18e77e1d0c624cc33491d26cd0beb9.tar.gz
box64-7781bfcbac18e77e1d0c624cc33491d26cd0beb9.zip
Added 0F 0E opcode support ([ARM64_DYNAREC] too)
Diffstat (limited to 'src')
-rw-r--r--src/dynarec/arm64/dynarec_arm64_0f.c11
-rw-r--r--src/emu/x64run0f.c5
2 files changed, 16 insertions, 0 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_0f.c b/src/dynarec/arm64/dynarec_arm64_0f.c
index 89faf7d5..a492f285 100644
--- a/src/dynarec/arm64/dynarec_arm64_0f.c
+++ b/src/dynarec/arm64/dynarec_arm64_0f.c
@@ -165,6 +165,17 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
                     DEFAULT;

             }

             break;

+        case 0x0E:

+            INST_NAME("femms");

+            SETFLAGS(X_ALL, SF_SET);    // Hack to set flags in "don't care" state

+            GETIP(ip);

+            STORE_XEMU_CALL(xRIP);

+            CALL(native_ud, -1);

+            LOAD_XEMU_CALL(xRIP);

+            jump_to_epilog(dyn, 0, xRIP, ninst);

+            *need_epilog = 0;

+            *ok = 0;

+            break;

 

         case 0x10:

             INST_NAME("MOVUPS Gx,Ex");

diff --git a/src/emu/x64run0f.c b/src/emu/x64run0f.c
index 6fe11ca9..282c0baf 100644
--- a/src/emu/x64run0f.c
+++ b/src/emu/x64run0f.c
@@ -156,6 +156,11 @@ uintptr_t Run0F(x64emu_t *emu, rex_t rex, uintptr_t addr, int *step)
                     return 0;

             }

             break;

+        case 0x0E:                      /* FEMMS */

+            #ifndef TEST_INTERPRETER

+            emit_signal(emu, SIGILL, (void*)R_RIP, 0);

+            #endif

+            break;

 

         case 0x10:                      /* MOVUPS Gx,Ex */

             nextop = F8;