about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-09-19 13:19:01 +0200
committerptitSeb <sebastien.chev@gmail.com>2024-09-19 13:19:12 +0200
commit4eeba053d57701bae9591e2b8e732d39a3a682f6 (patch)
treeb58e6384590785ae8b97a6207492edda72491ecc /src
parent7263a2e7ab703db5e22753e43803f34cdd4928ba (diff)
downloadbox64-4eeba053d57701bae9591e2b8e732d39a3a682f6.tar.gz
box64-4eeba053d57701bae9591e2b8e732d39a3a682f6.zip
Fixed some x87 tag handling
Diffstat (limited to 'src')
-rw-r--r--src/emu/x87emu_private.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/emu/x87emu_private.c b/src/emu/x87emu_private.c
index b5894d97..02b0b6d6 100644
--- a/src/emu/x87emu_private.c
+++ b/src/emu/x87emu_private.c
@@ -255,7 +255,7 @@ void fpu_loadenv(x64emu_t* emu, char* p, int b16)
         emu->sw.x16 = *p16++;
         // tagword: 2bits*8
         // tags... (only full = 0b11 / free = 0b00)
-        emu->fpu_tags = ~*(p16++);
+        emu->fpu_tags = *(p16++);
         // intruction pointer: 16bits
         // data (operand) pointer: 16bits
         // last opcode: 11bits save: 16bits restaured (1st and 2nd opcode only)
@@ -265,7 +265,7 @@ void fpu_loadenv(x64emu_t* emu, char* p, int b16)
         emu->sw.x16 = *p32++;
         // tagword: 2bits*8
         // tags... (only full = 0b11 / free = 0b00)
-        emu->fpu_tags = ~*(p32++);
+        emu->fpu_tags = *(p32++);
         // intruction pointer: 16bits
         // data (operand) pointer: 16bits
         // last opcode: 11bits save: 16bits restaured (1st and 2nd opcode only)
@@ -282,14 +282,14 @@ void fpu_savenv(x64emu_t* emu, char* p, int b16)
         *p16++ = emu->sw.x16;
         // tagword: 2bits*8
         // tags...
-        *p16++ = ~emu->fpu_tags;
+        *p16++ = emu->fpu_tags;
     } else {
         uint32_t* p32 = (uint32_t*)p;
         *p32++ = emu->cw.x16;
         *p32++ = emu->sw.x16;
         // tagword: 2bits*8
         // tags...
-        *p32++ = ~emu->fpu_tags;
+        *p32++ = emu->fpu_tags;
 
     }
     // other stuff are not pushed....