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/pa/pa-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 CCFPmode, /* config/pa/pa-modes.def:32 */ 20 #define HAVE_CCFPmode 21 BImode, /* machmode.def:179 */ 22 #define HAVE_BImode 23 QImode, /* machmode.def:187 */ 24 #define HAVE_QImode 25 HImode, /* machmode.def:188 */ 26 #define HAVE_HImode 27 SImode, /* machmode.def:189 */ 28 #define HAVE_SImode 29 DImode, /* machmode.def:190 */ 30 #define HAVE_DImode 31 TImode, /* machmode.def:191 */ 32 #define HAVE_TImode 33 QQmode, /* machmode.def:217 */ 34 #define HAVE_QQmode 35 HQmode, /* machmode.def:218 */ 36 #define HAVE_HQmode 37 SQmode, /* machmode.def:219 */ 38 #define HAVE_SQmode 39 DQmode, /* machmode.def:220 */ 40 #define HAVE_DQmode 41 TQmode, /* machmode.def:221 */ 42 #define HAVE_TQmode 43 UQQmode, /* machmode.def:223 */ 44 #define HAVE_UQQmode 45 UHQmode, /* machmode.def:224 */ 46 #define HAVE_UHQmode 47 USQmode, /* machmode.def:225 */ 48 #define HAVE_USQmode 49 UDQmode, /* machmode.def:226 */ 50 #define HAVE_UDQmode 51 UTQmode, /* machmode.def:227 */ 52 #define HAVE_UTQmode 53 HAmode, /* machmode.def:229 */ 54 #define HAVE_HAmode 55 SAmode, /* machmode.def:230 */ 56 #define HAVE_SAmode 57 DAmode, /* machmode.def:231 */ 58 #define HAVE_DAmode 59 TAmode, /* machmode.def:232 */ 60 #define HAVE_TAmode 61 UHAmode, /* machmode.def:234 */ 62 #define HAVE_UHAmode 63 USAmode, /* machmode.def:235 */ 64 #define HAVE_USAmode 65 UDAmode, /* machmode.def:236 */ 66 #define HAVE_UDAmode 67 UTAmode, /* machmode.def:237 */ 68 #define HAVE_UTAmode 69 SFmode, /* machmode.def:209 */ 70 #define HAVE_SFmode 71 DFmode, /* machmode.def:210 */ 72 #define HAVE_DFmode 73 TFmode, /* config/pa/pa-modes.def:29 */ 74 #define HAVE_TFmode 75 SDmode, /* machmode.def:250 */ 76 #define HAVE_SDmode 77 DDmode, /* machmode.def:251 */ 78 #define HAVE_DDmode 79 TDmode, /* machmode.def:252 */ 80 #define HAVE_TDmode 81 CQImode, /* machmode.def:245 */ 82 #define HAVE_CQImode 83 CHImode, /* machmode.def:245 */ 84 #define HAVE_CHImode 85 CSImode, /* machmode.def:245 */ 86 #define HAVE_CSImode 87 CDImode, /* machmode.def:245 */ 88 #define HAVE_CDImode 89 CTImode, /* machmode.def:245 */ 90 #define HAVE_CTImode 91 SCmode, /* machmode.def:247 */ 92 #define HAVE_SCmode 93 DCmode, /* machmode.def:247 */ 94 #define HAVE_DCmode 95 TCmode, /* machmode.def:247 */ 96 #define HAVE_TCmode 97 MAX_MACHINE_MODE, 98 99 MIN_MODE_RANDOM = VOIDmode, 100 MAX_MODE_RANDOM = BLKmode, 101 102 MIN_MODE_CC = CCmode, 103 MAX_MODE_CC = CCFPmode, 104 105 MIN_MODE_INT = QImode, 106 MAX_MODE_INT = TImode, 107 108 MIN_MODE_PARTIAL_INT = VOIDmode, 109 MAX_MODE_PARTIAL_INT = VOIDmode, 110 111 MIN_MODE_POINTER_BOUNDS = VOIDmode, 112 MAX_MODE_POINTER_BOUNDS = VOIDmode, 113 114 MIN_MODE_FRACT = QQmode, 115 MAX_MODE_FRACT = TQmode, 116 117 MIN_MODE_UFRACT = UQQmode, 118 MAX_MODE_UFRACT = UTQmode, 119 120 MIN_MODE_ACCUM = HAmode, 121 MAX_MODE_ACCUM = TAmode, 122 123 MIN_MODE_UACCUM = UHAmode, 124 MAX_MODE_UACCUM = UTAmode, 125 126 MIN_MODE_FLOAT = SFmode, 127 MAX_MODE_FLOAT = TFmode, 128 129 MIN_MODE_DECIMAL_FLOAT = SDmode, 130 MAX_MODE_DECIMAL_FLOAT = TDmode, 131 132 MIN_MODE_COMPLEX_INT = CQImode, 133 MAX_MODE_COMPLEX_INT = CTImode, 134 135 MIN_MODE_COMPLEX_FLOAT = SCmode, 136 MAX_MODE_COMPLEX_FLOAT = TCmode, 137 138 MIN_MODE_VECTOR_INT = VOIDmode, 139 MAX_MODE_VECTOR_INT = VOIDmode, 140 141 MIN_MODE_VECTOR_FRACT = VOIDmode, 142 MAX_MODE_VECTOR_FRACT = VOIDmode, 143 144 MIN_MODE_VECTOR_UFRACT = VOIDmode, 145 MAX_MODE_VECTOR_UFRACT = VOIDmode, 146 147 MIN_MODE_VECTOR_ACCUM = VOIDmode, 148 MAX_MODE_VECTOR_ACCUM = VOIDmode, 149 150 MIN_MODE_VECTOR_UACCUM = VOIDmode, 151 MAX_MODE_VECTOR_UACCUM = VOIDmode, 152 153 MIN_MODE_VECTOR_FLOAT = VOIDmode, 154 MAX_MODE_VECTOR_FLOAT = VOIDmode, 155 156 NUM_MACHINE_MODES = MAX_MACHINE_MODE 157 }; 158 159 #define CONST_MODE_SIZE const 160 #define CONST_MODE_UNIT_SIZE const 161 #define CONST_MODE_BASE_ALIGN const 162 #define CONST_MODE_IBIT const 163 #define CONST_MODE_FBIT const 164 165 #define BITS_PER_UNIT (8) 166 #define MAX_BITSIZE_MODE_ANY_INT (16*BITS_PER_UNIT) 167 #define MAX_BITSIZE_MODE_ANY_MODE (32*BITS_PER_UNIT) 168 #define NUM_INT_N_ENTS 1 169 170 #if !defined (USED_FOR_TARGET) && GCC_VERSION >= 4001 171 172 #ifdef __cplusplus 173 inline __attribute__((__always_inline__)) 174 #else 175 extern __inline__ __attribute__((__always_inline__, __gnu_inline__)) 176 #endif 177 unsigned short 178 mode_size_inline (machine_mode mode) 179 { 180 extern const unsigned short mode_size[NUM_MACHINE_MODES]; 181 gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES); 182 switch (mode) 183 { 184 case VOIDmode: return 0; 185 case BLKmode: return 0; 186 case CCmode: return 4; 187 case CCFPmode: return 4; 188 case BImode: return 1; 189 case QImode: return 1; 190 case HImode: return 2; 191 case SImode: return 4; 192 case DImode: return 8; 193 case TImode: return 16; 194 case QQmode: return 1; 195 case HQmode: return 2; 196 case SQmode: return 4; 197 case DQmode: return 8; 198 case TQmode: return 16; 199 case UQQmode: return 1; 200 case UHQmode: return 2; 201 case USQmode: return 4; 202 case UDQmode: return 8; 203 case UTQmode: return 16; 204 case HAmode: return 2; 205 case SAmode: return 4; 206 case DAmode: return 8; 207 case TAmode: return 16; 208 case UHAmode: return 2; 209 case USAmode: return 4; 210 case UDAmode: return 8; 211 case UTAmode: return 16; 212 case SFmode: return 4; 213 case DFmode: return 8; 214 case TFmode: return 16; 215 case SDmode: return 4; 216 case DDmode: return 8; 217 case TDmode: return 16; 218 case CQImode: return 2; 219 case CHImode: return 4; 220 case CSImode: return 8; 221 case CDImode: return 16; 222 case CTImode: return 32; 223 case SCmode: return 8; 224 case DCmode: return 16; 225 case TCmode: return 32; 226 default: return mode_size[mode]; 227 } 228 } 229 230 #ifdef __cplusplus 231 inline __attribute__((__always_inline__)) 232 #else 233 extern __inline__ __attribute__((__always_inline__, __gnu_inline__)) 234 #endif 235 unsigned char 236 mode_nunits_inline (machine_mode mode) 237 { 238 extern const unsigned char mode_nunits[NUM_MACHINE_MODES]; 239 gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES); 240 switch (mode) 241 { 242 case VOIDmode: return 0; 243 case BLKmode: return 0; 244 case CCmode: return 1; 245 case CCFPmode: return 1; 246 case BImode: return 1; 247 case QImode: return 1; 248 case HImode: return 1; 249 case SImode: return 1; 250 case DImode: return 1; 251 case TImode: return 1; 252 case QQmode: return 1; 253 case HQmode: return 1; 254 case SQmode: return 1; 255 case DQmode: return 1; 256 case TQmode: return 1; 257 case UQQmode: return 1; 258 case UHQmode: return 1; 259 case USQmode: return 1; 260 case UDQmode: return 1; 261 case UTQmode: return 1; 262 case HAmode: return 1; 263 case SAmode: return 1; 264 case DAmode: return 1; 265 case TAmode: return 1; 266 case UHAmode: return 1; 267 case USAmode: return 1; 268 case UDAmode: return 1; 269 case UTAmode: return 1; 270 case SFmode: return 1; 271 case DFmode: return 1; 272 case TFmode: return 1; 273 case SDmode: return 1; 274 case DDmode: return 1; 275 case TDmode: return 1; 276 case CQImode: return 2; 277 case CHImode: return 2; 278 case CSImode: return 2; 279 case CDImode: return 2; 280 case CTImode: return 2; 281 case SCmode: return 2; 282 case DCmode: return 2; 283 case TCmode: return 2; 284 default: return mode_nunits[mode]; 285 } 286 } 287 288 #ifdef __cplusplus 289 inline __attribute__((__always_inline__)) 290 #else 291 extern __inline__ __attribute__((__always_inline__, __gnu_inline__)) 292 #endif 293 unsigned char 294 mode_inner_inline (machine_mode mode) 295 { 296 extern const unsigned char mode_inner[NUM_MACHINE_MODES]; 297 gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES); 298 switch (mode) 299 { 300 case VOIDmode: return VOIDmode; 301 case BLKmode: return BLKmode; 302 case CCmode: return CCmode; 303 case CCFPmode: return CCFPmode; 304 case BImode: return BImode; 305 case QImode: return QImode; 306 case HImode: return HImode; 307 case SImode: return SImode; 308 case DImode: return DImode; 309 case TImode: return TImode; 310 case QQmode: return QQmode; 311 case HQmode: return HQmode; 312 case SQmode: return SQmode; 313 case DQmode: return DQmode; 314 case TQmode: return TQmode; 315 case UQQmode: return UQQmode; 316 case UHQmode: return UHQmode; 317 case USQmode: return USQmode; 318 case UDQmode: return UDQmode; 319 case UTQmode: return UTQmode; 320 case HAmode: return HAmode; 321 case SAmode: return SAmode; 322 case DAmode: return DAmode; 323 case TAmode: return TAmode; 324 case UHAmode: return UHAmode; 325 case USAmode: return USAmode; 326 case UDAmode: return UDAmode; 327 case UTAmode: return UTAmode; 328 case SFmode: return SFmode; 329 case DFmode: return DFmode; 330 case TFmode: return TFmode; 331 case SDmode: return SDmode; 332 case DDmode: return DDmode; 333 case TDmode: return TDmode; 334 case CQImode: return QImode; 335 case CHImode: return HImode; 336 case CSImode: return SImode; 337 case CDImode: return DImode; 338 case CTImode: return TImode; 339 case SCmode: return SFmode; 340 case DCmode: return DFmode; 341 case TCmode: return TFmode; 342 default: return mode_inner[mode]; 343 } 344 } 345 346 #ifdef __cplusplus 347 inline __attribute__((__always_inline__)) 348 #else 349 extern __inline__ __attribute__((__always_inline__, __gnu_inline__)) 350 #endif 351 unsigned char 352 mode_unit_size_inline (machine_mode mode) 353 { 354 extern CONST_MODE_UNIT_SIZE unsigned char mode_unit_size[NUM_MACHINE_MODES]; 355 gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES); 356 switch (mode) 357 { 358 case VOIDmode: return 0; 359 case BLKmode: return 0; 360 case CCmode: return 4; 361 case CCFPmode: return 4; 362 case BImode: return 1; 363 case QImode: return 1; 364 case HImode: return 2; 365 case SImode: return 4; 366 case DImode: return 8; 367 case TImode: return 16; 368 case QQmode: return 1; 369 case HQmode: return 2; 370 case SQmode: return 4; 371 case DQmode: return 8; 372 case TQmode: return 16; 373 case UQQmode: return 1; 374 case UHQmode: return 2; 375 case USQmode: return 4; 376 case UDQmode: return 8; 377 case UTQmode: return 16; 378 case HAmode: return 2; 379 case SAmode: return 4; 380 case DAmode: return 8; 381 case TAmode: return 16; 382 case UHAmode: return 2; 383 case USAmode: return 4; 384 case UDAmode: return 8; 385 case UTAmode: return 16; 386 case SFmode: return 4; 387 case DFmode: return 8; 388 case TFmode: return 16; 389 case SDmode: return 4; 390 case DDmode: return 8; 391 case TDmode: return 16; 392 case CQImode: return 1; 393 case CHImode: return 2; 394 case CSImode: return 4; 395 case CDImode: return 8; 396 case CTImode: return 16; 397 case SCmode: return 4; 398 case DCmode: return 8; 399 case TCmode: return 16; 400 default: return mode_unit_size[mode]; 401 } 402 } 403 404 #ifdef __cplusplus 405 inline __attribute__((__always_inline__)) 406 #else 407 extern __inline__ __attribute__((__always_inline__, __gnu_inline__)) 408 #endif 409 unsigned short 410 mode_unit_precision_inline (machine_mode mode) 411 { 412 extern const unsigned short mode_unit_precision[NUM_MACHINE_MODES]; 413 gcc_assert (mode >= 0 && mode < NUM_MACHINE_MODES); 414 switch (mode) 415 { 416 case VOIDmode: return 0; 417 case BLKmode: return 0; 418 case CCmode: return 4*BITS_PER_UNIT; 419 case CCFPmode: return 4*BITS_PER_UNIT; 420 case BImode: return 1; 421 case QImode: return 1*BITS_PER_UNIT; 422 case HImode: return 2*BITS_PER_UNIT; 423 case SImode: return 4*BITS_PER_UNIT; 424 case DImode: return 8*BITS_PER_UNIT; 425 case TImode: return 16*BITS_PER_UNIT; 426 case QQmode: return 1*BITS_PER_UNIT; 427 case HQmode: return 2*BITS_PER_UNIT; 428 case SQmode: return 4*BITS_PER_UNIT; 429 case DQmode: return 8*BITS_PER_UNIT; 430 case TQmode: return 16*BITS_PER_UNIT; 431 case UQQmode: return 1*BITS_PER_UNIT; 432 case UHQmode: return 2*BITS_PER_UNIT; 433 case USQmode: return 4*BITS_PER_UNIT; 434 case UDQmode: return 8*BITS_PER_UNIT; 435 case UTQmode: return 16*BITS_PER_UNIT; 436 case HAmode: return 2*BITS_PER_UNIT; 437 case SAmode: return 4*BITS_PER_UNIT; 438 case DAmode: return 8*BITS_PER_UNIT; 439 case TAmode: return 16*BITS_PER_UNIT; 440 case UHAmode: return 2*BITS_PER_UNIT; 441 case USAmode: return 4*BITS_PER_UNIT; 442 case UDAmode: return 8*BITS_PER_UNIT; 443 case UTAmode: return 16*BITS_PER_UNIT; 444 case SFmode: return 4*BITS_PER_UNIT; 445 case DFmode: return 8*BITS_PER_UNIT; 446 case TFmode: return 16*BITS_PER_UNIT; 447 case SDmode: return 4*BITS_PER_UNIT; 448 case DDmode: return 8*BITS_PER_UNIT; 449 case TDmode: return 16*BITS_PER_UNIT; 450 case CQImode: return 1*BITS_PER_UNIT; 451 case CHImode: return 2*BITS_PER_UNIT; 452 case CSImode: return 4*BITS_PER_UNIT; 453 case CDImode: return 8*BITS_PER_UNIT; 454 case CTImode: return 16*BITS_PER_UNIT; 455 case SCmode: return 4*BITS_PER_UNIT; 456 case DCmode: return 8*BITS_PER_UNIT; 457 case TCmode: return 16*BITS_PER_UNIT; 458 default: return mode_unit_precision[mode]; 459 } 460 } 461 462 #endif /* GCC_VERSION >= 4001 */ 463 464 #endif /* insn-modes.h */ 465