insn-modes.h 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433
  1. /* Generated automatically from machmode.def and config/mips/mips-modes.def
  2. by genmodes. */
  3. #ifndef GCC_INSN_MODES_H
  4. #define GCC_INSN_MODES_H
  5. enum machine_mode
  6. {
  7. VOIDmode, /* machmode.def:172 */
  8. #define HAVE_VOIDmode
  9. BLKmode, /* machmode.def:176 */
  10. #define HAVE_BLKmode
  11. CCmode, /* machmode.def:214 */
  12. #define HAVE_CCmode
  13. CCV2mode, /* config/mips/mips-modes.def:39 */
  14. #define HAVE_CCV2mode
  15. CCV4mode, /* config/mips/mips-modes.def:43 */
  16. #define HAVE_CCV4mode
  17. CCDSPmode, /* config/mips/mips-modes.def:48 */
  18. #define HAVE_CCDSPmode
  19. CCFmode, /* config/mips/mips-modes.def:51 */
  20. #define HAVE_CCFmode
  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/mips/mips-modes.def:20 */
  74. #define HAVE_TFmode
  75. SDmode, /* machmode.def:249 */
  76. #define HAVE_SDmode
  77. DDmode, /* machmode.def:250 */
  78. #define HAVE_DDmode
  79. TDmode, /* machmode.def:251 */
  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:246 */
  92. #define HAVE_SCmode
  93. DCmode, /* machmode.def:246 */
  94. #define HAVE_DCmode
  95. TCmode, /* machmode.def:246 */
  96. #define HAVE_TCmode
  97. V4QImode, /* config/mips/mips-modes.def:23 */
  98. #define HAVE_V4QImode
  99. V2HImode, /* config/mips/mips-modes.def:23 */
  100. #define HAVE_V2HImode
  101. V8QImode, /* config/mips/mips-modes.def:24 */
  102. #define HAVE_V8QImode
  103. V4HImode, /* config/mips/mips-modes.def:24 */
  104. #define HAVE_V4HImode
  105. V2SImode, /* config/mips/mips-modes.def:24 */
  106. #define HAVE_V2SImode
  107. V16QImode, /* config/mips/mips-modes.def:28 */
  108. #define HAVE_V16QImode
  109. V8HImode, /* config/mips/mips-modes.def:29 */
  110. #define HAVE_V8HImode
  111. V4SImode, /* config/mips/mips-modes.def:30 */
  112. #define HAVE_V4SImode
  113. V4QQmode, /* config/mips/mips-modes.def:33 */
  114. #define HAVE_V4QQmode
  115. V2HQmode, /* config/mips/mips-modes.def:33 */
  116. #define HAVE_V2HQmode
  117. V4UQQmode, /* config/mips/mips-modes.def:34 */
  118. #define HAVE_V4UQQmode
  119. V2UHQmode, /* config/mips/mips-modes.def:34 */
  120. #define HAVE_V2UHQmode
  121. V2HAmode, /* config/mips/mips-modes.def:35 */
  122. #define HAVE_V2HAmode
  123. V2UHAmode, /* config/mips/mips-modes.def:36 */
  124. #define HAVE_V2UHAmode
  125. V2SFmode, /* config/mips/mips-modes.def:25 */
  126. #define HAVE_V2SFmode
  127. V4SFmode, /* config/mips/mips-modes.def:31 */
  128. #define HAVE_V4SFmode
  129. MAX_MACHINE_MODE,
  130. MIN_MODE_RANDOM = VOIDmode,
  131. MAX_MODE_RANDOM = BLKmode,
  132. MIN_MODE_CC = CCmode,
  133. MAX_MODE_CC = CCFmode,
  134. MIN_MODE_INT = QImode,
  135. MAX_MODE_INT = TImode,
  136. MIN_MODE_PARTIAL_INT = VOIDmode,
  137. MAX_MODE_PARTIAL_INT = VOIDmode,
  138. MIN_MODE_POINTER_BOUNDS = VOIDmode,
  139. MAX_MODE_POINTER_BOUNDS = VOIDmode,
  140. MIN_MODE_FRACT = QQmode,
  141. MAX_MODE_FRACT = TQmode,
  142. MIN_MODE_UFRACT = UQQmode,
  143. MAX_MODE_UFRACT = UTQmode,
  144. MIN_MODE_ACCUM = HAmode,
  145. MAX_MODE_ACCUM = TAmode,
  146. MIN_MODE_UACCUM = UHAmode,
  147. MAX_MODE_UACCUM = UTAmode,
  148. MIN_MODE_FLOAT = SFmode,
  149. MAX_MODE_FLOAT = TFmode,
  150. MIN_MODE_DECIMAL_FLOAT = SDmode,
  151. MAX_MODE_DECIMAL_FLOAT = TDmode,
  152. MIN_MODE_COMPLEX_INT = CQImode,
  153. MAX_MODE_COMPLEX_INT = CTImode,
  154. MIN_MODE_COMPLEX_FLOAT = SCmode,
  155. MAX_MODE_COMPLEX_FLOAT = TCmode,
  156. MIN_MODE_VECTOR_INT = V4QImode,
  157. MAX_MODE_VECTOR_INT = V4SImode,
  158. MIN_MODE_VECTOR_FRACT = V4QQmode,
  159. MAX_MODE_VECTOR_FRACT = V2HQmode,
  160. MIN_MODE_VECTOR_UFRACT = V4UQQmode,
  161. MAX_MODE_VECTOR_UFRACT = V2UHQmode,
  162. MIN_MODE_VECTOR_ACCUM = V2HAmode,
  163. MAX_MODE_VECTOR_ACCUM = V2HAmode,
  164. MIN_MODE_VECTOR_UACCUM = V2UHAmode,
  165. MAX_MODE_VECTOR_UACCUM = V2UHAmode,
  166. MIN_MODE_VECTOR_FLOAT = V2SFmode,
  167. MAX_MODE_VECTOR_FLOAT = V4SFmode,
  168. NUM_MACHINE_MODES = MAX_MACHINE_MODE
  169. };
  170. #define CONST_MODE_SIZE
  171. #define CONST_MODE_BASE_ALIGN
  172. #define CONST_MODE_IBIT const
  173. #define CONST_MODE_FBIT const
  174. #define BITS_PER_UNIT (8)
  175. #define MAX_BITSIZE_MODE_ANY_INT (16*BITS_PER_UNIT)
  176. #define MAX_BITSIZE_MODE_ANY_MODE (32*BITS_PER_UNIT)
  177. #define NUM_INT_N_ENTS 1
  178. #if !defined (USED_FOR_TARGET) && GCC_VERSION >= 4001
  179. #ifdef __cplusplus
  180. inline __attribute__((__always_inline__))
  181. #else
  182. extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
  183. #endif
  184. unsigned char
  185. mode_size_inline (machine_mode mode)
  186. {
  187. extern unsigned char mode_size[NUM_MACHINE_MODES];
  188. switch (mode)
  189. {
  190. case VOIDmode: return 0;
  191. case BLKmode: return 0;
  192. case CCmode: return 4;
  193. case CCDSPmode: return 4;
  194. case CCFmode: return 4;
  195. case BImode: return 1;
  196. case QImode: return 1;
  197. case HImode: return 2;
  198. case SImode: return 4;
  199. case DImode: return 8;
  200. case TImode: return 16;
  201. case QQmode: return 1;
  202. case HQmode: return 2;
  203. case SQmode: return 4;
  204. case DQmode: return 8;
  205. case TQmode: return 16;
  206. case UQQmode: return 1;
  207. case UHQmode: return 2;
  208. case USQmode: return 4;
  209. case UDQmode: return 8;
  210. case UTQmode: return 16;
  211. case HAmode: return 2;
  212. case SAmode: return 4;
  213. case DAmode: return 8;
  214. case TAmode: return 16;
  215. case UHAmode: return 2;
  216. case USAmode: return 4;
  217. case UDAmode: return 8;
  218. case UTAmode: return 16;
  219. case SFmode: return 4;
  220. case DFmode: return 8;
  221. case TFmode: return 16;
  222. case SDmode: return 4;
  223. case DDmode: return 8;
  224. case TDmode: return 16;
  225. case CQImode: return 2;
  226. case CHImode: return 4;
  227. case CSImode: return 8;
  228. case CDImode: return 16;
  229. case CTImode: return 32;
  230. case SCmode: return 8;
  231. case DCmode: return 16;
  232. case TCmode: return 32;
  233. case V4QImode: return 4;
  234. case V2HImode: return 4;
  235. case V8QImode: return 8;
  236. case V4HImode: return 8;
  237. case V2SImode: return 8;
  238. case V16QImode: return 16;
  239. case V8HImode: return 16;
  240. case V4SImode: return 16;
  241. case V4QQmode: return 4;
  242. case V2HQmode: return 4;
  243. case V4UQQmode: return 4;
  244. case V2UHQmode: return 4;
  245. case V2HAmode: return 4;
  246. case V2UHAmode: return 4;
  247. case V2SFmode: return 8;
  248. case V4SFmode: return 16;
  249. default: return mode_size[mode];
  250. }
  251. }
  252. #ifdef __cplusplus
  253. inline __attribute__((__always_inline__))
  254. #else
  255. extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
  256. #endif
  257. unsigned char
  258. mode_nunits_inline (machine_mode mode)
  259. {
  260. extern const unsigned char mode_nunits[NUM_MACHINE_MODES];
  261. switch (mode)
  262. {
  263. case VOIDmode: return 0;
  264. case BLKmode: return 0;
  265. case CCmode: return 1;
  266. case CCV2mode: return 1;
  267. case CCV4mode: return 1;
  268. case CCDSPmode: return 1;
  269. case CCFmode: return 1;
  270. case BImode: return 1;
  271. case QImode: return 1;
  272. case HImode: return 1;
  273. case SImode: return 1;
  274. case DImode: return 1;
  275. case TImode: return 1;
  276. case QQmode: return 1;
  277. case HQmode: return 1;
  278. case SQmode: return 1;
  279. case DQmode: return 1;
  280. case TQmode: return 1;
  281. case UQQmode: return 1;
  282. case UHQmode: return 1;
  283. case USQmode: return 1;
  284. case UDQmode: return 1;
  285. case UTQmode: return 1;
  286. case HAmode: return 1;
  287. case SAmode: return 1;
  288. case DAmode: return 1;
  289. case TAmode: return 1;
  290. case UHAmode: return 1;
  291. case USAmode: return 1;
  292. case UDAmode: return 1;
  293. case UTAmode: return 1;
  294. case SFmode: return 1;
  295. case DFmode: return 1;
  296. case TFmode: return 1;
  297. case SDmode: return 1;
  298. case DDmode: return 1;
  299. case TDmode: return 1;
  300. case CQImode: return 2;
  301. case CHImode: return 2;
  302. case CSImode: return 2;
  303. case CDImode: return 2;
  304. case CTImode: return 2;
  305. case SCmode: return 2;
  306. case DCmode: return 2;
  307. case TCmode: return 2;
  308. case V4QImode: return 4;
  309. case V2HImode: return 2;
  310. case V8QImode: return 8;
  311. case V4HImode: return 4;
  312. case V2SImode: return 2;
  313. case V16QImode: return 16;
  314. case V8HImode: return 8;
  315. case V4SImode: return 4;
  316. case V4QQmode: return 4;
  317. case V2HQmode: return 2;
  318. case V4UQQmode: return 4;
  319. case V2UHQmode: return 2;
  320. case V2HAmode: return 2;
  321. case V2UHAmode: return 2;
  322. case V2SFmode: return 2;
  323. case V4SFmode: return 4;
  324. default: return mode_nunits[mode];
  325. }
  326. }
  327. #ifdef __cplusplus
  328. inline __attribute__((__always_inline__))
  329. #else
  330. extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
  331. #endif
  332. unsigned char
  333. mode_inner_inline (machine_mode mode)
  334. {
  335. extern const unsigned char mode_inner[NUM_MACHINE_MODES];
  336. switch (mode)
  337. {
  338. case VOIDmode: return VOIDmode;
  339. case BLKmode: return VOIDmode;
  340. case CCmode: return VOIDmode;
  341. case CCV2mode: return VOIDmode;
  342. case CCV4mode: return VOIDmode;
  343. case CCDSPmode: return VOIDmode;
  344. case CCFmode: return VOIDmode;
  345. case BImode: return VOIDmode;
  346. case QImode: return VOIDmode;
  347. case HImode: return VOIDmode;
  348. case SImode: return VOIDmode;
  349. case DImode: return VOIDmode;
  350. case TImode: return VOIDmode;
  351. case QQmode: return VOIDmode;
  352. case HQmode: return VOIDmode;
  353. case SQmode: return VOIDmode;
  354. case DQmode: return VOIDmode;
  355. case TQmode: return VOIDmode;
  356. case UQQmode: return VOIDmode;
  357. case UHQmode: return VOIDmode;
  358. case USQmode: return VOIDmode;
  359. case UDQmode: return VOIDmode;
  360. case UTQmode: return VOIDmode;
  361. case HAmode: return VOIDmode;
  362. case SAmode: return VOIDmode;
  363. case DAmode: return VOIDmode;
  364. case TAmode: return VOIDmode;
  365. case UHAmode: return VOIDmode;
  366. case USAmode: return VOIDmode;
  367. case UDAmode: return VOIDmode;
  368. case UTAmode: return VOIDmode;
  369. case SFmode: return VOIDmode;
  370. case DFmode: return VOIDmode;
  371. case TFmode: return VOIDmode;
  372. case SDmode: return VOIDmode;
  373. case DDmode: return VOIDmode;
  374. case TDmode: return VOIDmode;
  375. case CQImode: return QImode;
  376. case CHImode: return HImode;
  377. case CSImode: return SImode;
  378. case CDImode: return DImode;
  379. case CTImode: return TImode;
  380. case SCmode: return SFmode;
  381. case DCmode: return DFmode;
  382. case TCmode: return TFmode;
  383. case V4QImode: return QImode;
  384. case V2HImode: return HImode;
  385. case V8QImode: return QImode;
  386. case V4HImode: return HImode;
  387. case V2SImode: return SImode;
  388. case V16QImode: return QImode;
  389. case V8HImode: return HImode;
  390. case V4SImode: return SImode;
  391. case V4QQmode: return QQmode;
  392. case V2HQmode: return HQmode;
  393. case V4UQQmode: return UQQmode;
  394. case V2UHQmode: return UHQmode;
  395. case V2HAmode: return HAmode;
  396. case V2UHAmode: return UHAmode;
  397. case V2SFmode: return SFmode;
  398. case V4SFmode: return SFmode;
  399. default: return mode_inner[mode];
  400. }
  401. }
  402. #endif /* GCC_VERSION >= 4001 */
  403. #endif /* insn-modes.h */