From ffaff4147a23b15f8282365f81bd15523a25fcad Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Fri, 30 Jun 2000 01:07:51 +0000 Subject: [PATCH] Fix glibc 2.2 build failure. * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Return NO_REGS for a volatile mem and FR_REGS. From-SVN: r34799 --- gcc/ChangeLog | 5 +++++ gcc/config/ia64/ia64.h | 9 ++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 493e1ea..fdc55f3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-06-29 Jim Wilson + + * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Return NO_REGS for + a volatile mem and FR_REGS. + 2000-06-29 Mark Mitchell * c-common.c: Include c-common.h, not c-lex.h or c-tree.h. diff --git a/gcc/config/ia64/ia64.h b/gcc/config/ia64/ia64.h index 88257b7..b2c80cd 100644 --- a/gcc/config/ia64/ia64.h +++ b/gcc/config/ia64/ia64.h @@ -983,7 +983,14 @@ enum reg_class The value is a register class; perhaps CLASS, or perhaps another, smaller class. */ -#define PREFERRED_RELOAD_CLASS(X, CLASS) CLASS +/* Don't allow volatile mem reloads into floating point registers. This + is defined to force reload to choose the r/m case instead of the f/f case + when reloading (set (reg fX) (mem/v)). */ + +#define PREFERRED_RELOAD_CLASS(X, CLASS) \ + ((CLASS == FR_REGS && GET_CODE (X) == MEM && MEM_VOLATILE_P (X)) \ + ? NO_REGS \ + : CLASS) /* You should define this macro to indicate to the reload phase that it may need to allocate at least one register for a reload in addition to the -- 2.7.4