diff options
author | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-02-04 19:02:16 +0000 |
---|---|---|
committer | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-02-04 19:02:16 +0000 |
commit | 1747672412d105ef60ef6081f7f9311af7e8c8d9 (patch) | |
tree | e3c2138ae474b4bb29d7195b3e0e6239dbf84058 /gcc | |
parent | 81da6d4c4df176f495d0c24b541e0fe3c8c6cf07 (diff) | |
download | ppe42-gcc-1747672412d105ef60ef6081f7f9311af7e8c8d9.tar.gz ppe42-gcc-1747672412d105ef60ef6081f7f9311af7e8c8d9.zip |
* config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
for all modes whose size is greater than 8 bytes if ARCH32.
(sparc_va_arg): Handle all modes whose size is greater than 8 bytes
by reference if ARCH32.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@77262 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/sparc/sparc.c | 8 |
2 files changed, 9 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 43d54a1855c..b600f6df9f4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2004-02-04 Eric Botcazou <ebotcazou@libertysurf.fr> + + * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1 + for all modes whose size is greater than 8 bytes if ARCH32. + (sparc_va_arg): Handle all modes whose size is greater than 8 bytes + by reference if ARCH32. + 2004-02-04 Aldy Hernandez <aldyh@redhat.com> * cgraphunit.c (cgraph_postorder): Fix typo in comment. diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index 855fe1d6747..c58046277c5 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -5672,10 +5672,8 @@ function_arg_pass_by_reference (const struct sparc_args *cum ATTRIBUTE_UNUSED, if (TARGET_ARCH32) { return ((type && AGGREGATE_TYPE_P (type)) - || mode == TFmode || mode == SCmode - || mode == DCmode - || mode == TCmode); + || GET_MODE_SIZE (mode) > 8); } else { @@ -5886,10 +5884,8 @@ sparc_va_arg (tree valist, tree type) else { if (AGGREGATE_TYPE_P (type) - || TYPE_MODE (type) == TFmode || TYPE_MODE (type) == SCmode - || TYPE_MODE (type) == DCmode - || TYPE_MODE (type) == TCmode) + || GET_MODE_SIZE (TYPE_MODE (type)) > 8) { indirect = 1; size = rsize = UNITS_PER_WORD; |