aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2002-03-22 20:29:21 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2002-03-22 20:29:21 +0100
commit68882f0f81044cb3bdd5e270f6ed1bdc2a55571c (patch)
tree6418926f2b9bc548c9845a34ceb6aeac8eca4502
parent648fe28b9dc62616ded2f6eafe5c945887b68bcc (diff)
downloadgcc-68882f0f81044cb3bdd5e270f6ed1bdc2a55571c.zip
gcc-68882f0f81044cb3bdd5e270f6ed1bdc2a55571c.tar.gz
gcc-68882f0f81044cb3bdd5e270f6ed1bdc2a55571c.tar.bz2
v850.c (v850_reorg): Only call alter_subreg on REG or MEM subregs, pass rtx * instead of rtx to it.
* config/v850/v850.c (v850_reorg): Only call alter_subreg on REG or MEM subregs, pass rtx * instead of rtx to it. * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass rtx * instead of rtx to alter_subreg. * config/m32r/m32r.c (gen_split_move_double): Likewise. * config/pj/pj.c (pj_output_rval): Likewise. From-SVN: r51182
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/config/i860/i860.c6
-rw-r--r--gcc/config/m32r/m32r.c4
-rw-r--r--gcc/config/pj/pj.c4
-rw-r--r--gcc/config/v850/v850.c17
5 files changed, 26 insertions, 14 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4dfc46a..ce9c9b3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2002-03-22 Jakub Jelinek <jakub@redhat.com>
+
+ * config/v850/v850.c (v850_reorg): Only call alter_subreg on
+ REG or MEM subregs, pass rtx * instead of rtx to it.
+ * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
+ rtx * instead of rtx to alter_subreg.
+ * config/m32r/m32r.c (gen_split_move_double): Likewise.
+ * config/pj/pj.c (pj_output_rval): Likewise.
+
2002-03-22 Richard Henderson <rth@redhat.com>
PR target/3177
diff --git a/gcc/config/i860/i860.c b/gcc/config/i860/i860.c
index f79af15..5538baf 100644
--- a/gcc/config/i860/i860.c
+++ b/gcc/config/i860/i860.c
@@ -1,5 +1,5 @@
/* Subroutines for insn-output.c for Intel 860
- Copyright (C) 1989, 1991, 1997, 1998, 1999, 2000, 2001
+ Copyright (C) 1989, 1991, 1997, 1998, 1999, 2000, 2001, 2002
Free Software Foundation, Inc.
Derived from sparc.c.
@@ -1470,7 +1470,7 @@ output_delayed_branch (template, operands, insn)
for (i = 0; i < insn_data[insn_code_number].n_operands; i++)
{
if (GET_CODE (recog_data.operand[i]) == SUBREG)
- recog_data.operand[i] = alter_subreg (recog_data.operand[i]);
+ alter_subreg (&recog_data.operand[i]);
}
insn_extract (delay_insn);
@@ -1511,7 +1511,7 @@ output_delay_insn (delay_insn)
for (i = 0; i < insn_data[insn_code_number].n_operands; i++)
{
if (GET_CODE (recog_data.operand[i]) == SUBREG)
- recog_data.operand[i] = alter_subreg (recog_data.operand[i]);
+ alter_subreg (&recog_data.operand[i]);
}
if (! constrain_operands (1))
diff --git a/gcc/config/m32r/m32r.c b/gcc/config/m32r/m32r.c
index acc6b5e..32dff3a 100644
--- a/gcc/config/m32r/m32r.c
+++ b/gcc/config/m32r/m32r.c
@@ -1281,9 +1281,9 @@ gen_split_move_double (operands)
subregs to make this code simpler. It is safe to call
alter_subreg any time after reload. */
if (GET_CODE (dest) == SUBREG)
- dest = alter_subreg (dest);
+ alter_subreg (&dest);
if (GET_CODE (src) == SUBREG)
- src = alter_subreg (src);
+ alter_subreg (&src);
start_sequence ();
if (GET_CODE (dest) == REG)
diff --git a/gcc/config/pj/pj.c b/gcc/config/pj/pj.c
index 8e64883..736a30a 100644
--- a/gcc/config/pj/pj.c
+++ b/gcc/config/pj/pj.c
@@ -1,5 +1,5 @@
/* Output routines for GCC for picoJava II
- Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -509,7 +509,7 @@ pj_output_rval (op, mode, outer_op)
break;
case SUBREG:
- pj_output_rval (alter_subreg (op), mode, outer_op);
+ pj_output_rval (alter_subreg (&op), mode, outer_op);
break;
case POST_INC:
diff --git a/gcc/config/v850/v850.c b/gcc/config/v850/v850.c
index 76872edd..f3b17aa7 100644
--- a/gcc/config/v850/v850.c
+++ b/gcc/config/v850/v850.c
@@ -1,5 +1,5 @@
/* Subroutines for insn-output.c for NEC V850 series
- Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+ Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002
Free Software Foundation, Inc.
Contributed by Jeff Law (law@cygnus.com).
@@ -1249,12 +1249,15 @@ void v850_reorg (start_insn)
int unsignedp = FALSE;
/* We might have (SUBREG (MEM)) here, so just get rid of the
- subregs to make this code simpler. It is safe to call
- alter_subreg any time after reload. */
- if (GET_CODE (dest) == SUBREG)
- dest = alter_subreg (dest);
- if (GET_CODE (src) == SUBREG)
- src = alter_subreg (src);
+ subregs to make this code simpler. */
+ if (GET_CODE (dest) == SUBREG
+ && (GET_CODE (SUBREG_REG (dest)) == MEM
+ || GET_CODE (SUBREG_REG (dest)) == REG))
+ alter_subreg (&dest);
+ if (GET_CODE (src) == SUBREG
+ && (GET_CODE (SUBREG_REG (src)) == MEM
+ || GET_CODE (SUBREG_REG (src)) == REG))
+ alter_subreg (&src);
if (GET_CODE (dest) == MEM && GET_CODE (src) == MEM)
mem = NULL_RTX;