diff options
author | Richard Henderson <rth@cygnus.com> | 1999-03-11 06:01:27 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 1999-03-11 06:01:27 -0800 |
commit | a7adf08e8429685a68f3b2629806ff2c03e781a5 (patch) | |
tree | 4c9f53097f0d288aa15df524ffd89ad6d03c6b2e /gcc | |
parent | 27922c1362c0c8b3edf757a216195eceae3f51e2 (diff) | |
download | gcc-a7adf08e8429685a68f3b2629806ff2c03e781a5.zip gcc-a7adf08e8429685a68f3b2629806ff2c03e781a5.tar.gz gcc-a7adf08e8429685a68f3b2629806ff2c03e781a5.tar.bz2 |
alpha.h (HARD_REGNO_MODE_OK): Disallow QI/HImode in fp regs.
* alpha.h (HARD_REGNO_MODE_OK): Disallow QI/HImode in fp regs.
(MODES_TIEABLE_P): Update.
From-SVN: r25704
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/alpha/alpha.h | 12 |
2 files changed, 12 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 85ae797..21a9c22 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Thu Mar 11 14:00:58 1999 Richard Henderson <rth@cygnus.com> + + * alpha.h (HARD_REGNO_MODE_OK): Disallow QI/HImode in fp regs. + (MODES_TIEABLE_P): Update. + Thu Mar 11 13:55:52 1999 Richard Henderson <rth@cygnus.com> * machmode.h (smallest_mode_for_size): Prototype. diff --git a/gcc/config/alpha/alpha.h b/gcc/config/alpha/alpha.h index f5ab13b..3e119a7 100644 --- a/gcc/config/alpha/alpha.h +++ b/gcc/config/alpha/alpha.h @@ -620,18 +620,20 @@ extern void override_options (); /* Value is 1 if hard register REGNO can hold a value of machine-mode MODE. On Alpha, the integer registers can hold any mode. The floating-point registers can hold 32-bit and 64-bit integers as well, but not 16-bit - or 8-bit values. If we only allowed the larger integers into FP registers, - we'd have to say that QImode and SImode aren't tiable, which is a - pain. So say all registers can hold everything and see how that works. */ + or 8-bit values. */ -#define HARD_REGNO_MODE_OK(REGNO, MODE) 1 +#define HARD_REGNO_MODE_OK(REGNO, MODE) \ + ((REGNO) < 32 || ((MODE) != QImode && (MODE) != HImode)) /* 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. */ -#define MODES_TIEABLE_P(MODE1, MODE2) 1 +#define MODES_TIEABLE_P(MODE1, MODE2) \ + ((MODE1) == QImode || (MODE1) == HImode \ + ? (MODE2) == QImode || (MODE2) == HImode \ + : 1) /* Specify the registers used for certain standard purposes. The values of these macros are register numbers. */ |