+2009-09-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR middle-end/41009
+ Backport from mainline
+ 2009-03-10 Richard Guenther <rguenther@suse.de>
+ Nathan Froyd <froydnj@codesourcery.com>
+
+ PR middle-end/37850
+ * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
+ (__divMODE3): Likewise.
+
2009-09-15 Uros Bizjak <ubizjak@gmail.com>
* config/alpha/alpha.md (smaxsf3): Disable for IEEE mode.
CONCAT3(__mul,MODE,3) (MTYPE a, MTYPE b, MTYPE c, MTYPE d)
{
MTYPE ac, bd, ad, bc, x, y;
+ CTYPE res;
ac = a * c;
bd = b * d;
}
}
- return x + I * y;
+ __real__ res = x;
+ __imag__ res = y;
+ return res;
}
#endif /* complex multiply */
CONCAT3(__div,MODE,3) (MTYPE a, MTYPE b, MTYPE c, MTYPE d)
{
MTYPE denom, ratio, x, y;
+ CTYPE res;
/* ??? We can get better behavior from logarithmic scaling instead of
the division. But that would mean starting to link libgcc against
}
}
- return x + I * y;
+ __real__ res = x;
+ __imag__ res = y;
+ return res;
}
#endif /* complex divide */