aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/optabs.c16
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;