insn-modes.h revision 1.3 1 1.1 mrg /* This file is automatically generated. DO NOT EDIT! */
2 1.3 mrg /* Generated from: NetBSD: mknative-gcc,v 1.99 2019/02/04 01:46:59 mrg Exp */
3 1.3 mrg /* Generated from: NetBSD: mknative.common,v 1.16 2018/04/15 15:13:37 christos Exp */
4 1.1 mrg
5 1.1 mrg /* Generated automatically from machmode.def and config/arm/arm-modes.def
6 1.1 mrg by genmodes. */
7 1.1 mrg
8 1.1 mrg #ifndef GCC_INSN_MODES_H
9 1.1 mrg #define GCC_INSN_MODES_H
10 1.1 mrg
11 1.1 mrg enum machine_mode
12 1.1 mrg {
13 1.1 mrg VOIDmode, /* machmode.def:172 */
14 1.1 mrg #define HAVE_VOIDmode
15 1.1 mrg BLKmode, /* machmode.def:176 */
16 1.1 mrg #define HAVE_BLKmode
17 1.1 mrg CCmode, /* machmode.def:214 */
18 1.1 mrg #define HAVE_CCmode
19 1.1 mrg CC_NOOVmode, /* config/arm/arm-modes.def:43 */
20 1.1 mrg #define HAVE_CC_NOOVmode
21 1.1 mrg CC_Zmode, /* config/arm/arm-modes.def:44 */
22 1.1 mrg #define HAVE_CC_Zmode
23 1.1 mrg CC_CZmode, /* config/arm/arm-modes.def:45 */
24 1.1 mrg #define HAVE_CC_CZmode
25 1.1 mrg CC_NCVmode, /* config/arm/arm-modes.def:46 */
26 1.1 mrg #define HAVE_CC_NCVmode
27 1.1 mrg CC_SWPmode, /* config/arm/arm-modes.def:47 */
28 1.1 mrg #define HAVE_CC_SWPmode
29 1.1 mrg CCFPmode, /* config/arm/arm-modes.def:48 */
30 1.1 mrg #define HAVE_CCFPmode
31 1.1 mrg CCFPEmode, /* config/arm/arm-modes.def:49 */
32 1.1 mrg #define HAVE_CCFPEmode
33 1.1 mrg CC_DNEmode, /* config/arm/arm-modes.def:50 */
34 1.1 mrg #define HAVE_CC_DNEmode
35 1.1 mrg CC_DEQmode, /* config/arm/arm-modes.def:51 */
36 1.1 mrg #define HAVE_CC_DEQmode
37 1.1 mrg CC_DLEmode, /* config/arm/arm-modes.def:52 */
38 1.1 mrg #define HAVE_CC_DLEmode
39 1.1 mrg CC_DLTmode, /* config/arm/arm-modes.def:53 */
40 1.1 mrg #define HAVE_CC_DLTmode
41 1.1 mrg CC_DGEmode, /* config/arm/arm-modes.def:54 */
42 1.1 mrg #define HAVE_CC_DGEmode
43 1.1 mrg CC_DGTmode, /* config/arm/arm-modes.def:55 */
44 1.1 mrg #define HAVE_CC_DGTmode
45 1.1 mrg CC_DLEUmode, /* config/arm/arm-modes.def:56 */
46 1.1 mrg #define HAVE_CC_DLEUmode
47 1.1 mrg CC_DLTUmode, /* config/arm/arm-modes.def:57 */
48 1.1 mrg #define HAVE_CC_DLTUmode
49 1.1 mrg CC_DGEUmode, /* config/arm/arm-modes.def:58 */
50 1.1 mrg #define HAVE_CC_DGEUmode
51 1.1 mrg CC_DGTUmode, /* config/arm/arm-modes.def:59 */
52 1.1 mrg #define HAVE_CC_DGTUmode
53 1.1 mrg CC_Cmode, /* config/arm/arm-modes.def:60 */
54 1.1 mrg #define HAVE_CC_Cmode
55 1.1 mrg CC_Nmode, /* config/arm/arm-modes.def:61 */
56 1.1 mrg #define HAVE_CC_Nmode
57 1.3 mrg CC_Vmode, /* config/arm/arm-modes.def:62 */
58 1.3 mrg #define HAVE_CC_Vmode
59 1.1 mrg BImode, /* machmode.def:179 */
60 1.1 mrg #define HAVE_BImode
61 1.1 mrg QImode, /* machmode.def:187 */
62 1.1 mrg #define HAVE_QImode
63 1.1 mrg HImode, /* machmode.def:188 */
64 1.1 mrg #define HAVE_HImode
65 1.1 mrg SImode, /* machmode.def:189 */
66 1.1 mrg #define HAVE_SImode
67 1.1 mrg DImode, /* machmode.def:190 */
68 1.1 mrg #define HAVE_DImode
69 1.1 mrg TImode, /* machmode.def:191 */
70 1.1 mrg #define HAVE_TImode
71 1.3 mrg EImode, /* config/arm/arm-modes.def:79 */
72 1.1 mrg #define HAVE_EImode
73 1.3 mrg OImode, /* config/arm/arm-modes.def:80 */
74 1.1 mrg #define HAVE_OImode
75 1.3 mrg CImode, /* config/arm/arm-modes.def:81 */
76 1.1 mrg #define HAVE_CImode
77 1.3 mrg XImode, /* config/arm/arm-modes.def:82 */
78 1.1 mrg #define HAVE_XImode
79 1.1 mrg QQmode, /* machmode.def:217 */
80 1.1 mrg #define HAVE_QQmode
81 1.1 mrg HQmode, /* machmode.def:218 */
82 1.1 mrg #define HAVE_HQmode
83 1.1 mrg SQmode, /* machmode.def:219 */
84 1.1 mrg #define HAVE_SQmode
85 1.1 mrg DQmode, /* machmode.def:220 */
86 1.1 mrg #define HAVE_DQmode
87 1.1 mrg TQmode, /* machmode.def:221 */
88 1.1 mrg #define HAVE_TQmode
89 1.1 mrg UQQmode, /* machmode.def:223 */
90 1.1 mrg #define HAVE_UQQmode
91 1.1 mrg UHQmode, /* machmode.def:224 */
92 1.1 mrg #define HAVE_UHQmode
93 1.1 mrg USQmode, /* machmode.def:225 */
94 1.1 mrg #define HAVE_USQmode
95 1.1 mrg UDQmode, /* machmode.def:226 */
96 1.1 mrg #define HAVE_UDQmode
97 1.1 mrg UTQmode, /* machmode.def:227 */
98 1.1 mrg #define HAVE_UTQmode
99 1.1 mrg HAmode, /* machmode.def:229 */
100 1.1 mrg #define HAVE_HAmode
101 1.1 mrg SAmode, /* machmode.def:230 */
102 1.1 mrg #define HAVE_SAmode
103 1.1 mrg DAmode, /* machmode.def:231 */
104 1.1 mrg #define HAVE_DAmode
105 1.1 mrg TAmode, /* machmode.def:232 */
106 1.1 mrg #define HAVE_TAmode
107 1.1 mrg UHAmode, /* machmode.def:234 */
108 1.1 mrg #define HAVE_UHAmode
109 1.1 mrg USAmode, /* machmode.def:235 */
110 1.1 mrg #define HAVE_USAmode
111 1.1 mrg UDAmode, /* machmode.def:236 */
112 1.1 mrg #define HAVE_UDAmode
113 1.1 mrg UTAmode, /* machmode.def:237 */
114 1.1 mrg #define HAVE_UTAmode
115 1.1 mrg HFmode, /* config/arm/arm-modes.def:26 */
116 1.1 mrg #define HAVE_HFmode
117 1.1 mrg SFmode, /* machmode.def:209 */
118 1.1 mrg #define HAVE_SFmode
119 1.1 mrg DFmode, /* machmode.def:210 */
120 1.1 mrg #define HAVE_DFmode
121 1.3 mrg SDmode, /* machmode.def:250 */
122 1.1 mrg #define HAVE_SDmode
123 1.3 mrg DDmode, /* machmode.def:251 */
124 1.1 mrg #define HAVE_DDmode
125 1.3 mrg TDmode, /* machmode.def:252 */
126 1.1 mrg #define HAVE_TDmode
127 1.1 mrg CQImode, /* machmode.def:245 */
128 1.1 mrg #define HAVE_CQImode
129 1.1 mrg CHImode, /* machmode.def:245 */
130 1.1 mrg #define HAVE_CHImode
131 1.1 mrg CSImode, /* machmode.def:245 */
132 1.1 mrg #define HAVE_CSImode
133 1.1 mrg CDImode, /* machmode.def:245 */
134 1.1 mrg #define HAVE_CDImode
135 1.1 mrg CTImode, /* machmode.def:245 */
136 1.1 mrg #define HAVE_CTImode
137 1.1 mrg CEImode, /* machmode.def:245 */
138 1.1 mrg #define HAVE_CEImode
139 1.1 mrg COImode, /* machmode.def:245 */
140 1.1 mrg #define HAVE_COImode
141 1.1 mrg CCImode, /* machmode.def:245 */
142 1.1 mrg #define HAVE_CCImode
143 1.1 mrg CXImode, /* machmode.def:245 */
144 1.1 mrg #define HAVE_CXImode
145 1.3 mrg HCmode, /* machmode.def:247 */
146 1.1 mrg #define HAVE_HCmode
147 1.3 mrg SCmode, /* machmode.def:247 */
148 1.1 mrg #define HAVE_SCmode
149 1.3 mrg DCmode, /* machmode.def:247 */
150 1.1 mrg #define HAVE_DCmode
151 1.3 mrg V4QImode, /* config/arm/arm-modes.def:65 */
152 1.1 mrg #define HAVE_V4QImode
153 1.3 mrg V2HImode, /* config/arm/arm-modes.def:65 */
154 1.1 mrg #define HAVE_V2HImode
155 1.3 mrg V8QImode, /* config/arm/arm-modes.def:66 */
156 1.1 mrg #define HAVE_V8QImode
157 1.3 mrg V4HImode, /* config/arm/arm-modes.def:66 */
158 1.1 mrg #define HAVE_V4HImode
159 1.3 mrg V2SImode, /* config/arm/arm-modes.def:66 */
160 1.1 mrg #define HAVE_V2SImode
161 1.3 mrg V16QImode, /* config/arm/arm-modes.def:67 */
162 1.1 mrg #define HAVE_V16QImode
163 1.3 mrg V8HImode, /* config/arm/arm-modes.def:67 */
164 1.1 mrg #define HAVE_V8HImode
165 1.3 mrg V4SImode, /* config/arm/arm-modes.def:67 */
166 1.1 mrg #define HAVE_V4SImode
167 1.3 mrg V2DImode, /* config/arm/arm-modes.def:67 */
168 1.1 mrg #define HAVE_V2DImode
169 1.3 mrg V4QQmode, /* config/arm/arm-modes.def:72 */
170 1.1 mrg #define HAVE_V4QQmode
171 1.3 mrg V2HQmode, /* config/arm/arm-modes.def:72 */
172 1.1 mrg #define HAVE_V2HQmode
173 1.3 mrg V4UQQmode, /* config/arm/arm-modes.def:73 */
174 1.1 mrg #define HAVE_V4UQQmode
175 1.3 mrg V2UHQmode, /* config/arm/arm-modes.def:73 */
176 1.1 mrg #define HAVE_V2UHQmode
177 1.3 mrg V2HAmode, /* config/arm/arm-modes.def:74 */
178 1.1 mrg #define HAVE_V2HAmode
179 1.3 mrg V2UHAmode, /* config/arm/arm-modes.def:75 */
180 1.1 mrg #define HAVE_V2UHAmode
181 1.3 mrg V4HFmode, /* config/arm/arm-modes.def:68 */
182 1.1 mrg #define HAVE_V4HFmode
183 1.3 mrg V2SFmode, /* config/arm/arm-modes.def:68 */
184 1.1 mrg #define HAVE_V2SFmode
185 1.3 mrg V8HFmode, /* config/arm/arm-modes.def:69 */
186 1.1 mrg #define HAVE_V8HFmode
187 1.3 mrg V4SFmode, /* config/arm/arm-modes.def:69 */
188 1.1 mrg #define HAVE_V4SFmode
189 1.3 mrg V2DFmode, /* config/arm/arm-modes.def:69 */
190 1.1 mrg #define HAVE_V2DFmode
191 1.1 mrg MAX_MACHINE_MODE,
192 1.1 mrg
193 1.1 mrg MIN_MODE_RANDOM = VOIDmode,
194 1.1 mrg MAX_MODE_RANDOM = BLKmode,
195 1.1 mrg
196 1.1 mrg MIN_MODE_CC = CCmode,
197 1.3 mrg MAX_MODE_CC = CC_Vmode,
198 1.1 mrg
199 1.1 mrg MIN_MODE_INT = QImode,
200 1.1 mrg MAX_MODE_INT = XImode,
201 1.1 mrg
202 1.1 mrg MIN_MODE_PARTIAL_INT = VOIDmode,
203 1.1 mrg MAX_MODE_PARTIAL_INT = VOIDmode,
204 1.1 mrg
205 1.1 mrg MIN_MODE_POINTER_BOUNDS = VOIDmode,
206 1.1 mrg MAX_MODE_POINTER_BOUNDS = VOIDmode,
207 1.1 mrg
208 1.1 mrg MIN_MODE_FRACT = QQmode,
209 1.1 mrg MAX_MODE_FRACT = TQmode,
210 1.1 mrg
211 1.1 mrg MIN_MODE_UFRACT = UQQmode,
212 1.1 mrg MAX_MODE_UFRACT = UTQmode,
213 1.1 mrg
214 1.1 mrg MIN_MODE_ACCUM = HAmode,
215 1.1 mrg MAX_MODE_ACCUM = TAmode,
216 1.1 mrg
217 1.1 mrg MIN_MODE_UACCUM = UHAmode,
218 1.1 mrg MAX_MODE_UACCUM = UTAmode,
219 1.1 mrg
220 1.1 mrg MIN_MODE_FLOAT = HFmode,
221 1.1 mrg MAX_MODE_FLOAT = DFmode,
222 1.1 mrg
223 1.1 mrg MIN_MODE_DECIMAL_FLOAT = SDmode,
224 1.1 mrg MAX_MODE_DECIMAL_FLOAT = TDmode,
225 1.1 mrg
226 1.1 mrg MIN_MODE_COMPLEX_INT = CQImode,
227 1.1 mrg MAX_MODE_COMPLEX_INT = CXImode,
228 1.1 mrg
229 1.1 mrg MIN_MODE_COMPLEX_FLOAT = HCmode,
230 1.1 mrg MAX_MODE_COMPLEX_FLOAT = DCmode,
231 1.1 mrg
232 1.1 mrg MIN_MODE_VECTOR_INT = V4QImode,
233 1.1 mrg MAX_MODE_VECTOR_INT = V2DImode,
234 1.1 mrg
235 1.1 mrg MIN_MODE_VECTOR_FRACT = V4QQmode,
236 1.1 mrg MAX_MODE_VECTOR_FRACT = V2HQmode,
237 1.1 mrg
238 1.1 mrg MIN_MODE_VECTOR_UFRACT = V4UQQmode,
239 1.1 mrg MAX_MODE_VECTOR_UFRACT = V2UHQmode,
240 1.1 mrg
241 1.1 mrg MIN_MODE_VECTOR_ACCUM = V2HAmode,
242 1.1 mrg MAX_MODE_VECTOR_ACCUM = V2HAmode,
243 1.1 mrg
244 1.1 mrg MIN_MODE_VECTOR_UACCUM = V2UHAmode,
245 1.1 mrg MAX_MODE_VECTOR_UACCUM = V2UHAmode,
246 1.1 mrg
247 1.1 mrg MIN_MODE_VECTOR_FLOAT = V4HFmode,
248 1.1 mrg MAX_MODE_VECTOR_FLOAT = V2DFmode,
249 1.1 mrg
250 1.1 mrg NUM_MACHINE_MODES = MAX_MACHINE_MODE
251 1.1 mrg };
252 1.1 mrg
253 1.1 mrg #define CONST_MODE_SIZE const
254 1.3 mrg #define CONST_MODE_UNIT_SIZE const
255 1.1 mrg #define CONST_MODE_BASE_ALIGN const
256 1.1 mrg #define CONST_MODE_IBIT const
257 1.1 mrg #define CONST_MODE_FBIT const
258 1.1 mrg
259 1.1 mrg #define BITS_PER_UNIT (8)
260 1.1 mrg #define MAX_BITSIZE_MODE_ANY_INT (64*BITS_PER_UNIT)
261 1.1 mrg #define MAX_BITSIZE_MODE_ANY_MODE (128*BITS_PER_UNIT)
262 1.1 mrg #define NUM_INT_N_ENTS 1
263 1.1 mrg
264 1.1 mrg #if !defined (USED_FOR_TARGET) && GCC_VERSION >= 4001
265 1.1 mrg
266 1.1 mrg #ifdef __cplusplus
267 1.1 mrg inline __attribute__((__always_inline__))
268 1.1 mrg #else
269 1.1 mrg extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
270 1.1 mrg #endif
271 1.3 mrg unsigned short
272 1.1 mrg mode_size_inline (machine_mode mode)
273 1.1 mrg {
274 1.3 mrg extern const unsigned short mode_size[NUM_MACHINE_MODES];
275 1.3 mrg gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES);
276 1.1 mrg switch (mode)
277 1.1 mrg {
278 1.1 mrg case VOIDmode: return 0;
279 1.1 mrg case BLKmode: return 0;
280 1.1 mrg case CCmode: return 4;
281 1.1 mrg case CC_NOOVmode: return 4;
282 1.1 mrg case CC_Zmode: return 4;
283 1.1 mrg case CC_CZmode: return 4;
284 1.1 mrg case CC_NCVmode: return 4;
285 1.1 mrg case CC_SWPmode: return 4;
286 1.1 mrg case CCFPmode: return 4;
287 1.1 mrg case CCFPEmode: return 4;
288 1.1 mrg case CC_DNEmode: return 4;
289 1.1 mrg case CC_DEQmode: return 4;
290 1.1 mrg case CC_DLEmode: return 4;
291 1.1 mrg case CC_DLTmode: return 4;
292 1.1 mrg case CC_DGEmode: return 4;
293 1.1 mrg case CC_DGTmode: return 4;
294 1.1 mrg case CC_DLEUmode: return 4;
295 1.1 mrg case CC_DLTUmode: return 4;
296 1.1 mrg case CC_DGEUmode: return 4;
297 1.1 mrg case CC_DGTUmode: return 4;
298 1.1 mrg case CC_Cmode: return 4;
299 1.1 mrg case CC_Nmode: return 4;
300 1.3 mrg case CC_Vmode: return 4;
301 1.1 mrg case BImode: return 1;
302 1.1 mrg case QImode: return 1;
303 1.1 mrg case HImode: return 2;
304 1.1 mrg case SImode: return 4;
305 1.1 mrg case DImode: return 8;
306 1.1 mrg case TImode: return 16;
307 1.1 mrg case EImode: return 24;
308 1.1 mrg case OImode: return 32;
309 1.1 mrg case CImode: return 48;
310 1.1 mrg case XImode: return 64;
311 1.1 mrg case QQmode: return 1;
312 1.1 mrg case HQmode: return 2;
313 1.1 mrg case SQmode: return 4;
314 1.1 mrg case DQmode: return 8;
315 1.1 mrg case TQmode: return 16;
316 1.1 mrg case UQQmode: return 1;
317 1.1 mrg case UHQmode: return 2;
318 1.1 mrg case USQmode: return 4;
319 1.1 mrg case UDQmode: return 8;
320 1.1 mrg case UTQmode: return 16;
321 1.1 mrg case HAmode: return 2;
322 1.1 mrg case SAmode: return 4;
323 1.1 mrg case DAmode: return 8;
324 1.1 mrg case TAmode: return 16;
325 1.1 mrg case UHAmode: return 2;
326 1.1 mrg case USAmode: return 4;
327 1.1 mrg case UDAmode: return 8;
328 1.1 mrg case UTAmode: return 16;
329 1.1 mrg case HFmode: return 2;
330 1.1 mrg case SFmode: return 4;
331 1.1 mrg case DFmode: return 8;
332 1.1 mrg case SDmode: return 4;
333 1.1 mrg case DDmode: return 8;
334 1.1 mrg case TDmode: return 16;
335 1.1 mrg case CQImode: return 2;
336 1.1 mrg case CHImode: return 4;
337 1.1 mrg case CSImode: return 8;
338 1.1 mrg case CDImode: return 16;
339 1.1 mrg case CTImode: return 32;
340 1.1 mrg case CEImode: return 48;
341 1.1 mrg case COImode: return 64;
342 1.1 mrg case CCImode: return 96;
343 1.1 mrg case CXImode: return 128;
344 1.1 mrg case HCmode: return 4;
345 1.1 mrg case SCmode: return 8;
346 1.1 mrg case DCmode: return 16;
347 1.1 mrg case V4QImode: return 4;
348 1.1 mrg case V2HImode: return 4;
349 1.1 mrg case V8QImode: return 8;
350 1.1 mrg case V4HImode: return 8;
351 1.1 mrg case V2SImode: return 8;
352 1.1 mrg case V16QImode: return 16;
353 1.1 mrg case V8HImode: return 16;
354 1.1 mrg case V4SImode: return 16;
355 1.1 mrg case V2DImode: return 16;
356 1.1 mrg case V4QQmode: return 4;
357 1.1 mrg case V2HQmode: return 4;
358 1.1 mrg case V4UQQmode: return 4;
359 1.1 mrg case V2UHQmode: return 4;
360 1.1 mrg case V2HAmode: return 4;
361 1.1 mrg case V2UHAmode: return 4;
362 1.1 mrg case V4HFmode: return 8;
363 1.1 mrg case V2SFmode: return 8;
364 1.1 mrg case V8HFmode: return 16;
365 1.1 mrg case V4SFmode: return 16;
366 1.1 mrg case V2DFmode: return 16;
367 1.1 mrg default: return mode_size[mode];
368 1.1 mrg }
369 1.1 mrg }
370 1.1 mrg
371 1.1 mrg #ifdef __cplusplus
372 1.1 mrg inline __attribute__((__always_inline__))
373 1.1 mrg #else
374 1.1 mrg extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
375 1.1 mrg #endif
376 1.1 mrg unsigned char
377 1.1 mrg mode_nunits_inline (machine_mode mode)
378 1.1 mrg {
379 1.1 mrg extern const unsigned char mode_nunits[NUM_MACHINE_MODES];
380 1.3 mrg gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES);
381 1.1 mrg switch (mode)
382 1.1 mrg {
383 1.1 mrg case VOIDmode: return 0;
384 1.1 mrg case BLKmode: return 0;
385 1.1 mrg case CCmode: return 1;
386 1.1 mrg case CC_NOOVmode: return 1;
387 1.1 mrg case CC_Zmode: return 1;
388 1.1 mrg case CC_CZmode: return 1;
389 1.1 mrg case CC_NCVmode: return 1;
390 1.1 mrg case CC_SWPmode: return 1;
391 1.1 mrg case CCFPmode: return 1;
392 1.1 mrg case CCFPEmode: return 1;
393 1.1 mrg case CC_DNEmode: return 1;
394 1.1 mrg case CC_DEQmode: return 1;
395 1.1 mrg case CC_DLEmode: return 1;
396 1.1 mrg case CC_DLTmode: return 1;
397 1.1 mrg case CC_DGEmode: return 1;
398 1.1 mrg case CC_DGTmode: return 1;
399 1.1 mrg case CC_DLEUmode: return 1;
400 1.1 mrg case CC_DLTUmode: return 1;
401 1.1 mrg case CC_DGEUmode: return 1;
402 1.1 mrg case CC_DGTUmode: return 1;
403 1.1 mrg case CC_Cmode: return 1;
404 1.1 mrg case CC_Nmode: return 1;
405 1.3 mrg case CC_Vmode: return 1;
406 1.1 mrg case BImode: return 1;
407 1.1 mrg case QImode: return 1;
408 1.1 mrg case HImode: return 1;
409 1.1 mrg case SImode: return 1;
410 1.1 mrg case DImode: return 1;
411 1.1 mrg case TImode: return 1;
412 1.1 mrg case EImode: return 1;
413 1.1 mrg case OImode: return 1;
414 1.1 mrg case CImode: return 1;
415 1.1 mrg case XImode: return 1;
416 1.1 mrg case QQmode: return 1;
417 1.1 mrg case HQmode: return 1;
418 1.1 mrg case SQmode: return 1;
419 1.1 mrg case DQmode: return 1;
420 1.1 mrg case TQmode: return 1;
421 1.1 mrg case UQQmode: return 1;
422 1.1 mrg case UHQmode: return 1;
423 1.1 mrg case USQmode: return 1;
424 1.1 mrg case UDQmode: return 1;
425 1.1 mrg case UTQmode: return 1;
426 1.1 mrg case HAmode: return 1;
427 1.1 mrg case SAmode: return 1;
428 1.1 mrg case DAmode: return 1;
429 1.1 mrg case TAmode: return 1;
430 1.1 mrg case UHAmode: return 1;
431 1.1 mrg case USAmode: return 1;
432 1.1 mrg case UDAmode: return 1;
433 1.1 mrg case UTAmode: return 1;
434 1.1 mrg case HFmode: return 1;
435 1.1 mrg case SFmode: return 1;
436 1.1 mrg case DFmode: return 1;
437 1.1 mrg case SDmode: return 1;
438 1.1 mrg case DDmode: return 1;
439 1.1 mrg case TDmode: return 1;
440 1.1 mrg case CQImode: return 2;
441 1.1 mrg case CHImode: return 2;
442 1.1 mrg case CSImode: return 2;
443 1.1 mrg case CDImode: return 2;
444 1.1 mrg case CTImode: return 2;
445 1.1 mrg case CEImode: return 2;
446 1.1 mrg case COImode: return 2;
447 1.1 mrg case CCImode: return 2;
448 1.1 mrg case CXImode: return 2;
449 1.1 mrg case HCmode: return 2;
450 1.1 mrg case SCmode: return 2;
451 1.1 mrg case DCmode: return 2;
452 1.1 mrg case V4QImode: return 4;
453 1.1 mrg case V2HImode: return 2;
454 1.1 mrg case V8QImode: return 8;
455 1.1 mrg case V4HImode: return 4;
456 1.1 mrg case V2SImode: return 2;
457 1.1 mrg case V16QImode: return 16;
458 1.1 mrg case V8HImode: return 8;
459 1.1 mrg case V4SImode: return 4;
460 1.1 mrg case V2DImode: return 2;
461 1.1 mrg case V4QQmode: return 4;
462 1.1 mrg case V2HQmode: return 2;
463 1.1 mrg case V4UQQmode: return 4;
464 1.1 mrg case V2UHQmode: return 2;
465 1.1 mrg case V2HAmode: return 2;
466 1.1 mrg case V2UHAmode: return 2;
467 1.1 mrg case V4HFmode: return 4;
468 1.1 mrg case V2SFmode: return 2;
469 1.1 mrg case V8HFmode: return 8;
470 1.1 mrg case V4SFmode: return 4;
471 1.1 mrg case V2DFmode: return 2;
472 1.1 mrg default: return mode_nunits[mode];
473 1.1 mrg }
474 1.1 mrg }
475 1.1 mrg
476 1.1 mrg #ifdef __cplusplus
477 1.1 mrg inline __attribute__((__always_inline__))
478 1.1 mrg #else
479 1.1 mrg extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
480 1.1 mrg #endif
481 1.1 mrg unsigned char
482 1.1 mrg mode_inner_inline (machine_mode mode)
483 1.1 mrg {
484 1.1 mrg extern const unsigned char mode_inner[NUM_MACHINE_MODES];
485 1.3 mrg gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES);
486 1.1 mrg switch (mode)
487 1.1 mrg {
488 1.1 mrg case VOIDmode: return VOIDmode;
489 1.3 mrg case BLKmode: return BLKmode;
490 1.3 mrg case CCmode: return CCmode;
491 1.3 mrg case CC_NOOVmode: return CC_NOOVmode;
492 1.3 mrg case CC_Zmode: return CC_Zmode;
493 1.3 mrg case CC_CZmode: return CC_CZmode;
494 1.3 mrg case CC_NCVmode: return CC_NCVmode;
495 1.3 mrg case CC_SWPmode: return CC_SWPmode;
496 1.3 mrg case CCFPmode: return CCFPmode;
497 1.3 mrg case CCFPEmode: return CCFPEmode;
498 1.3 mrg case CC_DNEmode: return CC_DNEmode;
499 1.3 mrg case CC_DEQmode: return CC_DEQmode;
500 1.3 mrg case CC_DLEmode: return CC_DLEmode;
501 1.3 mrg case CC_DLTmode: return CC_DLTmode;
502 1.3 mrg case CC_DGEmode: return CC_DGEmode;
503 1.3 mrg case CC_DGTmode: return CC_DGTmode;
504 1.3 mrg case CC_DLEUmode: return CC_DLEUmode;
505 1.3 mrg case CC_DLTUmode: return CC_DLTUmode;
506 1.3 mrg case CC_DGEUmode: return CC_DGEUmode;
507 1.3 mrg case CC_DGTUmode: return CC_DGTUmode;
508 1.3 mrg case CC_Cmode: return CC_Cmode;
509 1.3 mrg case CC_Nmode: return CC_Nmode;
510 1.3 mrg case CC_Vmode: return CC_Vmode;
511 1.3 mrg case BImode: return BImode;
512 1.3 mrg case QImode: return QImode;
513 1.3 mrg case HImode: return HImode;
514 1.3 mrg case SImode: return SImode;
515 1.3 mrg case DImode: return DImode;
516 1.3 mrg case TImode: return TImode;
517 1.3 mrg case EImode: return EImode;
518 1.3 mrg case OImode: return OImode;
519 1.3 mrg case CImode: return CImode;
520 1.3 mrg case XImode: return XImode;
521 1.3 mrg case QQmode: return QQmode;
522 1.3 mrg case HQmode: return HQmode;
523 1.3 mrg case SQmode: return SQmode;
524 1.3 mrg case DQmode: return DQmode;
525 1.3 mrg case TQmode: return TQmode;
526 1.3 mrg case UQQmode: return UQQmode;
527 1.3 mrg case UHQmode: return UHQmode;
528 1.3 mrg case USQmode: return USQmode;
529 1.3 mrg case UDQmode: return UDQmode;
530 1.3 mrg case UTQmode: return UTQmode;
531 1.3 mrg case HAmode: return HAmode;
532 1.3 mrg case SAmode: return SAmode;
533 1.3 mrg case DAmode: return DAmode;
534 1.3 mrg case TAmode: return TAmode;
535 1.3 mrg case UHAmode: return UHAmode;
536 1.3 mrg case USAmode: return USAmode;
537 1.3 mrg case UDAmode: return UDAmode;
538 1.3 mrg case UTAmode: return UTAmode;
539 1.3 mrg case HFmode: return HFmode;
540 1.3 mrg case SFmode: return SFmode;
541 1.3 mrg case DFmode: return DFmode;
542 1.3 mrg case SDmode: return SDmode;
543 1.3 mrg case DDmode: return DDmode;
544 1.3 mrg case TDmode: return TDmode;
545 1.1 mrg case CQImode: return QImode;
546 1.1 mrg case CHImode: return HImode;
547 1.1 mrg case CSImode: return SImode;
548 1.1 mrg case CDImode: return DImode;
549 1.1 mrg case CTImode: return TImode;
550 1.1 mrg case CEImode: return EImode;
551 1.1 mrg case COImode: return OImode;
552 1.1 mrg case CCImode: return CImode;
553 1.1 mrg case CXImode: return XImode;
554 1.1 mrg case HCmode: return HFmode;
555 1.1 mrg case SCmode: return SFmode;
556 1.1 mrg case DCmode: return DFmode;
557 1.1 mrg case V4QImode: return QImode;
558 1.1 mrg case V2HImode: return HImode;
559 1.1 mrg case V8QImode: return QImode;
560 1.1 mrg case V4HImode: return HImode;
561 1.1 mrg case V2SImode: return SImode;
562 1.1 mrg case V16QImode: return QImode;
563 1.1 mrg case V8HImode: return HImode;
564 1.1 mrg case V4SImode: return SImode;
565 1.1 mrg case V2DImode: return DImode;
566 1.1 mrg case V4QQmode: return QQmode;
567 1.1 mrg case V2HQmode: return HQmode;
568 1.1 mrg case V4UQQmode: return UQQmode;
569 1.1 mrg case V2UHQmode: return UHQmode;
570 1.1 mrg case V2HAmode: return HAmode;
571 1.1 mrg case V2UHAmode: return UHAmode;
572 1.1 mrg case V4HFmode: return HFmode;
573 1.1 mrg case V2SFmode: return SFmode;
574 1.1 mrg case V8HFmode: return HFmode;
575 1.1 mrg case V4SFmode: return SFmode;
576 1.1 mrg case V2DFmode: return DFmode;
577 1.1 mrg default: return mode_inner[mode];
578 1.1 mrg }
579 1.1 mrg }
580 1.1 mrg
581 1.3 mrg #ifdef __cplusplus
582 1.3 mrg inline __attribute__((__always_inline__))
583 1.3 mrg #else
584 1.3 mrg extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
585 1.3 mrg #endif
586 1.3 mrg unsigned char
587 1.3 mrg mode_unit_size_inline (machine_mode mode)
588 1.3 mrg {
589 1.3 mrg extern CONST_MODE_UNIT_SIZE unsigned char mode_unit_size[NUM_MACHINE_MODES];
590 1.3 mrg gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES);
591 1.3 mrg switch (mode)
592 1.3 mrg {
593 1.3 mrg case VOIDmode: return 0;
594 1.3 mrg case BLKmode: return 0;
595 1.3 mrg case CCmode: return 4;
596 1.3 mrg case CC_NOOVmode: return 4;
597 1.3 mrg case CC_Zmode: return 4;
598 1.3 mrg case CC_CZmode: return 4;
599 1.3 mrg case CC_NCVmode: return 4;
600 1.3 mrg case CC_SWPmode: return 4;
601 1.3 mrg case CCFPmode: return 4;
602 1.3 mrg case CCFPEmode: return 4;
603 1.3 mrg case CC_DNEmode: return 4;
604 1.3 mrg case CC_DEQmode: return 4;
605 1.3 mrg case CC_DLEmode: return 4;
606 1.3 mrg case CC_DLTmode: return 4;
607 1.3 mrg case CC_DGEmode: return 4;
608 1.3 mrg case CC_DGTmode: return 4;
609 1.3 mrg case CC_DLEUmode: return 4;
610 1.3 mrg case CC_DLTUmode: return 4;
611 1.3 mrg case CC_DGEUmode: return 4;
612 1.3 mrg case CC_DGTUmode: return 4;
613 1.3 mrg case CC_Cmode: return 4;
614 1.3 mrg case CC_Nmode: return 4;
615 1.3 mrg case CC_Vmode: return 4;
616 1.3 mrg case BImode: return 1;
617 1.3 mrg case QImode: return 1;
618 1.3 mrg case HImode: return 2;
619 1.3 mrg case SImode: return 4;
620 1.3 mrg case DImode: return 8;
621 1.3 mrg case TImode: return 16;
622 1.3 mrg case EImode: return 24;
623 1.3 mrg case OImode: return 32;
624 1.3 mrg case CImode: return 48;
625 1.3 mrg case XImode: return 64;
626 1.3 mrg case QQmode: return 1;
627 1.3 mrg case HQmode: return 2;
628 1.3 mrg case SQmode: return 4;
629 1.3 mrg case DQmode: return 8;
630 1.3 mrg case TQmode: return 16;
631 1.3 mrg case UQQmode: return 1;
632 1.3 mrg case UHQmode: return 2;
633 1.3 mrg case USQmode: return 4;
634 1.3 mrg case UDQmode: return 8;
635 1.3 mrg case UTQmode: return 16;
636 1.3 mrg case HAmode: return 2;
637 1.3 mrg case SAmode: return 4;
638 1.3 mrg case DAmode: return 8;
639 1.3 mrg case TAmode: return 16;
640 1.3 mrg case UHAmode: return 2;
641 1.3 mrg case USAmode: return 4;
642 1.3 mrg case UDAmode: return 8;
643 1.3 mrg case UTAmode: return 16;
644 1.3 mrg case HFmode: return 2;
645 1.3 mrg case SFmode: return 4;
646 1.3 mrg case DFmode: return 8;
647 1.3 mrg case SDmode: return 4;
648 1.3 mrg case DDmode: return 8;
649 1.3 mrg case TDmode: return 16;
650 1.3 mrg case CQImode: return 1;
651 1.3 mrg case CHImode: return 2;
652 1.3 mrg case CSImode: return 4;
653 1.3 mrg case CDImode: return 8;
654 1.3 mrg case CTImode: return 16;
655 1.3 mrg case CEImode: return 24;
656 1.3 mrg case COImode: return 32;
657 1.3 mrg case CCImode: return 48;
658 1.3 mrg case CXImode: return 64;
659 1.3 mrg case HCmode: return 2;
660 1.3 mrg case SCmode: return 4;
661 1.3 mrg case DCmode: return 8;
662 1.3 mrg case V4QImode: return 1;
663 1.3 mrg case V2HImode: return 2;
664 1.3 mrg case V8QImode: return 1;
665 1.3 mrg case V4HImode: return 2;
666 1.3 mrg case V2SImode: return 4;
667 1.3 mrg case V16QImode: return 1;
668 1.3 mrg case V8HImode: return 2;
669 1.3 mrg case V4SImode: return 4;
670 1.3 mrg case V2DImode: return 8;
671 1.3 mrg case V4QQmode: return 1;
672 1.3 mrg case V2HQmode: return 2;
673 1.3 mrg case V4UQQmode: return 1;
674 1.3 mrg case V2UHQmode: return 2;
675 1.3 mrg case V2HAmode: return 2;
676 1.3 mrg case V2UHAmode: return 2;
677 1.3 mrg case V4HFmode: return 2;
678 1.3 mrg case V2SFmode: return 4;
679 1.3 mrg case V8HFmode: return 2;
680 1.3 mrg case V4SFmode: return 4;
681 1.3 mrg case V2DFmode: return 8;
682 1.3 mrg default: return mode_unit_size[mode];
683 1.3 mrg }
684 1.3 mrg }
685 1.3 mrg
686 1.3 mrg #ifdef __cplusplus
687 1.3 mrg inline __attribute__((__always_inline__))
688 1.3 mrg #else
689 1.3 mrg extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
690 1.3 mrg #endif
691 1.3 mrg unsigned short
692 1.3 mrg mode_unit_precision_inline (machine_mode mode)
693 1.3 mrg {
694 1.3 mrg extern const unsigned short mode_unit_precision[NUM_MACHINE_MODES];
695 1.3 mrg gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES);
696 1.3 mrg switch (mode)
697 1.3 mrg {
698 1.3 mrg case VOIDmode: return 0;
699 1.3 mrg case BLKmode: return 0;
700 1.3 mrg case CCmode: return 4*BITS_PER_UNIT;
701 1.3 mrg case CC_NOOVmode: return 4*BITS_PER_UNIT;
702 1.3 mrg case CC_Zmode: return 4*BITS_PER_UNIT;
703 1.3 mrg case CC_CZmode: return 4*BITS_PER_UNIT;
704 1.3 mrg case CC_NCVmode: return 4*BITS_PER_UNIT;
705 1.3 mrg case CC_SWPmode: return 4*BITS_PER_UNIT;
706 1.3 mrg case CCFPmode: return 4*BITS_PER_UNIT;
707 1.3 mrg case CCFPEmode: return 4*BITS_PER_UNIT;
708 1.3 mrg case CC_DNEmode: return 4*BITS_PER_UNIT;
709 1.3 mrg case CC_DEQmode: return 4*BITS_PER_UNIT;
710 1.3 mrg case CC_DLEmode: return 4*BITS_PER_UNIT;
711 1.3 mrg case CC_DLTmode: return 4*BITS_PER_UNIT;
712 1.3 mrg case CC_DGEmode: return 4*BITS_PER_UNIT;
713 1.3 mrg case CC_DGTmode: return 4*BITS_PER_UNIT;
714 1.3 mrg case CC_DLEUmode: return 4*BITS_PER_UNIT;
715 1.3 mrg case CC_DLTUmode: return 4*BITS_PER_UNIT;
716 1.3 mrg case CC_DGEUmode: return 4*BITS_PER_UNIT;
717 1.3 mrg case CC_DGTUmode: return 4*BITS_PER_UNIT;
718 1.3 mrg case CC_Cmode: return 4*BITS_PER_UNIT;
719 1.3 mrg case CC_Nmode: return 4*BITS_PER_UNIT;
720 1.3 mrg case CC_Vmode: return 4*BITS_PER_UNIT;
721 1.3 mrg case BImode: return 1;
722 1.3 mrg case QImode: return 1*BITS_PER_UNIT;
723 1.3 mrg case HImode: return 2*BITS_PER_UNIT;
724 1.3 mrg case SImode: return 4*BITS_PER_UNIT;
725 1.3 mrg case DImode: return 8*BITS_PER_UNIT;
726 1.3 mrg case TImode: return 16*BITS_PER_UNIT;
727 1.3 mrg case EImode: return 24*BITS_PER_UNIT;
728 1.3 mrg case OImode: return 32*BITS_PER_UNIT;
729 1.3 mrg case CImode: return 48*BITS_PER_UNIT;
730 1.3 mrg case XImode: return 64*BITS_PER_UNIT;
731 1.3 mrg case QQmode: return 1*BITS_PER_UNIT;
732 1.3 mrg case HQmode: return 2*BITS_PER_UNIT;
733 1.3 mrg case SQmode: return 4*BITS_PER_UNIT;
734 1.3 mrg case DQmode: return 8*BITS_PER_UNIT;
735 1.3 mrg case TQmode: return 16*BITS_PER_UNIT;
736 1.3 mrg case UQQmode: return 1*BITS_PER_UNIT;
737 1.3 mrg case UHQmode: return 2*BITS_PER_UNIT;
738 1.3 mrg case USQmode: return 4*BITS_PER_UNIT;
739 1.3 mrg case UDQmode: return 8*BITS_PER_UNIT;
740 1.3 mrg case UTQmode: return 16*BITS_PER_UNIT;
741 1.3 mrg case HAmode: return 2*BITS_PER_UNIT;
742 1.3 mrg case SAmode: return 4*BITS_PER_UNIT;
743 1.3 mrg case DAmode: return 8*BITS_PER_UNIT;
744 1.3 mrg case TAmode: return 16*BITS_PER_UNIT;
745 1.3 mrg case UHAmode: return 2*BITS_PER_UNIT;
746 1.3 mrg case USAmode: return 4*BITS_PER_UNIT;
747 1.3 mrg case UDAmode: return 8*BITS_PER_UNIT;
748 1.3 mrg case UTAmode: return 16*BITS_PER_UNIT;
749 1.3 mrg case HFmode: return 2*BITS_PER_UNIT;
750 1.3 mrg case SFmode: return 4*BITS_PER_UNIT;
751 1.3 mrg case DFmode: return 8*BITS_PER_UNIT;
752 1.3 mrg case SDmode: return 4*BITS_PER_UNIT;
753 1.3 mrg case DDmode: return 8*BITS_PER_UNIT;
754 1.3 mrg case TDmode: return 16*BITS_PER_UNIT;
755 1.3 mrg case CQImode: return 1*BITS_PER_UNIT;
756 1.3 mrg case CHImode: return 2*BITS_PER_UNIT;
757 1.3 mrg case CSImode: return 4*BITS_PER_UNIT;
758 1.3 mrg case CDImode: return 8*BITS_PER_UNIT;
759 1.3 mrg case CTImode: return 16*BITS_PER_UNIT;
760 1.3 mrg case CEImode: return 24*BITS_PER_UNIT;
761 1.3 mrg case COImode: return 32*BITS_PER_UNIT;
762 1.3 mrg case CCImode: return 48*BITS_PER_UNIT;
763 1.3 mrg case CXImode: return 64*BITS_PER_UNIT;
764 1.3 mrg case HCmode: return 2*BITS_PER_UNIT;
765 1.3 mrg case SCmode: return 4*BITS_PER_UNIT;
766 1.3 mrg case DCmode: return 8*BITS_PER_UNIT;
767 1.3 mrg case V4QImode: return 1*BITS_PER_UNIT;
768 1.3 mrg case V2HImode: return 2*BITS_PER_UNIT;
769 1.3 mrg case V8QImode: return 1*BITS_PER_UNIT;
770 1.3 mrg case V4HImode: return 2*BITS_PER_UNIT;
771 1.3 mrg case V2SImode: return 4*BITS_PER_UNIT;
772 1.3 mrg case V16QImode: return 1*BITS_PER_UNIT;
773 1.3 mrg case V8HImode: return 2*BITS_PER_UNIT;
774 1.3 mrg case V4SImode: return 4*BITS_PER_UNIT;
775 1.3 mrg case V2DImode: return 8*BITS_PER_UNIT;
776 1.3 mrg case V4QQmode: return 1*BITS_PER_UNIT;
777 1.3 mrg case V2HQmode: return 2*BITS_PER_UNIT;
778 1.3 mrg case V4UQQmode: return 1*BITS_PER_UNIT;
779 1.3 mrg case V2UHQmode: return 2*BITS_PER_UNIT;
780 1.3 mrg case V2HAmode: return 2*BITS_PER_UNIT;
781 1.3 mrg case V2UHAmode: return 2*BITS_PER_UNIT;
782 1.3 mrg case V4HFmode: return 2*BITS_PER_UNIT;
783 1.3 mrg case V2SFmode: return 4*BITS_PER_UNIT;
784 1.3 mrg case V8HFmode: return 2*BITS_PER_UNIT;
785 1.3 mrg case V4SFmode: return 4*BITS_PER_UNIT;
786 1.3 mrg case V2DFmode: return 8*BITS_PER_UNIT;
787 1.3 mrg default: return mode_unit_precision[mode];
788 1.3 mrg }
789 1.3 mrg }
790 1.3 mrg
791 1.1 mrg #endif /* GCC_VERSION >= 4001 */
792 1.1 mrg
793 1.1 mrg #endif /* insn-modes.h */
794