diff options
author | aoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-03-09 06:05:27 +0000 |
---|---|---|
committer | aoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-03-09 06:05:27 +0000 |
commit | aeaa7ebf1954935c8e0bcab77d37d6701bc89c79 (patch) | |
tree | 42cc3c0be397db6b46b2ce477e0c8328c888577c /gcc/config/mips/mips.c | |
parent | 1291074bb963891af9acc7755e1ede686f80b496 (diff) | |
download | gcc-aeaa7ebf1954935c8e0bcab77d37d6701bc89c79.tar.gz |
* config/mips/mips.c (function_arg_pass_by_reference): Force to 0
in o32 and o64 ABIs.
* config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
but getting fixed-size structs passed in registers regardless of
padding in o32 and o64 ABIs.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50480 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/mips/mips.c')
-rw-r--r-- | gcc/config/mips/mips.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index 6cdbda5c8b2..72a1e9c1ac9 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -8069,6 +8069,9 @@ function_arg_pass_by_reference (cum, mode, type, named) { int size; + if (mips_abi == ABI_32 || mips_abi == ABI_O64) + return 0; + /* We must pass by reference if we would be both passing in registers and the stack. This is because any subsequent partial arg would be handled incorrectly in this case. |