fixed again
authorceriel <none@none>
Tue, 2 Aug 1988 11:57:37 +0000 (11:57 +0000)
committerceriel <none@none>
Tue, 2 Aug 1988 11:57:37 +0000 (11:57 +0000)
mach/proto/fp/sbf4.c
mach/proto/fp/sbf8.c

index 03e8d72..844880e 100644 (file)
@@ -21,13 +21,14 @@ _float      s1,s2;
                                /* is faster than the code:     */
                                /*              s2 = -s2        */
        char unsigned *p;
+       _float *result = &s1;   /* s1 may not be in a register! */
 
        if (s2 == (_float) 0) {
                return s1;
        }
        p = (char unsigned *) &s2;
        *p ^= 0x80;     /* change sign of s2 */
-       s1 = adf4(s2,s1);
+       *result = adf4(s2,s1);
        return(s1);     /* add and return result */
 }
 
index b04a82d..76d4372 100644 (file)
@@ -21,12 +21,13 @@ _double     s1,s2;
                                /* is faster than the code line */
                                /*      s2 = -s2;               */
        char unsigned *p;               /* sufficient to access sign bit */
+       _double *result = &s1;  /* s1 may not be in a register! */
 
        if (s2.__double[0] == 0 && s2.__double[1] == 0) {
                return s1;
        }
        p = (char unsigned *) &s2;
        *p ^= 0x80;     /* change sign of s2 */
-       s1 = adf8(s2,s1);       /* add and return result */
+       *result = adf8(s2,s1);  /* add and return result */
        return(s1);
 }