diff --git a/mach/proto/fp/ngf4.c b/mach/proto/fp/ngf4.c index 7b2351f64..540b1f1fe 100644 --- a/mach/proto/fp/ngf4.c +++ b/mach/proto/fp/ngf4.c @@ -21,7 +21,9 @@ _float f; { char unsigned *p; - p = (char unsigned *) &f; - *p ^= 0x80; + if (f != (_float) 0) { + p = (char unsigned *) &f; + *p ^= 0x80; + } } diff --git a/mach/proto/fp/ngf8.c b/mach/proto/fp/ngf8.c index 178a9b763..b36a53c7a 100644 --- a/mach/proto/fp/ngf8.c +++ b/mach/proto/fp/ngf8.c @@ -21,7 +21,9 @@ _double f; { unsigned char *p; - p = (unsigned char *) &f; - *p ^= 0x80; + if (f[0] != 0 || f[1] != 0) { + p = (unsigned char *) &f; + *p ^= 0x80; + } }