diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-06-04 16:55:30 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-06-04 16:55:30 +0200 |
| commit | a71e81c8423e8900893f439706e7ac4eefb4842b (patch) | |
| tree | 0c370850cc0bb8d2a11208086166560abb65c55e /src/emu/x87emu_private.c | |
| parent | add55f3cec4e1585d18b44817d40b566c3f88fc7 (diff) | |
| download | box64-a71e81c8423e8900893f439706e7ac4eefb4842b.tar.gz box64-a71e81c8423e8900893f439706e7ac4eefb4842b.zip | |
[DYNAREC] Fixed DD C0..C7 FFREE opcode
Diffstat (limited to 'src/emu/x87emu_private.c')
| -rwxr-xr-x | src/emu/x87emu_private.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/emu/x87emu_private.c b/src/emu/x87emu_private.c index cd35c116..0393ac01 100755 --- a/src/emu/x87emu_private.c +++ b/src/emu/x87emu_private.c @@ -9,6 +9,16 @@ #include "x87emu_private.h" //#include "x64run_private.h" +void fpu_do_free(x64emu_t* emu, int i) +{ + emu->p_regs[(emu->top+i)&7].tag = 0b11; // empty + // check if all empty + for(int j=0; j<8; ++j) + if(emu->p_regs[j].tag != 0b11) + return; + emu->fpu_stack = 0; +} + void reset_fpu(x64emu_t* emu) { memset(emu->mmx87, 0, sizeof(emu->mmx87)); |