1 /* This file is automatically generated.  DO NOT EDIT! */
2 /* Generated from: NetBSD: mknative-gcc,v 1.87 2016/03/17 23:41:21 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/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_BASE_ALIGN
199 #define CONST_MODE_IBIT const
200 #define CONST_MODE_FBIT const
201 
202 #define BITS_PER_UNIT (8)
203 #define MAX_BITSIZE_MODE_ANY_INT (16*BITS_PER_UNIT)
204 #define MAX_BITSIZE_MODE_ANY_MODE (32*BITS_PER_UNIT)
205 #define NUM_INT_N_ENTS 1
206 
207 #if !defined (USED_FOR_TARGET) && GCC_VERSION >= 4001
208 
209 #ifdef __cplusplus
210 inline __attribute__((__always_inline__))
211 #else
212 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
213 #endif
214 unsigned char
215 mode_size_inline (machine_mode mode)
216 {
217   extern unsigned char mode_size[NUM_MACHINE_MODES];
218   switch (mode)
219     {
220     case VOIDmode: return 0;
221     case BLKmode: return 0;
222     case CCmode: return 4;
223     case CCDSPmode: return 4;
224     case CCFmode: return 4;
225     case BImode: return 1;
226     case QImode: return 1;
227     case HImode: return 2;
228     case SImode: return 4;
229     case DImode: return 8;
230     case TImode: return 16;
231     case QQmode: return 1;
232     case HQmode: return 2;
233     case SQmode: return 4;
234     case DQmode: return 8;
235     case TQmode: return 16;
236     case UQQmode: return 1;
237     case UHQmode: return 2;
238     case USQmode: return 4;
239     case UDQmode: return 8;
240     case UTQmode: return 16;
241     case HAmode: return 2;
242     case SAmode: return 4;
243     case DAmode: return 8;
244     case TAmode: return 16;
245     case UHAmode: return 2;
246     case USAmode: return 4;
247     case UDAmode: return 8;
248     case UTAmode: return 16;
249     case SFmode: return 4;
250     case DFmode: return 8;
251     case TFmode: return 16;
252     case SDmode: return 4;
253     case DDmode: return 8;
254     case TDmode: return 16;
255     case CQImode: return 2;
256     case CHImode: return 4;
257     case CSImode: return 8;
258     case CDImode: return 16;
259     case CTImode: return 32;
260     case SCmode: return 8;
261     case DCmode: return 16;
262     case TCmode: return 32;
263     case V4QImode: return 4;
264     case V2HImode: return 4;
265     case V8QImode: return 8;
266     case V4HImode: return 8;
267     case V2SImode: return 8;
268     case V16QImode: return 16;
269     case V8HImode: return 16;
270     case V4SImode: return 16;
271     case V4QQmode: return 4;
272     case V2HQmode: return 4;
273     case V4UQQmode: return 4;
274     case V2UHQmode: return 4;
275     case V2HAmode: return 4;
276     case V2UHAmode: return 4;
277     case V2SFmode: return 8;
278     case V4SFmode: return 16;
279     default: return mode_size[mode];
280     }
281 }
282 
283 #ifdef __cplusplus
284 inline __attribute__((__always_inline__))
285 #else
286 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
287 #endif
288 unsigned char
289 mode_nunits_inline (machine_mode mode)
290 {
291   extern const unsigned char mode_nunits[NUM_MACHINE_MODES];
292   switch (mode)
293     {
294     case VOIDmode: return 0;
295     case BLKmode: return 0;
296     case CCmode: return 1;
297     case CCV2mode: return 1;
298     case CCV4mode: return 1;
299     case CCDSPmode: return 1;
300     case CCFmode: return 1;
301     case BImode: return 1;
302     case QImode: return 1;
303     case HImode: return 1;
304     case SImode: return 1;
305     case DImode: return 1;
306     case TImode: return 1;
307     case QQmode: return 1;
308     case HQmode: return 1;
309     case SQmode: return 1;
310     case DQmode: return 1;
311     case TQmode: return 1;
312     case UQQmode: return 1;
313     case UHQmode: return 1;
314     case USQmode: return 1;
315     case UDQmode: return 1;
316     case UTQmode: return 1;
317     case HAmode: return 1;
318     case SAmode: return 1;
319     case DAmode: return 1;
320     case TAmode: return 1;
321     case UHAmode: return 1;
322     case USAmode: return 1;
323     case UDAmode: return 1;
324     case UTAmode: return 1;
325     case SFmode: return 1;
326     case DFmode: return 1;
327     case TFmode: return 1;
328     case SDmode: return 1;
329     case DDmode: return 1;
330     case TDmode: return 1;
331     case CQImode: return 2;
332     case CHImode: return 2;
333     case CSImode: return 2;
334     case CDImode: return 2;
335     case CTImode: return 2;
336     case SCmode: return 2;
337     case DCmode: return 2;
338     case TCmode: return 2;
339     case V4QImode: return 4;
340     case V2HImode: return 2;
341     case V8QImode: return 8;
342     case V4HImode: return 4;
343     case V2SImode: return 2;
344     case V16QImode: return 16;
345     case V8HImode: return 8;
346     case V4SImode: return 4;
347     case V4QQmode: return 4;
348     case V2HQmode: return 2;
349     case V4UQQmode: return 4;
350     case V2UHQmode: return 2;
351     case V2HAmode: return 2;
352     case V2UHAmode: return 2;
353     case V2SFmode: return 2;
354     case V4SFmode: return 4;
355     default: return mode_nunits[mode];
356     }
357 }
358 
359 #ifdef __cplusplus
360 inline __attribute__((__always_inline__))
361 #else
362 extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
363 #endif
364 unsigned char
365 mode_inner_inline (machine_mode mode)
366 {
367   extern const unsigned char mode_inner[NUM_MACHINE_MODES];
368   switch (mode)
369     {
370     case VOIDmode: return VOIDmode;
371     case BLKmode: return VOIDmode;
372     case CCmode: return VOIDmode;
373     case CCV2mode: return VOIDmode;
374     case CCV4mode: return VOIDmode;
375     case CCDSPmode: return VOIDmode;
376     case CCFmode: return VOIDmode;
377     case BImode: return VOIDmode;
378     case QImode: return VOIDmode;
379     case HImode: return VOIDmode;
380     case SImode: return VOIDmode;
381     case DImode: return VOIDmode;
382     case TImode: return VOIDmode;
383     case QQmode: return VOIDmode;
384     case HQmode: return VOIDmode;
385     case SQmode: return VOIDmode;
386     case DQmode: return VOIDmode;
387     case TQmode: return VOIDmode;
388     case UQQmode: return VOIDmode;
389     case UHQmode: return VOIDmode;
390     case USQmode: return VOIDmode;
391     case UDQmode: return VOIDmode;
392     case UTQmode: return VOIDmode;
393     case HAmode: return VOIDmode;
394     case SAmode: return VOIDmode;
395     case DAmode: return VOIDmode;
396     case TAmode: return VOIDmode;
397     case UHAmode: return VOIDmode;
398     case USAmode: return VOIDmode;
399     case UDAmode: return VOIDmode;
400     case UTAmode: return VOIDmode;
401     case SFmode: return VOIDmode;
402     case DFmode: return VOIDmode;
403     case TFmode: return VOIDmode;
404     case SDmode: return VOIDmode;
405     case DDmode: return VOIDmode;
406     case TDmode: return VOIDmode;
407     case CQImode: return QImode;
408     case CHImode: return HImode;
409     case CSImode: return SImode;
410     case CDImode: return DImode;
411     case CTImode: return TImode;
412     case SCmode: return SFmode;
413     case DCmode: return DFmode;
414     case TCmode: return TFmode;
415     case V4QImode: return QImode;
416     case V2HImode: return HImode;
417     case V8QImode: return QImode;
418     case V4HImode: return HImode;
419     case V2SImode: return SImode;
420     case V16QImode: return QImode;
421     case V8HImode: return HImode;
422     case V4SImode: return SImode;
423     case V4QQmode: return QQmode;
424     case V2HQmode: return HQmode;
425     case V4UQQmode: return UQQmode;
426     case V2UHQmode: return UHQmode;
427     case V2HAmode: return HAmode;
428     case V2UHAmode: return UHAmode;
429     case V2SFmode: return SFmode;
430     case V4SFmode: return SFmode;
431     default: return mode_inner[mode];
432     }
433 }
434 
435 #endif /* GCC_VERSION >= 4001 */
436 
437 #endif /* insn-modes.h */
438