]> gcc.gnu.org Git - gcc.git/commitdiff
darwin.md (load_macho_picbase): Use link register only.
authorEric Christopher <echristo@gcc.gnu.org>
Wed, 18 Apr 2007 22:27:51 +0000 (22:27 +0000)
committerEric Christopher <echristo@gcc.gnu.org>
Wed, 18 Apr 2007 22:27:51 +0000 (22:27 +0000)
2007-04-18  Eric Christopher  <echristo@apple.com>

        * config/rs6000/darwin.md (load_macho_picbase): Use link register
        only. Update operands.
        * config/rs6000/rs6000.c (rs6000_emit_prologue): Update caller.
        * config/rs6000/rs6000.md (builtin_setjmp_receiver): Ditto. Move from
        link register to pic register.

From-SVN: r123960

gcc/ChangeLog
gcc/config/rs6000/darwin.md
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.md

index 584dd82a9c46c1de5271e2fcac4c9f0dcf0d12c8..1138a1a3d14dc0de8d20b63e3c67cf9f86f0aaa3 100644 (file)
@@ -1,6 +1,10 @@
-2007-04-18  Philippe De Muyter  <phdm@macqel.be>
+2007-04-18  Eric Christopher  <echristo@apple.com>
 
-       * config/m68k/m68k.c (output_btst): Use `movew to ccr' when useful.
+       * config/rs6000/darwin.md (load_macho_picbase): Use link register
+       only. Update operands.
+       * config/rs6000/rs6000.c (rs6000_emit_prologue): Update caller.
+       * config/rs6000/rs6000.md (builtin_setjmp_receiver): Ditto. Move from
+       link register to pic register.
 
 2007-04-18  Dirk Mueller  <dmueller@suse.de>
 
        * tree-vect-analyze.c (vect_analyze_loop_form): Set loop->aux.
 
        * tree-vectorizer.h (NITERS_KNOWN_P): New.
-       * tree-vect-analyze.c (vect_analyze_loop_form): Call NITERS_KNOWN_P 
+       * tree-vect-analyze.c (vect_analyze_loop_form): Call NITERS_KNOWN_P
        instead of LOOP_VINFO_INT_NITERS to avoid having to geneate loop_info.
 
-       * tree-vect-analyze.c (vect_determine_vectorization_factor): Add 
+       * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
        dump print.
        (vect_analyze_operations): Fix indenetation.  Fix a comment.  Fix a
        print message.
        (vect_transform_loop): Consider phis for vectorization.
        * tree-vect-analyze.c (vect_determine_vectorization_factor): Simplify
        condition.
-       (analyze_operations): Call vectorizable_induction when analyzing phis.  
+       (analyze_operations): Call vectorizable_induction when analyzing phis.
        Fix comment.
        (vect_mark_stmts_to_be_vectorized): Remove redundant checks.
        (vect_mark_relevant): Include phis in relevance analysis.
 
        * config/avr/avr.c (avr_arch_types): Rearranging  array.
        (enum avr_arch): Add.
-       (avr_mcu_types): Use avr_arch enumeration constants instead of 
+       (avr_mcu_types): Use avr_arch enumeration constants instead of
        numbers.
        * config/avr/avr.h (LINK_SPEC): Simplify.
 
        PR c++/31078
        PR c++/31103
        * c-common.c (c_build_qualified_type): Set canonical type
-       appropriately.  
+       appropriately.
 
 2007-04-12  Richard Guenther  <rguenther@suse.de>
 
index ea46ef03585d1aa169bcba60ec2459db837189ba..835df204de14bd33e7fbc931d6a6d5ed62c37dde 100644 (file)
@@ -239,15 +239,15 @@ Boston, MA 02110-1301, USA.  */
   "")
 
 (define_expand "load_macho_picbase"
-  [(set (match_operand 0 "" "")
-        (unspec [(match_operand 1 "" "")]
+  [(set (reg:SI 65)
+        (unspec [(match_operand 0 "" "")]
                    UNSPEC_LD_MPIC))]
   "(DEFAULT_ABI == ABI_DARWIN) && flag_pic"
 {
   if (TARGET_32BIT)
-    emit_insn (gen_load_macho_picbase_si (operands[1]));
+    emit_insn (gen_load_macho_picbase_si (operands[0]));
   else
-    emit_insn (gen_load_macho_picbase_di (operands[1]));
+    emit_insn (gen_load_macho_picbase_di (operands[0]));
 
   DONE;
 })
@@ -437,4 +437,3 @@ Boston, MA 02110-1301, USA.  */
 }"
   [(set_attr "type" "branch")
    (set_attr "length" "4")])
-
index 47e1a910da9f6c199472b46790c57fcd9124a889..1e70996c8886e447baac7336279996fcdddc143a 100644 (file)
@@ -15160,7 +15160,7 @@ rs6000_emit_prologue (void)
       if (!info->lr_save_p)
        rs6000_maybe_dead (emit_move_insn (gen_rtx_REG (Pmode, 0), lr));
 
-      rs6000_maybe_dead (emit_insn (gen_load_macho_picbase (lr, src)));
+      rs6000_maybe_dead (emit_insn (gen_load_macho_picbase (src)));
 
       insn = emit_move_insn (gen_rtx_REG (Pmode,
                                          RS6000_PIC_OFFSET_TABLE_REGNUM),
index bba0df4a4387a925de3041745dfc0ba06ac624c9..2359b9e2b7787aded5647b41000118b2ec10226e 100644 (file)
                                  CODE_LABEL_NUMBER (operands[0]));
       tmplabrtx = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (tmplab));
 
-      emit_insn (gen_load_macho_picbase (picreg, tmplabrtx));
+      emit_insn (gen_load_macho_picbase (tmplabrtx));
+      emit_move_insn (picreg, gen_rtx_REG (Pmode, LINK_REGISTER_REGNUM));
       emit_insn (gen_macho_correct_pic (picreg, picreg, picrtx, tmplabrtx));
     }
   else
This page took 0.101692 seconds and 5 git commands to generate.