diff options
author | Eric Christopher <echristo@gcc.gnu.org> | 2007-04-18 22:27:51 +0000 |
---|---|---|
committer | Eric Christopher <echristo@gcc.gnu.org> | 2007-04-18 22:27:51 +0000 |
commit | 316fbf1945fd5ccb3c35c5495d0bc15aeb7b6917 (patch) | |
tree | 35d4b6fd54d33182546ed53ee70e97600023a6f4 | |
parent | 5083912dfabb0c52a01aa5d1a8f13f176d93d719 (diff) | |
download | gcc-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/ChangeLog | 18 | ||||
-rw-r--r-- | gcc/config/rs6000/darwin.md | 9 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 2 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 3 |
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 |