From 30822d48953ca4801f77e5cdd2af4f31bcb91fa4 Mon Sep 17 00:00:00 2001 From: Peter Veenstra Date: Wed, 16 Sep 2009 18:01:53 +0000 Subject: [PATCH] FFREEP. (thanks ripsaw) Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@3465 --- src/debug/debug_disasm.cpp | 3 ++- src/fpu/fpu.cpp | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/debug/debug_disasm.cpp b/src/debug/debug_disasm.cpp index 66a9820d..5b642962 100644 --- a/src/debug/debug_disasm.cpp +++ b/src/debug/debug_disasm.cpp @@ -398,6 +398,7 @@ static char const *fop_52[] = { "*fsubrp %GF,st" }; static char const *fop_53[] = { "*fsubp %GF,st" }; static char const *fop_54[] = { "*fdivrp %GF,st" }; static char const *fop_55[] = { "*fdivp %GF,st" }; +static char const *fop_56[] = { "*ffreep %GF" }; static char const *fop_60[] = { "fstsw ax", 0, 0, 0, 0, 0, 0, 0 }; static char const **fspecial[] = { /* 0=use st(i), 1=undefined 0 in fop_* means undefined */ @@ -408,7 +409,7 @@ static char const **fspecial[] = { /* 0=use st(i), 1=undefined 0 in fop_* means fop_32, fop_33, fop_34, fop_35, fop_36, fop_37, fop_38, fop_39, fop_40, fop_41, fop_42, fop_43, fop_44, fop_45, f0, f0, fop_48, fop_49, fop_50, fop_51, fop_52, fop_53, fop_54, fop_55, - f0, f0, f0, f0, fop_60, f0, f0, f0, + fop_56, f0, f0, f0, fop_60, f0, f0, f0, }; static const char *floatops[] = { /* assumed " %EF" at end of each. mod != 3 only */ diff --git a/src/fpu/fpu.cpp b/src/fpu/fpu.cpp index 64dfae3c..fade5f1e 100644 --- a/src/fpu/fpu.cpp +++ b/src/fpu/fpu.cpp @@ -16,7 +16,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* $Id: fpu.cpp,v 1.30 2009-05-27 09:15:41 qbix79 Exp $ */ +/* $Id: fpu.cpp,v 1.31 2009-09-16 18:01:53 qbix79 Exp $ */ #include "dosbox.h" #if C_FPU @@ -594,6 +594,10 @@ void FPU_ESC7_Normal(Bitu rm) { Bitu group=(rm >> 3) & 7; Bitu sub=(rm & 7); switch (group){ + case 0x00: /* FFREEP STi*/ + fpu.tags[STV(sub)]=TAG_Empty; + FPU_FPOP(); + break; case 0x01: /* FXCH STi*/ FPU_FXCH(TOP,STV(sub)); break;