diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2000-11-11 05:54:02 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2000-11-11 05:54:02 +0000 |
commit | 93a77848075d53362d57c21736c8baa141afe468 (patch) | |
tree | 666b02f4e23ffb763170a7f1d9ba48faf8c19130 /gcc | |
parent | 585ddf9c47fb750de8713634a5e93ed4fe55814a (diff) | |
download | gcc-93a77848075d53362d57c21736c8baa141afe468.zip gcc-93a77848075d53362d57c21736c8baa141afe468.tar.gz gcc-93a77848075d53362d57c21736c8baa141afe468.tar.bz2 |
sh.h (MODES_TIEABLE_P): Don't tie SFmode to other FP modes.
* config/sh/sh.h (MODES_TIEABLE_P): Don't tie SFmode to other FP
modes.
From-SVN: r37380
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/sh/sh.h | 9 |
2 files changed, 12 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b94b70e..0b2e121 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-11-11 Alexandre Oliva <aoliva@redhat.com> + + * config/sh/sh.h (MODES_TIEABLE_P): Don't tie SFmode to other FP + modes. + 2000-11-10 Joseph S. Myers <jsm28@cam.ac.uk> * gcc.texi, gcov.texi: Update dates and version numbers. diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h index 330fe2d..0e71052 100644 --- a/gcc/config/sh/sh.h +++ b/gcc/config/sh/sh.h @@ -537,10 +537,15 @@ do { \ /* Value is 1 if it is a good idea to tie two pseudo registers when one has mode MODE1 and one has mode MODE2. If HARD_REGNO_MODE_OK could produce different values for MODE1 and MODE2, - for any hard reg, then this must be 0 for correct output. */ + for any hard reg, then this must be 0 for correct output. + That's the case for xd registers: we don't hold SFmode values in + them, so we can't tie an SFmode pseudos with one in another + floating-point mode. */ #define MODES_TIEABLE_P(MODE1, MODE2) \ - ((MODE1) == (MODE2) || GET_MODE_CLASS (MODE1) == GET_MODE_CLASS (MODE2)) + ((MODE1) == (MODE2) \ + || (GET_MODE_CLASS (MODE1) == GET_MODE_CLASS (MODE2) \ + && (MODE1) != SFmode && (MODE2) != SFmode)) /* Specify the registers used for certain standard purposes. The values of these macros are register numbers. */ |