From 16448fd4f0b1c5ef78e5b5e463cc77e8aec14c96 Mon Sep 17 00:00:00 2001 From: Steve Ellcey Date: Wed, 23 Oct 2002 18:18:31 +0000 Subject: [PATCH] ia64.c (hfa_element_mode): Don't allow 128 bit floats in HFAs. * config/ia64/ia64.c (hfa_element_mode): Don't allow 128 bit floats in HFAs. From-SVN: r58464 --- gcc/ChangeLog | 5 +++++ gcc/config/ia64/ia64.c | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 20f3b347390..96011b32c4c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2002-10-23 Steve Ellcey + + * config/ia64/ia64.c (hfa_element_mode): Don't allow 128 bit floats + in HFAs. + 2002-10-23 Richard Henderson * config/alpha/alpha.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): True. diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c index 35db34b5986..a238507c922 100644 --- a/gcc/config/ia64/ia64.c +++ b/gcc/config/ia64/ia64.c @@ -3125,17 +3125,17 @@ hfa_element_mode (type, nested) gcc's COMPLEX_TYPEs as HFAs. We need to exclude the integral complex types though. */ case COMPLEX_TYPE: - if (GET_MODE_CLASS (TYPE_MODE (type)) == MODE_COMPLEX_FLOAT) + if (GET_MODE_CLASS (TYPE_MODE (type)) == MODE_COMPLEX_FLOAT + && (TYPE_MODE (type) != TCmode || INTEL_EXTENDED_IEEE_FORMAT)) return mode_for_size (GET_MODE_UNIT_SIZE (TYPE_MODE (type)) * BITS_PER_UNIT, MODE_FLOAT, 0); else return VOIDmode; case REAL_TYPE: - /* ??? Should exclude 128-bit long double here. */ /* We want to return VOIDmode for raw REAL_TYPEs, but the actual mode if this is contained within an aggregate. */ - if (nested) + if (nested && (TYPE_MODE (type) != TFmode || INTEL_EXTENDED_IEEE_FORMAT)) return TYPE_MODE (type); else return VOIDmode; -- 2.30.2