diff options
author | Jim Wilson <wilson@cygnus.com> | 2000-06-30 01:07:51 +0000 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 2000-06-29 18:07:51 -0700 |
commit | ffaff4147a23b15f8282365f81bd15523a25fcad (patch) | |
tree | 44c4342bc983f65b09dcf12ae494f684d776a1fc /gcc | |
parent | b6a89402e3816ca52914506de0efeddcb5f248d3 (diff) | |
download | gcc-ffaff4147a23b15f8282365f81bd15523a25fcad.zip gcc-ffaff4147a23b15f8282365f81bd15523a25fcad.tar.gz gcc-ffaff4147a23b15f8282365f81bd15523a25fcad.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/ia64/ia64.h | 9 |
2 files changed, 13 insertions, 1 deletions
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 <wilson@cygnus.com> + + * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Return NO_REGS for + a volatile mem and FR_REGS. + 2000-06-29 Mark Mitchell <mark@codesourcery.com> * 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 |