aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Ellcey <sje@cup.hp.com>2002-10-23 18:18:31 +0000
committerSteve Ellcey <sje@gcc.gnu.org>2002-10-23 18:18:31 +0000
commit16448fd4f0b1c5ef78e5b5e463cc77e8aec14c96 (patch)
tree8988a77a35f6f05ba8400b24b3d223dbd7a8b1ea
parent619703c61fa9764f0f5d234956b67d210f8822ce (diff)
downloadgcc-16448fd4f0b1c5ef78e5b5e463cc77e8aec14c96.zip
gcc-16448fd4f0b1c5ef78e5b5e463cc77e8aec14c96.tar.gz
gcc-16448fd4f0b1c5ef78e5b5e463cc77e8aec14c96.tar.bz2
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
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/ia64/ia64.c6
2 files changed, 8 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 20f3b34..96011b3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2002-10-23 Steve Ellcey <sje@cup.hp.com>
+
+ * config/ia64/ia64.c (hfa_element_mode): Don't allow 128 bit floats
+ in HFAs.
+
2002-10-23 Richard Henderson <rth@redhat.com>
* 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 35db34b..a238507 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;