Commit 316fbf19 by Eric Christopher

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
parent 5083912d
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>
......
......@@ -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")])
......@@ -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),
......
......@@ -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
......
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