From ad06f2e34174c136c072b60ef13ae3da06c7cd3d Mon Sep 17 00:00:00 2001 From: "James E. Wilson" Date: Thu, 29 Jun 2000 18:42:35 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/config/ia64/ia64.h | 9 +++++++-- 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 + + * 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 * 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 -- 2.7.4