re PR middle-end/37850 (infinite recursive call to __mulsc3 when multiplying not-constant complexs)
PR middle-end/37850 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result. (__divMODE3): Likewise. Co-Authored-By: Nathan Froyd <froydnj@codesourcery.com> From-SVN: r144751
This commit is contained in:
parent
bb947fd1d9
commit
ddef83d233
2 changed files with 16 additions and 2 deletions
|
@ -1,3 +1,11 @@
|
|||
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-03-09 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR tree-optimization/39394
|
||||
|
|
|
@ -1831,6 +1831,7 @@ CTYPE
|
|||
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;
|
||||
|
@ -1887,7 +1888,9 @@ CONCAT3(__mul,MODE,3) (MTYPE a, MTYPE b, MTYPE c, MTYPE d)
|
|||
}
|
||||
}
|
||||
|
||||
return x + I * y;
|
||||
__real__ res = x;
|
||||
__imag__ res = y;
|
||||
return res;
|
||||
}
|
||||
#endif /* complex multiply */
|
||||
|
||||
|
@ -1898,6 +1901,7 @@ CTYPE
|
|||
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
|
||||
|
@ -1943,7 +1947,9 @@ CONCAT3(__div,MODE,3) (MTYPE a, MTYPE b, MTYPE c, MTYPE d)
|
|||
}
|
||||
}
|
||||
|
||||
return x + I * y;
|
||||
__real__ res = x;
|
||||
__imag__ res = y;
|
||||
return res;
|
||||
}
|
||||
#endif /* complex divide */
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue