48#define RNAN 0xffc00000
49#define DNAN0 0xfff80000
54#define RNAN 0xffc00000
55#define DNAN0 0xfff80000
60#define RNAN 0xff800001
62#define DNAN0 0xfff00000
66#define DNAN1 0xfff00000
72#define FA7UL (unsigned Long) 0xfa7a7a7aL
75#define FA7UL 0xfa7a7a7aUL
99 unsigned Long *lx, *lxe;
111 *(
unsigned short*)
x = 0xfa7a;
124 lx = (
unsigned Long*)
x;
129 printf(
"Surprise type %d in _uninit_f2c\n", type);
136 *(
unsigned short*)
x = 0xfa7a;
142 lx = (
unsigned Long*)
x;
151 lx = (
unsigned Long*)
x;
160 lx = (
unsigned Long*)
x;
161 for(lxe = lx + 2*len; lx < lxe; lx += 2) {
190 _control87(EM_DENORMAL | EM_UNDERFLOW | EM_INEXACT, MCW_EM);
195 signal(SIGFPE, SIG_DFL);
204#include "/usr/include/sigfpe.h"
205#include "/usr/include/sys/fpu.h"
209ieeeuserhand(exception,
val)
unsigned exception[5];
int val[2];
211ieeeuserhand(
unsigned exception[5],
int val[2])
215 fprintf(stderr,
"ieee0() aborting because of ");
216 if(exception[0]==_OVERFL) fprintf(stderr,
"overflow\n");
217 else if(exception[0]==_UNDERFL) fprintf(stderr,
"underflow\n");
218 else if(exception[0]==_DIVZERO) fprintf(stderr,
"divide by 0\n");
219 else if(exception[0]==_INVALID) fprintf(stderr,
"invalid operation\n");
220 else fprintf(stderr,
"\tunknown reason\n");
227ieeeuserhand2(j)
unsigned int **j;
229ieeeuserhand2(
unsigned int **j)
232 fprintf(stderr,
"ieee0() aborting because of confusion\n");
241 sigfpe_[
i].count = 1000;
242 sigfpe_[
i].trace = 1;
243 sigfpe_[
i].repls = _USER_DETERMINED;
245 sigfpe_[1].repls = _ZERO;
247 _EN_UNDERFL|_EN_OVERFL|_EN_DIVZERO|_EN_INVALID,
248 ieeeuserhand,_ABORT_ON_ERROR,ieeeuserhand2);
254#include "fpu_control.h"
258#define __setfpucw(x) __fpu_control = (x)
263#undef Can_use__setfpucw
264#define Can_use__setfpucw
270#if (defined(__mc68000__) || defined(__mc68020__) || defined(mc68020) || defined (__mc68k__))
274#ifdef Can_use__setfpucw
275 __setfpucw(_FPU_IEEE + _FPU_DOUBLE + _FPU_MASK_OPERR + _FPU_MASK_DZ + _FPU_MASK_SNAN+_FPU_MASK_OVFL);
277 __fpu_control = _FPU_IEEE + _FPU_DOUBLE + _FPU_MASK_OPERR + _FPU_MASK_DZ + _FPU_MASK_SNAN+_FPU_MASK_OVFL;
278 _FPU_SETCW(__fpu_control);
281#elif (defined(__powerpc__)||defined(_ARCH_PPC)||defined(_ARCH_PWR))
284#ifdef Can_use__setfpucw
291 __setfpucw(_FPU_DEFAULT + _FPU_MASK_IM+_FPU_MASK_OM+_FPU_MASK_UM);
295 __fpu_control = _FPU_DEFAULT +_FPU_MASK_OM+_FPU_MASK_IM+_FPU_MASK_UM;
296 _FPU_SETCW(__fpu_control);
304#define _FPU_EXTENDED 0
309#ifdef Can_use__setfpucw
310 __setfpucw(_FPU_IEEE - _FPU_EXTENDED + _FPU_DOUBLE - _FPU_MASK_IM - _FPU_MASK_ZM - _FPU_MASK_OM);
312 __fpu_control = _FPU_IEEE - _FPU_EXTENDED + _FPU_DOUBLE - _FPU_MASK_IM - _FPU_MASK_ZM - _FPU_MASK_OM;
313 _FPU_SETCW(__fpu_control);
318 fprintf(stderr,
"\n%s\n%s\n%s\n%s\n",
319 "WARNING: _uninit_f2c in libf2c does not know how",
320 "to enable trapping on this system, so f2c's -trapuv",
321 "option will not detect uninitialized variables unless",
322 "you can enable trapping manually.");
333#include <machine/fpu.h>
337 ieee_set_fp_control(IEEE_TRAP_ENABLE_INV);
344#define _INCLUDE_HPUX_SOURCE
349#define fpsetmask fesettrapenable
350#define FP_X_INV FE_INVALID
367 fp_enable(TRP_INVALID);
368 fp_trap(FP_TRAP_SYNC);
static unsigned Long dnan0
static unsigned Long rnan
static unsigned Long dnan1
void _uninit_f2c(void *x, int type, long len)