about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorwannacu <wannacu2049@gmail.com>2023-08-10 16:45:21 +0800
committerwannacu <wannacu2049@gmail.com>2023-08-10 16:45:21 +0800
commit4f1d3a75c29c580779be238d398f4137d1f13ae5 (patch)
tree94b6df27b04c5b293f17ce3ac0c309f473ce2424 /src
parent24c8af0363bc2ff64afb874a564da561181ef488 (diff)
downloadbox64-4f1d3a75c29c580779be238d398f4137d1f13ae5.tar.gz
box64-4f1d3a75c29c580779be238d398f4137d1f13ae5.zip
[ARM64_DYNAREC] Added 0F FB opcode
Diffstat (limited to 'src')
-rw-r--r--src/dynarec/arm64/dynarec_arm64_0f.c7
-rw-r--r--src/emu/x64run0f.c7
2 files changed, 13 insertions, 1 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_0f.c b/src/dynarec/arm64/dynarec_arm64_0f.c
index ea976365..236df733 100644
--- a/src/dynarec/arm64/dynarec_arm64_0f.c
+++ b/src/dynarec/arm64/dynarec_arm64_0f.c
@@ -1972,6 +1972,13 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
             GETEM(v1, 0);

             VADD_8(v0, v0, v1);

             break;

+        case 0xFB:

+            INST_NAME("PSUBQ Gm, Em");

+            nextop = F8;

+            GETGM(v0);

+            GETEM(v1, 0);

+            SUB_64(v0, v0, v1);

+            break;

         case 0xFD:

             INST_NAME("PADDW Gm, Em");

             nextop = F8;

diff --git a/src/emu/x64run0f.c b/src/emu/x64run0f.c
index b09dce9c..caa4eb98 100644
--- a/src/emu/x64run0f.c
+++ b/src/emu/x64run0f.c
@@ -1730,7 +1730,12 @@ uintptr_t Run0F(x64emu_t *emu, rex_t rex, uintptr_t addr, int *step)
             for(int i=0; i<2; ++i)

                 GM->ud[i] -= EM->ud[i];

             break;

-

+        case 0xFB:                   /* PSUBQ Gm, Em */

+            nextop = F8;

+            GETEM(0);

+            GETGM;

+            GM->sq -= EM->sq;

+            break;

         case 0xFC:                   /* PADDB Gm, Em */

             nextop = F8;

             GETEM(0);