diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1996-03-02 12:44:23 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1996-03-02 12:44:23 -0500 |
commit | 06b967f926b788a80f2880a3fd09e0969964808d (patch) | |
tree | 8e8d07a572969d5df9cfc4d42934c03f6a8cb8c5 | |
parent | d80f96e9a80f8517f261e5ae518b367878ba1112 (diff) | |
download | gcc-06b967f926b788a80f2880a3fd09e0969964808d.zip gcc-06b967f926b788a80f2880a3fd09e0969964808d.tar.gz gcc-06b967f926b788a80f2880a3fd09e0969964808d.tar.bz2 |
(SKIP_CALLERS_UNIMP_P): Make agree with test used in call.
From-SVN: r11402
-rw-r--r-- | gcc/config/sparc/sparc.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index f34a369..8bf67aa 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -39,9 +39,14 @@ Boston, MA 02111-1307, USA. */ /* 1 if the caller has placed an "unimp" insn immediately after the call. This is used in v8 code when calling a function that returns a structure. - v9 doesn't have this. */ - -#define SKIP_CALLERS_UNIMP_P (!TARGET_ARCH64 && current_function_returns_struct) + v9 doesn't have this. Be careful to have this test be the same as that + used on the call. */ + +#define SKIP_CALLERS_UNIMP_P \ +(!TARGET_ARCH64 && current_function_returns_struct \ + && ! integer_zerop (DECL_SIZE (DECL_RESULT (current_function_decl))) \ + && (TREE_CODE (DECL_SIZE (DECL_RESULT (current_function_decl))) \ + == INTEGER_CST)) /* Global variables for machine-dependent things. */ |