diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-09-19 13:19:01 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-09-19 13:19:12 +0200 |
| commit | 4eeba053d57701bae9591e2b8e732d39a3a682f6 (patch) | |
| tree | b58e6384590785ae8b97a6207492edda72491ecc /src/emu | |
| parent | 7263a2e7ab703db5e22753e43803f34cdd4928ba (diff) | |
| download | box64-4eeba053d57701bae9591e2b8e732d39a3a682f6.tar.gz box64-4eeba053d57701bae9591e2b8e732d39a3a682f6.zip | |
Fixed some x87 tag handling
Diffstat (limited to 'src/emu')
| -rw-r--r-- | src/emu/x87emu_private.c | 8 |
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.... |