about summary refs log tree commit diff stats
path: root/src/emu/x87emu_private.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/x87emu_private.c')
-rwxr-xr-xsrc/emu/x87emu_private.c10
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));