diff options
author | danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-10-03 04:05:54 +0000 |
---|---|---|
committer | danglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-10-03 04:05:54 +0000 |
commit | e7c894b61025c7c365b224e3f53006cae992ad2c (patch) | |
tree | 25956939697b748fd163107d355131067fe0994d | |
parent | 66ea6b7775425b8af9e00c90c1b9fce773f91a3b (diff) | |
download | ppe42-gcc-e7c894b61025c7c365b224e3f53006cae992ad2c.tar.gz ppe42-gcc-e7c894b61025c7c365b224e3f53006cae992ad2c.zip |
* pa-linux.h (FUNCTION_OK_FOR_SIBCALL): Delete macro.
* pa32-linux.h (FUNCTION_OK_FOR_SIBCALL): Define.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@57758 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/pa/pa-linux.h | 4 | ||||
-rw-r--r-- | gcc/config/pa/pa32-linux.h | 8 |
3 files changed, 13 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3e2af93c1f5..1d6667ba54d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2002-10-02 John David Anglin <dave@hiauly1.hia.nrc.ca> + + * pa-linux.h (FUNCTION_OK_FOR_SIBCALL): Delete macro. + * pa32-linux.h (FUNCTION_OK_FOR_SIBCALL): Define. + 2002-10-02 Richard Henderson <rth@redhat.com> PR opt/7124 diff --git a/gcc/config/pa/pa-linux.h b/gcc/config/pa/pa-linux.h index 86dfabc77b7..cdc201d5f59 100644 --- a/gcc/config/pa/pa-linux.h +++ b/gcc/config/pa/pa-linux.h @@ -95,10 +95,6 @@ Boston, MA 02111-1307, USA. */ %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ %{static:-static}}" -/* Sibcalls, stubs, and elf sections don't play well. */ -#undef FUNCTION_OK_FOR_SIBCALL -#define FUNCTION_OK_FOR_SIBCALL(x) 0 - /* glibc's profiling functions don't need gcc to allocate counters. */ #define NO_PROFILE_COUNTERS 1 diff --git a/gcc/config/pa/pa32-linux.h b/gcc/config/pa/pa32-linux.h index a5c1da2fa62..c8ea72de828 100644 --- a/gcc/config/pa/pa32-linux.h +++ b/gcc/config/pa/pa32-linux.h @@ -21,3 +21,11 @@ Boston, MA 02111-1307, USA. */ /* Turn off various SOM crap we don't want. */ #undef TARGET_ELF32 #define TARGET_ELF32 1 + +/* Sibcalls are ok when ld is used in single subspace mode. The + multiple subspace mode is not compatible with sibcalls to external + functions because the linker generated stubs store the return + pointer into the frame. This target does not need multiple + subspace stubs, so we allow sibcalls to all functions. */ +#undef FUNCTION_OK_FOR_SIBCALL +#define FUNCTION_OK_FOR_SIBCALL(DECL) 1 |