From 88ed5ef5920aad04b489683002f090aaf8d93a1f Mon Sep 17 00:00:00 2001 From: Steve Ellcey Date: Mon, 13 Sep 2004 20:34:55 +0000 Subject: [PATCH] ia64.c (ia64_scalar_mode_supported_p): New. * config/ia64/ia64.c (ia64_scalar_mode_supported_p): New. (TARGET_SCALAR_MODE_SUPPORTED_P): New. From-SVN: r87448 --- gcc/ChangeLog | 5 +++++ gcc/config/ia64/ia64.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fa5832f1038..31e7739384f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-09-13 Steve Ellcey + + * config/ia64/ia64.c (ia64_scalar_mode_supported_p): New. + (TARGET_SCALAR_MODE_SUPPORTED_P): New. + 2004-09-13 Richard Henderson PR 17436 diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c index df4487ab513..b85e1c2be11 100644 --- a/gcc/config/ia64/ia64.c +++ b/gcc/config/ia64/ia64.c @@ -276,6 +276,7 @@ static tree ia64_handle_model_attribute (tree *, tree, tree, int, bool *); static void ia64_encode_section_info (tree, rtx, int); static rtx ia64_struct_value_rtx (tree, int); static tree ia64_gimplify_va_arg (tree, tree, tree *, tree *); +static bool ia64_scalar_mode_supported_p (enum machine_mode mode); /* Table of valid machine attributes. */ @@ -416,6 +417,9 @@ static const struct attribute_spec ia64_attribute_table[] = #undef TARGET_UNWIND_EMIT #define TARGET_UNWIND_EMIT process_for_unwind_directive +#undef TARGET_SCALAR_MODE_SUPPORTED_P +#define TARGET_SCALAR_MODE_SUPPORTED_P ia64_scalar_mode_supported_p + struct gcc_target targetm = TARGET_INITIALIZER; typedef enum @@ -8478,4 +8482,29 @@ ia64_struct_value_rtx (tree fntype, return gen_rtx_REG (Pmode, GR_REG (8)); } +static bool +ia64_scalar_mode_supported_p (enum machine_mode mode) +{ + switch (mode) + { + case QImode: + case HImode: + case SImode: + case DImode: + case TImode: + return true; + + case SFmode: + case DFmode: + case XFmode: + return true; + + case TFmode: + return TARGET_HPUX; + + default: + return false; + } +} + #include "gt-ia64.h" -- 2.30.2