diff options
author | Kai Tietz <kai.tietz@onevision.com> | 2008-05-08 09:10:49 +0200 |
---|---|---|
committer | Kai Tietz <ktietz@gcc.gnu.org> | 2008-05-08 09:10:49 +0200 |
commit | 81464b2cd8f8153d1314a628fdc3dbdbb27a9c02 (patch) | |
tree | 83a184beafd987a7fefd927cf5a86a9415fcc4c4 /gcc/config/arm | |
parent | 2fada7f3f32accc658153f57035890255a126076 (diff) | |
download | gcc-81464b2cd8f8153d1314a628fdc3dbdbb27a9c02.zip gcc-81464b2cd8f8153d1314a628fdc3dbdbb27a9c02.tar.gz gcc-81464b2cd8f8153d1314a628fdc3dbdbb27a9c02.tar.bz2 |
2008-05-07 Kai Tietz <kai,tietz@onevision.com>
* calls.c (compute_argument_block_size): Add argument tree fndecl.
(OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
(emit_library_call_value_1): Add new variable fndecl initialized by
NULL_TREE. It should be the decl type of orgfun, but this information
seems not to be available here, so it uses the default calling abi.
* config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
* config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
by TARGET_RETURN_IN_MEMORY.
* config/i386/i386-interix.h: Likewise.
* config/i386/i386.h: Likewise.
* config/i386/i386elf.h: Likewise.
* config/i386/ptx4-i.h: Likewise.
* config/i386/sol2-10.h: Likewise.
* config/i386/sysv4.h: Likewise.
* config/i386/vx-common.h: Likewise.
* config/cris/cris.h: Removed #if 0 clause.
* config/arm/arm-protos.h (arm_return_in_memory): Add fntype
argument.
* config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
argument.
(ix86_sol10_return_in_memory): Likewise.
(ix86_i386elf_return_in_memory): New.
(ix86_i386interix_return_in_memory): New.
* config/mt/mt-protos.h (mt_return_in_memory): New.
* config/mt/mt.c: Likewise.
* config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
(RETURN_IN_MEMORY): Replace by TARGET_RETURN_IN_MEMORY.
* config/bfin/bfin.h: Likewise.
* config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
argument.
* config/bfin/bfin.c: Likewise.
* config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
* config/alpha/unicosmk.h: Likewise.
* config/i386/cygming.h: Likewise.
* config/iq2000/iq2000.h: Likewise.
* config/mips/mips.h: Likewise.
* config/mn10300/mn10300.h: Likewise.
* config/rs6000/rs6000.h: Likewise.
* config/score/score.h: Likewise.
* config/spu/spu.h: Likewise.
* config/v850/v850.h: Likewise.
* defaults.h: Likewise.
* doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
* expr.c (emit_block_move): Adjust use of OUTGOING_REG_PARM_STACK_SPACE.
* function.c (STACK_DYNAMIC_OFFSET): Adjust use of
OUTGOING_REG_PARM_STACK_SPACE.
* targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
From-SVN: r135069
Diffstat (limited to 'gcc/config/arm')
-rw-r--r-- | gcc/config/arm/arm-protos.h | 2 | ||||
-rw-r--r-- | gcc/config/arm/arm.c | 8 | ||||
-rw-r--r-- | gcc/config/arm/arm.h | 2 | ||||
-rw-r--r-- | gcc/config/arm/netbsd.h | 2 |
4 files changed, 7 insertions, 7 deletions
diff --git a/gcc/config/arm/arm-protos.h b/gcc/config/arm/arm-protos.h index 3a71744..e4540ec 100644 --- a/gcc/config/arm/arm-protos.h +++ b/gcc/config/arm/arm-protos.h @@ -43,7 +43,7 @@ extern void arm_output_fn_unwind (FILE *, bool); #ifdef TREE_CODE -extern int arm_return_in_memory (const_tree); +extern int arm_return_in_memory (const_tree, const_tree); #endif #ifdef RTX_CODE extern bool arm_vector_mode_supported_p (enum machine_mode); diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 64f12a1..3a81172 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -2736,9 +2736,9 @@ arm_apply_result_size (void) /* Decide whether a type should be returned in memory (true) or in a register (false). This is called by the macro - RETURN_IN_MEMORY. */ + TARGET_RETURN_IN_MEMORY. */ int -arm_return_in_memory (const_tree type) +arm_return_in_memory (const_tree type, const_tree fntype ATTRIBUTE_UNUSED) { HOST_WIDE_INT size; @@ -2801,7 +2801,7 @@ arm_return_in_memory (const_tree type) /* ... Aggregates that are not themselves valid for returning in a register are not allowed. */ - if (RETURN_IN_MEMORY (TREE_TYPE (field))) + if (arm_return_in_memory (TREE_TYPE (field), NULL_TREE)) return 1; /* Now check the remaining fields, if any. Only bitfields are allowed, @@ -2836,7 +2836,7 @@ arm_return_in_memory (const_tree type) if (FLOAT_TYPE_P (TREE_TYPE (field))) return 1; - if (RETURN_IN_MEMORY (TREE_TYPE (field))) + if (arm_return_in_memory (TREE_TYPE (field), NULL_TREE)) return 1; } diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h index b6e182c..7f10a57 100644 --- a/gcc/config/arm/arm.h +++ b/gcc/config/arm/arm.h @@ -1481,7 +1481,7 @@ do { \ /* How large values are returned */ /* A C expression which can inhibit the returning of certain function values in registers, based on the type of value. */ -#define RETURN_IN_MEMORY(TYPE) arm_return_in_memory (TYPE) +#define TARGET_RETURN_IN_MEMORY arm_return_in_memory /* Define DEFAULT_PCC_STRUCT_RETURN to 1 if all structure and union return values must be in memory. On the ARM, they need only do so if larger diff --git a/gcc/config/arm/netbsd.h b/gcc/config/arm/netbsd.h index 33833cc..d9d39bd 100644 --- a/gcc/config/arm/netbsd.h +++ b/gcc/config/arm/netbsd.h @@ -101,7 +101,7 @@ /* Although not normally relevant (since by default, all aggregates are returned in memory) compiling some parts of libc requires non-APCS style struct returns. */ -#undef RETURN_IN_MEMORY +#undef TARGET_RETURN_IN_MEMORY /* VERY BIG NOTE : Change of structure alignment for RiscBSD. There are consequences you should be aware of... |