aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/sparc/sparc.h2
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0d3a098..f4c29d9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2002-06-22 David S. Miller <davem@redhat.com>
+
+ PR target/6841 target/6770 target/6719
+ * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Return
+ NO_REGS for constant X when CLASS is GENERAL_OR_FP_REGS or
+ GENERAL_OR_EXTRA_FP_REGS.
+
2002-06-22 Neil Booth <neil@daikokuya.co.uk>
* cpptrad.c (struct fun_macro): Add line number.
diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h
index b27cea0..cb556a3 100644
--- a/gcc/config/sparc/sparc.h
+++ b/gcc/config/sparc/sparc.h
@@ -1416,6 +1416,8 @@ extern char leaf_reg_remap[];
#define PREFERRED_RELOAD_CLASS(X,CLASS) \
(CONSTANT_P (X) \
? ((FP_REG_CLASS_P (CLASS) \
+ || (CLASS) == GENERAL_OR_FP_REGS \
+ || (CLASS) == GENERAL_OR_EXTRA_FP_REGS \
|| (GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT \
&& ! TARGET_FPU) \
|| (GET_MODE (X) == TFmode \