Group :: Desenvolvimento/C
RPM: f2c
Main Changelog Spec Patches Sources Download Gear Bugs e FR Repocop
Patch: f2c-ALT-MIPS.patch
Download
Download
diff --git a/uninit.c b/uninit.c
index f15fe39..d9be333 100644
--- a/uninit.c
+++ b/uninit.c
@@ -178,63 +178,18 @@ ieee0(Void)
}
#endif /* MSpc */
-#ifdef __mips /* must link with -lfpe */
-#define IEEE0_done
-/* code from Eric Grosse */
-#include <stdlib.h>
-#include <stdio.h>
-#include "/usr/include/sigfpe.h" /* full pathname for lcc -N */
-#include "/usr/include/sys/fpu.h"
-
- static void
-#ifdef KR_headers
-ieeeuserhand(exception, val) unsigned exception[5]; int val[2];
-#else
-ieeeuserhand(unsigned exception[5], int val[2])
-#endif
-{
- fflush(stdout);
- fprintf(stderr,"ieee0() aborting because of ");
- if(exception[0]==_OVERFL) fprintf(stderr,"overflow\n");
- else if(exception[0]==_UNDERFL) fprintf(stderr,"underflow\n");
- else if(exception[0]==_DIVZERO) fprintf(stderr,"divide by 0\n");
- else if(exception[0]==_INVALID) fprintf(stderr,"invalid operation\n");
- else fprintf(stderr,"\tunknown reason\n");
- fflush(stderr);
- abort();
-}
-
- static void
-#ifdef KR_headers
-ieeeuserhand2(j) unsigned int **j;
-#else
-ieeeuserhand2(unsigned int **j)
-#endif
-{
- fprintf(stderr,"ieee0() aborting because of confusion\n");
- abort();
-}
-
- static void
-ieee0(Void)
-{
- int i;
- for(i=1; i<=4; i++){
- sigfpe_[i].count = 1000;
- sigfpe_[i].trace = 1;
- sigfpe_[i].repls = _USER_DETERMINED;
- }
- sigfpe_[1].repls = _ZERO; /* underflow */
- handle_sigfpes( _ON,
- _EN_UNDERFL|_EN_OVERFL|_EN_DIVZERO|_EN_INVALID,
- ieeeuserhand,_ABORT_ON_ERROR,ieeeuserhand2);
- }
-#endif /* mips */
-
#ifdef __linux__
#define IEEE0_done
#include "fpu_control.h"
+#ifdef __mips /* must link with -lfpe */
+#define _FPU_MASK_VM _FPU_MASK_V
+#define _FPU_MASK_ZM _FPU_MASK_Z
+#define _FPU_MASK_OM _FPU_MASK_O
+#define _FPU_MASK_UM _FPU_MASK_U
+#define _FPU_MASK_IM _FPU_MASK_I
+#endif /* mips */
+
#ifdef __alpha__
#ifndef USE_setfpucw
#define __setfpucw(x) __fpu_control = (x)