PR target/37436
authorrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 16 Dec 2008 12:03:41 +0000 (12:03 +0000)
committerrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 16 Dec 2008 12:03:41 +0000 (12:03 +0000)
* arm.c (arm_legitimate_index): Only accept addresses that are in
canonical form.
* predicates.md (arm_reg_or_extendqisi_mem_op): New predicate.
* arm.md (extendqihi2): Use arm_reg_or_extendqisi_mem_op predicate
for operand1.
(extendqisi2): Likewise.
(arm_extendqisi, arm_extendqisi_v6): Use arm_extendqisi_mem_op
predicate for operand1.

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

gcc/ChangeLog
gcc/config/arm/arm.c
gcc/config/arm/arm.md
gcc/config/arm/predicates.md

index 8fe6a69..c941cd2 100644 (file)
@@ -1,3 +1,15 @@
+2008-12-16  Richard Earnshaw  <rearnsha@arm.com>
+
+       PR target/37436
+       * arm.c (arm_legitimate_index): Only accept addresses that are in
+       canonical form.
+       * predicates.md (arm_reg_or_extendqisi_mem_op): New predicate.
+       * arm.md (extendqihi2): Use arm_reg_or_extendqisi_mem_op predicate
+       for operand1.
+       (extendqisi2): Likewise.
+       (arm_extendqisi, arm_extendqisi_v6): Use arm_extendqisi_mem_op
+       predicate for operand1.
+       
 2008-12-15  Adam Nemet  <anemet@caviumnetworks.com>
 
        * config/mips/mips.c (mips_output_conditional_branch): Assert that
index 497564a..46aa238 100644 (file)
@@ -3844,6 +3844,7 @@ arm_legitimate_address_p (enum machine_mode mode, rtx x, RTX_CODE outer,
       rtx xop1 = XEXP (x, 1);
 
       return ((arm_address_register_rtx_p (xop0, strict_p)
+              && GET_CODE(xop1) == CONST_INT
               && arm_legitimate_index_p (mode, xop1, outer, strict_p))
              || (arm_address_register_rtx_p (xop1, strict_p)
                  && arm_legitimate_index_p (mode, xop0, outer, strict_p)));
Simple merge
Simple merge