Commit 336e24cf by Wei Guozhi Committed by Nick Clifton

re PR target/42671 (Thumb2 generate more instructions than Thumb1 to load GOT address)

        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
parent b4b04ed6
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> 2010-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* config/sparc/sparc.c (sparc_elf_asm_named_section): Test for * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
......
/* Output routines for GCC for ARM. /* Output routines for GCC for ARM.
Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 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. Free Software Foundation, Inc.
Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl) Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
and Martin Simmons (@harleqn.co.uk). and Martin Simmons (@harleqn.co.uk).
...@@ -5150,8 +5150,7 @@ arm_load_pic_register (unsigned long saved_regs ATTRIBUTE_UNUSED) ...@@ -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_addr_thumb2 (pic_reg, pic_rtx));
emit_insn (gen_pic_load_dot_plus_four (pic_tmp, labelno)); emit_insn (gen_pic_add_dot_plus_four (pic_reg, pic_reg, labelno));
emit_insn (gen_addsi3 (pic_reg, pic_reg, pic_tmp));
} }
else /* TARGET_THUMB1 */ else /* TARGET_THUMB1 */
{ {
......
;;- Machine description for ARM for GNU compiler ;;- Machine description for ARM for GNU compiler
;; Copyright 1991, 1993, 1994, 1995, 1996, 1996, 1997, 1998, 1999, 2000, ;; 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. ;; Free Software Foundation, Inc.
;; Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl) ;; Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
;; and Martin Simmons (@harleqn.co.uk). ;; and Martin Simmons (@harleqn.co.uk).
...@@ -5267,7 +5267,7 @@ ...@@ -5267,7 +5267,7 @@
(const_int 4) (const_int 4)
(match_operand 2 "" "")] (match_operand 2 "" "")]
UNSPEC_PIC_BASE))] UNSPEC_PIC_BASE))]
"TARGET_THUMB1" "TARGET_THUMB"
"* "*
(*targetm.asm_out.internal_label) (asm_out_file, \"LPIC\", (*targetm.asm_out.internal_label) (asm_out_file, \"LPIC\",
INTVAL (operands[2])); INTVAL (operands[2]));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment