aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/mips/mips.h
diff options
context:
space:
mode:
authorDoug Evans <dje@gnu.org>1993-03-12 00:10:21 +0000
committerDoug Evans <dje@gnu.org>1993-03-12 00:10:21 +0000
commite14fa9c45a5fd9b4be62dedd78daa5559f4c83fc (patch)
treedb4aa309ff091e04ba8f5df5c60b09e38c6ea2db /gcc/config/mips/mips.h
parentac07e0665d5044978a404837c22bfbf4adbe7ffa (diff)
downloadgcc-e14fa9c45a5fd9b4be62dedd78daa5559f4c83fc.zip
gcc-e14fa9c45a5fd9b4be62dedd78daa5559f4c83fc.tar.gz
gcc-e14fa9c45a5fd9b4be62dedd78daa5559f4c83fc.tar.bz2
* (RETURN_IN_MEMORY): Handle BLKmode values.
From-SVN: r3709
Diffstat (limited to 'gcc/config/mips/mips.h')
-rw-r--r--gcc/config/mips/mips.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h
index adc3634..9cceff2 100644
--- a/gcc/config/mips/mips.h
+++ b/gcc/config/mips/mips.h
@@ -1759,11 +1759,12 @@ extern struct mips_frame_info current_frame_info;
always returned. Here TYPE will be a C expression of type
`tree', representing the data type of the value.
- Note that values of mode `BLKmode' are returned in memory
- regardless of this macro. Also, the option `-fpcc-struct-return'
+ Note that values of mode `BLKmode' must be explicitly
+ handled by this macro. Also, the option `-fpcc-struct-return'
takes effect regardless of this macro. On most systems, it is
possible to leave the macro undefined; this causes a default
- definition to be used, whose value is the constant 0.
+ definition to be used, whose value is the constant 1 for BLKmode
+ values, and 0 otherwise.
GCC normally converts 1 byte structures into chars, 2 byte
structs into shorts, and 4 byte structs into ints, and returns
@@ -1771,7 +1772,8 @@ extern struct mips_frame_info current_frame_info;
to give us MIPS cc compatibility. */
#define RETURN_IN_MEMORY(TYPE) \
- ((TREE_CODE (TYPE) == RECORD_TYPE) || (TREE_CODE (TYPE) == UNION_TYPE))
+ ((TYPE_MODE (TYPE) == BLKmode) \
+ || (TREE_CODE (TYPE) == RECORD_TYPE) || (TREE_CODE (TYPE) == UNION_TYPE))
/* A code distinguishing the floating point format of the target