diff options
author | kan <kan@FreeBSD.org> | 2003-08-22 02:56:07 +0000 |
---|---|---|
committer | kan <kan@FreeBSD.org> | 2003-08-22 02:56:07 +0000 |
commit | 08db0e4d745472adc9c30de407304713c78e950e (patch) | |
tree | aa86de970d24a76b30b53157cf41e9d09ffe4d51 /contrib/gcc/config/rs6000 | |
parent | 7b704871fdac058719f34a1e6b9de71ee76c5be4 (diff) | |
download | FreeBSD-src-08db0e4d745472adc9c30de407304713c78e950e.zip FreeBSD-src-08db0e4d745472adc9c30de407304713c78e950e.tar.gz |
Gcc 3.3.1-release.
Diffstat (limited to 'contrib/gcc/config/rs6000')
-rw-r--r-- | contrib/gcc/config/rs6000/rs6000.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/contrib/gcc/config/rs6000/rs6000.c b/contrib/gcc/config/rs6000/rs6000.c index 591f77d..3c17f21 100644 --- a/contrib/gcc/config/rs6000/rs6000.c +++ b/contrib/gcc/config/rs6000/rs6000.c @@ -11110,6 +11110,23 @@ rs6000_output_function_epilogue (file, size) } } +#if TARGET_OBJECT_FORMAT == OBJECT_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 + /* Output a traceback table here. See /usr/include/sys/debug.h for info on its format. |