aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorMichael Meissner <meissner@linux.vnet.ibm.com>2010-08-23 16:47:01 +0000
committerMichael Meissner <meissner@gcc.gnu.org>2010-08-23 16:47:01 +0000
commitb36cf9d28f68d00e8b24e38a028c8076342b06a6 (patch)
tree75babdfed5a5d5dbf4490f8815f7461775c5339b /gcc/config
parent8bcc030417710a0a30422305c73d2e29b22fadd9 (diff)
downloadgcc-b36cf9d28f68d00e8b24e38a028c8076342b06a6.zip
gcc-b36cf9d28f68d00e8b24e38a028c8076342b06a6.tar.gz
gcc-b36cf9d28f68d00e8b24e38a028c8076342b06a6.tar.bz2
Update to use -mveclibabi=mass instead of -mmass
From-SVN: r163471
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/rs6000/rs6000.c16
-rw-r--r--gcc/config/rs6000/rs6000.opt6
2 files changed, 17 insertions, 5 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index fc15198..95968a8 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -949,6 +949,9 @@ static const enum rs6000_btc builtin_classify[(int)RS6000_BUILTIN_COUNT] =
#undef RS6000_BUILTIN
#undef RS6000_BUILTIN_EQUATE
+/* Support for -mveclibabi=<xxx> to control which vector library to use. */
+static tree (*rs6000_veclib_handler) (tree, tree, tree);
+
static bool rs6000_function_ok_for_sibcall (tree, tree);
static const char *rs6000_invalid_within_doloop (const_rtx);
@@ -2772,6 +2775,15 @@ rs6000_override_options (const char *default_cpu)
rs6000_traceback_name);
}
+ if (rs6000_veclibabi_name)
+ {
+ if (strcmp (rs6000_veclibabi_name, "mass") == 0)
+ rs6000_veclib_handler = rs6000_builtin_vectorized_libmass;
+ else
+ error ("unknown vectorization library ABI type (%s) for "
+ "-mveclibabi= switch", rs6000_veclibabi_name);
+ }
+
if (!rs6000_explicit_options.long_double)
rs6000_long_double_type_size = RS6000_DEFAULT_LONG_DOUBLE_SIZE;
@@ -3909,8 +3921,8 @@ rs6000_builtin_vectorized_function (tree fndecl, tree type_out,
}
/* Generate calls to libmass if appropriate. */
- if (TARGET_MASS)
- return rs6000_builtin_vectorized_libmass (fndecl, type_out, type_in);
+ if (rs6000_veclib_handler)
+ return rs6000_veclib_handler (fndecl, type_out, type_in);
return NULL_TREE;
}
diff --git a/gcc/config/rs6000/rs6000.opt b/gcc/config/rs6000/rs6000.opt
index dbd7580..56d6888 100644
--- a/gcc/config/rs6000/rs6000.opt
+++ b/gcc/config/rs6000/rs6000.opt
@@ -115,9 +115,9 @@ mpopcntd
Target Report Mask(POPCNTD)
Use PowerPC V2.06 popcntd instruction
-mmass
-Target Report Var(TARGET_MASS) Init(0)
-Use the Mathematical Acceleration Subsystem library high performance math libraries.
+mveclibabi=
+Target RejectNegative Joined Var(rs6000_veclibabi_name)
+Vector library ABI to use
mvsx
Target Report Mask(VSX)