summaryrefslogtreecommitdiff
path: root/target-ppc/op.c
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2005-03-13 17:01:22 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2005-03-13 17:01:22 +0000
commit4ecc31906d7535c4ad88fcc63968bef412dd67ba (patch)
tree9a38e0726804d67f9458293a32daabf9e7f1d894 /target-ppc/op.c
parent4c2e770f377a2c38bb26c24e333b747511ddd040 (diff)
downloadqemu-4ecc31906d7535c4ad88fcc63968bef412dd67ba.tar.gz
fpu fixes (Jocelyn Mayer) - soft float support
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1335 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-ppc/op.c')
-rw-r--r--target-ppc/op.c74
1 files changed, 5 insertions, 69 deletions
diff --git a/target-ppc/op.c b/target-ppc/op.c
index 5accc55064..6ae7a523b5 100644
--- a/target-ppc/op.c
+++ b/target-ppc/op.c
@@ -32,10 +32,6 @@
#define FT1 (env->ft1)
#define FT2 (env->ft2)
-#define FTS0 ((float)env->ft0)
-#define FTS1 ((float)env->ft1)
-#define FTS2 ((float)env->ft2)
-
#define PPC_OP(name) void glue(op_, name)(void)
#define REG 0
@@ -1204,13 +1200,6 @@ PPC_OP(fadd)
RETURN();
}
-/* fadds - fadds. */
-PPC_OP(fadds)
-{
- FT0 = FTS0 + FTS1;
- RETURN();
-}
-
/* fsub - fsub. */
PPC_OP(fsub)
{
@@ -1218,13 +1207,6 @@ PPC_OP(fsub)
RETURN();
}
-/* fsubs - fsubs. */
-PPC_OP(fsubs)
-{
- FT0 = FTS0 - FTS1;
- RETURN();
-}
-
/* fmul - fmul. */
PPC_OP(fmul)
{
@@ -1232,24 +1214,11 @@ PPC_OP(fmul)
RETURN();
}
-/* fmuls - fmuls. */
-PPC_OP(fmuls)
-{
- FT0 = FTS0 * FTS1;
- RETURN();
-}
-
/* fdiv - fdiv. */
+void do_fdiv (void);
PPC_OP(fdiv)
{
- FT0 /= FT1;
- RETURN();
-}
-
-/* fdivs - fdivs. */
-PPC_OP(fdivs)
-{
- FT0 = FTS0 / FTS1;
+ do_fdiv();
RETURN();
}
@@ -1260,13 +1229,6 @@ PPC_OP(fsqrt)
RETURN();
}
-/* fsqrts - fsqrts. */
-PPC_OP(fsqrts)
-{
- do_fsqrts();
- RETURN();
-}
-
/* fres - fres. */
PPC_OP(fres)
{
@@ -1277,7 +1239,7 @@ PPC_OP(fres)
/* frsqrte - frsqrte. */
PPC_OP(frsqrte)
{
- do_fsqrte();
+ do_frsqrte();
RETURN();
}
@@ -1296,13 +1258,6 @@ PPC_OP(fmadd)
RETURN();
}
-/* fmadds - fmadds. */
-PPC_OP(fmadds)
-{
- FT0 = (FTS0 * FTS1) + FTS2;
- RETURN();
-}
-
/* fmsub - fmsub. */
PPC_OP(fmsub)
{
@@ -1310,13 +1265,6 @@ PPC_OP(fmsub)
RETURN();
}
-/* fmsubs - fmsubs. */
-PPC_OP(fmsubs)
-{
- FT0 = (FTS0 * FTS1) - FTS2;
- RETURN();
-}
-
/* fnmadd - fnmadd. - fnmadds - fnmadds. */
PPC_OP(fnmadd)
{
@@ -1324,13 +1272,6 @@ PPC_OP(fnmadd)
RETURN();
}
-/* fnmadds - fnmadds. */
-PPC_OP(fnmadds)
-{
- do_fnmadds();
- RETURN();
-}
-
/* fnmsub - fnmsub. */
PPC_OP(fnmsub)
{
@@ -1338,13 +1279,6 @@ PPC_OP(fnmsub)
RETURN();
}
-/* fnmsubs - fnmsubs. */
-PPC_OP(fnmsubs)
-{
- do_fnmsubs();
- RETURN();
-}
-
/*** Floating-Point round & convert ***/
/* frsp - frsp. */
PPC_OP(frsp)
@@ -1385,6 +1319,7 @@ PPC_OP(fcmpo)
/*** Floating-point move ***/
/* fabs */
+void do_fabs (void);
PPC_OP(fabs)
{
do_fabs();
@@ -1392,6 +1327,7 @@ PPC_OP(fabs)
}
/* fnabs */
+void do_fnabs (void);
PPC_OP(fnabs)
{
do_fnabs();