diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/optabs.c | 16 |
2 files changed, 16 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a0ff955..c3324b1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Tue Jun 8 05:47:48 1999 Richard Earnshaw (rearnsha@arm.com) + + * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute + values. + Mon Jun 7 22:30:37 1999 Jeffrey A Law (law@cygnus.com) * fixinc/inclhack.def (avoid_bool): Also catch diff --git a/gcc/optabs.c b/gcc/optabs.c index 2e8a2a6..2b9091b 100644 --- a/gcc/optabs.c +++ b/gcc/optabs.c @@ -504,11 +504,17 @@ expand_cmplxdiv_wide (real0, real1, imag0, imag1, realr, imagr, submode, imag1 = force_reg (submode, imag1); - temp1 = expand_unop (submode, abs_optab, real1, NULL_RTX, - unsignedp); - - temp2 = expand_unop (submode, abs_optab, imag1, NULL_RTX, - unsignedp); + /* XXX What's an "unsigned" complex number? */ + if (unsignedp) + { + temp1 = real1; + temp2 = imag1; + } + else + { + temp1 = expand_abs (submode, real1, NULL_RTX, 1); + temp2 = expand_abs (submode, imag1, NULL_RTX, 1); + } if (temp1 == 0 || temp2 == 0) return 0; |