diff options
author | kazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-02-06 05:55:07 +0000 |
---|---|---|
committer | kazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-02-06 05:55:07 +0000 |
commit | 39cc9599f82417be8a7b53a76aeaa649a08b1814 (patch) | |
tree | 747192e9ce04e2e116aa37e5fc0323f98c4339f1 /gcc | |
parent | c1ab9f722fc7021de8c8850e41fe159f6366c59e (diff) | |
download | gcc-39cc9599f82417be8a7b53a76aeaa649a08b1814.tar.gz |
* config/arc/arc.c (arc_return_in_memory): Check the return
value of int_size_in_bytes against -1. Don't check
TREE_ADDRESSABLE.
* config/avr/avr.c (avr_return_in_memory): Check the return
value of int_size_in_bytes against -1.
* config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
* config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
Likewise.
* config/mcore/mcore.c (mcore_return_in_memory): Likewise.
* config/stormy16/stormy16.c (xstormy16_return_in_memory):
Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@77377 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 14 | ||||
-rw-r--r-- | gcc/config/arc/arc.c | 10 | ||||
-rw-r--r-- | gcc/config/avr/avr.c | 10 | ||||
-rw-r--r-- | gcc/config/ip2k/ip2k.c | 8 | ||||
-rw-r--r-- | gcc/config/m68hc11/m68hc11.c | 10 | ||||
-rw-r--r-- | gcc/config/mcore/mcore.c | 3 | ||||
-rw-r--r-- | gcc/config/stormy16/stormy16.c | 5 |
7 files changed, 48 insertions, 12 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 665435746ee..32c3894826c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,19 @@ 2004-02-06 Kazu Hirata <kazu@cs.umass.edu> + * config/arc/arc.c (arc_return_in_memory): Check the return + value of int_size_in_bytes against -1. Don't check + TREE_ADDRESSABLE. + * config/avr/avr.c (avr_return_in_memory): Check the return + value of int_size_in_bytes against -1. + * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise. + * config/m68hc11/m68hc11.c (m68hc11_return_in_memory): + Likewise. + * config/mcore/mcore.c (mcore_return_in_memory): Likewise. + * config/stormy16/stormy16.c (xstormy16_return_in_memory): + Likewise. + +2004-02-06 Kazu Hirata <kazu@cs.umass.edu> + * config/frv/frv-protos.h: Remove the prototype for frv_setup_incoming_varargs. * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New. diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c index c838f32ea83..f0c1bf22fac 100644 --- a/gcc/config/arc/arc.c +++ b/gcc/config/arc/arc.c @@ -2396,7 +2396,11 @@ arc_external_libcall (rtx fun ATTRIBUTE_UNUSED) static bool arc_return_in_memory (tree type, tree fntype ATTRIBUTE_UNUSED) { - return (AGGREGATE_TYPE_P (type) - || int_size_in_bytes (type) > 8 - || TREE_ADDRESSABLE (type)); + if (AGGREGATE_TYPE_P (type)) + return true; + else + { + HOST_WIDE_INT size = int_size_in_bytes (type); + return (size == -1 || size > 8); + } } diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c index 331f7cdfa64..07540df9f3a 100644 --- a/gcc/config/avr/avr.c +++ b/gcc/config/avr/avr.c @@ -5384,9 +5384,13 @@ avr_asm_out_dtor (rtx symbol, int priority) static bool avr_return_in_memory (tree type, tree fntype ATTRIBUTE_UNUSED) { - return ((TYPE_MODE (type) == BLKmode) - ? int_size_in_bytes (type) > 8 - : 0); + if (TYPE_MODE (type) == BLKmode) + { + HOST_WIDE_INT size = int_size_in_bytes (type); + return (size == -1 || size > 8); + } + else + return false; } #include "gt-avr.h" diff --git a/gcc/config/ip2k/ip2k.c b/gcc/config/ip2k/ip2k.c index 916fd1025d1..13652e41218 100644 --- a/gcc/config/ip2k/ip2k.c +++ b/gcc/config/ip2k/ip2k.c @@ -6201,7 +6201,13 @@ ip2k_unsigned_comparison_operator (rtx op, enum machine_mode mode) static bool ip2k_return_in_memory (tree type, tree fntype ATTRIBUTE_UNUSED) { - return (TYPE_MODE (type) == BLKmode) ? int_size_in_bytes (type) > 8 : 0; + if (TYPE_MODE (type) == BLKmode) + { + HOST_WIDE_INT size = int_size_in_bytes (type); + return (size == -1 || size > 8); + } + else + return false; } /* Worker function for TARGET_SETUP_INCOMING_VARARGS. */ diff --git a/gcc/config/m68hc11/m68hc11.c b/gcc/config/m68hc11/m68hc11.c index c4304211512..e5bca2ed56b 100644 --- a/gcc/config/m68hc11/m68hc11.c +++ b/gcc/config/m68hc11/m68hc11.c @@ -5550,9 +5550,13 @@ m68hc11_struct_value_rtx (tree fntype ATTRIBUTE_UNUSED, static bool m68hc11_return_in_memory (tree type, tree fntype ATTRIBUTE_UNUSED) { - return ((TYPE_MODE (type) == BLKmode) - ? (int_size_in_bytes (type) > 4) - : (GET_MODE_SIZE (TYPE_MODE (type)) > 4)); + if (TYPE_MODE (type) == BLKmode) + { + HOST_WIDE_INT size = int_size_in_bytes (type); + return (size == -1 || size > 4); + } + else + return GET_MODE_SIZE (TYPE_MODE (type)) > 4; } #include "gt-m68hc11.h" diff --git a/gcc/config/mcore/mcore.c b/gcc/config/mcore/mcore.c index 58a47623ca1..8f2036ce7ec 100644 --- a/gcc/config/mcore/mcore.c +++ b/gcc/config/mcore/mcore.c @@ -3466,5 +3466,6 @@ mcore_external_libcall (rtx fun) static bool mcore_return_in_memory (tree type, tree fntype ATTRIBUTE_UNUSED) { - return int_size_in_bytes (type) > 2 * UNITS_PER_WORD; + HOST_WIDE_INT size = int_size_in_bytes (type); + return (size == -1 || size > 2 * UNITS_PER_WORD); } diff --git a/gcc/config/stormy16/stormy16.c b/gcc/config/stormy16/stormy16.c index 867cd2129a2..7678ccfcafd 100644 --- a/gcc/config/stormy16/stormy16.c +++ b/gcc/config/stormy16/stormy16.c @@ -2170,10 +2170,13 @@ xstormy16_expand_builtin(tree exp, rtx target, return retval; } +/* Worker function for TARGET_RETURN_IN_MEMORY. */ + static bool xstormy16_return_in_memory (tree type, tree fntype ATTRIBUTE_UNUSED) { - return int_size_in_bytes (type) > UNITS_PER_WORD * NUM_ARGUMENT_REGISTERS; + HOST_WIDE_INT size = int_size_in_bytes (type); + return (size == -1 || size > UNITS_PER_WORD * NUM_ARGUMENT_REGISTERS); } #undef TARGET_ASM_ALIGNED_HI_OP |