xref: /netbsd-src/external/gpl3/gcc.old/usr.bin/gcc/arch/sparc/insn-modes.h (revision e6c7e151de239c49d2e38720a061ed9d1fa99309)
1 /* This file is automatically generated.  DO NOT EDIT! */
2 /* Generated from: NetBSD: mknative-gcc,v 1.96 2019/01/19 20:02:06 mrg Exp  */
3 /* Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 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:48 */
20 #define HAVE_CCXmode
21   CCNZmode,                /* config/sparc/sparc-modes.def:49 */
22 #define HAVE_CCNZmode
23   CCXNZmode,               /* config/sparc/sparc-modes.def:50 */
24 #define HAVE_CCXNZmode
25   CCCmode,                 /* config/sparc/sparc-modes.def:51 */
26 #define HAVE_CCCmode
27   CCXCmode,                /* config/sparc/sparc-modes.def:52 */
28 #define HAVE_CCXCmode
29   CCVmode,                 /* config/sparc/sparc-modes.def:53 */
30 #define HAVE_CCVmode
31   CCXVmode,                /* config/sparc/sparc-modes.def:54 */
32 #define HAVE_CCXVmode
33   CCFPmode,                /* config/sparc/sparc-modes.def:55 */
34 #define HAVE_CCFPmode
35   CCFPEmode,               /* config/sparc/sparc-modes.def:56 */
36 #define HAVE_CCFPEmode
37   BImode,                  /* machmode.def:179 */
38 #define HAVE_BImode
39   QImode,                  /* machmode.def:187 */
40 #define HAVE_QImode
41   HImode,                  /* machmode.def:188 */
42 #define HAVE_HImode
43   SImode,                  /* machmode.def:189 */
44 #define HAVE_SImode
45   DImode,                  /* machmode.def:190 */
46 #define HAVE_DImode
47   TImode,                  /* machmode.def:191 */
48 #define HAVE_TImode
49   QQmode,                  /* machmode.def:217 */
50 #define HAVE_QQmode
51   HQmode,                  /* machmode.def:218 */
52 #define HAVE_HQmode
53   SQmode,                  /* machmode.def:219 */
54 #define HAVE_SQmode
55   DQmode,                  /* machmode.def:220 */
56 #define HAVE_DQmode
57   TQmode,                  /* machmode.def:221 */
58 #define HAVE_TQmode
59   UQQmode,                 /* machmode.def:223 */
60 #define HAVE_UQQmode
61   UHQmode,                 /* machmode.def:224 */
62 #define HAVE_UHQmode
63   USQmode,                 /* machmode.def:225 */
64 #define HAVE_USQmode
65   UDQmode,                 /* machmode.def:226 */
66 #define HAVE_UDQmode
67   UTQmode,                 /* machmode.def:227 */
68 #define HAVE_UTQmode
69   HAmode,                  /* machmode.def:229 */
70 #define HAVE_HAmode
71   SAmode,                  /* machmode.def:230 */
72 #define HAVE_SAmode
73   DAmode,                  /* machmode.def:231 */
74 #define HAVE_DAmode
75   TAmode,                  /* machmode.def:232 */
76 #define HAVE_TAmode
77   UHAmode,                 /* machmode.def:234 */
78 #define HAVE_UHAmode
79   USAmode,                 /* machmode.def:235 */
80 #define HAVE_USAmode
81   UDAmode,                 /* machmode.def:236 */
82 #define HAVE_UDAmode
83   UTAmode,                 /* machmode.def:237 */
84 #define HAVE_UTAmode
85   SFmode,                  /* machmode.def:209 */
86 #define HAVE_SFmode
87   DFmode,                  /* machmode.def:210 */
88 #define HAVE_DFmode
89   TFmode,                  /* config/sparc/sparc-modes.def:24 */
90 #define HAVE_TFmode
91   SDmode,                  /* machmode.def:250 */
92 #define HAVE_SDmode
93   DDmode,                  /* machmode.def:251 */
94 #define HAVE_DDmode
95   TDmode,                  /* machmode.def:252 */
96 #define HAVE_TDmode
97   CQImode,                 /* machmode.def:245 */
98 #define HAVE_CQImode
99   CHImode,                 /* machmode.def:245 */
100 #define HAVE_CHImode
101   CSImode,                 /* machmode.def:245 */
102 #define HAVE_CSImode
103   CDImode,                 /* machmode.def:245 */
104 #define HAVE_CDImode
105   CTImode,                 /* machmode.def:245 */
106 #define HAVE_CTImode
107   SCmode,                  /* machmode.def:247 */
108 #define HAVE_SCmode
109   DCmode,                  /* machmode.def:247 */
110 #define HAVE_DCmode
111   TCmode,                  /* machmode.def:247 */
112 #define HAVE_TCmode
113   V4QImode,                /* config/sparc/sparc-modes.def:61 */
114 #define HAVE_V4QImode
115   V2HImode,                /* config/sparc/sparc-modes.def:61 */
116 #define HAVE_V2HImode
117   V1SImode,                /* config/sparc/sparc-modes.def:63 */
118 #define HAVE_V1SImode
119   V8QImode,                /* config/sparc/sparc-modes.def:60 */
120 #define HAVE_V8QImode
121   V4HImode,                /* config/sparc/sparc-modes.def:60 */
122 #define HAVE_V4HImode
123   V2SImode,                /* config/sparc/sparc-modes.def:60 */
124 #define HAVE_V2SImode
125   V1DImode,                /* config/sparc/sparc-modes.def:62 */
126 #define HAVE_V1DImode
127   V16QImode,               /* config/sparc/sparc-modes.def:59 */
128 #define HAVE_V16QImode
129   V8HImode,                /* config/sparc/sparc-modes.def:59 */
130 #define HAVE_V8HImode
131   V4SImode,                /* config/sparc/sparc-modes.def:59 */
132 #define HAVE_V4SImode
133   V2DImode,                /* config/sparc/sparc-modes.def:59 */
134 #define HAVE_V2DImode
135   MAX_MACHINE_MODE,
136 
137   MIN_MODE_RANDOM = VOIDmode,
138   MAX_MODE_RANDOM = BLKmode,
139 
140   MIN_MODE_CC = CCmode,
141   MAX_MODE_CC = CCFPEmode,
142 
143   MIN_MODE_INT = QImode,
144   MAX_MODE_INT = TImode,
145 
146   MIN_MODE_PARTIAL_INT = VOIDmode,
147   MAX_MODE_PARTIAL_INT = VOIDmode,
148 
149   MIN_MODE_POINTER_BOUNDS = VOIDmode,
150   MAX_MODE_POINTER_BOUNDS = VOIDmode,
151 
152   MIN_MODE_FRACT = QQmode,
153   MAX_MODE_FRACT = TQmode,
154 
155   MIN_MODE_UFRACT = UQQmode,
156   MAX_MODE_UFRACT = UTQmode,
157 
158   MIN_MODE_ACCUM = HAmode,
159   MAX_MODE_ACCUM = TAmode,
160 
161   MIN_MODE_UACCUM = UHAmode,
162   MAX_MODE_UACCUM = UTAmode,
163 
164   MIN_MODE_FLOAT = SFmode,
165   MAX_MODE_FLOAT = TFmode,
166 
167   MIN_MODE_DECIMAL_FLOAT = SDmode,
168   MAX_MODE_DECIMAL_FLOAT = TDmode,
169 
170   MIN_MODE_COMPLEX_INT = CQImode,
171   MAX_MODE_COMPLEX_INT = CTImode,
172 
173   MIN_MODE_COMPLEX_FLOAT = SCmode,
174   MAX_MODE_COMPLEX_FLOAT = TCmode,
175 
176   MIN_MODE_VECTOR_INT = V4QImode,
177   MAX_MODE_VECTOR_INT = V2DImode,
178 
179   MIN_MODE_VECTOR_FRACT = VOIDmode,
180   MAX_MODE_VECTOR_FRACT = VOIDmode,
181 
182   MIN_MODE_VECTOR_UFRACT = VOIDmode,
183   MAX_MODE_VECTOR_UFRACT = VOIDmode,
184 
185   MIN_MODE_VECTOR_ACCUM = VOIDmode,
186   MAX_MODE_VECTOR_ACCUM = VOIDmode,
187 
188   MIN_MODE_VECTOR_UACCUM = VOIDmode,
189   MAX_MODE_VECTOR_UACCUM = VOIDmode,
190 
191   MIN_MODE_VECTOR_FLOAT = VOIDmode,
192   MAX_MODE_VECTOR_FLOAT = VOIDmode,
193 
194   NUM_MACHINE_MODES = MAX_MACHINE_MODE
195 };
196 
197 #define CONST_MODE_SIZE const
198 #define CONST_MODE_UNIT_SIZE const
199 #define CONST_MODE_BASE_ALIGN const
200 #define CONST_MODE_IBIT const
201 #define CONST_MODE_FBIT const
202 
203 #define BITS_PER_UNIT (8)
204 #define MAX_BITSIZE_MODE_ANY_INT (16*BITS_PER_UNIT)
205 #define MAX_BITSIZE_MODE_ANY_MODE (32*BITS_PER_UNIT)
206 #define NUM_INT_N_ENTS 1
207 
208 #if !defined (USED_FOR_TARGET) && GCC_VERSION >= 4001
209 
210 #ifdef __cplusplus
211 inline __attribute__((__always_inline__))
212 #else
213 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
214 #endif
215 unsigned short
216 mode_size_inline (machine_mode mode)
217 {
218   extern const unsigned short mode_size[NUM_MACHINE_MODES];
219   gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES);
220   switch (mode)
221     {
222     case VOIDmode: return 0;
223     case BLKmode: return 0;
224     case CCmode: return 4;
225     case CCXmode: return 4;
226     case CCNZmode: return 4;
227     case CCXNZmode: return 4;
228     case CCCmode: return 4;
229     case CCXCmode: return 4;
230     case CCVmode: return 4;
231     case CCXVmode: return 4;
232     case CCFPmode: return 4;
233     case CCFPEmode: return 4;
234     case BImode: return 1;
235     case QImode: return 1;
236     case HImode: return 2;
237     case SImode: return 4;
238     case DImode: return 8;
239     case TImode: return 16;
240     case QQmode: return 1;
241     case HQmode: return 2;
242     case SQmode: return 4;
243     case DQmode: return 8;
244     case TQmode: return 16;
245     case UQQmode: return 1;
246     case UHQmode: return 2;
247     case USQmode: return 4;
248     case UDQmode: return 8;
249     case UTQmode: return 16;
250     case HAmode: return 2;
251     case SAmode: return 4;
252     case DAmode: return 8;
253     case TAmode: return 16;
254     case UHAmode: return 2;
255     case USAmode: return 4;
256     case UDAmode: return 8;
257     case UTAmode: return 16;
258     case SFmode: return 4;
259     case DFmode: return 8;
260     case TFmode: return 16;
261     case SDmode: return 4;
262     case DDmode: return 8;
263     case TDmode: return 16;
264     case CQImode: return 2;
265     case CHImode: return 4;
266     case CSImode: return 8;
267     case CDImode: return 16;
268     case CTImode: return 32;
269     case SCmode: return 8;
270     case DCmode: return 16;
271     case TCmode: return 32;
272     case V4QImode: return 4;
273     case V2HImode: return 4;
274     case V1SImode: return 4;
275     case V8QImode: return 8;
276     case V4HImode: return 8;
277     case V2SImode: return 8;
278     case V1DImode: return 8;
279     case V16QImode: return 16;
280     case V8HImode: return 16;
281     case V4SImode: return 16;
282     case V2DImode: return 16;
283     default: return mode_size[mode];
284     }
285 }
286 
287 #ifdef __cplusplus
288 inline __attribute__((__always_inline__))
289 #else
290 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
291 #endif
292 unsigned char
293 mode_nunits_inline (machine_mode mode)
294 {
295   extern const unsigned char mode_nunits[NUM_MACHINE_MODES];
296   gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES);
297   switch (mode)
298     {
299     case VOIDmode: return 0;
300     case BLKmode: return 0;
301     case CCmode: return 1;
302     case CCXmode: return 1;
303     case CCNZmode: return 1;
304     case CCXNZmode: return 1;
305     case CCCmode: return 1;
306     case CCXCmode: return 1;
307     case CCVmode: return 1;
308     case CCXVmode: return 1;
309     case CCFPmode: return 1;
310     case CCFPEmode: return 1;
311     case BImode: return 1;
312     case QImode: return 1;
313     case HImode: return 1;
314     case SImode: return 1;
315     case DImode: return 1;
316     case TImode: return 1;
317     case QQmode: return 1;
318     case HQmode: return 1;
319     case SQmode: return 1;
320     case DQmode: return 1;
321     case TQmode: return 1;
322     case UQQmode: return 1;
323     case UHQmode: return 1;
324     case USQmode: return 1;
325     case UDQmode: return 1;
326     case UTQmode: return 1;
327     case HAmode: return 1;
328     case SAmode: return 1;
329     case DAmode: return 1;
330     case TAmode: return 1;
331     case UHAmode: return 1;
332     case USAmode: return 1;
333     case UDAmode: return 1;
334     case UTAmode: return 1;
335     case SFmode: return 1;
336     case DFmode: return 1;
337     case TFmode: return 1;
338     case SDmode: return 1;
339     case DDmode: return 1;
340     case TDmode: return 1;
341     case CQImode: return 2;
342     case CHImode: return 2;
343     case CSImode: return 2;
344     case CDImode: return 2;
345     case CTImode: return 2;
346     case SCmode: return 2;
347     case DCmode: return 2;
348     case TCmode: return 2;
349     case V4QImode: return 4;
350     case V2HImode: return 2;
351     case V1SImode: return 1;
352     case V8QImode: return 8;
353     case V4HImode: return 4;
354     case V2SImode: return 2;
355     case V1DImode: return 1;
356     case V16QImode: return 16;
357     case V8HImode: return 8;
358     case V4SImode: return 4;
359     case V2DImode: return 2;
360     default: return mode_nunits[mode];
361     }
362 }
363 
364 #ifdef __cplusplus
365 inline __attribute__((__always_inline__))
366 #else
367 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
368 #endif
369 unsigned char
370 mode_inner_inline (machine_mode mode)
371 {
372   extern const unsigned char mode_inner[NUM_MACHINE_MODES];
373   gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES);
374   switch (mode)
375     {
376     case VOIDmode: return VOIDmode;
377     case BLKmode: return BLKmode;
378     case CCmode: return CCmode;
379     case CCXmode: return CCXmode;
380     case CCNZmode: return CCNZmode;
381     case CCXNZmode: return CCXNZmode;
382     case CCCmode: return CCCmode;
383     case CCXCmode: return CCXCmode;
384     case CCVmode: return CCVmode;
385     case CCXVmode: return CCXVmode;
386     case CCFPmode: return CCFPmode;
387     case CCFPEmode: return CCFPEmode;
388     case BImode: return BImode;
389     case QImode: return QImode;
390     case HImode: return HImode;
391     case SImode: return SImode;
392     case DImode: return DImode;
393     case TImode: return TImode;
394     case QQmode: return QQmode;
395     case HQmode: return HQmode;
396     case SQmode: return SQmode;
397     case DQmode: return DQmode;
398     case TQmode: return TQmode;
399     case UQQmode: return UQQmode;
400     case UHQmode: return UHQmode;
401     case USQmode: return USQmode;
402     case UDQmode: return UDQmode;
403     case UTQmode: return UTQmode;
404     case HAmode: return HAmode;
405     case SAmode: return SAmode;
406     case DAmode: return DAmode;
407     case TAmode: return TAmode;
408     case UHAmode: return UHAmode;
409     case USAmode: return USAmode;
410     case UDAmode: return UDAmode;
411     case UTAmode: return UTAmode;
412     case SFmode: return SFmode;
413     case DFmode: return DFmode;
414     case TFmode: return TFmode;
415     case SDmode: return SDmode;
416     case DDmode: return DDmode;
417     case TDmode: return TDmode;
418     case CQImode: return QImode;
419     case CHImode: return HImode;
420     case CSImode: return SImode;
421     case CDImode: return DImode;
422     case CTImode: return TImode;
423     case SCmode: return SFmode;
424     case DCmode: return DFmode;
425     case TCmode: return TFmode;
426     case V4QImode: return QImode;
427     case V2HImode: return HImode;
428     case V1SImode: return SImode;
429     case V8QImode: return QImode;
430     case V4HImode: return HImode;
431     case V2SImode: return SImode;
432     case V1DImode: return DImode;
433     case V16QImode: return QImode;
434     case V8HImode: return HImode;
435     case V4SImode: return SImode;
436     case V2DImode: return DImode;
437     default: return mode_inner[mode];
438     }
439 }
440 
441 #ifdef __cplusplus
442 inline __attribute__((__always_inline__))
443 #else
444 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
445 #endif
446 unsigned char
447 mode_unit_size_inline (machine_mode mode)
448 {
449   extern CONST_MODE_UNIT_SIZE unsigned char mode_unit_size[NUM_MACHINE_MODES];
450   gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES);
451   switch (mode)
452     {
453     case VOIDmode: return 0;
454     case BLKmode: return 0;
455     case CCmode: return 4;
456     case CCXmode: return 4;
457     case CCNZmode: return 4;
458     case CCXNZmode: return 4;
459     case CCCmode: return 4;
460     case CCXCmode: return 4;
461     case CCVmode: return 4;
462     case CCXVmode: return 4;
463     case CCFPmode: return 4;
464     case CCFPEmode: return 4;
465     case BImode: return 1;
466     case QImode: return 1;
467     case HImode: return 2;
468     case SImode: return 4;
469     case DImode: return 8;
470     case TImode: return 16;
471     case QQmode: return 1;
472     case HQmode: return 2;
473     case SQmode: return 4;
474     case DQmode: return 8;
475     case TQmode: return 16;
476     case UQQmode: return 1;
477     case UHQmode: return 2;
478     case USQmode: return 4;
479     case UDQmode: return 8;
480     case UTQmode: return 16;
481     case HAmode: return 2;
482     case SAmode: return 4;
483     case DAmode: return 8;
484     case TAmode: return 16;
485     case UHAmode: return 2;
486     case USAmode: return 4;
487     case UDAmode: return 8;
488     case UTAmode: return 16;
489     case SFmode: return 4;
490     case DFmode: return 8;
491     case TFmode: return 16;
492     case SDmode: return 4;
493     case DDmode: return 8;
494     case TDmode: return 16;
495     case CQImode: return 1;
496     case CHImode: return 2;
497     case CSImode: return 4;
498     case CDImode: return 8;
499     case CTImode: return 16;
500     case SCmode: return 4;
501     case DCmode: return 8;
502     case TCmode: return 16;
503     case V4QImode: return 1;
504     case V2HImode: return 2;
505     case V1SImode: return 4;
506     case V8QImode: return 1;
507     case V4HImode: return 2;
508     case V2SImode: return 4;
509     case V1DImode: return 8;
510     case V16QImode: return 1;
511     case V8HImode: return 2;
512     case V4SImode: return 4;
513     case V2DImode: return 8;
514     default: return mode_unit_size[mode];
515     }
516 }
517 
518 #ifdef __cplusplus
519 inline __attribute__((__always_inline__))
520 #else
521 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
522 #endif
523 unsigned short
524 mode_unit_precision_inline (machine_mode mode)
525 {
526   extern const unsigned short mode_unit_precision[NUM_MACHINE_MODES];
527   gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES);
528   switch (mode)
529     {
530     case VOIDmode: return 0;
531     case BLKmode: return 0;
532     case CCmode: return 4*BITS_PER_UNIT;
533     case CCXmode: return 4*BITS_PER_UNIT;
534     case CCNZmode: return 4*BITS_PER_UNIT;
535     case CCXNZmode: return 4*BITS_PER_UNIT;
536     case CCCmode: return 4*BITS_PER_UNIT;
537     case CCXCmode: return 4*BITS_PER_UNIT;
538     case CCVmode: return 4*BITS_PER_UNIT;
539     case CCXVmode: return 4*BITS_PER_UNIT;
540     case CCFPmode: return 4*BITS_PER_UNIT;
541     case CCFPEmode: return 4*BITS_PER_UNIT;
542     case BImode: return 1;
543     case QImode: return 1*BITS_PER_UNIT;
544     case HImode: return 2*BITS_PER_UNIT;
545     case SImode: return 4*BITS_PER_UNIT;
546     case DImode: return 8*BITS_PER_UNIT;
547     case TImode: return 16*BITS_PER_UNIT;
548     case QQmode: return 1*BITS_PER_UNIT;
549     case HQmode: return 2*BITS_PER_UNIT;
550     case SQmode: return 4*BITS_PER_UNIT;
551     case DQmode: return 8*BITS_PER_UNIT;
552     case TQmode: return 16*BITS_PER_UNIT;
553     case UQQmode: return 1*BITS_PER_UNIT;
554     case UHQmode: return 2*BITS_PER_UNIT;
555     case USQmode: return 4*BITS_PER_UNIT;
556     case UDQmode: return 8*BITS_PER_UNIT;
557     case UTQmode: return 16*BITS_PER_UNIT;
558     case HAmode: return 2*BITS_PER_UNIT;
559     case SAmode: return 4*BITS_PER_UNIT;
560     case DAmode: return 8*BITS_PER_UNIT;
561     case TAmode: return 16*BITS_PER_UNIT;
562     case UHAmode: return 2*BITS_PER_UNIT;
563     case USAmode: return 4*BITS_PER_UNIT;
564     case UDAmode: return 8*BITS_PER_UNIT;
565     case UTAmode: return 16*BITS_PER_UNIT;
566     case SFmode: return 4*BITS_PER_UNIT;
567     case DFmode: return 8*BITS_PER_UNIT;
568     case TFmode: return 16*BITS_PER_UNIT;
569     case SDmode: return 4*BITS_PER_UNIT;
570     case DDmode: return 8*BITS_PER_UNIT;
571     case TDmode: return 16*BITS_PER_UNIT;
572     case CQImode: return 1*BITS_PER_UNIT;
573     case CHImode: return 2*BITS_PER_UNIT;
574     case CSImode: return 4*BITS_PER_UNIT;
575     case CDImode: return 8*BITS_PER_UNIT;
576     case CTImode: return 16*BITS_PER_UNIT;
577     case SCmode: return 4*BITS_PER_UNIT;
578     case DCmode: return 8*BITS_PER_UNIT;
579     case TCmode: return 16*BITS_PER_UNIT;
580     case V4QImode: return 1*BITS_PER_UNIT;
581     case V2HImode: return 2*BITS_PER_UNIT;
582     case V1SImode: return 4*BITS_PER_UNIT;
583     case V8QImode: return 1*BITS_PER_UNIT;
584     case V4HImode: return 2*BITS_PER_UNIT;
585     case V2SImode: return 4*BITS_PER_UNIT;
586     case V1DImode: return 8*BITS_PER_UNIT;
587     case V16QImode: return 1*BITS_PER_UNIT;
588     case V8HImode: return 2*BITS_PER_UNIT;
589     case V4SImode: return 4*BITS_PER_UNIT;
590     case V2DImode: return 8*BITS_PER_UNIT;
591     default: return mode_unit_precision[mode];
592     }
593 }
594 
595 #endif /* GCC_VERSION >= 4001 */
596 
597 #endif /* insn-modes.h */
598