$OpenBSD: patch-generic_tclStrToD_c,v 1.2 2010/06/07 18:12:05 jasper Exp $
--- generic/tclStrToD.c.orig	Thu Jul 16 22:50:54 2009
+++ generic/tclStrToD.c	Thu Jun  3 21:56:48 2010
@@ -73,7 +73,7 @@ typedef unsigned int fpu_control_t __attribute__ ((__m
  * MIPS floating-point units need special settings in control registers
  * to use gradual underflow as we expect.
  */
-#if defined(__mips)
+#if defined(__sgi) && defined(_COMPILER_VERSION)
 #include <sys/fpu.h>
 #endif
 /*
@@ -947,12 +947,14 @@ TclParseNumber(
 	case sINFIN:
 	case sINFINI:
 	case sINFINIT:
+#ifdef IEEE_FLOATING_POINT
 	case sN:
 	case sNA:
 	case sNANPAREN:
 	case sNANHEX:
 	    Tcl_Panic("TclParseNumber: bad acceptState %d parsing '%s'",
 		    acceptState, bytes);
+#endif
 
 	case BINARY:
 	    shift = numTrailZeros;
@@ -1134,11 +1136,13 @@ TclParseNumber(
 	    objPtr->typePtr = &tclDoubleType;
 	    break;
 
+#ifdef IEEE_FLOATING_POINT
 	case sNAN:
 	case sNANFINISH:
 	    objPtr->internalRep.doubleValue = MakeNaN(signum, significandWide);
 	    objPtr->typePtr = &tclDoubleType;
 	    break;
+#endif
 
 	case INITIAL:
 	    /* This case only to silence compiler warning */
@@ -2166,7 +2170,7 @@ TclInitDoubleConversion(void)
     } bitwhack;
 #endif
 
-#if defined(__mips)
+#if defined(__sgi) && defined(_COMPILER_VERSION)
     union fpc_csr mipsCR;
 
     mipsCR.fc_word = get_fpc_csr();
