diff options
author | Richard Henderson <rth@cygnus.com> | 1998-09-16 08:26:22 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 1998-09-16 08:26:22 -0700 |
commit | b66a3ac1ad881ca4aae2904adccabd5e8b4add0f (patch) | |
tree | af96072d5b18abed69b965338890b8fcc2d3cf53 /gcc | |
parent | 0d7138a12fe4113b3dabeb5c46090397996f246f (diff) | |
download | gcc-b66a3ac1ad881ca4aae2904adccabd5e8b4add0f.zip gcc-b66a3ac1ad881ca4aae2904adccabd5e8b4add0f.tar.gz gcc-b66a3ac1ad881ca4aae2904adccabd5e8b4add0f.tar.bz2 |
i386.h (PREFERRED_RELOAD_CLASS): Respect an existing class narrower than FLOAT_REGS.
* i386.h (PREFERRED_RELOAD_CLASS): Respect an existing class
narrower than FLOAT_REGS.
From-SVN: r22454
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i386/i386.h | 8 |
2 files changed, 10 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8322f54..2f699a4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Wed Sep 16 15:24:54 1998 Richard Henderson <rth@cygnus.com> + + * i386.h (PREFERRED_RELOAD_CLASS): Respect an existing class + narrower than FLOAT_REGS. + Wed Sep 16 17:51:00 1998 Alexandre Oliva <oliva@dcc.unicamp.br> * cpplib.c: removed OLD_GPLUSPLUS_INCLUDE_DIR diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index ec0bf89..cce3a0b 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -931,9 +931,11 @@ enum reg_class Narrow ALL_REGS to GENERAL_REGS. This supports allowing movsf and movdf to do mem-to-mem moves through integer regs. */ -#define PREFERRED_RELOAD_CLASS(X,CLASS) \ - (GET_CODE (X) == CONST_DOUBLE && GET_MODE (X) != VOIDmode \ - ? (standard_80387_constant_p (X) ? FLOAT_REGS : NO_REGS) \ +#define PREFERRED_RELOAD_CLASS(X,CLASS) \ + (GET_CODE (X) == CONST_DOUBLE && GET_MODE (X) != VOIDmode \ + ? (standard_80387_constant_p (X) \ + ? reg_class_subset_p (CLASS, FLOAT_REGS) ? CLASS : FLOAT_REGS \ + : NO_REGS) \ : GET_MODE (X) == QImode && ! reg_class_subset_p (CLASS, Q_REGS) ? Q_REGS \ : ((CLASS) == ALL_REGS \ && GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT) ? GENERAL_REGS \ |