summaryrefslogtreecommitdiff
path: root/gcc/config/mips/mips.c
diff options
context:
space:
mode:
authoraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>2002-03-09 06:05:27 +0000
committeraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>2002-03-09 06:05:27 +0000
commitaeaa7ebf1954935c8e0bcab77d37d6701bc89c79 (patch)
tree42cc3c0be397db6b46b2ce477e0c8328c888577c /gcc/config/mips/mips.c
parent1291074bb963891af9acc7755e1ede686f80b496 (diff)
downloadgcc-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.c3
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.