1 /* This file is automatically generated. DO NOT EDIT! */ 2 /* Generated from: NetBSD: mknative-gcc,v 1.96 2019/01/19 20:02:06 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/sparc/sparc-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 CCXmode, /* config/sparc/sparc-modes.def:48 */ 20 #define HAVE_CCXmode 21 CCNZmode, /* config/sparc/sparc-modes.def:49 */ 22 #define HAVE_CCNZmode 23 CCXNZmode, /* config/sparc/sparc-modes.def:50 */ 24 #define HAVE_CCXNZmode 25 CCCmode, /* config/sparc/sparc-modes.def:51 */ 26 #define HAVE_CCCmode 27 CCXCmode, /* config/sparc/sparc-modes.def:52 */ 28 #define HAVE_CCXCmode 29 CCVmode, /* config/sparc/sparc-modes.def:53 */ 30 #define HAVE_CCVmode 31 CCXVmode, /* config/sparc/sparc-modes.def:54 */ 32 #define HAVE_CCXVmode 33 CCFPmode, /* config/sparc/sparc-modes.def:55 */ 34 #define HAVE_CCFPmode 35 CCFPEmode, /* config/sparc/sparc-modes.def:56 */ 36 #define HAVE_CCFPEmode 37 BImode, /* machmode.def:179 */ 38 #define HAVE_BImode 39 QImode, /* machmode.def:187 */ 40 #define HAVE_QImode 41 HImode, /* machmode.def:188 */ 42 #define HAVE_HImode 43 SImode, /* machmode.def:189 */ 44 #define HAVE_SImode 45 DImode, /* machmode.def:190 */ 46 #define HAVE_DImode 47 TImode, /* machmode.def:191 */ 48 #define HAVE_TImode 49 QQmode, /* machmode.def:217 */ 50 #define HAVE_QQmode 51 HQmode, /* machmode.def:218 */ 52 #define HAVE_HQmode 53 SQmode, /* machmode.def:219 */ 54 #define HAVE_SQmode 55 DQmode, /* machmode.def:220 */ 56 #define HAVE_DQmode 57 TQmode, /* machmode.def:221 */ 58 #define HAVE_TQmode 59 UQQmode, /* machmode.def:223 */ 60 #define HAVE_UQQmode 61 UHQmode, /* machmode.def:224 */ 62 #define HAVE_UHQmode 63 USQmode, /* machmode.def:225 */ 64 #define HAVE_USQmode 65 UDQmode, /* machmode.def:226 */ 66 #define HAVE_UDQmode 67 UTQmode, /* machmode.def:227 */ 68 #define HAVE_UTQmode 69 HAmode, /* machmode.def:229 */ 70 #define HAVE_HAmode 71 SAmode, /* machmode.def:230 */ 72 #define HAVE_SAmode 73 DAmode, /* machmode.def:231 */ 74 #define HAVE_DAmode 75 TAmode, /* machmode.def:232 */ 76 #define HAVE_TAmode 77 UHAmode, /* machmode.def:234 */ 78 #define HAVE_UHAmode 79 USAmode, /* machmode.def:235 */ 80 #define HAVE_USAmode 81 UDAmode, /* machmode.def:236 */ 82 #define HAVE_UDAmode 83 UTAmode, /* machmode.def:237 */ 84 #define HAVE_UTAmode 85 SFmode, /* machmode.def:209 */ 86 #define HAVE_SFmode 87 DFmode, /* machmode.def:210 */ 88 #define HAVE_DFmode 89 TFmode, /* config/sparc/sparc-modes.def:24 */ 90 #define HAVE_TFmode 91 SDmode, /* machmode.def:250 */ 92 #define HAVE_SDmode 93 DDmode, /* machmode.def:251 */ 94 #define HAVE_DDmode 95 TDmode, /* machmode.def:252 */ 96 #define HAVE_TDmode 97 CQImode, /* machmode.def:245 */ 98 #define HAVE_CQImode 99 CHImode, /* machmode.def:245 */ 100 #define HAVE_CHImode 101 CSImode, /* machmode.def:245 */ 102 #define HAVE_CSImode 103 CDImode, /* machmode.def:245 */ 104 #define HAVE_CDImode 105 CTImode, /* machmode.def:245 */ 106 #define HAVE_CTImode 107 SCmode, /* machmode.def:247 */ 108 #define HAVE_SCmode 109 DCmode, /* machmode.def:247 */ 110 #define HAVE_DCmode 111 TCmode, /* machmode.def:247 */ 112 #define HAVE_TCmode 113 V4QImode, /* config/sparc/sparc-modes.def:61 */ 114 #define HAVE_V4QImode 115 V2HImode, /* config/sparc/sparc-modes.def:61 */ 116 #define HAVE_V2HImode 117 V1SImode, /* config/sparc/sparc-modes.def:63 */ 118 #define HAVE_V1SImode 119 V8QImode, /* config/sparc/sparc-modes.def:60 */ 120 #define HAVE_V8QImode 121 V4HImode, /* config/sparc/sparc-modes.def:60 */ 122 #define HAVE_V4HImode 123 V2SImode, /* config/sparc/sparc-modes.def:60 */ 124 #define HAVE_V2SImode 125 V1DImode, /* config/sparc/sparc-modes.def:62 */ 126 #define HAVE_V1DImode 127 V16QImode, /* config/sparc/sparc-modes.def:59 */ 128 #define HAVE_V16QImode 129 V8HImode, /* config/sparc/sparc-modes.def:59 */ 130 #define HAVE_V8HImode 131 V4SImode, /* config/sparc/sparc-modes.def:59 */ 132 #define HAVE_V4SImode 133 V2DImode, /* config/sparc/sparc-modes.def:59 */ 134 #define HAVE_V2DImode 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 = CCFPEmode, 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 = V2DImode, 178 179 MIN_MODE_VECTOR_FRACT = VOIDmode, 180 MAX_MODE_VECTOR_FRACT = VOIDmode, 181 182 MIN_MODE_VECTOR_UFRACT = VOIDmode, 183 MAX_MODE_VECTOR_UFRACT = VOIDmode, 184 185 MIN_MODE_VECTOR_ACCUM = VOIDmode, 186 MAX_MODE_VECTOR_ACCUM = VOIDmode, 187 188 MIN_MODE_VECTOR_UACCUM = VOIDmode, 189 MAX_MODE_VECTOR_UACCUM = VOIDmode, 190 191 MIN_MODE_VECTOR_FLOAT = VOIDmode, 192 MAX_MODE_VECTOR_FLOAT = VOIDmode, 193 194 NUM_MACHINE_MODES = MAX_MACHINE_MODE 195 }; 196 197 #define CONST_MODE_SIZE const 198 #define CONST_MODE_UNIT_SIZE const 199 #define CONST_MODE_BASE_ALIGN const 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 211 inline __attribute__((__always_inline__)) 212 #else 213 extern __inline__ __attribute__((__always_inline__, __gnu_inline__)) 214 #endif 215 unsigned short 216 mode_size_inline (machine_mode mode) 217 { 218 extern const unsigned short mode_size[NUM_MACHINE_MODES]; 219 gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES); 220 switch (mode) 221 { 222 case VOIDmode: return 0; 223 case BLKmode: return 0; 224 case CCmode: return 4; 225 case CCXmode: return 4; 226 case CCNZmode: return 4; 227 case CCXNZmode: return 4; 228 case CCCmode: return 4; 229 case CCXCmode: return 4; 230 case CCVmode: return 4; 231 case CCXVmode: return 4; 232 case CCFPmode: return 4; 233 case CCFPEmode: return 4; 234 case BImode: return 1; 235 case QImode: return 1; 236 case HImode: return 2; 237 case SImode: return 4; 238 case DImode: return 8; 239 case TImode: return 16; 240 case QQmode: return 1; 241 case HQmode: return 2; 242 case SQmode: return 4; 243 case DQmode: return 8; 244 case TQmode: return 16; 245 case UQQmode: return 1; 246 case UHQmode: return 2; 247 case USQmode: return 4; 248 case UDQmode: return 8; 249 case UTQmode: return 16; 250 case HAmode: return 2; 251 case SAmode: return 4; 252 case DAmode: return 8; 253 case TAmode: return 16; 254 case UHAmode: return 2; 255 case USAmode: return 4; 256 case UDAmode: return 8; 257 case UTAmode: return 16; 258 case SFmode: return 4; 259 case DFmode: return 8; 260 case TFmode: return 16; 261 case SDmode: return 4; 262 case DDmode: return 8; 263 case TDmode: return 16; 264 case CQImode: return 2; 265 case CHImode: return 4; 266 case CSImode: return 8; 267 case CDImode: return 16; 268 case CTImode: return 32; 269 case SCmode: return 8; 270 case DCmode: return 16; 271 case TCmode: return 32; 272 case V4QImode: return 4; 273 case V2HImode: return 4; 274 case V1SImode: return 4; 275 case V8QImode: return 8; 276 case V4HImode: return 8; 277 case V2SImode: return 8; 278 case V1DImode: return 8; 279 case V16QImode: return 16; 280 case V8HImode: return 16; 281 case V4SImode: return 16; 282 case V2DImode: return 16; 283 default: return mode_size[mode]; 284 } 285 } 286 287 #ifdef __cplusplus 288 inline __attribute__((__always_inline__)) 289 #else 290 extern __inline__ __attribute__((__always_inline__, __gnu_inline__)) 291 #endif 292 unsigned char 293 mode_nunits_inline (machine_mode mode) 294 { 295 extern const unsigned char mode_nunits[NUM_MACHINE_MODES]; 296 gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES); 297 switch (mode) 298 { 299 case VOIDmode: return 0; 300 case BLKmode: return 0; 301 case CCmode: return 1; 302 case CCXmode: return 1; 303 case CCNZmode: return 1; 304 case CCXNZmode: return 1; 305 case CCCmode: return 1; 306 case CCXCmode: return 1; 307 case CCVmode: return 1; 308 case CCXVmode: return 1; 309 case CCFPmode: return 1; 310 case CCFPEmode: return 1; 311 case BImode: return 1; 312 case QImode: return 1; 313 case HImode: return 1; 314 case SImode: return 1; 315 case DImode: return 1; 316 case TImode: return 1; 317 case QQmode: return 1; 318 case HQmode: return 1; 319 case SQmode: return 1; 320 case DQmode: return 1; 321 case TQmode: return 1; 322 case UQQmode: return 1; 323 case UHQmode: return 1; 324 case USQmode: return 1; 325 case UDQmode: return 1; 326 case UTQmode: return 1; 327 case HAmode: return 1; 328 case SAmode: return 1; 329 case DAmode: return 1; 330 case TAmode: return 1; 331 case UHAmode: return 1; 332 case USAmode: return 1; 333 case UDAmode: return 1; 334 case UTAmode: return 1; 335 case SFmode: return 1; 336 case DFmode: return 1; 337 case TFmode: return 1; 338 case SDmode: return 1; 339 case DDmode: return 1; 340 case TDmode: return 1; 341 case CQImode: return 2; 342 case CHImode: return 2; 343 case CSImode: return 2; 344 case CDImode: return 2; 345 case CTImode: return 2; 346 case SCmode: return 2; 347 case DCmode: return 2; 348 case TCmode: return 2; 349 case V4QImode: return 4; 350 case V2HImode: return 2; 351 case V1SImode: return 1; 352 case V8QImode: return 8; 353 case V4HImode: return 4; 354 case V2SImode: return 2; 355 case V1DImode: return 1; 356 case V16QImode: return 16; 357 case V8HImode: return 8; 358 case V4SImode: return 4; 359 case V2DImode: return 2; 360 default: return mode_nunits[mode]; 361 } 362 } 363 364 #ifdef __cplusplus 365 inline __attribute__((__always_inline__)) 366 #else 367 extern __inline__ __attribute__((__always_inline__, __gnu_inline__)) 368 #endif 369 unsigned char 370 mode_inner_inline (machine_mode mode) 371 { 372 extern const unsigned char mode_inner[NUM_MACHINE_MODES]; 373 gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES); 374 switch (mode) 375 { 376 case VOIDmode: return VOIDmode; 377 case BLKmode: return BLKmode; 378 case CCmode: return CCmode; 379 case CCXmode: return CCXmode; 380 case CCNZmode: return CCNZmode; 381 case CCXNZmode: return CCXNZmode; 382 case CCCmode: return CCCmode; 383 case CCXCmode: return CCXCmode; 384 case CCVmode: return CCVmode; 385 case CCXVmode: return CCXVmode; 386 case CCFPmode: return CCFPmode; 387 case CCFPEmode: return CCFPEmode; 388 case BImode: return BImode; 389 case QImode: return QImode; 390 case HImode: return HImode; 391 case SImode: return SImode; 392 case DImode: return DImode; 393 case TImode: return TImode; 394 case QQmode: return QQmode; 395 case HQmode: return HQmode; 396 case SQmode: return SQmode; 397 case DQmode: return DQmode; 398 case TQmode: return TQmode; 399 case UQQmode: return UQQmode; 400 case UHQmode: return UHQmode; 401 case USQmode: return USQmode; 402 case UDQmode: return UDQmode; 403 case UTQmode: return UTQmode; 404 case HAmode: return HAmode; 405 case SAmode: return SAmode; 406 case DAmode: return DAmode; 407 case TAmode: return TAmode; 408 case UHAmode: return UHAmode; 409 case USAmode: return USAmode; 410 case UDAmode: return UDAmode; 411 case UTAmode: return UTAmode; 412 case SFmode: return SFmode; 413 case DFmode: return DFmode; 414 case TFmode: return TFmode; 415 case SDmode: return SDmode; 416 case DDmode: return DDmode; 417 case TDmode: return TDmode; 418 case CQImode: return QImode; 419 case CHImode: return HImode; 420 case CSImode: return SImode; 421 case CDImode: return DImode; 422 case CTImode: return TImode; 423 case SCmode: return SFmode; 424 case DCmode: return DFmode; 425 case TCmode: return TFmode; 426 case V4QImode: return QImode; 427 case V2HImode: return HImode; 428 case V1SImode: return SImode; 429 case V8QImode: return QImode; 430 case V4HImode: return HImode; 431 case V2SImode: return SImode; 432 case V1DImode: return DImode; 433 case V16QImode: return QImode; 434 case V8HImode: return HImode; 435 case V4SImode: return SImode; 436 case V2DImode: return DImode; 437 default: return mode_inner[mode]; 438 } 439 } 440 441 #ifdef __cplusplus 442 inline __attribute__((__always_inline__)) 443 #else 444 extern __inline__ __attribute__((__always_inline__, __gnu_inline__)) 445 #endif 446 unsigned char 447 mode_unit_size_inline (machine_mode mode) 448 { 449 extern CONST_MODE_UNIT_SIZE unsigned char mode_unit_size[NUM_MACHINE_MODES]; 450 gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES); 451 switch (mode) 452 { 453 case VOIDmode: return 0; 454 case BLKmode: return 0; 455 case CCmode: return 4; 456 case CCXmode: return 4; 457 case CCNZmode: return 4; 458 case CCXNZmode: return 4; 459 case CCCmode: return 4; 460 case CCXCmode: return 4; 461 case CCVmode: return 4; 462 case CCXVmode: return 4; 463 case CCFPmode: return 4; 464 case CCFPEmode: return 4; 465 case BImode: return 1; 466 case QImode: return 1; 467 case HImode: return 2; 468 case SImode: return 4; 469 case DImode: return 8; 470 case TImode: return 16; 471 case QQmode: return 1; 472 case HQmode: return 2; 473 case SQmode: return 4; 474 case DQmode: return 8; 475 case TQmode: return 16; 476 case UQQmode: return 1; 477 case UHQmode: return 2; 478 case USQmode: return 4; 479 case UDQmode: return 8; 480 case UTQmode: return 16; 481 case HAmode: return 2; 482 case SAmode: return 4; 483 case DAmode: return 8; 484 case TAmode: return 16; 485 case UHAmode: return 2; 486 case USAmode: return 4; 487 case UDAmode: return 8; 488 case UTAmode: return 16; 489 case SFmode: return 4; 490 case DFmode: return 8; 491 case TFmode: return 16; 492 case SDmode: return 4; 493 case DDmode: return 8; 494 case TDmode: return 16; 495 case CQImode: return 1; 496 case CHImode: return 2; 497 case CSImode: return 4; 498 case CDImode: return 8; 499 case CTImode: return 16; 500 case SCmode: return 4; 501 case DCmode: return 8; 502 case TCmode: return 16; 503 case V4QImode: return 1; 504 case V2HImode: return 2; 505 case V1SImode: return 4; 506 case V8QImode: return 1; 507 case V4HImode: return 2; 508 case V2SImode: return 4; 509 case V1DImode: return 8; 510 case V16QImode: return 1; 511 case V8HImode: return 2; 512 case V4SImode: return 4; 513 case V2DImode: return 8; 514 default: return mode_unit_size[mode]; 515 } 516 } 517 518 #ifdef __cplusplus 519 inline __attribute__((__always_inline__)) 520 #else 521 extern __inline__ __attribute__((__always_inline__, __gnu_inline__)) 522 #endif 523 unsigned short 524 mode_unit_precision_inline (machine_mode mode) 525 { 526 extern const unsigned short mode_unit_precision[NUM_MACHINE_MODES]; 527 gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES); 528 switch (mode) 529 { 530 case VOIDmode: return 0; 531 case BLKmode: return 0; 532 case CCmode: return 4*BITS_PER_UNIT; 533 case CCXmode: return 4*BITS_PER_UNIT; 534 case CCNZmode: return 4*BITS_PER_UNIT; 535 case CCXNZmode: return 4*BITS_PER_UNIT; 536 case CCCmode: return 4*BITS_PER_UNIT; 537 case CCXCmode: return 4*BITS_PER_UNIT; 538 case CCVmode: return 4*BITS_PER_UNIT; 539 case CCXVmode: return 4*BITS_PER_UNIT; 540 case CCFPmode: return 4*BITS_PER_UNIT; 541 case CCFPEmode: return 4*BITS_PER_UNIT; 542 case BImode: return 1; 543 case QImode: return 1*BITS_PER_UNIT; 544 case HImode: return 2*BITS_PER_UNIT; 545 case SImode: return 4*BITS_PER_UNIT; 546 case DImode: return 8*BITS_PER_UNIT; 547 case TImode: return 16*BITS_PER_UNIT; 548 case QQmode: return 1*BITS_PER_UNIT; 549 case HQmode: return 2*BITS_PER_UNIT; 550 case SQmode: return 4*BITS_PER_UNIT; 551 case DQmode: return 8*BITS_PER_UNIT; 552 case TQmode: return 16*BITS_PER_UNIT; 553 case UQQmode: return 1*BITS_PER_UNIT; 554 case UHQmode: return 2*BITS_PER_UNIT; 555 case USQmode: return 4*BITS_PER_UNIT; 556 case UDQmode: return 8*BITS_PER_UNIT; 557 case UTQmode: return 16*BITS_PER_UNIT; 558 case HAmode: return 2*BITS_PER_UNIT; 559 case SAmode: return 4*BITS_PER_UNIT; 560 case DAmode: return 8*BITS_PER_UNIT; 561 case TAmode: return 16*BITS_PER_UNIT; 562 case UHAmode: return 2*BITS_PER_UNIT; 563 case USAmode: return 4*BITS_PER_UNIT; 564 case UDAmode: return 8*BITS_PER_UNIT; 565 case UTAmode: return 16*BITS_PER_UNIT; 566 case SFmode: return 4*BITS_PER_UNIT; 567 case DFmode: return 8*BITS_PER_UNIT; 568 case TFmode: return 16*BITS_PER_UNIT; 569 case SDmode: return 4*BITS_PER_UNIT; 570 case DDmode: return 8*BITS_PER_UNIT; 571 case TDmode: return 16*BITS_PER_UNIT; 572 case CQImode: return 1*BITS_PER_UNIT; 573 case CHImode: return 2*BITS_PER_UNIT; 574 case CSImode: return 4*BITS_PER_UNIT; 575 case CDImode: return 8*BITS_PER_UNIT; 576 case CTImode: return 16*BITS_PER_UNIT; 577 case SCmode: return 4*BITS_PER_UNIT; 578 case DCmode: return 8*BITS_PER_UNIT; 579 case TCmode: return 16*BITS_PER_UNIT; 580 case V4QImode: return 1*BITS_PER_UNIT; 581 case V2HImode: return 2*BITS_PER_UNIT; 582 case V1SImode: return 4*BITS_PER_UNIT; 583 case V8QImode: return 1*BITS_PER_UNIT; 584 case V4HImode: return 2*BITS_PER_UNIT; 585 case V2SImode: return 4*BITS_PER_UNIT; 586 case V1DImode: return 8*BITS_PER_UNIT; 587 case V16QImode: return 1*BITS_PER_UNIT; 588 case V8HImode: return 2*BITS_PER_UNIT; 589 case V4SImode: return 4*BITS_PER_UNIT; 590 case V2DImode: return 8*BITS_PER_UNIT; 591 default: return mode_unit_precision[mode]; 592 } 593 } 594 595 #endif /* GCC_VERSION >= 4001 */ 596 597 #endif /* insn-modes.h */ 598