xref: /netbsd-src/external/gpl3/gcc/usr.bin/gcc/arch/sparc/insn-modes.h (revision d909946ca08dceb44d7d0f22ec9488679695d976)
1 /* This file is automatically generated.  DO NOT EDIT! */
2 /* Generated from: NetBSD: mknative-gcc,v 1.85 2016/03/15 21:38:32 mrg Exp  */
3 /* Generated from: NetBSD: mknative.common,v 1.11 2014/02/17 21:39:43 christos Exp  */
4 
5 /* Generated automatically from machmode.def and config/sparc/sparc-modes.def
6    by genmodes.  */
7 
8 #ifndef GCC_INSN_MODES_H
9 #define GCC_INSN_MODES_H
10 
11 enum machine_mode
12 {
13   VOIDmode,                /* machmode.def:172 */
14 #define HAVE_VOIDmode
15   BLKmode,                 /* machmode.def:176 */
16 #define HAVE_BLKmode
17   CCmode,                  /* machmode.def:214 */
18 #define HAVE_CCmode
19   CCXmode,                 /* config/sparc/sparc-modes.def:39 */
20 #define HAVE_CCXmode
21   CC_NOOVmode,             /* config/sparc/sparc-modes.def:40 */
22 #define HAVE_CC_NOOVmode
23   CCX_NOOVmode,            /* config/sparc/sparc-modes.def:41 */
24 #define HAVE_CCX_NOOVmode
25   CCFPmode,                /* config/sparc/sparc-modes.def:42 */
26 #define HAVE_CCFPmode
27   CCFPEmode,               /* config/sparc/sparc-modes.def:43 */
28 #define HAVE_CCFPEmode
29   BImode,                  /* machmode.def:179 */
30 #define HAVE_BImode
31   QImode,                  /* machmode.def:187 */
32 #define HAVE_QImode
33   HImode,                  /* machmode.def:188 */
34 #define HAVE_HImode
35   SImode,                  /* machmode.def:189 */
36 #define HAVE_SImode
37   DImode,                  /* machmode.def:190 */
38 #define HAVE_DImode
39   TImode,                  /* machmode.def:191 */
40 #define HAVE_TImode
41   QQmode,                  /* machmode.def:217 */
42 #define HAVE_QQmode
43   HQmode,                  /* machmode.def:218 */
44 #define HAVE_HQmode
45   SQmode,                  /* machmode.def:219 */
46 #define HAVE_SQmode
47   DQmode,                  /* machmode.def:220 */
48 #define HAVE_DQmode
49   TQmode,                  /* machmode.def:221 */
50 #define HAVE_TQmode
51   UQQmode,                 /* machmode.def:223 */
52 #define HAVE_UQQmode
53   UHQmode,                 /* machmode.def:224 */
54 #define HAVE_UHQmode
55   USQmode,                 /* machmode.def:225 */
56 #define HAVE_USQmode
57   UDQmode,                 /* machmode.def:226 */
58 #define HAVE_UDQmode
59   UTQmode,                 /* machmode.def:227 */
60 #define HAVE_UTQmode
61   HAmode,                  /* machmode.def:229 */
62 #define HAVE_HAmode
63   SAmode,                  /* machmode.def:230 */
64 #define HAVE_SAmode
65   DAmode,                  /* machmode.def:231 */
66 #define HAVE_DAmode
67   TAmode,                  /* machmode.def:232 */
68 #define HAVE_TAmode
69   UHAmode,                 /* machmode.def:234 */
70 #define HAVE_UHAmode
71   USAmode,                 /* machmode.def:235 */
72 #define HAVE_USAmode
73   UDAmode,                 /* machmode.def:236 */
74 #define HAVE_UDAmode
75   UTAmode,                 /* machmode.def:237 */
76 #define HAVE_UTAmode
77   SFmode,                  /* machmode.def:209 */
78 #define HAVE_SFmode
79   DFmode,                  /* machmode.def:210 */
80 #define HAVE_DFmode
81   TFmode,                  /* config/sparc/sparc-modes.def:24 */
82 #define HAVE_TFmode
83   SDmode,                  /* machmode.def:249 */
84 #define HAVE_SDmode
85   DDmode,                  /* machmode.def:250 */
86 #define HAVE_DDmode
87   TDmode,                  /* machmode.def:251 */
88 #define HAVE_TDmode
89   CQImode,                 /* machmode.def:245 */
90 #define HAVE_CQImode
91   CHImode,                 /* machmode.def:245 */
92 #define HAVE_CHImode
93   CSImode,                 /* machmode.def:245 */
94 #define HAVE_CSImode
95   CDImode,                 /* machmode.def:245 */
96 #define HAVE_CDImode
97   CTImode,                 /* machmode.def:245 */
98 #define HAVE_CTImode
99   SCmode,                  /* machmode.def:246 */
100 #define HAVE_SCmode
101   DCmode,                  /* machmode.def:246 */
102 #define HAVE_DCmode
103   TCmode,                  /* machmode.def:246 */
104 #define HAVE_TCmode
105   V4QImode,                /* config/sparc/sparc-modes.def:48 */
106 #define HAVE_V4QImode
107   V2HImode,                /* config/sparc/sparc-modes.def:48 */
108 #define HAVE_V2HImode
109   V1SImode,                /* config/sparc/sparc-modes.def:50 */
110 #define HAVE_V1SImode
111   V8QImode,                /* config/sparc/sparc-modes.def:47 */
112 #define HAVE_V8QImode
113   V4HImode,                /* config/sparc/sparc-modes.def:47 */
114 #define HAVE_V4HImode
115   V2SImode,                /* config/sparc/sparc-modes.def:47 */
116 #define HAVE_V2SImode
117   V1DImode,                /* config/sparc/sparc-modes.def:49 */
118 #define HAVE_V1DImode
119   V16QImode,               /* config/sparc/sparc-modes.def:46 */
120 #define HAVE_V16QImode
121   V8HImode,                /* config/sparc/sparc-modes.def:46 */
122 #define HAVE_V8HImode
123   V4SImode,                /* config/sparc/sparc-modes.def:46 */
124 #define HAVE_V4SImode
125   V2DImode,                /* config/sparc/sparc-modes.def:46 */
126 #define HAVE_V2DImode
127   MAX_MACHINE_MODE,
128 
129   MIN_MODE_RANDOM = VOIDmode,
130   MAX_MODE_RANDOM = BLKmode,
131 
132   MIN_MODE_CC = CCmode,
133   MAX_MODE_CC = CCFPEmode,
134 
135   MIN_MODE_INT = QImode,
136   MAX_MODE_INT = TImode,
137 
138   MIN_MODE_PARTIAL_INT = VOIDmode,
139   MAX_MODE_PARTIAL_INT = VOIDmode,
140 
141   MIN_MODE_POINTER_BOUNDS = VOIDmode,
142   MAX_MODE_POINTER_BOUNDS = VOIDmode,
143 
144   MIN_MODE_FRACT = QQmode,
145   MAX_MODE_FRACT = TQmode,
146 
147   MIN_MODE_UFRACT = UQQmode,
148   MAX_MODE_UFRACT = UTQmode,
149 
150   MIN_MODE_ACCUM = HAmode,
151   MAX_MODE_ACCUM = TAmode,
152 
153   MIN_MODE_UACCUM = UHAmode,
154   MAX_MODE_UACCUM = UTAmode,
155 
156   MIN_MODE_FLOAT = SFmode,
157   MAX_MODE_FLOAT = TFmode,
158 
159   MIN_MODE_DECIMAL_FLOAT = SDmode,
160   MAX_MODE_DECIMAL_FLOAT = TDmode,
161 
162   MIN_MODE_COMPLEX_INT = CQImode,
163   MAX_MODE_COMPLEX_INT = CTImode,
164 
165   MIN_MODE_COMPLEX_FLOAT = SCmode,
166   MAX_MODE_COMPLEX_FLOAT = TCmode,
167 
168   MIN_MODE_VECTOR_INT = V4QImode,
169   MAX_MODE_VECTOR_INT = V2DImode,
170 
171   MIN_MODE_VECTOR_FRACT = VOIDmode,
172   MAX_MODE_VECTOR_FRACT = VOIDmode,
173 
174   MIN_MODE_VECTOR_UFRACT = VOIDmode,
175   MAX_MODE_VECTOR_UFRACT = VOIDmode,
176 
177   MIN_MODE_VECTOR_ACCUM = VOIDmode,
178   MAX_MODE_VECTOR_ACCUM = VOIDmode,
179 
180   MIN_MODE_VECTOR_UACCUM = VOIDmode,
181   MAX_MODE_VECTOR_UACCUM = VOIDmode,
182 
183   MIN_MODE_VECTOR_FLOAT = VOIDmode,
184   MAX_MODE_VECTOR_FLOAT = VOIDmode,
185 
186   NUM_MACHINE_MODES = MAX_MACHINE_MODE
187 };
188 
189 #define CONST_MODE_SIZE const
190 #define CONST_MODE_BASE_ALIGN const
191 #define CONST_MODE_IBIT const
192 #define CONST_MODE_FBIT const
193 
194 #define BITS_PER_UNIT (8)
195 #define MAX_BITSIZE_MODE_ANY_INT (16*BITS_PER_UNIT)
196 #define MAX_BITSIZE_MODE_ANY_MODE (32*BITS_PER_UNIT)
197 #define NUM_INT_N_ENTS 1
198 
199 #if !defined (USED_FOR_TARGET) && GCC_VERSION >= 4001
200 
201 #ifdef __cplusplus
202 inline __attribute__((__always_inline__))
203 #else
204 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
205 #endif
206 unsigned char
207 mode_size_inline (machine_mode mode)
208 {
209   extern const unsigned char mode_size[NUM_MACHINE_MODES];
210   switch (mode)
211     {
212     case VOIDmode: return 0;
213     case BLKmode: return 0;
214     case CCmode: return 4;
215     case CCXmode: return 4;
216     case CC_NOOVmode: return 4;
217     case CCX_NOOVmode: return 4;
218     case CCFPmode: return 4;
219     case CCFPEmode: return 4;
220     case BImode: return 1;
221     case QImode: return 1;
222     case HImode: return 2;
223     case SImode: return 4;
224     case DImode: return 8;
225     case TImode: return 16;
226     case QQmode: return 1;
227     case HQmode: return 2;
228     case SQmode: return 4;
229     case DQmode: return 8;
230     case TQmode: return 16;
231     case UQQmode: return 1;
232     case UHQmode: return 2;
233     case USQmode: return 4;
234     case UDQmode: return 8;
235     case UTQmode: return 16;
236     case HAmode: return 2;
237     case SAmode: return 4;
238     case DAmode: return 8;
239     case TAmode: return 16;
240     case UHAmode: return 2;
241     case USAmode: return 4;
242     case UDAmode: return 8;
243     case UTAmode: return 16;
244     case SFmode: return 4;
245     case DFmode: return 8;
246     case TFmode: return 16;
247     case SDmode: return 4;
248     case DDmode: return 8;
249     case TDmode: return 16;
250     case CQImode: return 2;
251     case CHImode: return 4;
252     case CSImode: return 8;
253     case CDImode: return 16;
254     case CTImode: return 32;
255     case SCmode: return 8;
256     case DCmode: return 16;
257     case TCmode: return 32;
258     case V4QImode: return 4;
259     case V2HImode: return 4;
260     case V1SImode: return 4;
261     case V8QImode: return 8;
262     case V4HImode: return 8;
263     case V2SImode: return 8;
264     case V1DImode: return 8;
265     case V16QImode: return 16;
266     case V8HImode: return 16;
267     case V4SImode: return 16;
268     case V2DImode: return 16;
269     default: return mode_size[mode];
270     }
271 }
272 
273 #ifdef __cplusplus
274 inline __attribute__((__always_inline__))
275 #else
276 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
277 #endif
278 unsigned char
279 mode_nunits_inline (machine_mode mode)
280 {
281   extern const unsigned char mode_nunits[NUM_MACHINE_MODES];
282   switch (mode)
283     {
284     case VOIDmode: return 0;
285     case BLKmode: return 0;
286     case CCmode: return 1;
287     case CCXmode: return 1;
288     case CC_NOOVmode: return 1;
289     case CCX_NOOVmode: return 1;
290     case CCFPmode: return 1;
291     case CCFPEmode: return 1;
292     case BImode: return 1;
293     case QImode: return 1;
294     case HImode: return 1;
295     case SImode: return 1;
296     case DImode: return 1;
297     case TImode: return 1;
298     case QQmode: return 1;
299     case HQmode: return 1;
300     case SQmode: return 1;
301     case DQmode: return 1;
302     case TQmode: return 1;
303     case UQQmode: return 1;
304     case UHQmode: return 1;
305     case USQmode: return 1;
306     case UDQmode: return 1;
307     case UTQmode: return 1;
308     case HAmode: return 1;
309     case SAmode: return 1;
310     case DAmode: return 1;
311     case TAmode: return 1;
312     case UHAmode: return 1;
313     case USAmode: return 1;
314     case UDAmode: return 1;
315     case UTAmode: return 1;
316     case SFmode: return 1;
317     case DFmode: return 1;
318     case TFmode: return 1;
319     case SDmode: return 1;
320     case DDmode: return 1;
321     case TDmode: return 1;
322     case CQImode: return 2;
323     case CHImode: return 2;
324     case CSImode: return 2;
325     case CDImode: return 2;
326     case CTImode: return 2;
327     case SCmode: return 2;
328     case DCmode: return 2;
329     case TCmode: return 2;
330     case V4QImode: return 4;
331     case V2HImode: return 2;
332     case V1SImode: return 1;
333     case V8QImode: return 8;
334     case V4HImode: return 4;
335     case V2SImode: return 2;
336     case V1DImode: return 1;
337     case V16QImode: return 16;
338     case V8HImode: return 8;
339     case V4SImode: return 4;
340     case V2DImode: return 2;
341     default: return mode_nunits[mode];
342     }
343 }
344 
345 #ifdef __cplusplus
346 inline __attribute__((__always_inline__))
347 #else
348 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
349 #endif
350 unsigned char
351 mode_inner_inline (machine_mode mode)
352 {
353   extern const unsigned char mode_inner[NUM_MACHINE_MODES];
354   switch (mode)
355     {
356     case VOIDmode: return VOIDmode;
357     case BLKmode: return VOIDmode;
358     case CCmode: return VOIDmode;
359     case CCXmode: return VOIDmode;
360     case CC_NOOVmode: return VOIDmode;
361     case CCX_NOOVmode: return VOIDmode;
362     case CCFPmode: return VOIDmode;
363     case CCFPEmode: return VOIDmode;
364     case BImode: return VOIDmode;
365     case QImode: return VOIDmode;
366     case HImode: return VOIDmode;
367     case SImode: return VOIDmode;
368     case DImode: return VOIDmode;
369     case TImode: return VOIDmode;
370     case QQmode: return VOIDmode;
371     case HQmode: return VOIDmode;
372     case SQmode: return VOIDmode;
373     case DQmode: return VOIDmode;
374     case TQmode: return VOIDmode;
375     case UQQmode: return VOIDmode;
376     case UHQmode: return VOIDmode;
377     case USQmode: return VOIDmode;
378     case UDQmode: return VOIDmode;
379     case UTQmode: return VOIDmode;
380     case HAmode: return VOIDmode;
381     case SAmode: return VOIDmode;
382     case DAmode: return VOIDmode;
383     case TAmode: return VOIDmode;
384     case UHAmode: return VOIDmode;
385     case USAmode: return VOIDmode;
386     case UDAmode: return VOIDmode;
387     case UTAmode: return VOIDmode;
388     case SFmode: return VOIDmode;
389     case DFmode: return VOIDmode;
390     case TFmode: return VOIDmode;
391     case SDmode: return VOIDmode;
392     case DDmode: return VOIDmode;
393     case TDmode: return VOIDmode;
394     case CQImode: return QImode;
395     case CHImode: return HImode;
396     case CSImode: return SImode;
397     case CDImode: return DImode;
398     case CTImode: return TImode;
399     case SCmode: return SFmode;
400     case DCmode: return DFmode;
401     case TCmode: return TFmode;
402     case V4QImode: return QImode;
403     case V2HImode: return HImode;
404     case V1SImode: return SImode;
405     case V8QImode: return QImode;
406     case V4HImode: return HImode;
407     case V2SImode: return SImode;
408     case V1DImode: return DImode;
409     case V16QImode: return QImode;
410     case V8HImode: return HImode;
411     case V4SImode: return SImode;
412     case V2DImode: return DImode;
413     default: return mode_inner[mode];
414     }
415 }
416 
417 #endif /* GCC_VERSION >= 4001 */
418 
419 #endif /* insn-modes.h */
420