diff options
author | Steve Ellcey <sje@cup.hp.com> | 2002-11-20 21:52:59 +0000 |
---|---|---|
committer | Steve Ellcey <sje@gcc.gnu.org> | 2002-11-20 21:52:59 +0000 |
commit | 27e58a706fa38f55d87610ed6424523c0ea50bd4 (patch) | |
tree | 8b9fd59b5bdc34852b403b5487274127ef1bd390 | |
parent | 964b104aba78fdc347d4b9550707653076820b62 (diff) | |
download | gcc-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/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/emit-rtl.c | 7 | ||||
-rw-r--r-- | gcc/expr.c | 6 | ||||
-rw-r--r-- | gcc/optabs.c | 15 |
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); @@ -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 (); |