ia64.c (ia64_c_mode_for_suffix): New.
authorSteve Ellcey <sje@cup.hp.com>
Mon, 6 Aug 2007 18:04:33 +0000 (18:04 +0000)
committerSteve Ellcey <sje@gcc.gnu.org>
Mon, 6 Aug 2007 18:04:33 +0000 (18:04 +0000)
* config/ia64/ia64.c (ia64_c_mode_for_suffix): New.
(TARGET_C_MODE_FOR_SUFFIX): New.

From-SVN: r127247

gcc/ChangeLog
gcc/config/ia64/ia64.c

index b91b36b..c47c658 100644 (file)
@@ -1,5 +1,10 @@
 2007-08-06  Steve Ellcey  <sje@cup.hp.com>
 
+       * config/ia64/ia64.c (ia64_c_mode_for_suffix): New.
+       (TARGET_C_MODE_FOR_SUFFIX): New.
+
+2007-08-06  Steve Ellcey  <sje@cup.hp.com>
+
        * config/ia64/div.md (m2subrf4_cond): Change 'g' to 'G'.
 
 2007-08-06  Steve Ellcey  <sje@cup.hp.com>
index cf70493..a556673 100644 (file)
@@ -282,6 +282,7 @@ static const char *ia64_mangle_type (tree);
 static const char *ia64_invalid_conversion (tree, tree);
 static const char *ia64_invalid_unary_op (int, tree);
 static const char *ia64_invalid_binary_op (int, tree, tree);
+static enum machine_mode ia64_c_mode_for_suffix (char);
 \f
 /* Table of valid machine attributes.  */
 static const struct attribute_spec ia64_attribute_table[] =
@@ -485,6 +486,9 @@ static const struct attribute_spec ia64_attribute_table[] =
 #undef TARGET_INVALID_BINARY_OP
 #define TARGET_INVALID_BINARY_OP ia64_invalid_binary_op
 
+#undef TARGET_C_MODE_FOR_SUFFIX
+#define TARGET_C_MODE_FOR_SUFFIX ia64_c_mode_for_suffix
+
 struct gcc_target targetm = TARGET_INITIALIZER;
 \f
 typedef enum
@@ -9849,4 +9853,17 @@ ia64_handle_version_id_attribute (tree *node ATTRIBUTE_UNUSED,
   return NULL_TREE;
 }
 
+/* Target hook for c_mode_for_suffix.  */
+
+static enum machine_mode
+ia64_c_mode_for_suffix (char suffix)
+{
+  if (suffix == 'q')
+    return TFmode;
+  if (suffix == 'w')
+    return XFmode;
+
+  return VOIDmode;
+}
+
 #include "gt-ia64.h"