re PR target/42671 (Thumb2 generate more instructions than Thumb1 to load GOT address)
authorWei Guozhi <carrot@google.com>
Wed, 27 Jan 2010 09:19:36 +0000 (09:19 +0000)
committerNick Clifton <nickc@gcc.gnu.org>
Wed, 27 Jan 2010 09:19:36 +0000 (09:19 +0000)
        PR target/42671
        * config/arm/arm.c (arm_load_pic_register): Use the same code
        sequence with Thumb2 as for Thumb1.
        * config/arm/arm.md (pic_add_dot_plus_four): Enable this pattern
        for all Thumb varieties.

From-SVN: r156276

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

index 7c976bd7b0480a65816e06e699a5a2b8378595ed..16840a862d03456d5e541f1a94d5e41dd78d9b22 100644 (file)
@@ -1,3 +1,11 @@
+2010-01-27  Wei Guozhi  <carrot@google.com>
+
+        PR target/42671
+        * config/arm/arm.c (arm_load_pic_register): Use the same code
+       sequence with Thumb2 as for Thumb1.
+        * config/arm/arm.md (pic_add_dot_plus_four): Enable this pattern
+       for all Thumb varieties.
+
 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
        * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
index ffff9ab2f87a60d7afb8b7d415be49586752f043..877e9bbb750afb5436824c221d53fb0d291fdfbb 100644 (file)
@@ -1,6 +1,6 @@
 /* Output routines for GCC for ARM.
    Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
    Free Software Foundation, Inc.
    Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
    and Martin Simmons (@harleqn.co.uk).
@@ -5150,8 +5150,7 @@ arm_load_pic_register (unsigned long saved_regs ATTRIBUTE_UNUSED)
            }
 
          emit_insn (gen_pic_load_addr_thumb2 (pic_reg, pic_rtx));
-         emit_insn (gen_pic_load_dot_plus_four (pic_tmp, labelno));
-         emit_insn (gen_addsi3 (pic_reg, pic_reg, pic_tmp));
+         emit_insn (gen_pic_add_dot_plus_four (pic_reg, pic_reg, labelno));
        }
       else /* TARGET_THUMB1 */
        {
index cbb0a1bdf1439e099cfcc9277ed226dcf7c102ac..ae1aad2b9fba6f59670b82f9c2c43985ce977398 100644 (file)
@@ -1,6 +1,6 @@
 ;;- Machine description for ARM for GNU compiler
 ;;  Copyright 1991, 1993, 1994, 1995, 1996, 1996, 1997, 1998, 1999, 2000,
-;;  2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+;;  2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
 ;;  Free Software Foundation, Inc.
 ;;  Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
 ;;  and Martin Simmons (@harleqn.co.uk).
                    (const_int 4)
                    (match_operand 2 "" "")]
                   UNSPEC_PIC_BASE))]
-  "TARGET_THUMB1"
+  "TARGET_THUMB"
   "*
   (*targetm.asm_out.internal_label) (asm_out_file, \"LPIC\",
                                     INTVAL (operands[2]));