Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/gnu/dist/gcc/gcc Pull in sparc64 fix from gcc cvs:
details: https://anonhg.NetBSD.org/src/rev/19a03ec9189a
branches: trunk
changeset: 559728:19a03ec9189a
user: martin <martin%NetBSD.org@localhost>
date: Mon Mar 22 22:56:09 2004 +0000
description:
Pull in sparc64 fix from gcc cvs:
Forbid mode changes from SImode for lower FP regs if ARCH64.
Fixes PR 23380 and PR 23124.
diffstat:
gnu/dist/gcc/gcc/ChangeLog | 7 +++++++
gnu/dist/gcc/gcc/config/sparc/sparc.h | 14 ++++++++++++++
2 files changed, 21 insertions(+), 0 deletions(-)
diffs (38 lines):
diff -r 3344d4476e16 -r 19a03ec9189a gnu/dist/gcc/gcc/ChangeLog
--- a/gnu/dist/gcc/gcc/ChangeLog Mon Mar 22 20:28:57 2004 +0000
+++ b/gnu/dist/gcc/gcc/ChangeLog Mon Mar 22 22:56:09 2004 +0000
@@ -1,3 +1,10 @@
+2004-01-27 Eric Botcazou <ebotcazou%libertysurf.fr@localhost>
+
+ PR target/10904
+ PR target/13058
+ * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
+ Forbid mode changes from SImode for lower FP regs if ARCH64.
+
2004-02-14 Release Manager
* GCC 3.3.3 Released.
diff -r 3344d4476e16 -r 19a03ec9189a gnu/dist/gcc/gcc/config/sparc/sparc.h
--- a/gnu/dist/gcc/gcc/config/sparc/sparc.h Mon Mar 22 20:28:57 2004 +0000
+++ b/gnu/dist/gcc/gcc/config/sparc/sparc.h Mon Mar 22 22:56:09 2004 +0000
@@ -1233,6 +1233,20 @@
{-1, -1, -1, 0x20}, /* GENERAL_OR_EXTRA_FP_REGS */ \
{-1, -1, -1, 0x3f}} /* ALL_REGS */
+/* Defines invalid mode changes. Borrowed from pa64-regs.h.
+
+ SImode loads to floating-point registers are not zero-extended.
+ The definition for LOAD_EXTEND_OP specifies that integer loads
+ narrower than BITS_PER_WORD will be zero-extended. As a result,
+ we inhibit changes from SImode unless they are to a mode that is
+ identical in size. */
+
+#define CANNOT_CHANGE_MODE_CLASS(FROM, TO, CLASS) \
+ (TARGET_ARCH64 \
+ && (FROM) == SImode \
+ && GET_MODE_SIZE (FROM) != GET_MODE_SIZE (TO) \
+ ? reg_classes_intersect_p (CLASS, FP_REGS) : 0)
+
/* The same information, inverted:
Return the class number of the smallest class containing
reg number REGNO. This could be a conditional expression
Home |
Main Index |
Thread Index |
Old Index