diff options
author | Richard Stallman <rms@gnu.org> | 1993-03-27 08:49:19 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1993-03-27 08:49:19 +0000 |
commit | 6ac2ba936e54e9f0f934bb39e5672cc186e2af09 (patch) | |
tree | d6d7721401174a7eecd0d97de01cfb3da721f31f | |
parent | ae698e41edea77e25cb7e74ea60cd47de672a858 (diff) | |
download | gcc-6ac2ba936e54e9f0f934bb39e5672cc186e2af09.zip gcc-6ac2ba936e54e9f0f934bb39e5672cc186e2af09.tar.gz gcc-6ac2ba936e54e9f0f934bb39e5672cc186e2af09.tar.bz2 |
(S_MODES, D_MODES, T_MODES):
Accept only those complex modes that are small enough.
Rewrite to make the expressions simpler.
From-SVN: r3890
-rw-r--r-- | gcc/config/sparc/sparc.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index 2f41b9a..1d132c7 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -1924,18 +1924,20 @@ output_scc_insn (operands, insn) | (1 << (int) CCFPmode) | (1 << (int) CCFPEmode)) /* Modes for single-word (and smaller) quantities. */ -#define S_MODES \ - (~C_MODES \ - & ~ ((1 << (int) DImode) | (1 << (int) TImode) \ - | (1 << (int) DFmode) | (1 << (int) TFmode))) +#define S_MODES \ + ((1 << (int) QImode) | (1 << (int) HImode) | (1 << (int) SImode) \ + | (1 << (int) QFmode) | (1 << (int) HFmode) | (1 << (int) SFmode) \ + | (1 << (int) CQImode) | (1 << (int) CHImode)) /* Modes for double-word (and smaller) quantities. */ -#define D_MODES \ - (~C_MODES \ - & ~ ((1 << (int) TImode) | (1 << (int) TFmode))) +#define D_MODES \ + (S_MODES | (1 << (int) DImode) | (1 << (int) DFmode) \ + | (1 << (int) CSImode) | (1 << (int) SCmode)) /* Modes for quad-word quantities. */ -#define T_MODES (~C_MODES) +#define T_MODES \ + (D_MODES | (1 << (int) TImode) | (1 << (int) TFmode) \ + | (1 << (int) DCmode) | (1 << (int) CDImode)) /* Modes for single-float quantities. We must allow any single word or smaller quantity. This is because the fix/float conversion instructions |