about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2023-05-04 10:43:23 +0200
committerptitSeb <sebastien.chev@gmail.com>2023-05-04 10:43:23 +0200
commitdf59bf881157c823c2c7c089374c524859ad7118 (patch)
tree0b5209b0d7d4b30c673075b901d2785db2d28d59 /src
parent99e669bb633ee5ae0890e41eaefdbcaaf28f9feb (diff)
downloadbox64-df59bf881157c823c2c7c089374c524859ad7118.tar.gz
box64-df59bf881157c823c2c7c089374c524859ad7118.zip
[DYNAREC_TEST] Fixed handling or 0F AE opcodes
Diffstat (limited to 'src')
-rw-r--r--src/emu/x64run0f.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/emu/x64run0f.c b/src/emu/x64run0f.c
index bfbc12de..d6c0a0e2 100644
--- a/src/emu/x64run0f.c
+++ b/src/emu/x64run0f.c
@@ -931,8 +931,8 @@ uintptr_t Run0F(x64emu_t *emu, rex_t rex, uintptr_t addr, int *step)
             }

             switch((nextop>>3)&7) {

                 case 0:                 /* FXSAVE Ed */

+                    _GETED(0);

                     #ifndef TEST_INTERPRETER

-                    GETED(0);

                     if(rex.w)

                         fpu_fxsave64(emu, ED);

                     else

@@ -940,13 +940,11 @@ uintptr_t Run0F(x64emu_t *emu, rex_t rex, uintptr_t addr, int *step)
                     #endif

                     break;

                 case 1:                 /* FXRSTOR Ed */

-                    #ifndef TEST_INTERPRETER

-                    GETED(0);

+                    _GETED(0);

                     if(rex.w)

                         fpu_fxrstor64(emu, ED);

                     else

                         fpu_fxrstor32(emu, ED);

-                    #endif

                     break;

                 case 2:                 /* LDMXCSR Md */

                     GETED(0);

@@ -961,8 +959,8 @@ uintptr_t Run0F(x64emu_t *emu, rex_t rex, uintptr_t addr, int *step)
                     ED->dword[0] = emu->mxcsr.x32;

                     break;

                 case 7:                 /* CLFLUSH Ed */

+                    _GETED(0);

                     #if defined(DYNAREC) && !defined(TEST_INTERPRETER)

-                    GETED(0);

                     if(box64_dynarec)

                         cleanDBFromAddressRange((uintptr_t)ED, 8, 0);

                     #endif