aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJames E. Wilson <wilson@cygnus.com>2000-06-29 18:42:35 +0000
committerJim Wilson <wilson@gcc.gnu.org>2000-06-29 11:42:35 -0700
commitad06f2e34174c136c072b60ef13ae3da06c7cd3d (patch)
tree7dba8f518c0e4cc0ea403b826c1a16792730a791 /gcc
parentab30ba5c2396eb7cc4857e40eb10a72c2f9e2e42 (diff)
downloadgcc-ad06f2e34174c136c072b60ef13ae3da06c7cd3d.zip
gcc-ad06f2e34174c136c072b60ef13ae3da06c7cd3d.tar.gz
gcc-ad06f2e34174c136c072b60ef13ae3da06c7cd3d.tar.bz2
Fix java build failure.
* config/ia64/ia64.h (MODES_TIEABLE_P): Only tie if mode class is the same. Only tie XFmode with XFmode. From-SVN: r34787
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/ia64/ia64.h9
2 files changed, 12 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8be2212..540f474 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2000-06-29 James E. Wilson <wilson@cygnus.com>
+
+ * config/ia64/ia64.h (MODES_TIEABLE_P): Only tie if mode class is the
+ same. Only tie XFmode with XFmode.
+
2000-06-29 Zack Weinberg <zack@wolery.cumb.org>
* c-decl.c, timevar.c, tlink.c: Include intl.h.
diff --git a/gcc/config/ia64/ia64.h b/gcc/config/ia64/ia64.h
index 32a6f38..88257b7 100644
--- a/gcc/config/ia64/ia64.h
+++ b/gcc/config/ia64/ia64.h
@@ -810,7 +810,7 @@ while (0)
/* A C expression that is nonzero if it is permissible to store a value of mode
MODE in hard register number REGNO (or in several registers starting with
that one). */
-
+/* ??? movxf_internal does not support XFmode values in integer registers. */
#define HARD_REGNO_MODE_OK(REGNO, MODE) \
(PR_REGNO_P (REGNO) ? (MODE) == CCmode : 1)
@@ -824,7 +824,12 @@ while (0)
/* ??? If the comments are true, then this must be zero if one mode is CCmode,
INTEGRAL_MODE_P or FLOAT_MODE_P and the other is not. Otherwise, it is
true. */
-#define MODES_TIEABLE_P(MODE1, MODE2) 1
+/* Don't tie integer and FP modes, as that causes us to get integer registers
+ allocated for FP instructions. XFmode only supported in FP registers at
+ the moment, so we can't tie it with any other modes. */
+#define MODES_TIEABLE_P(MODE1, MODE2) \
+ ((GET_MODE_CLASS (MODE1) == GET_MODE_CLASS (MODE2)) \
+ && (((MODE1) == XFmode) == ((MODE2) == XFmode)))
/* Define this macro if the compiler should avoid copies to/from CCmode
registers. You should only define this macro if support fo copying to/from