i386.c (ix86_output_function_epilogue): Don't insert a label at the end of an function under Mach-O.

* config/i386/i386.c (ix86_output_function_epilogue): Don't
	insert a label at the end of an function under Mach-O.

From-SVN: r115079
This commit is contained in:
Asher Langton 2006-06-29 21:49:19 +00:00 committed by Asher Langton
parent 6cbd871cb0
commit f8c2645c2d
2 changed files with 23 additions and 0 deletions

View file

@ -1,3 +1,9 @@
2006-06-29 Asher Langton <langton2@llnl.gov>
PR target/25765
* config/i386/i386.c (ix86_output_function_epilogue): Don't
insert a label at the end of an function under Mach-O.
2006-06-29 Eric Christopher <echristo@apple.com>
Evan Cheng <evan.cheng@apple.com>

View file

@ -5700,6 +5700,23 @@ ix86_output_function_epilogue (FILE *file ATTRIBUTE_UNUSED,
{
if (pic_offset_table_rtx)
REGNO (pic_offset_table_rtx) = REAL_PIC_OFFSET_TABLE_REGNUM;
#if TARGET_MACHO
/* Mach-O doesn't support labels at the end of objects, so if
it looks like we might want one, insert a NOP. */
{
rtx insn = get_last_insn ();
while (insn
&& NOTE_P (insn)
&& NOTE_LINE_NUMBER (insn) != NOTE_INSN_DELETED_LABEL)
insn = PREV_INSN (insn);
if (insn
&& (LABEL_P (insn)
|| (NOTE_P (insn)
&& NOTE_LINE_NUMBER (insn) == NOTE_INSN_DELETED_LABEL)))
fputs ("\tnop\n", file);
}
#endif
}
/* Extract the parts of an RTL expression that is a valid memory address