Revert revisions r4168 and r4169. That's work in progress, not ready for trunk yet.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4171 c046a42c-6fe2-441c-8c8c-71466251a162
diff --git a/configure b/configure
index 3015acd..85cb68a 100755
--- a/configure
+++ b/configure
@@ -1224,7 +1224,7 @@
   echo "#define CONFIG_DARWIN_USER 1" >> $config_h
 fi
 
-if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" -o "$target_cpu" = "sparc" -o "$target_cpu" = "sparc64"  -o "$target_cpu" = "sparc32plus" -o "$target_cpu" = "m68k" -o "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" -o "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" -o "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el" -o "$target_cpu" = "ppc" ; then
+if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" -o "$target_cpu" = "sparc" -o "$target_cpu" = "sparc64"  -o "$target_cpu" = "sparc32plus" -o "$target_cpu" = "m68k" -o "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" -o "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" -o "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el"; then
   echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
   echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
 fi
diff --git a/target-ppc/exec.h b/target-ppc/exec.h
index f14f6a8..76fdb0b 100644
--- a/target-ppc/exec.h
+++ b/target-ppc/exec.h
@@ -27,6 +27,10 @@
 #include "cpu.h"
 #include "exec-all.h"
 
+/* For normal operations, precise emulation should not be needed */
+//#define USE_PRECISE_EMULATION 1
+#define USE_PRECISE_EMULATION 0
+
 register struct CPUPPCState *env asm(AREG0);
 #if TARGET_LONG_BITS > HOST_LONG_BITS
 /* no registers can be used */
