diff options
author | meissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-08-24 18:07:23 +0000 |
---|---|---|
committer | meissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-08-24 18:07:23 +0000 |
commit | c74181b25ca2ba32f34a59a4f0114a3edf83ffc9 (patch) | |
tree | a51ff99267d59218d7cef73454c45addeddc5121 | |
parent | 31e84bbd12d3d3fc29ca5c9f0c15d6ba2da3b6cd (diff) |
Apply fixes for 40671, 41145 from mainline to branch
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/ibm/gcc-4_3-branch@151058 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog.ibm | 11 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 20 |
2 files changed, 21 insertions, 10 deletions
diff --git a/gcc/ChangeLog.ibm b/gcc/ChangeLog.ibm index f63bcc834a9..66946bb404d 100644 --- a/gcc/ChangeLog.ibm +++ b/gcc/ChangeLog.ibm @@ -1,3 +1,14 @@ +2009-08-21 Michael Meissner <meissner@linux.vnet.ibm.com> + + PR target/40671 + * config/rs6000/rs6000.c (rs6000_override_options): Use + TARGET_64BIT instead of TARGET_POWERPC64 to set the size of + pointers. + + PR target/41145 + * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Fix + reporting of vector + decimal/boolean/complex, + 2009-07-28 Michael Meissner <meissner@linux.vnet.ibm.com> * config/rs6000/rs6000.opt (-mvectorize-buitlins): Disable this by diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index ef4fb6fdd56..281dfc1af72 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -2174,7 +2174,7 @@ rs6000_override_options (const char *default_cpu) }; /* Set the pointer size. */ - if (TARGET_POWERPC64) + if (TARGET_64BIT) { rs6000_pmode = (int)DImode; rs6000_pointer_size = 64; @@ -22611,7 +22611,15 @@ rs6000_handle_altivec_attribute (tree *node, mode = TYPE_MODE (type); /* Check for invalid AltiVec type qualifiers. */ - if (!TARGET_VSX) + if (type == long_double_type_node) + error ("use of %<long double%> in AltiVec types is invalid"); + else if (type == boolean_type_node) + error ("use of boolean types in AltiVec types is invalid"); + else if (TREE_CODE (type) == COMPLEX_TYPE) + error ("use of %<complex%> in AltiVec types is invalid"); + else if (DECIMAL_FLOAT_MODE_P (mode)) + error ("use of decimal floating point types in AltiVec types is invalid"); + else if (!TARGET_VSX) { if (type == long_unsigned_type_node || type == long_integer_type_node) { @@ -22629,14 +22637,6 @@ rs6000_handle_altivec_attribute (tree *node, else if (type == double_type_node) error ("use of %<double%> in AltiVec types is invalid without -mvsx"); } - else if (type == long_double_type_node) - error ("use of %<long double%> in AltiVec types is invalid"); - else if (type == boolean_type_node) - error ("use of boolean types in AltiVec types is invalid"); - else if (TREE_CODE (type) == COMPLEX_TYPE) - error ("use of %<complex%> in AltiVec types is invalid"); - else if (DECIMAL_FLOAT_MODE_P (mode)) - error ("use of decimal floating point types in AltiVec types is invalid"); switch (altivec_type) { |