Commit 31cc58e9 by Richard Kenner

(call expanders): Emit a blockage insn after restoring %r19 when

generating PIC.

From-SVN: r10236
parent 7276e85d
......@@ -3632,6 +3632,26 @@
emit_move_insn (pic_offset_table_rtx,
gen_rtx (REG, SImode, PIC_OFFSET_TABLE_REGNUM_SAVED));
emit_insn (gen_rtx (USE, VOIDmode, pic_offset_table_rtx));
/* Gross. We have to keep the scheduler from moving the restore
of the PIC register away from the call. SCHED_GROUP_P is
supposed to do this, but for some reason the compiler will
go into an infinite loop when we use that.
This method (blockage insn) may make worse code (then again
it may not since calls are nearly blockages anyway), but at
least it should work. */
emit_insn (gen_blockage ());
/* Gross. We have to keep the scheduler from moving the restore
of the PIC register away from the call. SCHED_GROUP_P is
supposed to do this, but for some reason the compiler will
go into an infinite loop when we use that.
This method (blockage insn) may make worse code (then again
it may not since calls are nearly blockages anyway), but at
least it should work. */
emit_insn (gen_blockage ());
}
DONE;
}")
......
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