Eliminate SUBREGs inside MEMs.
authorBernd Schmidt <bernds@redhat.com>
Thu, 8 Feb 2001 15:09:05 +0000 (15:09 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
Thu, 8 Feb 2001 15:09:05 +0000 (15:09 +0000)
From-SVN: r39538

gcc/ChangeLog
gcc/final.c

index e7fcf7c719b8b0a349c6d17bea8a3679385e0401..e9100ce5ff67476fce5a9b6f90056155d208b80d 100644 (file)
@@ -1,3 +1,8 @@
+2001-02-08  Bernd Schmidt  <bernds@redhat.com>
+
+       * final.c (cleanup_subreg_operands): The address of a MEM can
+       contain SUBREGs.
+
 2001-02-08  Joseph S. Myers  <jsm28@cam.ac.uk>
 
        * gcc.texi (Incompatibilities): Update documentation of
index 3a2fc1537c5e22356364a15767c356ef9b2f8ada..1fd30c2847d5120a0f61ecb3b12983b35b3c9e54 100644 (file)
@@ -3119,7 +3119,8 @@ cleanup_subreg_operands (insn)
       if (GET_CODE (recog_data.operand[i]) == SUBREG)
        recog_data.operand[i] = alter_subreg (recog_data.operand[i]);
       else if (GET_CODE (recog_data.operand[i]) == PLUS
-              || GET_CODE (recog_data.operand[i]) == MULT)
+              || GET_CODE (recog_data.operand[i]) == MULT
+              || GET_CODE (recog_data.operand[i]) == MEM)
        recog_data.operand[i] = walk_alter_subreg (recog_data.operand[i]);
     }
 
@@ -3128,7 +3129,8 @@ cleanup_subreg_operands (insn)
       if (GET_CODE (*recog_data.dup_loc[i]) == SUBREG)
        *recog_data.dup_loc[i] = alter_subreg (*recog_data.dup_loc[i]);
       else if (GET_CODE (*recog_data.dup_loc[i]) == PLUS
-              || GET_CODE (*recog_data.dup_loc[i]) == MULT)
+              || GET_CODE (*recog_data.dup_loc[i]) == MULT
+              || GET_CODE (*recog_data.dup_loc[i]) == MEM)
        *recog_data.dup_loc[i] = walk_alter_subreg (*recog_data.dup_loc[i]);
     }
 }