xref: /netbsd-src/external/gpl3/gcc/usr.bin/gcc/arch/sparc/insn-modes.h (revision bdc22b2e01993381dcefeff2bc9b56ca75a4235c)
1 /* This file is automatically generated.  DO NOT EDIT! */
2 /* Generated from: NetBSD: mknative-gcc,v 1.91 2018/02/03 19:06:25 mrg Exp  */
3 /* Generated from: NetBSD: mknative.common,v 1.15 2017/11/29 03:32:28 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_UNIT_SIZE const
191 #define CONST_MODE_BASE_ALIGN const
192 #define CONST_MODE_IBIT const
193 #define CONST_MODE_FBIT const
194 
195 #define BITS_PER_UNIT (8)
196 #define MAX_BITSIZE_MODE_ANY_INT (16*BITS_PER_UNIT)
197 #define MAX_BITSIZE_MODE_ANY_MODE (32*BITS_PER_UNIT)
198 #define NUM_INT_N_ENTS 1
199 
200 #if !defined (USED_FOR_TARGET) && GCC_VERSION >= 4001
201 
202 #ifdef __cplusplus
203 inline __attribute__((__always_inline__))
204 #else
205 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
206 #endif
207 unsigned char
208 mode_size_inline (machine_mode mode)
209 {
210   extern const unsigned char mode_size[NUM_MACHINE_MODES];
211   switch (mode)
212     {
213     case VOIDmode: return 0;
214     case BLKmode: return 0;
215     case CCmode: return 4;
216     case CCXmode: return 4;
217     case CC_NOOVmode: return 4;
218     case CCX_NOOVmode: return 4;
219     case CCFPmode: return 4;
220     case CCFPEmode: return 4;
221     case BImode: return 1;
222     case QImode: return 1;
223     case HImode: return 2;
224     case SImode: return 4;
225     case DImode: return 8;
226     case TImode: return 16;
227     case QQmode: return 1;
228     case HQmode: return 2;
229     case SQmode: return 4;
230     case DQmode: return 8;
231     case TQmode: return 16;
232     case UQQmode: return 1;
233     case UHQmode: return 2;
234     case USQmode: return 4;
235     case UDQmode: return 8;
236     case UTQmode: return 16;
237     case HAmode: return 2;
238     case SAmode: return 4;
239     case DAmode: return 8;
240     case TAmode: return 16;
241     case UHAmode: return 2;
242     case USAmode: return 4;
243     case UDAmode: return 8;
244     case UTAmode: return 16;
245     case SFmode: return 4;
246     case DFmode: return 8;
247     case TFmode: return 16;
248     case SDmode: return 4;
249     case DDmode: return 8;
250     case TDmode: return 16;
251     case CQImode: return 2;
252     case CHImode: return 4;
253     case CSImode: return 8;
254     case CDImode: return 16;
255     case CTImode: return 32;
256     case SCmode: return 8;
257     case DCmode: return 16;
258     case TCmode: return 32;
259     case V4QImode: return 4;
260     case V2HImode: return 4;
261     case V1SImode: return 4;
262     case V8QImode: return 8;
263     case V4HImode: return 8;
264     case V2SImode: return 8;
265     case V1DImode: return 8;
266     case V16QImode: return 16;
267     case V8HImode: return 16;
268     case V4SImode: return 16;
269     case V2DImode: return 16;
270     default: return mode_size[mode];
271     }
272 }
273 
274 #ifdef __cplusplus
275 inline __attribute__((__always_inline__))
276 #else
277 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
278 #endif
279 unsigned char
280 mode_nunits_inline (machine_mode mode)
281 {
282   extern const unsigned char mode_nunits[NUM_MACHINE_MODES];
283   switch (mode)
284     {
285     case VOIDmode: return 0;
286     case BLKmode: return 0;
287     case CCmode: return 1;
288     case CCXmode: return 1;
289     case CC_NOOVmode: return 1;
290     case CCX_NOOVmode: return 1;
291     case CCFPmode: return 1;
292     case CCFPEmode: return 1;
293     case BImode: return 1;
294     case QImode: return 1;
295     case HImode: return 1;
296     case SImode: return 1;
297     case DImode: return 1;
298     case TImode: return 1;
299     case QQmode: return 1;
300     case HQmode: return 1;
301     case SQmode: return 1;
302     case DQmode: return 1;
303     case TQmode: return 1;
304     case UQQmode: return 1;
305     case UHQmode: return 1;
306     case USQmode: return 1;
307     case UDQmode: return 1;
308     case UTQmode: return 1;
309     case HAmode: return 1;
310     case SAmode: return 1;
311     case DAmode: return 1;
312     case TAmode: return 1;
313     case UHAmode: return 1;
314     case USAmode: return 1;
315     case UDAmode: return 1;
316     case UTAmode: return 1;
317     case SFmode: return 1;
318     case DFmode: return 1;
319     case TFmode: return 1;
320     case SDmode: return 1;
321     case DDmode: return 1;
322     case TDmode: return 1;
323     case CQImode: return 2;
324     case CHImode: return 2;
325     case CSImode: return 2;
326     case CDImode: return 2;
327     case CTImode: return 2;
328     case SCmode: return 2;
329     case DCmode: return 2;
330     case TCmode: return 2;
331     case V4QImode: return 4;
332     case V2HImode: return 2;
333     case V1SImode: return 1;
334     case V8QImode: return 8;
335     case V4HImode: return 4;
336     case V2SImode: return 2;
337     case V1DImode: return 1;
338     case V16QImode: return 16;
339     case V8HImode: return 8;
340     case V4SImode: return 4;
341     case V2DImode: return 2;
342     default: return mode_nunits[mode];
343     }
344 }
345 
346 #ifdef __cplusplus
347 inline __attribute__((__always_inline__))
348 #else
349 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
350 #endif
351 unsigned char
352 mode_inner_inline (machine_mode mode)
353 {
354   extern const unsigned char mode_inner[NUM_MACHINE_MODES];
355   switch (mode)
356     {
357     case VOIDmode: return VOIDmode;
358     case BLKmode: return BLKmode;
359     case CCmode: return CCmode;
360     case CCXmode: return CCXmode;
361     case CC_NOOVmode: return CC_NOOVmode;
362     case CCX_NOOVmode: return CCX_NOOVmode;
363     case CCFPmode: return CCFPmode;
364     case CCFPEmode: return CCFPEmode;
365     case BImode: return BImode;
366     case QImode: return QImode;
367     case HImode: return HImode;
368     case SImode: return SImode;
369     case DImode: return DImode;
370     case TImode: return TImode;
371     case QQmode: return QQmode;
372     case HQmode: return HQmode;
373     case SQmode: return SQmode;
374     case DQmode: return DQmode;
375     case TQmode: return TQmode;
376     case UQQmode: return UQQmode;
377     case UHQmode: return UHQmode;
378     case USQmode: return USQmode;
379     case UDQmode: return UDQmode;
380     case UTQmode: return UTQmode;
381     case HAmode: return HAmode;
382     case SAmode: return SAmode;
383     case DAmode: return DAmode;
384     case TAmode: return TAmode;
385     case UHAmode: return UHAmode;
386     case USAmode: return USAmode;
387     case UDAmode: return UDAmode;
388     case UTAmode: return UTAmode;
389     case SFmode: return SFmode;
390     case DFmode: return DFmode;
391     case TFmode: return TFmode;
392     case SDmode: return SDmode;
393     case DDmode: return DDmode;
394     case TDmode: return TDmode;
395     case CQImode: return QImode;
396     case CHImode: return HImode;
397     case CSImode: return SImode;
398     case CDImode: return DImode;
399     case CTImode: return TImode;
400     case SCmode: return SFmode;
401     case DCmode: return DFmode;
402     case TCmode: return TFmode;
403     case V4QImode: return QImode;
404     case V2HImode: return HImode;
405     case V1SImode: return SImode;
406     case V8QImode: return QImode;
407     case V4HImode: return HImode;
408     case V2SImode: return SImode;
409     case V1DImode: return DImode;
410     case V16QImode: return QImode;
411     case V8HImode: return HImode;
412     case V4SImode: return SImode;
413     case V2DImode: return DImode;
414     default: return mode_inner[mode];
415     }
416 }
417 
418 #ifdef __cplusplus
419 inline __attribute__((__always_inline__))
420 #else
421 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
422 #endif
423 unsigned char
424 mode_unit_size_inline (machine_mode mode)
425 {
426   extern CONST_MODE_UNIT_SIZE unsigned char mode_unit_size[NUM_MACHINE_MODES];
427   switch (mode)
428     {
429     case VOIDmode: return 0;
430     case BLKmode: return 0;
431     case CCmode: return 4;
432     case CCXmode: return 4;
433     case CC_NOOVmode: return 4;
434     case CCX_NOOVmode: return 4;
435     case CCFPmode: return 4;
436     case CCFPEmode: return 4;
437     case BImode: return 1;
438     case QImode: return 1;
439     case HImode: return 2;
440     case SImode: return 4;
441     case DImode: return 8;
442     case TImode: return 16;
443     case QQmode: return 1;
444     case HQmode: return 2;
445     case SQmode: return 4;
446     case DQmode: return 8;
447     case TQmode: return 16;
448     case UQQmode: return 1;
449     case UHQmode: return 2;
450     case USQmode: return 4;
451     case UDQmode: return 8;
452     case UTQmode: return 16;
453     case HAmode: return 2;
454     case SAmode: return 4;
455     case DAmode: return 8;
456     case TAmode: return 16;
457     case UHAmode: return 2;
458     case USAmode: return 4;
459     case UDAmode: return 8;
460     case UTAmode: return 16;
461     case SFmode: return 4;
462     case DFmode: return 8;
463     case TFmode: return 16;
464     case SDmode: return 4;
465     case DDmode: return 8;
466     case TDmode: return 16;
467     case CQImode: return 1;
468     case CHImode: return 2;
469     case CSImode: return 4;
470     case CDImode: return 8;
471     case CTImode: return 16;
472     case SCmode: return 4;
473     case DCmode: return 8;
474     case TCmode: return 16;
475     case V4QImode: return 1;
476     case V2HImode: return 2;
477     case V1SImode: return 4;
478     case V8QImode: return 1;
479     case V4HImode: return 2;
480     case V2SImode: return 4;
481     case V1DImode: return 8;
482     case V16QImode: return 1;
483     case V8HImode: return 2;
484     case V4SImode: return 4;
485     case V2DImode: return 8;
486     default: return mode_unit_size[mode];
487     }
488 }
489 
490 #ifdef __cplusplus
491 inline __attribute__((__always_inline__))
492 #else
493 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
494 #endif
495 unsigned short
496 mode_unit_precision_inline (machine_mode mode)
497 {
498   extern const unsigned short mode_unit_precision[NUM_MACHINE_MODES];
499   switch (mode)
500     {
501     case VOIDmode: return 0;
502     case BLKmode: return 0;
503     case CCmode: return 4*BITS_PER_UNIT;
504     case CCXmode: return 4*BITS_PER_UNIT;
505     case CC_NOOVmode: return 4*BITS_PER_UNIT;
506     case CCX_NOOVmode: return 4*BITS_PER_UNIT;
507     case CCFPmode: return 4*BITS_PER_UNIT;
508     case CCFPEmode: return 4*BITS_PER_UNIT;
509     case BImode: return 1;
510     case QImode: return 1*BITS_PER_UNIT;
511     case HImode: return 2*BITS_PER_UNIT;
512     case SImode: return 4*BITS_PER_UNIT;
513     case DImode: return 8*BITS_PER_UNIT;
514     case TImode: return 16*BITS_PER_UNIT;
515     case QQmode: return 1*BITS_PER_UNIT;
516     case HQmode: return 2*BITS_PER_UNIT;
517     case SQmode: return 4*BITS_PER_UNIT;
518     case DQmode: return 8*BITS_PER_UNIT;
519     case TQmode: return 16*BITS_PER_UNIT;
520     case UQQmode: return 1*BITS_PER_UNIT;
521     case UHQmode: return 2*BITS_PER_UNIT;
522     case USQmode: return 4*BITS_PER_UNIT;
523     case UDQmode: return 8*BITS_PER_UNIT;
524     case UTQmode: return 16*BITS_PER_UNIT;
525     case HAmode: return 2*BITS_PER_UNIT;
526     case SAmode: return 4*BITS_PER_UNIT;
527     case DAmode: return 8*BITS_PER_UNIT;
528     case TAmode: return 16*BITS_PER_UNIT;
529     case UHAmode: return 2*BITS_PER_UNIT;
530     case USAmode: return 4*BITS_PER_UNIT;
531     case UDAmode: return 8*BITS_PER_UNIT;
532     case UTAmode: return 16*BITS_PER_UNIT;
533     case SFmode: return 4*BITS_PER_UNIT;
534     case DFmode: return 8*BITS_PER_UNIT;
535     case TFmode: return 16*BITS_PER_UNIT;
536     case SDmode: return 4*BITS_PER_UNIT;
537     case DDmode: return 8*BITS_PER_UNIT;
538     case TDmode: return 16*BITS_PER_UNIT;
539     case CQImode: return 1*BITS_PER_UNIT;
540     case CHImode: return 2*BITS_PER_UNIT;
541     case CSImode: return 4*BITS_PER_UNIT;
542     case CDImode: return 8*BITS_PER_UNIT;
543     case CTImode: return 16*BITS_PER_UNIT;
544     case SCmode: return 4*BITS_PER_UNIT;
545     case DCmode: return 8*BITS_PER_UNIT;
546     case TCmode: return 16*BITS_PER_UNIT;
547     case V4QImode: return 1*BITS_PER_UNIT;
548     case V2HImode: return 2*BITS_PER_UNIT;
549     case V1SImode: return 4*BITS_PER_UNIT;
550     case V8QImode: return 1*BITS_PER_UNIT;
551     case V4HImode: return 2*BITS_PER_UNIT;
552     case V2SImode: return 4*BITS_PER_UNIT;
553     case V1DImode: return 8*BITS_PER_UNIT;
554     case V16QImode: return 1*BITS_PER_UNIT;
555     case V8HImode: return 2*BITS_PER_UNIT;
556     case V4SImode: return 4*BITS_PER_UNIT;
557     case V2DImode: return 8*BITS_PER_UNIT;
558     default: return mode_unit_precision[mode];
559     }
560 }
561 
562 #endif /* GCC_VERSION >= 4001 */
563 
564 #endif /* insn-modes.h */
565