aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1992-06-11 20:48:19 +0000
committerRichard Stallman <rms@gnu.org>1992-06-11 20:48:19 +0000
commitdafe6cf1fbcb996ec77a7322bd7de6e033b7244a (patch)
tree6978182690b15b7541e894d8a107a1dd714c27d3
parent81359be555307aac889b95715f38754f61121d3e (diff)
downloadgcc-dafe6cf1fbcb996ec77a7322bd7de6e033b7244a.zip
gcc-dafe6cf1fbcb996ec77a7322bd7de6e033b7244a.tar.gz
gcc-dafe6cf1fbcb996ec77a7322bd7de6e033b7244a.tar.bz2
(RETURN_IN_MEMORY): Do nothing for structs and unions.
From-SVN: r1192
-rw-r--r--gcc/config/sparc/sparc.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h
index 7a57813..4e65e67 100644
--- a/gcc/config/sparc/sparc.h
+++ b/gcc/config/sparc/sparc.h
@@ -383,10 +383,11 @@ extern int leaf_function;
#define FINALIZE_PIC finalize_pic ()
/* Sparc ABI says that quad-precision floats and all structures are returned
- in memory. */
+ in memory. We go along regarding floats, but for structures
+ we follow GCC's normal policy. Use -fpcc-struct-value
+ if you want to follow the ABI. */
#define RETURN_IN_MEMORY(TYPE) \
- (TREE_CODE (TYPE) == RECORD_TYPE || TREE_CODE (TYPE) == UNION_TYPE \
- || TYPE_MODE (TYPE) == TFmode)
+ (TYPE_MODE (TYPE) == TFmode)
/* Functions which return large structures get the address
to place the wanted value at offset 64 from the frame.