(S_MODES, D_MODES, T_MODES):
authorRichard Stallman <rms@gnu.org>
Sat, 27 Mar 1993 08:49:19 +0000 (08:49 +0000)
committerRichard Stallman <rms@gnu.org>
Sat, 27 Mar 1993 08:49:19 +0000 (08:49 +0000)
Accept only those complex modes that are small enough.
Rewrite to make the expressions simpler.

From-SVN: r3890

gcc/config/sparc/sparc.c

index 2f41b9a136191ccae74c5ffa61254578918e049e..1d132c7af4ce5ab102598178a2e3c5c855747246 100644 (file)
@@ -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