* config/v850/v850.c (v850_reorg): Only call alter_subreg on
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 22 Mar 2002 19:29:21 +0000 (19:29 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 22 Mar 2002 19:29:21 +0000 (19:29 +0000)
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51182 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i860/i860.c
gcc/config/m32r/m32r.c
gcc/config/pj/pj.c
gcc/config/v850/v850.c

index 4dfc46a..ce9c9b3 100644 (file)
@@ -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
index f79af15..5538baf 100644 (file)
@@ -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))
index acc6b5e..32dff3a 100644 (file)
@@ -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)
index 8e64883..736a30a 100644 (file)
@@ -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:
index 76872ed..f3b17aa 100644 (file)
@@ -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;