about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-03-08 15:00:47 +0100
committerptitSeb <sebastien.chev@gmail.com>2024-03-08 15:00:47 +0100
commitd3c57eecbca09b77d0ad9647d89f12fc9b4b0939 (patch)
treefc9d77e08a904cc3facde49a7a2914f40f2fa89c
parentad75da85028ceeeabc610fb3977f334f0f936706 (diff)
downloadbox64-d3c57eecbca09b77d0ad9647d89f12fc9b4b0939.tar.gz
box64-d3c57eecbca09b77d0ad9647d89f12fc9b4b0939.zip
[INTERPRETER] Added 66 64 0F 6F opcode (for #1349)
-rw-r--r--src/emu/x64run6664.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/emu/x64run6664.c b/src/emu/x64run6664.c
index 6d937743..c91b3cbc 100644
--- a/src/emu/x64run6664.c
+++ b/src/emu/x64run6664.c
@@ -78,13 +78,12 @@ uintptr_t Run6664(x64emu_t *emu, rex_t rex, int seg, uintptr_t addr)
                     CLEAR_FLAG(F_OF); CLEAR_FLAG(F_AF); CLEAR_FLAG(F_SF);

                     break;

 

-                case 0xD6:                      /* MOVQ Ex,Gx */

+                case 0x6F:  /* MOVDQA Gx, Ex */

                     nextop = F8;

                     GETEX_OFFS(0, tlsdata);

                     GETGX;

-                    EX->q[0] = GX->q[0];

-                    if(MODREG)

-                        EX->q[1] = 0;

+                    GX->q[0] = EX->q[0];

+                    GX->q[1] = EX->q[1];

                     break;

 

                 case 0x7F:  /* MOVDQA Ex,Gx */

@@ -95,6 +94,15 @@ uintptr_t Run6664(x64emu_t *emu, rex_t rex, int seg, uintptr_t addr)
                     EX->q[1] = GX->q[1];

                     break;

 

+                case 0xD6:                      /* MOVQ Ex,Gx */

+                    nextop = F8;

+                    GETEX_OFFS(0, tlsdata);

+                    GETGX;

+                    EX->q[0] = GX->q[0];

+                    if(MODREG)

+                        EX->q[1] = 0;

+                    break;

+

                 default:

                     return 0;

             }