diff options
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)); |