aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Christopher <echristo@gcc.gnu.org>2007-04-18 22:27:51 +0000
committerEric Christopher <echristo@gcc.gnu.org>2007-04-18 22:27:51 +0000
commit316fbf1945fd5ccb3c35c5495d0bc15aeb7b6917 (patch)
tree35d4b6fd54d33182546ed53ee70e97600023a6f4
parent5083912dfabb0c52a01aa5d1a8f13f176d93d719 (diff)
downloadgcc-316fbf1945fd5ccb3c35c5495d0bc15aeb7b6917.zip
gcc-316fbf1945fd5ccb3c35c5495d0bc15aeb7b6917.tar.gz
gcc-316fbf1945fd5ccb3c35c5495d0bc15aeb7b6917.tar.bz2
darwin.md (load_macho_picbase): Use link register only.
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
-rw-r--r--gcc/ChangeLog18
-rw-r--r--gcc/config/rs6000/darwin.md9
-rw-r--r--gcc/config/rs6000/rs6000.c2
-rw-r--r--gcc/config/rs6000/rs6000.md3
4 files changed, 18 insertions, 14 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 584dd82..1138a1a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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>
@@ -15,10 +19,10 @@
* 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.
@@ -163,7 +167,7 @@
(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.
@@ -256,7 +260,7 @@
* 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.
@@ -673,7 +677,7 @@
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>
diff --git a/gcc/config/rs6000/darwin.md b/gcc/config/rs6000/darwin.md
index ea46ef0..835df20 100644
--- a/gcc/config/rs6000/darwin.md
+++ b/gcc/config/rs6000/darwin.md
@@ -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")])
-
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 47e1a91..1e70996 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -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),
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index bba0df4..2359b9e 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -10559,7 +10559,8 @@
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