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