Using and Porting GNU CC
When a function value's mode is
BLKmode (and in some other
cases), the value is not returned according to
(see Scalar Return). Instead, the caller passes the address of a
block of memory in which the value should be stored. This address
is called the structure value address.
This section describes how to control returning structure values in memory.
tree, representing the data type of the value.
Note that values of mode
BLKmode must be explicitly handled
by this macro. Also, the option `
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 1 for
values, and 0 otherwise.
Do not use this macro to indicate that structures and unions should always
be returned in memory. You should instead use
to indicate this.
If not defined, this defaults to the value 1.
STRUCT_VALUE_REGNUMshould be the number of that register.
STRUCT_VALUEas an expression returning an RTX for the place where the address is passed. If it returns 0, the address is passed as an ``invisible'' first argument.
If the incoming location of the structure value address is in a register, define this macro as the register number.
STRUCT_VALUE_INCOMINGas an expression for an RTX for where the called function should find the value. If it should find the value on the stack, define this to create a
memwhich refers to the frame pointer. A definition of 0 means that the address is passed as an ``invisible'' first argument.
Do not define this if the usual system convention is for the caller to pass an address to the subroutine.
This macro has effect in `
-fpcc-struct-return' mode, but it does
nothing when you use `