xref: /netbsd-src/external/gpl3/gcc.old/usr.bin/gcc/arch/mips64eb/insn-modes.h (revision f3cfa6f6ce31685c6c4a758bc430e69eb99f50a4)
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/mips/mips-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   CCV2mode,                /* config/mips/mips-modes.def:39 */
20 #define HAVE_CCV2mode
21   CCV4mode,                /* config/mips/mips-modes.def:43 */
22 #define HAVE_CCV4mode
23   CCDSPmode,               /* config/mips/mips-modes.def:48 */
24 #define HAVE_CCDSPmode
25   CCFmode,                 /* config/mips/mips-modes.def:51 */
26 #define HAVE_CCFmode
27   BImode,                  /* machmode.def:179 */
28 #define HAVE_BImode
29   QImode,                  /* machmode.def:187 */
30 #define HAVE_QImode
31   HImode,                  /* machmode.def:188 */
32 #define HAVE_HImode
33   SImode,                  /* machmode.def:189 */
34 #define HAVE_SImode
35   DImode,                  /* machmode.def:190 */
36 #define HAVE_DImode
37   TImode,                  /* machmode.def:191 */
38 #define HAVE_TImode
39   QQmode,                  /* machmode.def:217 */
40 #define HAVE_QQmode
41   HQmode,                  /* machmode.def:218 */
42 #define HAVE_HQmode
43   SQmode,                  /* machmode.def:219 */
44 #define HAVE_SQmode
45   DQmode,                  /* machmode.def:220 */
46 #define HAVE_DQmode
47   TQmode,                  /* machmode.def:221 */
48 #define HAVE_TQmode
49   UQQmode,                 /* machmode.def:223 */
50 #define HAVE_UQQmode
51   UHQmode,                 /* machmode.def:224 */
52 #define HAVE_UHQmode
53   USQmode,                 /* machmode.def:225 */
54 #define HAVE_USQmode
55   UDQmode,                 /* machmode.def:226 */
56 #define HAVE_UDQmode
57   UTQmode,                 /* machmode.def:227 */
58 #define HAVE_UTQmode
59   HAmode,                  /* machmode.def:229 */
60 #define HAVE_HAmode
61   SAmode,                  /* machmode.def:230 */
62 #define HAVE_SAmode
63   DAmode,                  /* machmode.def:231 */
64 #define HAVE_DAmode
65   TAmode,                  /* machmode.def:232 */
66 #define HAVE_TAmode
67   UHAmode,                 /* machmode.def:234 */
68 #define HAVE_UHAmode
69   USAmode,                 /* machmode.def:235 */
70 #define HAVE_USAmode
71   UDAmode,                 /* machmode.def:236 */
72 #define HAVE_UDAmode
73   UTAmode,                 /* machmode.def:237 */
74 #define HAVE_UTAmode
75   SFmode,                  /* machmode.def:209 */
76 #define HAVE_SFmode
77   DFmode,                  /* machmode.def:210 */
78 #define HAVE_DFmode
79   TFmode,                  /* config/mips/mips-modes.def:20 */
80 #define HAVE_TFmode
81   SDmode,                  /* machmode.def:249 */
82 #define HAVE_SDmode
83   DDmode,                  /* machmode.def:250 */
84 #define HAVE_DDmode
85   TDmode,                  /* machmode.def:251 */
86 #define HAVE_TDmode
87   CQImode,                 /* machmode.def:245 */
88 #define HAVE_CQImode
89   CHImode,                 /* machmode.def:245 */
90 #define HAVE_CHImode
91   CSImode,                 /* machmode.def:245 */
92 #define HAVE_CSImode
93   CDImode,                 /* machmode.def:245 */
94 #define HAVE_CDImode
95   CTImode,                 /* machmode.def:245 */
96 #define HAVE_CTImode
97   SCmode,                  /* machmode.def:246 */
98 #define HAVE_SCmode
99   DCmode,                  /* machmode.def:246 */
100 #define HAVE_DCmode
101   TCmode,                  /* machmode.def:246 */
102 #define HAVE_TCmode
103   V4QImode,                /* config/mips/mips-modes.def:23 */
104 #define HAVE_V4QImode
105   V2HImode,                /* config/mips/mips-modes.def:23 */
106 #define HAVE_V2HImode
107   V8QImode,                /* config/mips/mips-modes.def:24 */
108 #define HAVE_V8QImode
109   V4HImode,                /* config/mips/mips-modes.def:24 */
110 #define HAVE_V4HImode
111   V2SImode,                /* config/mips/mips-modes.def:24 */
112 #define HAVE_V2SImode
113   V16QImode,               /* config/mips/mips-modes.def:28 */
114 #define HAVE_V16QImode
115   V8HImode,                /* config/mips/mips-modes.def:29 */
116 #define HAVE_V8HImode
117   V4SImode,                /* config/mips/mips-modes.def:30 */
118 #define HAVE_V4SImode
119   V4QQmode,                /* config/mips/mips-modes.def:33 */
120 #define HAVE_V4QQmode
121   V2HQmode,                /* config/mips/mips-modes.def:33 */
122 #define HAVE_V2HQmode
123   V4UQQmode,               /* config/mips/mips-modes.def:34 */
124 #define HAVE_V4UQQmode
125   V2UHQmode,               /* config/mips/mips-modes.def:34 */
126 #define HAVE_V2UHQmode
127   V2HAmode,                /* config/mips/mips-modes.def:35 */
128 #define HAVE_V2HAmode
129   V2UHAmode,               /* config/mips/mips-modes.def:36 */
130 #define HAVE_V2UHAmode
131   V2SFmode,                /* config/mips/mips-modes.def:25 */
132 #define HAVE_V2SFmode
133   V4SFmode,                /* config/mips/mips-modes.def:31 */
134 #define HAVE_V4SFmode
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 = CCFmode,
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 = V4SImode,
178 
179   MIN_MODE_VECTOR_FRACT = V4QQmode,
180   MAX_MODE_VECTOR_FRACT = V2HQmode,
181 
182   MIN_MODE_VECTOR_UFRACT = V4UQQmode,
183   MAX_MODE_VECTOR_UFRACT = V2UHQmode,
184 
185   MIN_MODE_VECTOR_ACCUM = V2HAmode,
186   MAX_MODE_VECTOR_ACCUM = V2HAmode,
187 
188   MIN_MODE_VECTOR_UACCUM = V2UHAmode,
189   MAX_MODE_VECTOR_UACCUM = V2UHAmode,
190 
191   MIN_MODE_VECTOR_FLOAT = V2SFmode,
192   MAX_MODE_VECTOR_FLOAT = V4SFmode,
193 
194   NUM_MACHINE_MODES = MAX_MACHINE_MODE
195 };
196 
197 #define CONST_MODE_SIZE
198 #define CONST_MODE_UNIT_SIZE
199 #define CONST_MODE_BASE_ALIGN
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 char
216 mode_size_inline (machine_mode mode)
217 {
218   extern unsigned char mode_size[NUM_MACHINE_MODES];
219   switch (mode)
220     {
221     case VOIDmode: return 0;
222     case BLKmode: return 0;
223     case CCmode: return 4;
224     case CCDSPmode: return 4;
225     case CCFmode: return 4;
226     case BImode: return 1;
227     case QImode: return 1;
228     case HImode: return 2;
229     case SImode: return 4;
230     case DImode: return 8;
231     case TImode: return 16;
232     case QQmode: return 1;
233     case HQmode: return 2;
234     case SQmode: return 4;
235     case DQmode: return 8;
236     case TQmode: return 16;
237     case UQQmode: return 1;
238     case UHQmode: return 2;
239     case USQmode: return 4;
240     case UDQmode: return 8;
241     case UTQmode: return 16;
242     case HAmode: return 2;
243     case SAmode: return 4;
244     case DAmode: return 8;
245     case TAmode: return 16;
246     case UHAmode: return 2;
247     case USAmode: return 4;
248     case UDAmode: return 8;
249     case UTAmode: return 16;
250     case SFmode: return 4;
251     case DFmode: return 8;
252     case TFmode: return 16;
253     case SDmode: return 4;
254     case DDmode: return 8;
255     case TDmode: return 16;
256     case CQImode: return 2;
257     case CHImode: return 4;
258     case CSImode: return 8;
259     case CDImode: return 16;
260     case CTImode: return 32;
261     case SCmode: return 8;
262     case DCmode: return 16;
263     case TCmode: return 32;
264     case V4QImode: return 4;
265     case V2HImode: return 4;
266     case V8QImode: return 8;
267     case V4HImode: return 8;
268     case V2SImode: return 8;
269     case V16QImode: return 16;
270     case V8HImode: return 16;
271     case V4SImode: return 16;
272     case V4QQmode: return 4;
273     case V2HQmode: return 4;
274     case V4UQQmode: return 4;
275     case V2UHQmode: return 4;
276     case V2HAmode: return 4;
277     case V2UHAmode: return 4;
278     case V2SFmode: return 8;
279     case V4SFmode: return 16;
280     default: return mode_size[mode];
281     }
282 }
283 
284 #ifdef __cplusplus
285 inline __attribute__((__always_inline__))
286 #else
287 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
288 #endif
289 unsigned char
290 mode_nunits_inline (machine_mode mode)
291 {
292   extern const unsigned char mode_nunits[NUM_MACHINE_MODES];
293   switch (mode)
294     {
295     case VOIDmode: return 0;
296     case BLKmode: return 0;
297     case CCmode: return 1;
298     case CCV2mode: return 1;
299     case CCV4mode: return 1;
300     case CCDSPmode: return 1;
301     case CCFmode: return 1;
302     case BImode: return 1;
303     case QImode: return 1;
304     case HImode: return 1;
305     case SImode: return 1;
306     case DImode: return 1;
307     case TImode: return 1;
308     case QQmode: return 1;
309     case HQmode: return 1;
310     case SQmode: return 1;
311     case DQmode: return 1;
312     case TQmode: return 1;
313     case UQQmode: return 1;
314     case UHQmode: return 1;
315     case USQmode: return 1;
316     case UDQmode: return 1;
317     case UTQmode: return 1;
318     case HAmode: return 1;
319     case SAmode: return 1;
320     case DAmode: return 1;
321     case TAmode: return 1;
322     case UHAmode: return 1;
323     case USAmode: return 1;
324     case UDAmode: return 1;
325     case UTAmode: return 1;
326     case SFmode: return 1;
327     case DFmode: return 1;
328     case TFmode: return 1;
329     case SDmode: return 1;
330     case DDmode: return 1;
331     case TDmode: return 1;
332     case CQImode: return 2;
333     case CHImode: return 2;
334     case CSImode: return 2;
335     case CDImode: return 2;
336     case CTImode: return 2;
337     case SCmode: return 2;
338     case DCmode: return 2;
339     case TCmode: return 2;
340     case V4QImode: return 4;
341     case V2HImode: return 2;
342     case V8QImode: return 8;
343     case V4HImode: return 4;
344     case V2SImode: return 2;
345     case V16QImode: return 16;
346     case V8HImode: return 8;
347     case V4SImode: return 4;
348     case V4QQmode: return 4;
349     case V2HQmode: return 2;
350     case V4UQQmode: return 4;
351     case V2UHQmode: return 2;
352     case V2HAmode: return 2;
353     case V2UHAmode: return 2;
354     case V2SFmode: return 2;
355     case V4SFmode: return 4;
356     default: return mode_nunits[mode];
357     }
358 }
359 
360 #ifdef __cplusplus
361 inline __attribute__((__always_inline__))
362 #else
363 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
364 #endif
365 unsigned char
366 mode_inner_inline (machine_mode mode)
367 {
368   extern const unsigned char mode_inner[NUM_MACHINE_MODES];
369   switch (mode)
370     {
371     case VOIDmode: return VOIDmode;
372     case BLKmode: return BLKmode;
373     case CCmode: return CCmode;
374     case CCV2mode: return CCV2mode;
375     case CCV4mode: return CCV4mode;
376     case CCDSPmode: return CCDSPmode;
377     case CCFmode: return CCFmode;
378     case BImode: return BImode;
379     case QImode: return QImode;
380     case HImode: return HImode;
381     case SImode: return SImode;
382     case DImode: return DImode;
383     case TImode: return TImode;
384     case QQmode: return QQmode;
385     case HQmode: return HQmode;
386     case SQmode: return SQmode;
387     case DQmode: return DQmode;
388     case TQmode: return TQmode;
389     case UQQmode: return UQQmode;
390     case UHQmode: return UHQmode;
391     case USQmode: return USQmode;
392     case UDQmode: return UDQmode;
393     case UTQmode: return UTQmode;
394     case HAmode: return HAmode;
395     case SAmode: return SAmode;
396     case DAmode: return DAmode;
397     case TAmode: return TAmode;
398     case UHAmode: return UHAmode;
399     case USAmode: return USAmode;
400     case UDAmode: return UDAmode;
401     case UTAmode: return UTAmode;
402     case SFmode: return SFmode;
403     case DFmode: return DFmode;
404     case TFmode: return TFmode;
405     case SDmode: return SDmode;
406     case DDmode: return DDmode;
407     case TDmode: return TDmode;
408     case CQImode: return QImode;
409     case CHImode: return HImode;
410     case CSImode: return SImode;
411     case CDImode: return DImode;
412     case CTImode: return TImode;
413     case SCmode: return SFmode;
414     case DCmode: return DFmode;
415     case TCmode: return TFmode;
416     case V4QImode: return QImode;
417     case V2HImode: return HImode;
418     case V8QImode: return QImode;
419     case V4HImode: return HImode;
420     case V2SImode: return SImode;
421     case V16QImode: return QImode;
422     case V8HImode: return HImode;
423     case V4SImode: return SImode;
424     case V4QQmode: return QQmode;
425     case V2HQmode: return HQmode;
426     case V4UQQmode: return UQQmode;
427     case V2UHQmode: return UHQmode;
428     case V2HAmode: return HAmode;
429     case V2UHAmode: return UHAmode;
430     case V2SFmode: return SFmode;
431     case V4SFmode: return SFmode;
432     default: return mode_inner[mode];
433     }
434 }
435 
436 #ifdef __cplusplus
437 inline __attribute__((__always_inline__))
438 #else
439 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
440 #endif
441 unsigned char
442 mode_unit_size_inline (machine_mode mode)
443 {
444   extern CONST_MODE_UNIT_SIZE unsigned char mode_unit_size[NUM_MACHINE_MODES];
445   switch (mode)
446     {
447     case VOIDmode: return 0;
448     case BLKmode: return 0;
449     case CCmode: return 4;
450     case CCDSPmode: return 4;
451     case CCFmode: return 4;
452     case BImode: return 1;
453     case QImode: return 1;
454     case HImode: return 2;
455     case SImode: return 4;
456     case DImode: return 8;
457     case TImode: return 16;
458     case QQmode: return 1;
459     case HQmode: return 2;
460     case SQmode: return 4;
461     case DQmode: return 8;
462     case TQmode: return 16;
463     case UQQmode: return 1;
464     case UHQmode: return 2;
465     case USQmode: return 4;
466     case UDQmode: return 8;
467     case UTQmode: return 16;
468     case HAmode: return 2;
469     case SAmode: return 4;
470     case DAmode: return 8;
471     case TAmode: return 16;
472     case UHAmode: return 2;
473     case USAmode: return 4;
474     case UDAmode: return 8;
475     case UTAmode: return 16;
476     case SFmode: return 4;
477     case DFmode: return 8;
478     case TFmode: return 16;
479     case SDmode: return 4;
480     case DDmode: return 8;
481     case TDmode: return 16;
482     case CQImode: return 1;
483     case CHImode: return 2;
484     case CSImode: return 4;
485     case CDImode: return 8;
486     case CTImode: return 16;
487     case SCmode: return 4;
488     case DCmode: return 8;
489     case TCmode: return 16;
490     case V4QImode: return 1;
491     case V2HImode: return 2;
492     case V8QImode: return 1;
493     case V4HImode: return 2;
494     case V2SImode: return 4;
495     case V16QImode: return 1;
496     case V8HImode: return 2;
497     case V4SImode: return 4;
498     case V4QQmode: return 1;
499     case V2HQmode: return 2;
500     case V4UQQmode: return 1;
501     case V2UHQmode: return 2;
502     case V2HAmode: return 2;
503     case V2UHAmode: return 2;
504     case V2SFmode: return 4;
505     case V4SFmode: return 4;
506     default: return mode_unit_size[mode];
507     }
508 }
509 
510 #ifdef __cplusplus
511 inline __attribute__((__always_inline__))
512 #else
513 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
514 #endif
515 unsigned short
516 mode_unit_precision_inline (machine_mode mode)
517 {
518   extern const unsigned short mode_unit_precision[NUM_MACHINE_MODES];
519   switch (mode)
520     {
521     case VOIDmode: return 0;
522     case BLKmode: return 0;
523     case CCmode: return 4*BITS_PER_UNIT;
524     case CCV2mode: return 4*BITS_PER_UNIT;
525     case CCV4mode: return 4*BITS_PER_UNIT;
526     case CCDSPmode: return 4*BITS_PER_UNIT;
527     case CCFmode: return 4*BITS_PER_UNIT;
528     case BImode: return 1;
529     case QImode: return 1*BITS_PER_UNIT;
530     case HImode: return 2*BITS_PER_UNIT;
531     case SImode: return 4*BITS_PER_UNIT;
532     case DImode: return 8*BITS_PER_UNIT;
533     case TImode: return 16*BITS_PER_UNIT;
534     case QQmode: return 1*BITS_PER_UNIT;
535     case HQmode: return 2*BITS_PER_UNIT;
536     case SQmode: return 4*BITS_PER_UNIT;
537     case DQmode: return 8*BITS_PER_UNIT;
538     case TQmode: return 16*BITS_PER_UNIT;
539     case UQQmode: return 1*BITS_PER_UNIT;
540     case UHQmode: return 2*BITS_PER_UNIT;
541     case USQmode: return 4*BITS_PER_UNIT;
542     case UDQmode: return 8*BITS_PER_UNIT;
543     case UTQmode: return 16*BITS_PER_UNIT;
544     case HAmode: return 2*BITS_PER_UNIT;
545     case SAmode: return 4*BITS_PER_UNIT;
546     case DAmode: return 8*BITS_PER_UNIT;
547     case TAmode: return 16*BITS_PER_UNIT;
548     case UHAmode: return 2*BITS_PER_UNIT;
549     case USAmode: return 4*BITS_PER_UNIT;
550     case UDAmode: return 8*BITS_PER_UNIT;
551     case UTAmode: return 16*BITS_PER_UNIT;
552     case SFmode: return 4*BITS_PER_UNIT;
553     case DFmode: return 8*BITS_PER_UNIT;
554     case TFmode: return 16*BITS_PER_UNIT;
555     case SDmode: return 4*BITS_PER_UNIT;
556     case DDmode: return 8*BITS_PER_UNIT;
557     case TDmode: return 16*BITS_PER_UNIT;
558     case CQImode: return 1*BITS_PER_UNIT;
559     case CHImode: return 2*BITS_PER_UNIT;
560     case CSImode: return 4*BITS_PER_UNIT;
561     case CDImode: return 8*BITS_PER_UNIT;
562     case CTImode: return 16*BITS_PER_UNIT;
563     case SCmode: return 4*BITS_PER_UNIT;
564     case DCmode: return 8*BITS_PER_UNIT;
565     case TCmode: return 16*BITS_PER_UNIT;
566     case V4QImode: return 1*BITS_PER_UNIT;
567     case V2HImode: return 2*BITS_PER_UNIT;
568     case V8QImode: return 1*BITS_PER_UNIT;
569     case V4HImode: return 2*BITS_PER_UNIT;
570     case V2SImode: return 4*BITS_PER_UNIT;
571     case V16QImode: return 1*BITS_PER_UNIT;
572     case V8HImode: return 2*BITS_PER_UNIT;
573     case V4SImode: return 4*BITS_PER_UNIT;
574     case V4QQmode: return 1*BITS_PER_UNIT;
575     case V2HQmode: return 2*BITS_PER_UNIT;
576     case V4UQQmode: return 1*BITS_PER_UNIT;
577     case V2UHQmode: return 2*BITS_PER_UNIT;
578     case V2HAmode: return 2*BITS_PER_UNIT;
579     case V2UHAmode: return 2*BITS_PER_UNIT;
580     case V2SFmode: return 4*BITS_PER_UNIT;
581     case V4SFmode: return 4*BITS_PER_UNIT;
582     default: return mode_unit_precision[mode];
583     }
584 }
585 
586 #endif /* GCC_VERSION >= 4001 */
587 
588 #endif /* insn-modes.h */
589