summaryrefslogtreecommitdiff
path: root/gcc/cse.c
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2001-05-17 18:46:58 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2001-05-17 18:46:58 +0000
commitf760707b3708c8c4848cae367cce7a970fc266cd (patch)
tree56b80c09408fe368396536eefa4327bd32d5c2f5 /gcc/cse.c
parent33a4e091249f0184e81ce19c5496edb87d3d7af4 (diff)
downloadgcc-f760707b3708c8c4848cae367cce7a970fc266cd.tar.gz
* cse.c (fold_rtx): Use simplify_subreg.
* simplify-rtx.c (simplify_replace_rtx): Use simplify_gen_subreg. (simplify_gen_subreg): New. (simplify_rtx): Use simplify_subreg. * rtl.h (simplify_gen_subreg): Declare. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@42221 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cse.c')
-rw-r--r--gcc/cse.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/gcc/cse.c b/gcc/cse.c
index f3978e4b257..43cbf9ca020 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -3408,16 +3408,8 @@ fold_rtx (x, insn)
if (folded_arg0 != SUBREG_REG (x))
{
- new = 0;
-
- if (GET_MODE_CLASS (mode) == MODE_INT
- && GET_MODE_SIZE (mode) == UNITS_PER_WORD
- && GET_MODE (SUBREG_REG (x)) != VOIDmode)
- new = operand_subword (folded_arg0,
- (SUBREG_BYTE (x) / UNITS_PER_WORD), 0,
- GET_MODE (SUBREG_REG (x)));
- if (new == 0 && subreg_lowpart_p (x))
- new = gen_lowpart_if_possible (mode, folded_arg0);
+ new = simplify_subreg (mode, folded_arg0,
+ GET_MODE (SUBREG_REG (x)), SUBREG_BYTE (x));
if (new)
return new;
}