insn-modes.h revision 1.1.1.2
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
11enum 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
211inline __attribute__((__always_inline__))
212#else
213extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
214#endif
215unsigned char
216mode_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
285inline __attribute__((__always_inline__))
286#else
287extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
288#endif
289unsigned char
290mode_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
361inline __attribute__((__always_inline__))
362#else
363extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
364#endif
365unsigned char
366mode_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
437inline __attribute__((__always_inline__))
438#else
439extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
440#endif
441unsigned char
442mode_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
511inline __attribute__((__always_inline__))
512#else
513extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
514#endif
515unsigned short
516mode_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