diff options
author | jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-04-22 16:16:53 +0000 |
---|---|---|
committer | jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-04-22 16:16:53 +0000 |
commit | 4b324f27b1002d65973626f76a26faf03a436a11 (patch) | |
tree | f1ffdd0d842e2f6eebf9d7b2fc6be792a2445fe5 | |
parent | c019cb5acf34bc48241a63ae279881d2e0062262 (diff) |
2006-04-22 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.
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/csl-3_4_3-linux-branch@113176 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | ChangeLog.csl | 6 | ||||
-rw-r--r-- | gcc/config/arm/arm.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/arm-vfp1.c | 1 |
3 files changed, 13 insertions, 0 deletions
diff --git a/ChangeLog.csl b/ChangeLog.csl index 9a1c5cf676e..87a9b76a796 100644 --- a/ChangeLog.csl +++ b/ChangeLog.csl @@ -1,3 +1,9 @@ +2006-04-22 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. + 2006-04-21 Joseph Myers <joseph@codesourcery.com> * gcc/config/arm/arm.c (arm_legitimate_index_p): Allow mode == diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 2a9ef8573bf..7fd1aa148d5 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -1137,6 +1137,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/gcc.dg/arm-vfp1.c b/gcc/testsuite/gcc.dg/arm-vfp1.c index e1b221e0e4f..56632492444 100644 --- a/gcc/testsuite/gcc.dg/arm-vfp1.c +++ b/gcc/testsuite/gcc.dg/arm-vfp1.c @@ -1,5 +1,6 @@ /* { dg-do compile { target arm*-*-* } } */ /* { dg-options "-O2 -mfpu=vfp -mfloat-abi=softfp" } */ +/* { dg-skip-if "" { *-*-* } { "-mcpu=iwmmxt" "-march=iwmmxt" } { "" } } */ extern float fabsf (float); extern float sqrtf (float); |