diff options
author | Paul Brook <paul@codesourcery.com> | 2006-04-21 17:05:51 +0000 |
---|---|---|
committer | Paul Brook <pbrook@gcc.gnu.org> | 2006-04-21 17:05:51 +0000 |
commit | 87b24aaf2bc34c0f1b880bb1bcff1ac2752f712a (patch) | |
tree | 1134e63fbe6a39377108b9157c654e6bf544ded2 /gcc | |
parent | e3604432aabe83c4378277086cf511d19791ff2f (diff) | |
download | gcc-87b24aaf2bc34c0f1b880bb1bcff1ac2752f712a.zip gcc-87b24aaf2bc34c0f1b880bb1bcff1ac2752f712a.tar.gz gcc-87b24aaf2bc34c0f1b880bb1bcff1ac2752f712a.tar.bz2 |
arm.c (arm_override_options): Error on iWMMXt and hardware floating point.
2006-04-21 Paul Brook <paul@codesourcery.com>
gcc/
* config/arm/arm.c (arm_override_options): Error on iWMMXt and
hardware floating point.
gcc/testsuite/
* gcc.dg/arm-vfp1.c: Skip on iWMMXt cpus.
From-SVN: r113138
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/arm/arm.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/arm-vfp1.c | 1 |
4 files changed, 16 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a3372b6..9f1bdd6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2006-04-21 Paul Brook <paul@codesourcery.com> + + * config/arm/arm.c (arm_override_options): Error on iWMMXt and + hardware floating point. + 2006-04-21 David Edelsohn <edelsohn@gnu.org> * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 0f46b3e..3b221e2 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -1230,6 +1230,12 @@ arm_override_options (void) if (arm_float_abi == ARM_FLOAT_ABI_HARD && TARGET_VFP) sorry ("-mfloat-abi=hard and VFP"); + /* FPA and iWMMXt are incompatible because the insn encodings overlap. + VFP and iWMMXt can theoretically coexist, but it's unlikely such silicon + will ever exist. GCC makes no attempt to support this combination. */ + if (TARGET_IWMMXT && !TARGET_SOFT_FLOAT) + sorry ("iWMMXt and hardware floating point"); + /* If soft-float is specified then don't use FPU. */ if (TARGET_SOFT_FLOAT) arm_fpu_arch = FPUTYPE_NONE; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index bc315da..544ec0d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2006-04-21 Paul Brook <paul@codesourcery.com> + + * gcc.dg/arm-vfp1.c: Skip on iWMMXt cpus. + 2006-04-21 Paul Thomas <pault@gcc.gnu.org> PR fortran/27122 diff --git a/gcc/testsuite/gcc.dg/arm-vfp1.c b/gcc/testsuite/gcc.dg/arm-vfp1.c index 5898e802..3b6a45d 100644 --- a/gcc/testsuite/gcc.dg/arm-vfp1.c +++ b/gcc/testsuite/gcc.dg/arm-vfp1.c @@ -1,6 +1,7 @@ /* { dg-do compile } */ /* { dg-options "-O2 -mfpu=vfp -mfloat-abi=softfp" } */ /* { dg-require-effective-target arm32 } */ +/* { dg-skip-if "" { *-*-* } { "-mcpu=iwmmxt" "-march=iwmmxt" } { "" } } */ extern float fabsf (float); extern float sqrtf (float); |