diff --git a/target-ppc/op.c b/target-ppc/op.c
index f60a6a9..972b8bc 100644
--- a/target-ppc/op.c
+++ b/target-ppc/op.c
@@ -1716,7 +1716,7 @@
 /* fadd - fadd. */
 void OPPROTO op_fadd (void)
 {
-#ifdef CONFIG_SOFTFLOAT
+#if USE_PRECISE_EMULATION
     do_fadd();
 #else
     FT0 = float64_add(FT0, FT1, &env->fp_status);
@@ -1727,7 +1727,7 @@
 /* fsub - fsub. */
 void OPPROTO op_fsub (void)
 {
-#ifdef CONFIG_SOFTFLOAT
+#if USE_PRECISE_EMULATION
     do_fsub();
 #else
     FT0 = float64_sub(FT0, FT1, &env->fp_status);
@@ -1738,7 +1738,7 @@
 /* fmul - fmul. */
 void OPPROTO op_fmul (void)
 {
-#ifdef CONFIG_SOFTFLOAT
+#if USE_PRECISE_EMULATION
     do_fmul();
 #else
     FT0 = float64_mul(FT0, FT1, &env->fp_status);
@@ -1749,7 +1749,7 @@
 /* fdiv - fdiv. */
 void OPPROTO op_fdiv (void)
 {
-#ifdef CONFIG_SOFTFLOAT
+#if USE_PRECISE_EMULATION
     do_fdiv();
 #else
     FT0 = float64_div(FT0, FT1, &env->fp_status);
@@ -1796,7 +1796,7 @@
 /* fmadd - fmadd. */
 void OPPROTO op_fmadd (void)
 {
-#ifdef CONFIG_SOFTFLOAT
+#if USE_PRECISE_EMULATION
     do_fmadd();
 #else
     FT0 = float64_mul(FT0, FT1, &env->fp_status);
@@ -1808,7 +1808,7 @@
 /* fmsub - fmsub. */
 void OPPROTO op_fmsub (void)
 {
-#ifdef CONFIG_SOFTFLOAT
+#if USE_PRECISE_EMULATION
     do_fmsub();
 #else
     FT0 = float64_mul(FT0, FT1, &env->fp_status);
@@ -1835,7 +1835,7 @@
 /* frsp - frsp. */
 void OPPROTO op_frsp (void)
 {
-#ifdef CONFIG_SOFTFLOAT
+#if USE_PRECISE_EMULATION
     do_frsp();
 #else
     FT0 = float64_to_float32(FT0, &env->fp_status);
diff --git a/target-ppc/op_helper.c b/target-ppc/op_helper.c
index 919b481..544d906 100644
--- a/target-ppc/op_helper.c
+++ b/target-ppc/op_helper.c
@@ -922,7 +922,7 @@
 }
 #endif
 
-#ifdef CONFIG_SOFTFLOAT
+#if USE_PRECISE_EMULATION
 void do_fadd (void)
 {
     if (unlikely(float64_is_signaling_nan(FT0) ||
@@ -989,7 +989,7 @@
         FT0 = float64_div(FT0, FT1, &env->fp_status);
     }
 }
-#endif /* CONFIG_SOFTFLOAT */
+#endif /* USE_PRECISE_EMULATION */
 
 void do_fctiw (void)
 {
@@ -1003,7 +1003,7 @@
         fload_invalid_op_excp(POWERPC_EXCP_FP_VXCVI);
     } else {
         p.ll = float64_to_int32(FT0, &env->fp_status);
-#ifdef CONFIG_SOFTFLOAT
+#if USE_PRECISE_EMULATION
         /* XXX: higher bits are not supposed to be significant.
          *     to make tests easier, return the same as a real PowerPC 750
          */
@@ -1025,7 +1025,7 @@
         fload_invalid_op_excp(POWERPC_EXCP_FP_VXCVI);
     } else {
         p.ll = float64_to_int32_round_to_zero(FT0, &env->fp_status);
-#ifdef CONFIG_SOFTFLOAT
+#if USE_PRECISE_EMULATION
         /* XXX: higher bits are not supposed to be significant.
          *     to make tests easier, return the same as a real PowerPC 750
          */
@@ -1114,7 +1114,7 @@
     do_fri(float_round_down);
 }
 
-#ifdef CONFIG_SOFTFLOAT
+#if USE_PRECISE_EMULATION
 void do_fmadd (void)
 {
     if (unlikely(float64_is_signaling_nan(FT0) ||
@@ -1164,7 +1164,7 @@
 #endif
     }
 }
-#endif /* CONFIG_SOFTFLOAT */
+#endif /* USE_PRECISE_EMULATION */
 
 void do_fnmadd (void)
 {
@@ -1174,7 +1174,7 @@
         /* sNaN operation */
         fload_invalid_op_excp(POWERPC_EXCP_FP_VXSNAN);
     } else {
-#ifdef CONFIG_SOFTFLOAT
+#if USE_PRECISE_EMULATION
 #ifdef FLOAT128
         /* This is the way the PowerPC specification defines it */
         float128 ft0_128, ft1_128;
@@ -1206,7 +1206,7 @@
         /* sNaN operation */
         fload_invalid_op_excp(POWERPC_EXCP_FP_VXSNAN);
     } else {
-#ifdef CONFIG_SOFTFLOAT
+#if USE_PRECISE_EMULATION
 #ifdef FLOAT128
         /* This is the way the PowerPC specification defines it */
         float128 ft0_128, ft1_128;
@@ -1230,7 +1230,7 @@
     }
 }
 
-#ifdef CONFIG_SOFTFLOAT
+#if USE_PRECISE_EMULATION
 void do_frsp (void)
 {
     if (unlikely(float64_is_signaling_nan(FT0))) {
@@ -1240,7 +1240,7 @@
         FT0 = float64_to_float32(FT0, &env->fp_status);
     }
 }
-#endif /* CONFIG_SOFTFLOAT */
+#endif /* USE_PRECISE_EMULATION */
 
 void do_fsqrt (void)
 {
@@ -1295,7 +1295,7 @@
         /* Zero reciprocal */
         float_zero_divide_excp();
     } else if (likely(isnormal(FT0))) {
-#ifdef CONFIG_SOFTFLOAT
+#if USE_PRECISE_EMULATION
         FT0 = float64_div(1.0, FT0, &env->fp_status);
         FT0 = float64_to_float32(FT0, &env->fp_status);
 #else
diff --git a/target-ppc/op_helper.h b/target-ppc/op_helper.h
index 0510f0a..1d5fc0a 100644
--- a/target-ppc/op_helper.h
+++ b/target-ppc/op_helper.h
@@ -98,7 +98,7 @@
 #ifdef CONFIG_SOFTFLOAT
 void do_float_check_status (void);
 #endif
-#ifdef CONFIG_SOFTFLOAT
+#if USE_PRECISE_EMULATION
 void do_fadd (void);
 void do_fsub (void);
 void do_fmul (void);
@@ -109,13 +109,13 @@
 void do_fres (void);
 void do_frsqrte (void);
 void do_fsel (void);
-#ifdef CONFIG_SOFTFLOAT
+#if USE_PRECISE_EMULATION
 void do_fmadd (void);
 void do_fmsub (void);
 #endif
 void do_fnmadd (void);
 void do_fnmsub (void);
-#ifdef CONFIG_SOFTFLOAT
+#if USE_PRECISE_EMULATION
 void do_frsp (void);
 #endif
 void do_fctiw (void);