This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[arm] ARM_LEGITIMIZE_RELOAD_ADDRESS vs soft-float
- From: Paul Brook <paul at codesourcery dot com>
- To: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Cc: Richard Earnshaw <rearnsha at arm dot com>
- Date: Sat, 19 Jun 2004 14:01:34 +0100
- Subject: [arm] ARM_LEGITIMIZE_RELOAD_ADDRESS vs soft-float
- Organization: CodeSourcery
ARM_LEGITIMIZE_RELOAD_ADDRESS currently tests
(TARGET_SOFT_FLOAT && TARGET_FPA)
I see not reason why soft-float behaviour should depend on the format used.
This is probably a hangover from when TARGET_SOFT_FLOAT implied TARGET_FPA.
Patch below remove the check for FPA.
Tested with cross to arm-none-elf.
Ok?
Paul
2004-06-19 Paul Brook <paul@codesourcery.com>
* config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Soft-float need
not imply FPA.
Index: gcc/config/arm/arm.h
===================================================================
RCS file: /var/cvsroot/gcc-cvs/gcc/gcc/config/arm/arm.h,v
retrieving revision 1.237
diff -u -p -r1.237 arm.h
--- gcc/config/arm/arm.h 21 May 2004 01:03:16 -0000 1.237
+++ gcc/config/arm/arm.h 19 Jun 2004 11:45:57 -0000
@@ -1382,14 +1382,13 @@ enum reg_class
HOST_WIDE_INT val = INTVAL (XEXP (X, 1)); \
HOST_WIDE_INT low, high; \
\
- if (MODE == DImode || (TARGET_SOFT_FLOAT && TARGET_FPA \
- && MODE == DFmode)) \
+ if (MODE == DImode || (MODE == DFmode && TARGET_SOFT_FLOAT)) \
low = ((val & 0xf) ^ 0x8) - 0x8; \
else if (TARGET_MAVERICK && TARGET_HARD_FLOAT) \
/* Need to be careful, -256 is not a valid offset. */ \
low = val >= 0 ? (val & 0xff) : -((-val) & 0xff); \
else if (MODE == SImode \
- || (MODE == SFmode && TARGET_SOFT_FLOAT && TARGET_FPA) \
+ || (MODE == SFmode && TARGET_SOFT_FLOAT) \
|| ((MODE == HImode || MODE == QImode) && ! arm_arch4)) \
/* Need to be careful, -4096 is not a valid offset. */ \
low = val >= 0 ? (val & 0xfff) : -((-val) & 0xfff); \