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