From 6ac2ba936e54e9f0f934bb39e5672cc186e2af09 Mon Sep 17 00:00:00 2001 From: Richard Stallman Date: Sat, 27 Mar 1993 08:49:19 +0000 Subject: [PATCH] (S_MODES, D_MODES, T_MODES): Accept only those complex modes that are small enough. Rewrite to make the expressions simpler. From-SVN: r3890 --- gcc/config/sparc/sparc.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index 2f41b9a1361..1d132c7af4c 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