This commit was generated by cvs2svn to track changes on a CVS vendor
[deliverable/binutils-gdb.git] / sim / common / sim-fpu.c
index 8931ad3f3eb1d5b088d247098c10dbc6ecda39d6..abf746a9b685d47af860429cc7b4e02ca744ac06 100644 (file)
@@ -2090,7 +2090,17 @@ INLINE_SIM_FPU (double)
 sim_fpu_2d (const sim_fpu *s)
 {
   sim_fpu_map val;
-  val.i = pack_fpu (s, 1);
+  if (sim_fpu_is_snan (s))
+    {
+      /* gag SNaN's */
+      sim_fpu n = *s;
+      n.class = sim_fpu_class_qnan;
+      val.i = pack_fpu (&n, 1);
+    }
+  else
+    {
+      val.i = pack_fpu (s, 1);
+    }
   return val.d;
 }
 
@@ -2438,24 +2448,26 @@ sim_fpu_gt (int *is,
 
 /* A number of useful constants */
 
-EXTERN_SIM_FPU (const sim_fpu) sim_fpu_zero = {
+#if EXTERN_SIM_FPU_P
+const sim_fpu sim_fpu_zero = {
   sim_fpu_class_zero,
 };
-EXTERN_SIM_FPU (const sim_fpu) sim_fpu_qnan = {
+const sim_fpu sim_fpu_qnan = {
   sim_fpu_class_qnan,
 };
-EXTERN_SIM_FPU (const sim_fpu) sim_fpu_one = {
+const sim_fpu sim_fpu_one = {
   sim_fpu_class_number, 0, IMPLICIT_1, 1
 };
-EXTERN_SIM_FPU (const sim_fpu) sim_fpu_two = {
+const sim_fpu sim_fpu_two = {
   sim_fpu_class_number, 0, IMPLICIT_1, 2
 };
-EXTERN_SIM_FPU (const sim_fpu) sim_fpu_max32 = {
+const sim_fpu sim_fpu_max32 = {
   sim_fpu_class_number, 0, LSMASK64 (NR_FRAC_GUARD, NR_GUARDS32), NORMAL_EXPMAX32
 };
-EXTERN_SIM_FPU (const sim_fpu) sim_fpu_max64 = {
+const sim_fpu sim_fpu_max64 = {
   sim_fpu_class_number, 0, LSMASK64 (NR_FRAC_GUARD, NR_GUARDS64), NORMAL_EXPMAX64
 };
+#endif
 
 
 /* For debugging */
This page took 0.023097 seconds and 4 git commands to generate.