aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Ellcey <sje@cup.hp.com>2002-11-20 21:52:59 +0000
committerSteve Ellcey <sje@gcc.gnu.org>2002-11-20 21:52:59 +0000
commit27e58a706fa38f55d87610ed6424523c0ea50bd4 (patch)
tree8b9fd59b5bdc34852b403b5487274127ef1bd390
parent964b104aba78fdc347d4b9550707653076820b62 (diff)
downloadgcc-27e58a706fa38f55d87610ed6424523c0ea50bd4.zip
gcc-27e58a706fa38f55d87610ed6424523c0ea50bd4.tar.gz
gcc-27e58a706fa38f55d87610ed6424523c0ea50bd4.tar.bz2
emit-rtl.c (gen_reg_rtx): Simplify mapping of Complex type to component type using GET_MODE_INNER.
* emit-rtl.c (gen_reg_rtx): Simplify mapping of Complex type to component type using GET_MODE_INNER. * expr.c (emit_move_insn_1): Ditto. * optabs.c (expand_binop): Ditto. (expand_unop): Ditto. (expand_complex_abs): Ditto. From-SVN: r59317
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/emit-rtl.c7
-rw-r--r--gcc/expr.c6
-rw-r--r--gcc/optabs.c15
4 files changed, 14 insertions, 23 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3490380..9dad961 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2002-11-20 Steve Ellcey <sje@cup.hp.com>
+
+ * emit-rtl.c (gen_reg_rtx): Simplify mapping of Complex type
+ to component type using GET_MODE_INNER.
+ * expr.c (emit_move_insn_1): Ditto.
+ * optabs.c (expand_binop): Ditto.
+ (expand_unop): Ditto.
+ (expand_complex_abs): Ditto.
+
2002-11-20 Douglas B Rupp <rupp@gnat.com>
* hwint.h (HAVE___INT64): Fix typo (was HAVE__INT64).
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 2cf4107..0d9be17 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -802,12 +802,7 @@ gen_reg_rtx (mode)
which makes much better code. Besides, allocating DCmode
pseudos overstrains reload on some machines like the 386. */
rtx realpart, imagpart;
- int size = GET_MODE_UNIT_SIZE (mode);
- enum machine_mode partmode
- = mode_for_size (size * BITS_PER_UNIT,
- (GET_MODE_CLASS (mode) == MODE_COMPLEX_FLOAT
- ? MODE_FLOAT : MODE_INT),
- 0);
+ enum machine_mode partmode = GET_MODE_INNER (mode);
realpart = gen_reg_rtx (partmode);
imagpart = gen_reg_rtx (partmode);
diff --git a/gcc/expr.c b/gcc/expr.c
index a185311..8dd9a86 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -3152,11 +3152,7 @@ emit_move_insn_1 (x, y)
/* Expand complex moves by moving real part and imag part, if possible. */
else if ((class == MODE_COMPLEX_FLOAT || class == MODE_COMPLEX_INT)
- && BLKmode != (submode = mode_for_size ((GET_MODE_UNIT_SIZE (mode)
- * BITS_PER_UNIT),
- (class == MODE_COMPLEX_INT
- ? MODE_INT : MODE_FLOAT),
- 0))
+ && BLKmode != (submode = GET_MODE_INNER (mode))
&& (mov_optab->handlers[(int) submode].insn_code
!= CODE_FOR_nothing))
{
diff --git a/gcc/optabs.c b/gcc/optabs.c
index 1551ff8..9da95e1 100644
--- a/gcc/optabs.c
+++ b/gcc/optabs.c
@@ -1531,10 +1531,7 @@ expand_binop (mode, binoptab, op0, op1, target, unsignedp, methods)
int ok = 0;
/* Find the correct mode for the real and imaginary parts */
- enum machine_mode submode
- = mode_for_size (GET_MODE_UNIT_SIZE (mode) * BITS_PER_UNIT,
- class == MODE_COMPLEX_INT ? MODE_INT : MODE_FLOAT,
- 0);
+ enum machine_mode submode = GET_MODE_INNER(mode);
if (submode == BLKmode)
abort ();
@@ -2484,10 +2481,7 @@ expand_unop (mode, unoptab, op0, target, unsignedp)
rtx seq;
/* Find the correct mode for the real and imaginary parts */
- enum machine_mode submode
- = mode_for_size (GET_MODE_UNIT_SIZE (mode) * BITS_PER_UNIT,
- class == MODE_COMPLEX_INT ? MODE_INT : MODE_FLOAT,
- 0);
+ enum machine_mode submode = GET_MODE_INNER (mode);
if (submode == BLKmode)
abort ();
@@ -2731,10 +2725,7 @@ expand_complex_abs (mode, op0, target, unsignedp)
optab this_abs_optab;
/* Find the correct mode for the real and imaginary parts. */
- enum machine_mode submode
- = mode_for_size (GET_MODE_UNIT_SIZE (mode) * BITS_PER_UNIT,
- class == MODE_COMPLEX_INT ? MODE_INT : MODE_FLOAT,
- 0);
+ enum machine_mode submode = GET_MODE_INNER (mode);
if (submode == BLKmode)
abort ();