aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBill Schmidt <wschmidt@linux.ibm.com>2021-08-30 14:55:11 -0500
committerBill Schmidt <wschmidt@linux.ibm.com>2021-08-30 14:58:27 -0500
commita5027ea2ad22c82adc68e02dae8be7f69131503a (patch)
treefbe1e5c9bb4faf3c819812585ac6f9d111ed0654
parentb5bc39317bf4da1d51cb6eccf8afcacc90514602 (diff)
downloadgcc-a5027ea2ad22c82adc68e02dae8be7f69131503a.zip
gcc-a5027ea2ad22c82adc68e02dae8be7f69131503a.tar.gz
gcc-a5027ea2ad22c82adc68e02dae8be7f69131503a.tar.bz2
rs6000: Add sanity to V2DI_type_node definitions
2021-08-30 Bill Schmidt <wschmidt@linux.ibm.com> gcc/ * config/rs6000/rs6000-call.c (rs6000_init_builtins): Change initialization of V2DI_type_node and unsigned_V2DI_type_node.
-rw-r--r--gcc/config/rs6000/rs6000-call.c31
1 files changed, 24 insertions, 7 deletions
diff --git a/gcc/config/rs6000/rs6000-call.c b/gcc/config/rs6000/rs6000-call.c
index 87f9709..df405e1 100644
--- a/gcc/config/rs6000/rs6000-call.c
+++ b/gcc/config/rs6000/rs6000-call.c
@@ -13297,15 +13297,23 @@ rs6000_init_builtins (void)
tree ftype;
tree t;
machine_mode mode;
+ const char *str;
if (TARGET_DEBUG_BUILTIN)
fprintf (stderr, "rs6000_init_builtins%s%s\n",
(TARGET_ALTIVEC) ? ", altivec" : "",
(TARGET_VSX) ? ", vsx" : "");
- V2DI_type_node = rs6000_vector_type (TARGET_POWERPC64 ? "__vector long"
- : "__vector long long",
- long_long_integer_type_node, 2);
+ if (new_builtins_are_live)
+ V2DI_type_node = rs6000_vector_type ("__vector long long",
+ long_long_integer_type_node, 2);
+ else
+ {
+ str = TARGET_POWERPC64 ? "__vector long" : "__vector long long";
+ V2DI_type_node = rs6000_vector_type (str,
+ long_long_integer_type_node,
+ 2);
+ }
ptr_V2DI_type_node
= build_pointer_type (build_qualified_type (V2DI_type_node,
TYPE_QUAL_CONST));
@@ -13356,10 +13364,19 @@ rs6000_init_builtins (void)
= build_pointer_type (build_qualified_type (unsigned_V4SI_type_node,
TYPE_QUAL_CONST));
- unsigned_V2DI_type_node = rs6000_vector_type (TARGET_POWERPC64
- ? "__vector unsigned long"
- : "__vector unsigned long long",
- long_long_unsigned_type_node, 2);
+ if (new_builtins_are_live)
+ unsigned_V2DI_type_node
+ = rs6000_vector_type ("__vector unsigned long long",
+ long_long_unsigned_type_node, 2);
+ else
+ {
+ str = TARGET_POWERPC64
+ ? "__vector unsigned long"
+ : "__vector unsigned long long";
+ unsigned_V2DI_type_node
+ = rs6000_vector_type (str, long_long_unsigned_type_node, 2);
+ }
+
ptr_unsigned_V2DI_type_node
= build_pointer_type (build_qualified_type (unsigned_V2DI_type_node,
TYPE_QUAL_CONST));