aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2004-08-17 16:40:40 +0000
committerFariborz Jahanian <fjahanian@gcc.gnu.org>2004-08-17 16:40:40 +0000
commitd0b2079e0ab36ea2011df1cb17fe35911cab9624 (patch)
tree159076808a591c41849c35f941dbf8d67f35ec42 /gcc
parentfeb3dc8b30eb28ac5c65af85e4ed4c4257733998 (diff)
downloadgcc-d0b2079e0ab36ea2011df1cb17fe35911cab9624.zip
gcc-d0b2079e0ab36ea2011df1cb17fe35911cab9624.tar.gz
gcc-d0b2079e0ab36ea2011df1cb17fe35911cab9624.tar.bz2
Check for Altivec mode when returning altivec register.
Reviewed by David Edehlson. From-SVN: r86135
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/rs6000/rs6000.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 47a6ede..5d06f49 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2004-08-17 Fariborz Jahanian <fjahanian@apple.com>
+
+ * config/rs6000/rs6000.c (rs6000_function_value): Check for
+ altivec mode for altivec return register.
+
2004-08-17 David Edelsohn <edelsohn@gnu.org>
Revert 2004-08-16 Stan Shebs <shebs@apple.com>
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index a3a8f34..0312596 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -17047,7 +17047,8 @@ rs6000_function_value (tree valtype, tree func ATTRIBUTE_UNUSED)
&& targetm.calls.split_complex_arg)
return rs6000_complex_function_value (mode);
else if (TREE_CODE (valtype) == VECTOR_TYPE
- && TARGET_ALTIVEC && TARGET_ALTIVEC_ABI)
+ && TARGET_ALTIVEC && TARGET_ALTIVEC_ABI
+ && ALTIVEC_VECTOR_MODE(mode))
regno = ALTIVEC_ARG_RETURN;
else
regno = GP_ARG_RETURN;