diff options
author | Richard Stallman <rms@gnu.org> | 1992-06-11 20:48:19 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1992-06-11 20:48:19 +0000 |
commit | dafe6cf1fbcb996ec77a7322bd7de6e033b7244a (patch) | |
tree | 6978182690b15b7541e894d8a107a1dd714c27d3 | |
parent | 81359be555307aac889b95715f38754f61121d3e (diff) | |
download | gcc-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.h | 7 |
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. |