genrtl.h 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218
  1. /* Generated automatically by gengenrtl from rtl.def. */
  2. #ifndef GCC_GENRTL_H
  3. #define GCC_GENRTL_H
  4. #include "statistics.h"
  5. static inline rtx
  6. gen_rtx_fmt_0_stat (RTX_CODE code, machine_mode mode MEM_STAT_DECL)
  7. {
  8. rtx rt;
  9. rt = rtx_alloc (code PASS_MEM_STAT);
  10. PUT_MODE_RAW (rt, mode);
  11. X0EXP (rt, 0) = NULL_RTX;
  12. return rt;
  13. }
  14. #define gen_rtx_fmt_0(c, m)\
  15. gen_rtx_fmt_0_stat (c, m MEM_STAT_INFO)
  16. static inline rtx
  17. gen_rtx_fmt_ee_stat (RTX_CODE code, machine_mode mode,
  18. rtx arg0,
  19. rtx arg1 MEM_STAT_DECL)
  20. {
  21. rtx rt;
  22. rt = rtx_alloc (code PASS_MEM_STAT);
  23. PUT_MODE_RAW (rt, mode);
  24. XEXP (rt, 0) = arg0;
  25. XEXP (rt, 1) = arg1;
  26. return rt;
  27. }
  28. #define gen_rtx_fmt_ee(c, m, p0, p1)\
  29. gen_rtx_fmt_ee_stat (c, m, p0, p1 MEM_STAT_INFO)
  30. static inline rtx
  31. gen_rtx_fmt_ue_stat (RTX_CODE code, machine_mode mode,
  32. rtx arg0,
  33. rtx arg1 MEM_STAT_DECL)
  34. {
  35. rtx rt;
  36. rt = rtx_alloc (code PASS_MEM_STAT);
  37. PUT_MODE_RAW (rt, mode);
  38. XEXP (rt, 0) = arg0;
  39. XEXP (rt, 1) = arg1;
  40. return rt;
  41. }
  42. #define gen_rtx_fmt_ue(c, m, p0, p1)\
  43. gen_rtx_fmt_ue_stat (c, m, p0, p1 MEM_STAT_INFO)
  44. static inline rtx
  45. gen_rtx_fmt_ie_stat (RTX_CODE code, machine_mode mode,
  46. int arg0,
  47. rtx arg1 MEM_STAT_DECL)
  48. {
  49. rtx rt;
  50. rt = rtx_alloc (code PASS_MEM_STAT);
  51. PUT_MODE_RAW (rt, mode);
  52. XINT (rt, 0) = arg0;
  53. XEXP (rt, 1) = arg1;
  54. return rt;
  55. }
  56. #define gen_rtx_fmt_ie(c, m, p0, p1)\
  57. gen_rtx_fmt_ie_stat (c, m, p0, p1 MEM_STAT_INFO)
  58. static inline rtx
  59. gen_rtx_fmt_E_stat (RTX_CODE code, machine_mode mode,
  60. rtvec arg0 MEM_STAT_DECL)
  61. {
  62. rtx rt;
  63. rt = rtx_alloc (code PASS_MEM_STAT);
  64. PUT_MODE_RAW (rt, mode);
  65. XVEC (rt, 0) = arg0;
  66. return rt;
  67. }
  68. #define gen_rtx_fmt_E(c, m, p0)\
  69. gen_rtx_fmt_E_stat (c, m, p0 MEM_STAT_INFO)
  70. static inline rtx
  71. gen_rtx_fmt_i_stat (RTX_CODE code, machine_mode mode,
  72. int arg0 MEM_STAT_DECL)
  73. {
  74. rtx rt;
  75. rt = rtx_alloc (code PASS_MEM_STAT);
  76. PUT_MODE_RAW (rt, mode);
  77. XINT (rt, 0) = arg0;
  78. return rt;
  79. }
  80. #define gen_rtx_fmt_i(c, m, p0)\
  81. gen_rtx_fmt_i_stat (c, m, p0 MEM_STAT_INFO)
  82. static inline rtx
  83. gen_rtx_fmt_uuBeiie_stat (RTX_CODE code, machine_mode mode,
  84. rtx arg0,
  85. rtx arg1,
  86. basic_block arg2,
  87. rtx arg3,
  88. int arg4,
  89. int arg5,
  90. rtx arg6 MEM_STAT_DECL)
  91. {
  92. rtx rt;
  93. rt = rtx_alloc (code PASS_MEM_STAT);
  94. PUT_MODE_RAW (rt, mode);
  95. XEXP (rt, 0) = arg0;
  96. XEXP (rt, 1) = arg1;
  97. XBBDEF (rt, 2) = arg2;
  98. XEXP (rt, 3) = arg3;
  99. XINT (rt, 4) = arg4;
  100. XINT (rt, 5) = arg5;
  101. XEXP (rt, 6) = arg6;
  102. return rt;
  103. }
  104. #define gen_rtx_fmt_uuBeiie(c, m, p0, p1, p2, p3, p4, p5, p6)\
  105. gen_rtx_fmt_uuBeiie_stat (c, m, p0, p1, p2, p3, p4, p5, p6 MEM_STAT_INFO)
  106. static inline rtx
  107. gen_rtx_fmt_uuBeiie0_stat (RTX_CODE code, machine_mode mode,
  108. rtx arg0,
  109. rtx arg1,
  110. basic_block arg2,
  111. rtx arg3,
  112. int arg4,
  113. int arg5,
  114. rtx arg6 MEM_STAT_DECL)
  115. {
  116. rtx rt;
  117. rt = rtx_alloc (code PASS_MEM_STAT);
  118. PUT_MODE_RAW (rt, mode);
  119. XEXP (rt, 0) = arg0;
  120. XEXP (rt, 1) = arg1;
  121. XBBDEF (rt, 2) = arg2;
  122. XEXP (rt, 3) = arg3;
  123. XINT (rt, 4) = arg4;
  124. XINT (rt, 5) = arg5;
  125. XEXP (rt, 6) = arg6;
  126. X0EXP (rt, 7) = NULL_RTX;
  127. return rt;
  128. }
  129. #define gen_rtx_fmt_uuBeiie0(c, m, p0, p1, p2, p3, p4, p5, p6)\
  130. gen_rtx_fmt_uuBeiie0_stat (c, m, p0, p1, p2, p3, p4, p5, p6 MEM_STAT_INFO)
  131. static inline rtx
  132. gen_rtx_fmt_uuBeiiee_stat (RTX_CODE code, machine_mode mode,
  133. rtx arg0,
  134. rtx arg1,
  135. basic_block arg2,
  136. rtx arg3,
  137. int arg4,
  138. int arg5,
  139. rtx arg6,
  140. rtx arg7 MEM_STAT_DECL)
  141. {
  142. rtx rt;
  143. rt = rtx_alloc (code PASS_MEM_STAT);
  144. PUT_MODE_RAW (rt, mode);
  145. XEXP (rt, 0) = arg0;
  146. XEXP (rt, 1) = arg1;
  147. XBBDEF (rt, 2) = arg2;
  148. XEXP (rt, 3) = arg3;
  149. XINT (rt, 4) = arg4;
  150. XINT (rt, 5) = arg5;
  151. XEXP (rt, 6) = arg6;
  152. XEXP (rt, 7) = arg7;
  153. return rt;
  154. }
  155. #define gen_rtx_fmt_uuBeiiee(c, m, p0, p1, p2, p3, p4, p5, p6, p7)\
  156. gen_rtx_fmt_uuBeiiee_stat (c, m, p0, p1, p2, p3, p4, p5, p6, p7 MEM_STAT_INFO)
  157. static inline rtx
  158. gen_rtx_fmt_uuBe0000_stat (RTX_CODE code, machine_mode mode,
  159. rtx arg0,
  160. rtx arg1,
  161. basic_block arg2,
  162. rtx arg3 MEM_STAT_DECL)
  163. {
  164. rtx rt;
  165. rt = rtx_alloc (code PASS_MEM_STAT);
  166. PUT_MODE_RAW (rt, mode);
  167. XEXP (rt, 0) = arg0;
  168. XEXP (rt, 1) = arg1;
  169. XBBDEF (rt, 2) = arg2;
  170. XEXP (rt, 3) = arg3;
  171. X0EXP (rt, 4) = NULL_RTX;
  172. X0EXP (rt, 5) = NULL_RTX;
  173. X0EXP (rt, 6) = NULL_RTX;
  174. X0EXP (rt, 7) = NULL_RTX;
  175. return rt;
  176. }
  177. #define gen_rtx_fmt_uuBe0000(c, m, p0, p1, p2, p3)\
  178. gen_rtx_fmt_uuBe0000_stat (c, m, p0, p1, p2, p3 MEM_STAT_INFO)
  179. static inline rtx
  180. gen_rtx_fmt_uu00000_stat (RTX_CODE code, machine_mode mode,
  181. rtx arg0,
  182. rtx arg1 MEM_STAT_DECL)
  183. {
  184. rtx rt;
  185. rt = rtx_alloc (code PASS_MEM_STAT);
  186. PUT_MODE_RAW (rt, mode);
  187. XEXP (rt, 0) = arg0;
  188. XEXP (rt, 1) = arg1;
  189. X0EXP (rt, 2) = NULL_RTX;
  190. X0EXP (rt, 3) = NULL_RTX;
  191. X0EXP (rt, 4) = NULL_RTX;
  192. X0EXP (rt, 5) = NULL_RTX;
  193. X0EXP (rt, 6) = NULL_RTX;
  194. return rt;
  195. }
  196. #define gen_rtx_fmt_uu00000(c, m, p0, p1)\
  197. gen_rtx_fmt_uu00000_stat (c, m, p0, p1 MEM_STAT_INFO)
  198. static inline rtx
  199. gen_rtx_fmt_uuB00is_stat (RTX_CODE code, machine_mode mode,
  200. rtx arg0,
  201. rtx arg1,
  202. basic_block arg2,
  203. int arg3,
  204. const char *arg4 MEM_STAT_DECL)
  205. {
  206. rtx rt;
  207. rt = rtx_alloc (code PASS_MEM_STAT);
  208. PUT_MODE_RAW (rt, mode);
  209. XEXP (rt, 0) = arg0;
  210. XEXP (rt, 1) = arg1;
  211. XBBDEF (rt, 2) = arg2;
  212. X0EXP (rt, 3) = NULL_RTX;
  213. X0EXP (rt, 4) = NULL_RTX;
  214. XINT (rt, 5) = arg3;
  215. XSTR (rt, 6) = arg4;
  216. return rt;
  217. }
  218. #define gen_rtx_fmt_uuB00is(c, m, p0, p1, p2, p3, p4)\
  219. gen_rtx_fmt_uuB00is_stat (c, m, p0, p1, p2, p3, p4 MEM_STAT_INFO)
  220. static inline rtx
  221. gen_rtx_fmt_si_stat (RTX_CODE code, machine_mode mode,
  222. const char *arg0,
  223. int arg1 MEM_STAT_DECL)
  224. {
  225. rtx rt;
  226. rt = rtx_alloc (code PASS_MEM_STAT);
  227. PUT_MODE_RAW (rt, mode);
  228. XSTR (rt, 0) = arg0;
  229. XINT (rt, 1) = arg1;
  230. return rt;
  231. }
  232. #define gen_rtx_fmt_si(c, m, p0, p1)\
  233. gen_rtx_fmt_si_stat (c, m, p0, p1 MEM_STAT_INFO)
  234. static inline rtx
  235. gen_rtx_fmt_ssiEEEi_stat (RTX_CODE code, machine_mode mode,
  236. const char *arg0,
  237. const char *arg1,
  238. int arg2,
  239. rtvec arg3,
  240. rtvec arg4,
  241. rtvec arg5,
  242. int arg6 MEM_STAT_DECL)
  243. {
  244. rtx rt;
  245. rt = rtx_alloc (code PASS_MEM_STAT);
  246. PUT_MODE_RAW (rt, mode);
  247. XSTR (rt, 0) = arg0;
  248. XSTR (rt, 1) = arg1;
  249. XINT (rt, 2) = arg2;
  250. XVEC (rt, 3) = arg3;
  251. XVEC (rt, 4) = arg4;
  252. XVEC (rt, 5) = arg5;
  253. XINT (rt, 6) = arg6;
  254. return rt;
  255. }
  256. #define gen_rtx_fmt_ssiEEEi(c, m, p0, p1, p2, p3, p4, p5, p6)\
  257. gen_rtx_fmt_ssiEEEi_stat (c, m, p0, p1, p2, p3, p4, p5, p6 MEM_STAT_INFO)
  258. static inline rtx
  259. gen_rtx_fmt_Ei_stat (RTX_CODE code, machine_mode mode,
  260. rtvec arg0,
  261. int arg1 MEM_STAT_DECL)
  262. {
  263. rtx rt;
  264. rt = rtx_alloc (code PASS_MEM_STAT);
  265. PUT_MODE_RAW (rt, mode);
  266. XVEC (rt, 0) = arg0;
  267. XINT (rt, 1) = arg1;
  268. return rt;
  269. }
  270. #define gen_rtx_fmt_Ei(c, m, p0, p1)\
  271. gen_rtx_fmt_Ei_stat (c, m, p0, p1 MEM_STAT_INFO)
  272. static inline rtx
  273. gen_rtx_fmt_eEee0_stat (RTX_CODE code, machine_mode mode,
  274. rtx arg0,
  275. rtvec arg1,
  276. rtx arg2,
  277. rtx arg3 MEM_STAT_DECL)
  278. {
  279. rtx rt;
  280. rt = rtx_alloc (code PASS_MEM_STAT);
  281. PUT_MODE_RAW (rt, mode);
  282. XEXP (rt, 0) = arg0;
  283. XVEC (rt, 1) = arg1;
  284. XEXP (rt, 2) = arg2;
  285. XEXP (rt, 3) = arg3;
  286. X0EXP (rt, 4) = NULL_RTX;
  287. return rt;
  288. }
  289. #define gen_rtx_fmt_eEee0(c, m, p0, p1, p2, p3)\
  290. gen_rtx_fmt_eEee0_stat (c, m, p0, p1, p2, p3 MEM_STAT_INFO)
  291. static inline rtx
  292. gen_rtx_fmt_eee_stat (RTX_CODE code, machine_mode mode,
  293. rtx arg0,
  294. rtx arg1,
  295. rtx arg2 MEM_STAT_DECL)
  296. {
  297. rtx rt;
  298. rt = rtx_alloc (code PASS_MEM_STAT);
  299. PUT_MODE_RAW (rt, mode);
  300. XEXP (rt, 0) = arg0;
  301. XEXP (rt, 1) = arg1;
  302. XEXP (rt, 2) = arg2;
  303. return rt;
  304. }
  305. #define gen_rtx_fmt_eee(c, m, p0, p1, p2)\
  306. gen_rtx_fmt_eee_stat (c, m, p0, p1, p2 MEM_STAT_INFO)
  307. static inline rtx
  308. gen_rtx_fmt_e_stat (RTX_CODE code, machine_mode mode,
  309. rtx arg0 MEM_STAT_DECL)
  310. {
  311. rtx rt;
  312. rt = rtx_alloc (code PASS_MEM_STAT);
  313. PUT_MODE_RAW (rt, mode);
  314. XEXP (rt, 0) = arg0;
  315. return rt;
  316. }
  317. #define gen_rtx_fmt_e(c, m, p0)\
  318. gen_rtx_fmt_e_stat (c, m, p0 MEM_STAT_INFO)
  319. static inline rtx
  320. gen_rtx_fmt__stat (RTX_CODE code, machine_mode mode MEM_STAT_DECL)
  321. {
  322. rtx rt;
  323. rt = rtx_alloc (code PASS_MEM_STAT);
  324. PUT_MODE_RAW (rt, mode);
  325. return rt;
  326. }
  327. #define gen_rtx_fmt_(c, m)\
  328. gen_rtx_fmt__stat (c, m MEM_STAT_INFO)
  329. static inline rtx
  330. gen_rtx_fmt_w_stat (RTX_CODE code, machine_mode mode,
  331. HOST_WIDE_INT arg0 MEM_STAT_DECL)
  332. {
  333. rtx rt;
  334. rt = rtx_alloc (code PASS_MEM_STAT);
  335. PUT_MODE_RAW (rt, mode);
  336. XWINT (rt, 0) = arg0;
  337. return rt;
  338. }
  339. #define gen_rtx_fmt_w(c, m, p0)\
  340. gen_rtx_fmt_w_stat (c, m, p0 MEM_STAT_INFO)
  341. static inline rtx
  342. gen_rtx_fmt_www_stat (RTX_CODE code, machine_mode mode,
  343. HOST_WIDE_INT arg0,
  344. HOST_WIDE_INT arg1,
  345. HOST_WIDE_INT arg2 MEM_STAT_DECL)
  346. {
  347. rtx rt;
  348. rt = rtx_alloc (code PASS_MEM_STAT);
  349. PUT_MODE_RAW (rt, mode);
  350. XWINT (rt, 0) = arg0;
  351. XWINT (rt, 1) = arg1;
  352. XWINT (rt, 2) = arg2;
  353. return rt;
  354. }
  355. #define gen_rtx_fmt_www(c, m, p0, p1, p2)\
  356. gen_rtx_fmt_www_stat (c, m, p0, p1, p2 MEM_STAT_INFO)
  357. static inline rtx
  358. gen_rtx_fmt_s_stat (RTX_CODE code, machine_mode mode,
  359. const char *arg0 MEM_STAT_DECL)
  360. {
  361. rtx rt;
  362. rt = rtx_alloc (code PASS_MEM_STAT);
  363. PUT_MODE_RAW (rt, mode);
  364. XSTR (rt, 0) = arg0;
  365. return rt;
  366. }
  367. #define gen_rtx_fmt_s(c, m, p0)\
  368. gen_rtx_fmt_s_stat (c, m, p0 MEM_STAT_INFO)
  369. static inline rtx
  370. gen_rtx_fmt_ep_stat (RTX_CODE code, machine_mode mode,
  371. rtx arg0,
  372. poly_uint16 arg1 MEM_STAT_DECL)
  373. {
  374. rtx rt;
  375. rt = rtx_alloc (code PASS_MEM_STAT);
  376. PUT_MODE_RAW (rt, mode);
  377. XEXP (rt, 0) = arg0;
  378. SUBREG_BYTE (rt) = arg1;
  379. return rt;
  380. }
  381. #define gen_rtx_fmt_ep(c, m, p0, p1)\
  382. gen_rtx_fmt_ep_stat (c, m, p0, p1 MEM_STAT_INFO)
  383. static inline rtx
  384. gen_rtx_fmt_e0_stat (RTX_CODE code, machine_mode mode,
  385. rtx arg0 MEM_STAT_DECL)
  386. {
  387. rtx rt;
  388. rt = rtx_alloc (code PASS_MEM_STAT);
  389. PUT_MODE_RAW (rt, mode);
  390. XEXP (rt, 0) = arg0;
  391. X0EXP (rt, 1) = NULL_RTX;
  392. return rt;
  393. }
  394. #define gen_rtx_fmt_e0(c, m, p0)\
  395. gen_rtx_fmt_e0_stat (c, m, p0 MEM_STAT_INFO)
  396. static inline rtx
  397. gen_rtx_fmt_u_stat (RTX_CODE code, machine_mode mode,
  398. rtx arg0 MEM_STAT_DECL)
  399. {
  400. rtx rt;
  401. rt = rtx_alloc (code PASS_MEM_STAT);
  402. PUT_MODE_RAW (rt, mode);
  403. XEXP (rt, 0) = arg0;
  404. return rt;
  405. }
  406. #define gen_rtx_fmt_u(c, m, p0)\
  407. gen_rtx_fmt_u_stat (c, m, p0 MEM_STAT_INFO)
  408. static inline rtx
  409. gen_rtx_fmt_s0_stat (RTX_CODE code, machine_mode mode,
  410. const char *arg0 MEM_STAT_DECL)
  411. {
  412. rtx rt;
  413. rt = rtx_alloc (code PASS_MEM_STAT);
  414. PUT_MODE_RAW (rt, mode);
  415. XSTR (rt, 0) = arg0;
  416. X0EXP (rt, 1) = NULL_RTX;
  417. return rt;
  418. }
  419. #define gen_rtx_fmt_s0(c, m, p0)\
  420. gen_rtx_fmt_s0_stat (c, m, p0 MEM_STAT_INFO)
  421. static inline rtx
  422. gen_rtx_fmt_te_stat (RTX_CODE code, machine_mode mode,
  423. tree arg0,
  424. rtx arg1 MEM_STAT_DECL)
  425. {
  426. rtx rt;
  427. rt = rtx_alloc (code PASS_MEM_STAT);
  428. PUT_MODE_RAW (rt, mode);
  429. XTREE (rt, 0) = arg0;
  430. XEXP (rt, 1) = arg1;
  431. return rt;
  432. }
  433. #define gen_rtx_fmt_te(c, m, p0, p1)\
  434. gen_rtx_fmt_te_stat (c, m, p0, p1 MEM_STAT_INFO)
  435. static inline rtx
  436. gen_rtx_fmt_t_stat (RTX_CODE code, machine_mode mode,
  437. tree arg0 MEM_STAT_DECL)
  438. {
  439. rtx rt;
  440. rt = rtx_alloc (code PASS_MEM_STAT);
  441. PUT_MODE_RAW (rt, mode);
  442. XTREE (rt, 0) = arg0;
  443. return rt;
  444. }
  445. #define gen_rtx_fmt_t(c, m, p0)\
  446. gen_rtx_fmt_t_stat (c, m, p0 MEM_STAT_INFO)
  447. static inline rtx
  448. gen_rtx_fmt_iss_stat (RTX_CODE code, machine_mode mode,
  449. int arg0,
  450. const char *arg1,
  451. const char *arg2 MEM_STAT_DECL)
  452. {
  453. rtx rt;
  454. rt = rtx_alloc (code PASS_MEM_STAT);
  455. PUT_MODE_RAW (rt, mode);
  456. XINT (rt, 0) = arg0;
  457. XSTR (rt, 1) = arg1;
  458. XSTR (rt, 2) = arg2;
  459. return rt;
  460. }
  461. #define gen_rtx_fmt_iss(c, m, p0, p1, p2)\
  462. gen_rtx_fmt_iss_stat (c, m, p0, p1, p2 MEM_STAT_INFO)
  463. static inline rtx
  464. gen_rtx_fmt_is_stat (RTX_CODE code, machine_mode mode,
  465. int arg0,
  466. const char *arg1 MEM_STAT_DECL)
  467. {
  468. rtx rt;
  469. rt = rtx_alloc (code PASS_MEM_STAT);
  470. PUT_MODE_RAW (rt, mode);
  471. XINT (rt, 0) = arg0;
  472. XSTR (rt, 1) = arg1;
  473. return rt;
  474. }
  475. #define gen_rtx_fmt_is(c, m, p0, p1)\
  476. gen_rtx_fmt_is_stat (c, m, p0, p1 MEM_STAT_INFO)
  477. static inline rtx
  478. gen_rtx_fmt_isE_stat (RTX_CODE code, machine_mode mode,
  479. int arg0,
  480. const char *arg1,
  481. rtvec arg2 MEM_STAT_DECL)
  482. {
  483. rtx rt;
  484. rt = rtx_alloc (code PASS_MEM_STAT);
  485. PUT_MODE_RAW (rt, mode);
  486. XINT (rt, 0) = arg0;
  487. XSTR (rt, 1) = arg1;
  488. XVEC (rt, 2) = arg2;
  489. return rt;
  490. }
  491. #define gen_rtx_fmt_isE(c, m, p0, p1, p2)\
  492. gen_rtx_fmt_isE_stat (c, m, p0, p1, p2 MEM_STAT_INFO)
  493. static inline rtx
  494. gen_rtx_fmt_iE_stat (RTX_CODE code, machine_mode mode,
  495. int arg0,
  496. rtvec arg1 MEM_STAT_DECL)
  497. {
  498. rtx rt;
  499. rt = rtx_alloc (code PASS_MEM_STAT);
  500. PUT_MODE_RAW (rt, mode);
  501. XINT (rt, 0) = arg0;
  502. XVEC (rt, 1) = arg1;
  503. return rt;
  504. }
  505. #define gen_rtx_fmt_iE(c, m, p0, p1)\
  506. gen_rtx_fmt_iE_stat (c, m, p0, p1 MEM_STAT_INFO)
  507. static inline rtx
  508. gen_rtx_fmt_ss_stat (RTX_CODE code, machine_mode mode,
  509. const char *arg0,
  510. const char *arg1 MEM_STAT_DECL)
  511. {
  512. rtx rt;
  513. rt = rtx_alloc (code PASS_MEM_STAT);
  514. PUT_MODE_RAW (rt, mode);
  515. XSTR (rt, 0) = arg0;
  516. XSTR (rt, 1) = arg1;
  517. return rt;
  518. }
  519. #define gen_rtx_fmt_ss(c, m, p0, p1)\
  520. gen_rtx_fmt_ss_stat (c, m, p0, p1 MEM_STAT_INFO)
  521. static inline rtx
  522. gen_rtx_fmt_eE_stat (RTX_CODE code, machine_mode mode,
  523. rtx arg0,
  524. rtvec arg1 MEM_STAT_DECL)
  525. {
  526. rtx rt;
  527. rt = rtx_alloc (code PASS_MEM_STAT);
  528. PUT_MODE_RAW (rt, mode);
  529. XEXP (rt, 0) = arg0;
  530. XVEC (rt, 1) = arg1;
  531. return rt;
  532. }
  533. #define gen_rtx_fmt_eE(c, m, p0, p1)\
  534. gen_rtx_fmt_eE_stat (c, m, p0, p1 MEM_STAT_INFO)
  535. static inline rtx
  536. gen_rtx_fmt_ses_stat (RTX_CODE code, machine_mode mode,
  537. const char *arg0,
  538. rtx arg1,
  539. const char *arg2 MEM_STAT_DECL)
  540. {
  541. rtx rt;
  542. rt = rtx_alloc (code PASS_MEM_STAT);
  543. PUT_MODE_RAW (rt, mode);
  544. XSTR (rt, 0) = arg0;
  545. XEXP (rt, 1) = arg1;
  546. XSTR (rt, 2) = arg2;
  547. return rt;
  548. }
  549. #define gen_rtx_fmt_ses(c, m, p0, p1, p2)\
  550. gen_rtx_fmt_ses_stat (c, m, p0, p1, p2 MEM_STAT_INFO)
  551. static inline rtx
  552. gen_rtx_fmt_sss_stat (RTX_CODE code, machine_mode mode,
  553. const char *arg0,
  554. const char *arg1,
  555. const char *arg2 MEM_STAT_DECL)
  556. {
  557. rtx rt;
  558. rt = rtx_alloc (code PASS_MEM_STAT);
  559. PUT_MODE_RAW (rt, mode);
  560. XSTR (rt, 0) = arg0;
  561. XSTR (rt, 1) = arg1;
  562. XSTR (rt, 2) = arg2;
  563. return rt;
  564. }
  565. #define gen_rtx_fmt_sss(c, m, p0, p1, p2)\
  566. gen_rtx_fmt_sss_stat (c, m, p0, p1, p2 MEM_STAT_INFO)
  567. static inline rtx
  568. gen_rtx_fmt_sse_stat (RTX_CODE code, machine_mode mode,
  569. const char *arg0,
  570. const char *arg1,
  571. rtx arg2 MEM_STAT_DECL)
  572. {
  573. rtx rt;
  574. rt = rtx_alloc (code PASS_MEM_STAT);
  575. PUT_MODE_RAW (rt, mode);
  576. XSTR (rt, 0) = arg0;
  577. XSTR (rt, 1) = arg1;
  578. XEXP (rt, 2) = arg2;
  579. return rt;
  580. }
  581. #define gen_rtx_fmt_sse(c, m, p0, p1, p2)\
  582. gen_rtx_fmt_sse_stat (c, m, p0, p1, p2 MEM_STAT_INFO)
  583. static inline rtx
  584. gen_rtx_fmt_sies_stat (RTX_CODE code, machine_mode mode,
  585. const char *arg0,
  586. int arg1,
  587. rtx arg2,
  588. const char *arg3 MEM_STAT_DECL)
  589. {
  590. rtx rt;
  591. rt = rtx_alloc (code PASS_MEM_STAT);
  592. PUT_MODE_RAW (rt, mode);
  593. XSTR (rt, 0) = arg0;
  594. XINT (rt, 1) = arg1;
  595. XEXP (rt, 2) = arg2;
  596. XSTR (rt, 3) = arg3;
  597. return rt;
  598. }
  599. #define gen_rtx_fmt_sies(c, m, p0, p1, p2, p3)\
  600. gen_rtx_fmt_sies_stat (c, m, p0, p1, p2, p3 MEM_STAT_INFO)
  601. static inline rtx
  602. gen_rtx_fmt_sE_stat (RTX_CODE code, machine_mode mode,
  603. const char *arg0,
  604. rtvec arg1 MEM_STAT_DECL)
  605. {
  606. rtx rt;
  607. rt = rtx_alloc (code PASS_MEM_STAT);
  608. PUT_MODE_RAW (rt, mode);
  609. XSTR (rt, 0) = arg0;
  610. XVEC (rt, 1) = arg1;
  611. return rt;
  612. }
  613. #define gen_rtx_fmt_sE(c, m, p0, p1)\
  614. gen_rtx_fmt_sE_stat (c, m, p0, p1 MEM_STAT_INFO)
  615. static inline rtx
  616. gen_rtx_fmt_ww_stat (RTX_CODE code, machine_mode mode,
  617. HOST_WIDE_INT arg0,
  618. HOST_WIDE_INT arg1 MEM_STAT_DECL)
  619. {
  620. rtx rt;
  621. rt = rtx_alloc (code PASS_MEM_STAT);
  622. PUT_MODE_RAW (rt, mode);
  623. XWINT (rt, 0) = arg0;
  624. XWINT (rt, 1) = arg1;
  625. return rt;
  626. }
  627. #define gen_rtx_fmt_ww(c, m, p0, p1)\
  628. gen_rtx_fmt_ww_stat (c, m, p0, p1 MEM_STAT_INFO)
  629. static inline rtx
  630. gen_rtx_fmt_Ee_stat (RTX_CODE code, machine_mode mode,
  631. rtvec arg0,
  632. rtx arg1 MEM_STAT_DECL)
  633. {
  634. rtx rt;
  635. rt = rtx_alloc (code PASS_MEM_STAT);
  636. PUT_MODE_RAW (rt, mode);
  637. XVEC (rt, 0) = arg0;
  638. XEXP (rt, 1) = arg1;
  639. return rt;
  640. }
  641. #define gen_rtx_fmt_Ee(c, m, p0, p1)\
  642. gen_rtx_fmt_Ee_stat (c, m, p0, p1 MEM_STAT_INFO)
  643. static inline rtx
  644. gen_rtx_fmt_sEsE_stat (RTX_CODE code, machine_mode mode,
  645. const char *arg0,
  646. rtvec arg1,
  647. const char *arg2,
  648. rtvec arg3 MEM_STAT_DECL)
  649. {
  650. rtx rt;
  651. rt = rtx_alloc (code PASS_MEM_STAT);
  652. PUT_MODE_RAW (rt, mode);
  653. XSTR (rt, 0) = arg0;
  654. XVEC (rt, 1) = arg1;
  655. XSTR (rt, 2) = arg2;
  656. XVEC (rt, 3) = arg3;
  657. return rt;
  658. }
  659. #define gen_rtx_fmt_sEsE(c, m, p0, p1, p2, p3)\
  660. gen_rtx_fmt_sEsE_stat (c, m, p0, p1, p2, p3 MEM_STAT_INFO)
  661. static inline rtx
  662. gen_rtx_fmt_ssss_stat (RTX_CODE code, machine_mode mode,
  663. const char *arg0,
  664. const char *arg1,
  665. const char *arg2,
  666. const char *arg3 MEM_STAT_DECL)
  667. {
  668. rtx rt;
  669. rt = rtx_alloc (code PASS_MEM_STAT);
  670. PUT_MODE_RAW (rt, mode);
  671. XSTR (rt, 0) = arg0;
  672. XSTR (rt, 1) = arg1;
  673. XSTR (rt, 2) = arg2;
  674. XSTR (rt, 3) = arg3;
  675. return rt;
  676. }
  677. #define gen_rtx_fmt_ssss(c, m, p0, p1, p2, p3)\
  678. gen_rtx_fmt_ssss_stat (c, m, p0, p1, p2, p3 MEM_STAT_INFO)
  679. #define gen_rtx_VALUE(MODE) \
  680. gen_rtx_fmt_0 (VALUE, (MODE))
  681. #define gen_rtx_DEBUG_EXPR(MODE) \
  682. gen_rtx_fmt_0 (DEBUG_EXPR, (MODE))
  683. #define gen_rtx_raw_EXPR_LIST(MODE, ARG0, ARG1) \
  684. gen_rtx_fmt_ee (EXPR_LIST, (MODE), (ARG0), (ARG1))
  685. #define gen_rtx_raw_INSN_LIST(MODE, ARG0, ARG1) \
  686. gen_rtx_fmt_ue (INSN_LIST, (MODE), (ARG0), (ARG1))
  687. #define gen_rtx_INT_LIST(MODE, ARG0, ARG1) \
  688. gen_rtx_fmt_ie (INT_LIST, (MODE), (ARG0), (ARG1))
  689. #define gen_rtx_SEQUENCE(MODE, ARG0) \
  690. gen_rtx_fmt_E (SEQUENCE, (MODE), (ARG0))
  691. #define gen_rtx_ADDRESS(MODE, ARG0) \
  692. gen_rtx_fmt_i (ADDRESS, (MODE), (ARG0))
  693. #define gen_rtx_DEBUG_INSN(MODE, ARG0, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6) \
  694. gen_rtx_fmt_uuBeiie (DEBUG_INSN, (MODE), (ARG0), (ARG1), (ARG2), (ARG3), (ARG4), (ARG5), (ARG6))
  695. #define gen_rtx_raw_INSN(MODE, ARG0, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6) \
  696. gen_rtx_fmt_uuBeiie (INSN, (MODE), (ARG0), (ARG1), (ARG2), (ARG3), (ARG4), (ARG5), (ARG6))
  697. #define gen_rtx_JUMP_INSN(MODE, ARG0, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6) \
  698. gen_rtx_fmt_uuBeiie0 (JUMP_INSN, (MODE), (ARG0), (ARG1), (ARG2), (ARG3), (ARG4), (ARG5), (ARG6))
  699. #define gen_rtx_CALL_INSN(MODE, ARG0, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7) \
  700. gen_rtx_fmt_uuBeiiee (CALL_INSN, (MODE), (ARG0), (ARG1), (ARG2), (ARG3), (ARG4), (ARG5), (ARG6), (ARG7))
  701. #define gen_rtx_JUMP_TABLE_DATA(MODE, ARG0, ARG1, ARG2, ARG3) \
  702. gen_rtx_fmt_uuBe0000 (JUMP_TABLE_DATA, (MODE), (ARG0), (ARG1), (ARG2), (ARG3))
  703. #define gen_rtx_BARRIER(MODE, ARG0, ARG1) \
  704. gen_rtx_fmt_uu00000 (BARRIER, (MODE), (ARG0), (ARG1))
  705. #define gen_rtx_CODE_LABEL(MODE, ARG0, ARG1, ARG2, ARG3, ARG4) \
  706. gen_rtx_fmt_uuB00is (CODE_LABEL, (MODE), (ARG0), (ARG1), (ARG2), (ARG3), (ARG4))
  707. #define gen_rtx_COND_EXEC(MODE, ARG0, ARG1) \
  708. gen_rtx_fmt_ee (COND_EXEC, (MODE), (ARG0), (ARG1))
  709. #define gen_rtx_PARALLEL(MODE, ARG0) \
  710. gen_rtx_fmt_E (PARALLEL, (MODE), (ARG0))
  711. #define gen_rtx_ASM_INPUT(MODE, ARG0, ARG1) \
  712. gen_rtx_fmt_si (ASM_INPUT, (MODE), (ARG0), (ARG1))
  713. #define gen_rtx_ASM_OPERANDS(MODE, ARG0, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6) \
  714. gen_rtx_fmt_ssiEEEi (ASM_OPERANDS, (MODE), (ARG0), (ARG1), (ARG2), (ARG3), (ARG4), (ARG5), (ARG6))
  715. #define gen_rtx_UNSPEC(MODE, ARG0, ARG1) \
  716. gen_rtx_fmt_Ei (UNSPEC, (MODE), (ARG0), (ARG1))
  717. #define gen_rtx_UNSPEC_VOLATILE(MODE, ARG0, ARG1) \
  718. gen_rtx_fmt_Ei (UNSPEC_VOLATILE, (MODE), (ARG0), (ARG1))
  719. #define gen_rtx_ADDR_VEC(MODE, ARG0) \
  720. gen_rtx_fmt_E (ADDR_VEC, (MODE), (ARG0))
  721. #define gen_rtx_ADDR_DIFF_VEC(MODE, ARG0, ARG1, ARG2, ARG3) \
  722. gen_rtx_fmt_eEee0 (ADDR_DIFF_VEC, (MODE), (ARG0), (ARG1), (ARG2), (ARG3))
  723. #define gen_rtx_PREFETCH(MODE, ARG0, ARG1, ARG2) \
  724. gen_rtx_fmt_eee (PREFETCH, (MODE), (ARG0), (ARG1), (ARG2))
  725. #define gen_rtx_SET(ARG0, ARG1) \
  726. gen_rtx_fmt_ee (SET, VOIDmode, (ARG0), (ARG1))
  727. #define gen_rtx_USE(MODE, ARG0) \
  728. gen_rtx_fmt_e (USE, (MODE), (ARG0))
  729. #define gen_rtx_CLOBBER(MODE, ARG0) \
  730. gen_rtx_fmt_e (CLOBBER, (MODE), (ARG0))
  731. #define gen_rtx_CLOBBER_HIGH(MODE, ARG0) \
  732. gen_rtx_fmt_e (CLOBBER_HIGH, (MODE), (ARG0))
  733. #define gen_rtx_CALL(MODE, ARG0, ARG1) \
  734. gen_rtx_fmt_ee (CALL, (MODE), (ARG0), (ARG1))
  735. #define gen_rtx_raw_RETURN(MODE) \
  736. gen_rtx_fmt_ (RETURN, (MODE))
  737. #define gen_rtx_raw_SIMPLE_RETURN(MODE) \
  738. gen_rtx_fmt_ (SIMPLE_RETURN, (MODE))
  739. #define gen_rtx_EH_RETURN(MODE) \
  740. gen_rtx_fmt_ (EH_RETURN, (MODE))
  741. #define gen_rtx_TRAP_IF(MODE, ARG0, ARG1) \
  742. gen_rtx_fmt_ee (TRAP_IF, (MODE), (ARG0), (ARG1))
  743. #define gen_rtx_raw_CONST_INT(MODE, ARG0) \
  744. gen_rtx_fmt_w (CONST_INT, (MODE), (ARG0))
  745. #define gen_rtx_raw_CONST_VECTOR(MODE, ARG0) \
  746. gen_rtx_fmt_E (CONST_VECTOR, (MODE), (ARG0))
  747. #define gen_rtx_CONST_STRING(MODE, ARG0) \
  748. gen_rtx_fmt_s (CONST_STRING, (MODE), (ARG0))
  749. #define gen_rtx_CONST(MODE, ARG0) \
  750. gen_rtx_fmt_e (CONST, (MODE), (ARG0))
  751. #define gen_rtx_raw_PC(MODE) \
  752. gen_rtx_fmt_ (PC, (MODE))
  753. #define gen_rtx_SCRATCH(MODE) \
  754. gen_rtx_fmt_ (SCRATCH, (MODE))
  755. #define gen_rtx_raw_SUBREG(MODE, ARG0, ARG1) \
  756. gen_rtx_fmt_ep (SUBREG, (MODE), (ARG0), (ARG1))
  757. #define gen_rtx_STRICT_LOW_PART(MODE, ARG0) \
  758. gen_rtx_fmt_e (STRICT_LOW_PART, (MODE), (ARG0))
  759. #define gen_rtx_CONCAT(MODE, ARG0, ARG1) \
  760. gen_rtx_fmt_ee (CONCAT, (MODE), (ARG0), (ARG1))
  761. #define gen_rtx_CONCATN(MODE, ARG0) \
  762. gen_rtx_fmt_E (CONCATN, (MODE), (ARG0))
  763. #define gen_rtx_raw_MEM(MODE, ARG0) \
  764. gen_rtx_fmt_e0 (MEM, (MODE), (ARG0))
  765. #define gen_rtx_LABEL_REF(MODE, ARG0) \
  766. gen_rtx_fmt_u (LABEL_REF, (MODE), (ARG0))
  767. #define gen_rtx_SYMBOL_REF(MODE, ARG0) \
  768. gen_rtx_fmt_s0 (SYMBOL_REF, (MODE), (ARG0))
  769. #define gen_rtx_raw_CC0(MODE) \
  770. gen_rtx_fmt_ (CC0, (MODE))
  771. #define gen_rtx_IF_THEN_ELSE(MODE, ARG0, ARG1, ARG2) \
  772. gen_rtx_fmt_eee (IF_THEN_ELSE, (MODE), (ARG0), (ARG1), (ARG2))
  773. #define gen_rtx_COMPARE(MODE, ARG0, ARG1) \
  774. gen_rtx_fmt_ee (COMPARE, (MODE), (ARG0), (ARG1))
  775. #define gen_rtx_PLUS(MODE, ARG0, ARG1) \
  776. gen_rtx_fmt_ee (PLUS, (MODE), (ARG0), (ARG1))
  777. #define gen_rtx_MINUS(MODE, ARG0, ARG1) \
  778. gen_rtx_fmt_ee (MINUS, (MODE), (ARG0), (ARG1))
  779. #define gen_rtx_NEG(MODE, ARG0) \
  780. gen_rtx_fmt_e (NEG, (MODE), (ARG0))
  781. #define gen_rtx_MULT(MODE, ARG0, ARG1) \
  782. gen_rtx_fmt_ee (MULT, (MODE), (ARG0), (ARG1))
  783. #define gen_rtx_SS_MULT(MODE, ARG0, ARG1) \
  784. gen_rtx_fmt_ee (SS_MULT, (MODE), (ARG0), (ARG1))
  785. #define gen_rtx_US_MULT(MODE, ARG0, ARG1) \
  786. gen_rtx_fmt_ee (US_MULT, (MODE), (ARG0), (ARG1))
  787. #define gen_rtx_DIV(MODE, ARG0, ARG1) \
  788. gen_rtx_fmt_ee (DIV, (MODE), (ARG0), (ARG1))
  789. #define gen_rtx_SS_DIV(MODE, ARG0, ARG1) \
  790. gen_rtx_fmt_ee (SS_DIV, (MODE), (ARG0), (ARG1))
  791. #define gen_rtx_US_DIV(MODE, ARG0, ARG1) \
  792. gen_rtx_fmt_ee (US_DIV, (MODE), (ARG0), (ARG1))
  793. #define gen_rtx_MOD(MODE, ARG0, ARG1) \
  794. gen_rtx_fmt_ee (MOD, (MODE), (ARG0), (ARG1))
  795. #define gen_rtx_UDIV(MODE, ARG0, ARG1) \
  796. gen_rtx_fmt_ee (UDIV, (MODE), (ARG0), (ARG1))
  797. #define gen_rtx_UMOD(MODE, ARG0, ARG1) \
  798. gen_rtx_fmt_ee (UMOD, (MODE), (ARG0), (ARG1))
  799. #define gen_rtx_AND(MODE, ARG0, ARG1) \
  800. gen_rtx_fmt_ee (AND, (MODE), (ARG0), (ARG1))
  801. #define gen_rtx_IOR(MODE, ARG0, ARG1) \
  802. gen_rtx_fmt_ee (IOR, (MODE), (ARG0), (ARG1))
  803. #define gen_rtx_XOR(MODE, ARG0, ARG1) \
  804. gen_rtx_fmt_ee (XOR, (MODE), (ARG0), (ARG1))
  805. #define gen_rtx_NOT(MODE, ARG0) \
  806. gen_rtx_fmt_e (NOT, (MODE), (ARG0))
  807. #define gen_rtx_ASHIFT(MODE, ARG0, ARG1) \
  808. gen_rtx_fmt_ee (ASHIFT, (MODE), (ARG0), (ARG1))
  809. #define gen_rtx_ROTATE(MODE, ARG0, ARG1) \
  810. gen_rtx_fmt_ee (ROTATE, (MODE), (ARG0), (ARG1))
  811. #define gen_rtx_ASHIFTRT(MODE, ARG0, ARG1) \
  812. gen_rtx_fmt_ee (ASHIFTRT, (MODE), (ARG0), (ARG1))
  813. #define gen_rtx_LSHIFTRT(MODE, ARG0, ARG1) \
  814. gen_rtx_fmt_ee (LSHIFTRT, (MODE), (ARG0), (ARG1))
  815. #define gen_rtx_ROTATERT(MODE, ARG0, ARG1) \
  816. gen_rtx_fmt_ee (ROTATERT, (MODE), (ARG0), (ARG1))
  817. #define gen_rtx_SMIN(MODE, ARG0, ARG1) \
  818. gen_rtx_fmt_ee (SMIN, (MODE), (ARG0), (ARG1))
  819. #define gen_rtx_SMAX(MODE, ARG0, ARG1) \
  820. gen_rtx_fmt_ee (SMAX, (MODE), (ARG0), (ARG1))
  821. #define gen_rtx_UMIN(MODE, ARG0, ARG1) \
  822. gen_rtx_fmt_ee (UMIN, (MODE), (ARG0), (ARG1))
  823. #define gen_rtx_UMAX(MODE, ARG0, ARG1) \
  824. gen_rtx_fmt_ee (UMAX, (MODE), (ARG0), (ARG1))
  825. #define gen_rtx_PRE_DEC(MODE, ARG0) \
  826. gen_rtx_fmt_e (PRE_DEC, (MODE), (ARG0))
  827. #define gen_rtx_PRE_INC(MODE, ARG0) \
  828. gen_rtx_fmt_e (PRE_INC, (MODE), (ARG0))
  829. #define gen_rtx_POST_DEC(MODE, ARG0) \
  830. gen_rtx_fmt_e (POST_DEC, (MODE), (ARG0))
  831. #define gen_rtx_POST_INC(MODE, ARG0) \
  832. gen_rtx_fmt_e (POST_INC, (MODE), (ARG0))
  833. #define gen_rtx_PRE_MODIFY(MODE, ARG0, ARG1) \
  834. gen_rtx_fmt_ee (PRE_MODIFY, (MODE), (ARG0), (ARG1))
  835. #define gen_rtx_POST_MODIFY(MODE, ARG0, ARG1) \
  836. gen_rtx_fmt_ee (POST_MODIFY, (MODE), (ARG0), (ARG1))
  837. #define gen_rtx_NE(MODE, ARG0, ARG1) \
  838. gen_rtx_fmt_ee (NE, (MODE), (ARG0), (ARG1))
  839. #define gen_rtx_EQ(MODE, ARG0, ARG1) \
  840. gen_rtx_fmt_ee (EQ, (MODE), (ARG0), (ARG1))
  841. #define gen_rtx_GE(MODE, ARG0, ARG1) \
  842. gen_rtx_fmt_ee (GE, (MODE), (ARG0), (ARG1))
  843. #define gen_rtx_GT(MODE, ARG0, ARG1) \
  844. gen_rtx_fmt_ee (GT, (MODE), (ARG0), (ARG1))
  845. #define gen_rtx_LE(MODE, ARG0, ARG1) \
  846. gen_rtx_fmt_ee (LE, (MODE), (ARG0), (ARG1))
  847. #define gen_rtx_LT(MODE, ARG0, ARG1) \
  848. gen_rtx_fmt_ee (LT, (MODE), (ARG0), (ARG1))
  849. #define gen_rtx_GEU(MODE, ARG0, ARG1) \
  850. gen_rtx_fmt_ee (GEU, (MODE), (ARG0), (ARG1))
  851. #define gen_rtx_GTU(MODE, ARG0, ARG1) \
  852. gen_rtx_fmt_ee (GTU, (MODE), (ARG0), (ARG1))
  853. #define gen_rtx_LEU(MODE, ARG0, ARG1) \
  854. gen_rtx_fmt_ee (LEU, (MODE), (ARG0), (ARG1))
  855. #define gen_rtx_LTU(MODE, ARG0, ARG1) \
  856. gen_rtx_fmt_ee (LTU, (MODE), (ARG0), (ARG1))
  857. #define gen_rtx_UNORDERED(MODE, ARG0, ARG1) \
  858. gen_rtx_fmt_ee (UNORDERED, (MODE), (ARG0), (ARG1))
  859. #define gen_rtx_ORDERED(MODE, ARG0, ARG1) \
  860. gen_rtx_fmt_ee (ORDERED, (MODE), (ARG0), (ARG1))
  861. #define gen_rtx_UNEQ(MODE, ARG0, ARG1) \
  862. gen_rtx_fmt_ee (UNEQ, (MODE), (ARG0), (ARG1))
  863. #define gen_rtx_UNGE(MODE, ARG0, ARG1) \
  864. gen_rtx_fmt_ee (UNGE, (MODE), (ARG0), (ARG1))
  865. #define gen_rtx_UNGT(MODE, ARG0, ARG1) \
  866. gen_rtx_fmt_ee (UNGT, (MODE), (ARG0), (ARG1))
  867. #define gen_rtx_UNLE(MODE, ARG0, ARG1) \
  868. gen_rtx_fmt_ee (UNLE, (MODE), (ARG0), (ARG1))
  869. #define gen_rtx_UNLT(MODE, ARG0, ARG1) \
  870. gen_rtx_fmt_ee (UNLT, (MODE), (ARG0), (ARG1))
  871. #define gen_rtx_LTGT(MODE, ARG0, ARG1) \
  872. gen_rtx_fmt_ee (LTGT, (MODE), (ARG0), (ARG1))
  873. #define gen_rtx_SIGN_EXTEND(MODE, ARG0) \
  874. gen_rtx_fmt_e (SIGN_EXTEND, (MODE), (ARG0))
  875. #define gen_rtx_ZERO_EXTEND(MODE, ARG0) \
  876. gen_rtx_fmt_e (ZERO_EXTEND, (MODE), (ARG0))
  877. #define gen_rtx_TRUNCATE(MODE, ARG0) \
  878. gen_rtx_fmt_e (TRUNCATE, (MODE), (ARG0))
  879. #define gen_rtx_FLOAT_EXTEND(MODE, ARG0) \
  880. gen_rtx_fmt_e (FLOAT_EXTEND, (MODE), (ARG0))
  881. #define gen_rtx_FLOAT_TRUNCATE(MODE, ARG0) \
  882. gen_rtx_fmt_e (FLOAT_TRUNCATE, (MODE), (ARG0))
  883. #define gen_rtx_FLOAT(MODE, ARG0) \
  884. gen_rtx_fmt_e (FLOAT, (MODE), (ARG0))
  885. #define gen_rtx_FIX(MODE, ARG0) \
  886. gen_rtx_fmt_e (FIX, (MODE), (ARG0))
  887. #define gen_rtx_UNSIGNED_FLOAT(MODE, ARG0) \
  888. gen_rtx_fmt_e (UNSIGNED_FLOAT, (MODE), (ARG0))
  889. #define gen_rtx_UNSIGNED_FIX(MODE, ARG0) \
  890. gen_rtx_fmt_e (UNSIGNED_FIX, (MODE), (ARG0))
  891. #define gen_rtx_FRACT_CONVERT(MODE, ARG0) \
  892. gen_rtx_fmt_e (FRACT_CONVERT, (MODE), (ARG0))
  893. #define gen_rtx_UNSIGNED_FRACT_CONVERT(MODE, ARG0) \
  894. gen_rtx_fmt_e (UNSIGNED_FRACT_CONVERT, (MODE), (ARG0))
  895. #define gen_rtx_SAT_FRACT(MODE, ARG0) \
  896. gen_rtx_fmt_e (SAT_FRACT, (MODE), (ARG0))
  897. #define gen_rtx_UNSIGNED_SAT_FRACT(MODE, ARG0) \
  898. gen_rtx_fmt_e (UNSIGNED_SAT_FRACT, (MODE), (ARG0))
  899. #define gen_rtx_ABS(MODE, ARG0) \
  900. gen_rtx_fmt_e (ABS, (MODE), (ARG0))
  901. #define gen_rtx_SQRT(MODE, ARG0) \
  902. gen_rtx_fmt_e (SQRT, (MODE), (ARG0))
  903. #define gen_rtx_BSWAP(MODE, ARG0) \
  904. gen_rtx_fmt_e (BSWAP, (MODE), (ARG0))
  905. #define gen_rtx_FFS(MODE, ARG0) \
  906. gen_rtx_fmt_e (FFS, (MODE), (ARG0))
  907. #define gen_rtx_CLRSB(MODE, ARG0) \
  908. gen_rtx_fmt_e (CLRSB, (MODE), (ARG0))
  909. #define gen_rtx_CLZ(MODE, ARG0) \
  910. gen_rtx_fmt_e (CLZ, (MODE), (ARG0))
  911. #define gen_rtx_CTZ(MODE, ARG0) \
  912. gen_rtx_fmt_e (CTZ, (MODE), (ARG0))
  913. #define gen_rtx_POPCOUNT(MODE, ARG0) \
  914. gen_rtx_fmt_e (POPCOUNT, (MODE), (ARG0))
  915. #define gen_rtx_PARITY(MODE, ARG0) \
  916. gen_rtx_fmt_e (PARITY, (MODE), (ARG0))
  917. #define gen_rtx_SIGN_EXTRACT(MODE, ARG0, ARG1, ARG2) \
  918. gen_rtx_fmt_eee (SIGN_EXTRACT, (MODE), (ARG0), (ARG1), (ARG2))
  919. #define gen_rtx_ZERO_EXTRACT(MODE, ARG0, ARG1, ARG2) \
  920. gen_rtx_fmt_eee (ZERO_EXTRACT, (MODE), (ARG0), (ARG1), (ARG2))
  921. #define gen_rtx_HIGH(MODE, ARG0) \
  922. gen_rtx_fmt_e (HIGH, (MODE), (ARG0))
  923. #define gen_rtx_LO_SUM(MODE, ARG0, ARG1) \
  924. gen_rtx_fmt_ee (LO_SUM, (MODE), (ARG0), (ARG1))
  925. #define gen_rtx_VEC_MERGE(MODE, ARG0, ARG1, ARG2) \
  926. gen_rtx_fmt_eee (VEC_MERGE, (MODE), (ARG0), (ARG1), (ARG2))
  927. #define gen_rtx_VEC_SELECT(MODE, ARG0, ARG1) \
  928. gen_rtx_fmt_ee (VEC_SELECT, (MODE), (ARG0), (ARG1))
  929. #define gen_rtx_VEC_CONCAT(MODE, ARG0, ARG1) \
  930. gen_rtx_fmt_ee (VEC_CONCAT, (MODE), (ARG0), (ARG1))
  931. #define gen_rtx_VEC_DUPLICATE(MODE, ARG0) \
  932. gen_rtx_fmt_e (VEC_DUPLICATE, (MODE), (ARG0))
  933. #define gen_rtx_VEC_SERIES(MODE, ARG0, ARG1) \
  934. gen_rtx_fmt_ee (VEC_SERIES, (MODE), (ARG0), (ARG1))
  935. #define gen_rtx_SS_PLUS(MODE, ARG0, ARG1) \
  936. gen_rtx_fmt_ee (SS_PLUS, (MODE), (ARG0), (ARG1))
  937. #define gen_rtx_US_PLUS(MODE, ARG0, ARG1) \
  938. gen_rtx_fmt_ee (US_PLUS, (MODE), (ARG0), (ARG1))
  939. #define gen_rtx_SS_MINUS(MODE, ARG0, ARG1) \
  940. gen_rtx_fmt_ee (SS_MINUS, (MODE), (ARG0), (ARG1))
  941. #define gen_rtx_SS_NEG(MODE, ARG0) \
  942. gen_rtx_fmt_e (SS_NEG, (MODE), (ARG0))
  943. #define gen_rtx_US_NEG(MODE, ARG0) \
  944. gen_rtx_fmt_e (US_NEG, (MODE), (ARG0))
  945. #define gen_rtx_SS_ABS(MODE, ARG0) \
  946. gen_rtx_fmt_e (SS_ABS, (MODE), (ARG0))
  947. #define gen_rtx_SS_ASHIFT(MODE, ARG0, ARG1) \
  948. gen_rtx_fmt_ee (SS_ASHIFT, (MODE), (ARG0), (ARG1))
  949. #define gen_rtx_US_ASHIFT(MODE, ARG0, ARG1) \
  950. gen_rtx_fmt_ee (US_ASHIFT, (MODE), (ARG0), (ARG1))
  951. #define gen_rtx_US_MINUS(MODE, ARG0, ARG1) \
  952. gen_rtx_fmt_ee (US_MINUS, (MODE), (ARG0), (ARG1))
  953. #define gen_rtx_SS_TRUNCATE(MODE, ARG0) \
  954. gen_rtx_fmt_e (SS_TRUNCATE, (MODE), (ARG0))
  955. #define gen_rtx_US_TRUNCATE(MODE, ARG0) \
  956. gen_rtx_fmt_e (US_TRUNCATE, (MODE), (ARG0))
  957. #define gen_rtx_FMA(MODE, ARG0, ARG1, ARG2) \
  958. gen_rtx_fmt_eee (FMA, (MODE), (ARG0), (ARG1), (ARG2))
  959. #define gen_rtx_DEBUG_IMPLICIT_PTR(MODE, ARG0) \
  960. gen_rtx_fmt_t (DEBUG_IMPLICIT_PTR, (MODE), (ARG0))
  961. #define gen_rtx_ENTRY_VALUE(MODE) \
  962. gen_rtx_fmt_0 (ENTRY_VALUE, (MODE))
  963. #define gen_rtx_DEBUG_PARAMETER_REF(MODE, ARG0) \
  964. gen_rtx_fmt_t (DEBUG_PARAMETER_REF, (MODE), (ARG0))
  965. #define gen_rtx_DEBUG_MARKER(MODE) \
  966. gen_rtx_fmt_ (DEBUG_MARKER, (MODE))
  967. #define gen_rtx_MATCH_OPERAND(MODE, ARG0, ARG1, ARG2) \
  968. gen_rtx_fmt_iss (MATCH_OPERAND, (MODE), (ARG0), (ARG1), (ARG2))
  969. #define gen_rtx_MATCH_SCRATCH(MODE, ARG0, ARG1) \
  970. gen_rtx_fmt_is (MATCH_SCRATCH, (MODE), (ARG0), (ARG1))
  971. #define gen_rtx_MATCH_OPERATOR(MODE, ARG0, ARG1, ARG2) \
  972. gen_rtx_fmt_isE (MATCH_OPERATOR, (MODE), (ARG0), (ARG1), (ARG2))
  973. #define gen_rtx_MATCH_PARALLEL(MODE, ARG0, ARG1, ARG2) \
  974. gen_rtx_fmt_isE (MATCH_PARALLEL, (MODE), (ARG0), (ARG1), (ARG2))
  975. #define gen_rtx_MATCH_DUP(MODE, ARG0) \
  976. gen_rtx_fmt_i (MATCH_DUP, (MODE), (ARG0))
  977. #define gen_rtx_MATCH_OP_DUP(MODE, ARG0, ARG1) \
  978. gen_rtx_fmt_iE (MATCH_OP_DUP, (MODE), (ARG0), (ARG1))
  979. #define gen_rtx_MATCH_PAR_DUP(MODE, ARG0, ARG1) \
  980. gen_rtx_fmt_iE (MATCH_PAR_DUP, (MODE), (ARG0), (ARG1))
  981. #define gen_rtx_MATCH_CODE(MODE, ARG0, ARG1) \
  982. gen_rtx_fmt_ss (MATCH_CODE, (MODE), (ARG0), (ARG1))
  983. #define gen_rtx_MATCH_TEST(MODE, ARG0) \
  984. gen_rtx_fmt_s (MATCH_TEST, (MODE), (ARG0))
  985. #define gen_rtx_DEFINE_DELAY(MODE, ARG0, ARG1) \
  986. gen_rtx_fmt_eE (DEFINE_DELAY, (MODE), (ARG0), (ARG1))
  987. #define gen_rtx_DEFINE_PREDICATE(MODE, ARG0, ARG1, ARG2) \
  988. gen_rtx_fmt_ses (DEFINE_PREDICATE, (MODE), (ARG0), (ARG1), (ARG2))
  989. #define gen_rtx_DEFINE_SPECIAL_PREDICATE(MODE, ARG0, ARG1, ARG2) \
  990. gen_rtx_fmt_ses (DEFINE_SPECIAL_PREDICATE, (MODE), (ARG0), (ARG1), (ARG2))
  991. #define gen_rtx_DEFINE_REGISTER_CONSTRAINT(MODE, ARG0, ARG1, ARG2) \
  992. gen_rtx_fmt_sss (DEFINE_REGISTER_CONSTRAINT, (MODE), (ARG0), (ARG1), (ARG2))
  993. #define gen_rtx_DEFINE_CONSTRAINT(MODE, ARG0, ARG1, ARG2) \
  994. gen_rtx_fmt_sse (DEFINE_CONSTRAINT, (MODE), (ARG0), (ARG1), (ARG2))
  995. #define gen_rtx_DEFINE_MEMORY_CONSTRAINT(MODE, ARG0, ARG1, ARG2) \
  996. gen_rtx_fmt_sse (DEFINE_MEMORY_CONSTRAINT, (MODE), (ARG0), (ARG1), (ARG2))
  997. #define gen_rtx_DEFINE_SPECIAL_MEMORY_CONSTRAINT(MODE, ARG0, ARG1, ARG2) \
  998. gen_rtx_fmt_sse (DEFINE_SPECIAL_MEMORY_CONSTRAINT, (MODE), (ARG0), (ARG1), (ARG2))
  999. #define gen_rtx_DEFINE_ADDRESS_CONSTRAINT(MODE, ARG0, ARG1, ARG2) \
  1000. gen_rtx_fmt_sse (DEFINE_ADDRESS_CONSTRAINT, (MODE), (ARG0), (ARG1), (ARG2))
  1001. #define gen_rtx_EXCLUSION_SET(MODE, ARG0, ARG1) \
  1002. gen_rtx_fmt_ss (EXCLUSION_SET, (MODE), (ARG0), (ARG1))
  1003. #define gen_rtx_PRESENCE_SET(MODE, ARG0, ARG1) \
  1004. gen_rtx_fmt_ss (PRESENCE_SET, (MODE), (ARG0), (ARG1))
  1005. #define gen_rtx_FINAL_PRESENCE_SET(MODE, ARG0, ARG1) \
  1006. gen_rtx_fmt_ss (FINAL_PRESENCE_SET, (MODE), (ARG0), (ARG1))
  1007. #define gen_rtx_ABSENCE_SET(MODE, ARG0, ARG1) \
  1008. gen_rtx_fmt_ss (ABSENCE_SET, (MODE), (ARG0), (ARG1))
  1009. #define gen_rtx_FINAL_ABSENCE_SET(MODE, ARG0, ARG1) \
  1010. gen_rtx_fmt_ss (FINAL_ABSENCE_SET, (MODE), (ARG0), (ARG1))
  1011. #define gen_rtx_DEFINE_AUTOMATON(MODE, ARG0) \
  1012. gen_rtx_fmt_s (DEFINE_AUTOMATON, (MODE), (ARG0))
  1013. #define gen_rtx_AUTOMATA_OPTION(MODE, ARG0) \
  1014. gen_rtx_fmt_s (AUTOMATA_OPTION, (MODE), (ARG0))
  1015. #define gen_rtx_DEFINE_RESERVATION(MODE, ARG0, ARG1) \
  1016. gen_rtx_fmt_ss (DEFINE_RESERVATION, (MODE), (ARG0), (ARG1))
  1017. #define gen_rtx_DEFINE_INSN_RESERVATION(MODE, ARG0, ARG1, ARG2, ARG3) \
  1018. gen_rtx_fmt_sies (DEFINE_INSN_RESERVATION, (MODE), (ARG0), (ARG1), (ARG2), (ARG3))
  1019. #define gen_rtx_DEFINE_ATTR(MODE, ARG0, ARG1, ARG2) \
  1020. gen_rtx_fmt_sse (DEFINE_ATTR, (MODE), (ARG0), (ARG1), (ARG2))
  1021. #define gen_rtx_DEFINE_ENUM_ATTR(MODE, ARG0, ARG1, ARG2) \
  1022. gen_rtx_fmt_sse (DEFINE_ENUM_ATTR, (MODE), (ARG0), (ARG1), (ARG2))
  1023. #define gen_rtx_ATTR(MODE, ARG0) \
  1024. gen_rtx_fmt_s (ATTR, (MODE), (ARG0))
  1025. #define gen_rtx_SET_ATTR(MODE, ARG0, ARG1) \
  1026. gen_rtx_fmt_ss (SET_ATTR, (MODE), (ARG0), (ARG1))
  1027. #define gen_rtx_SET_ATTR_ALTERNATIVE(MODE, ARG0, ARG1) \
  1028. gen_rtx_fmt_sE (SET_ATTR_ALTERNATIVE, (MODE), (ARG0), (ARG1))
  1029. #define gen_rtx_EQ_ATTR(MODE, ARG0, ARG1) \
  1030. gen_rtx_fmt_ss (EQ_ATTR, (MODE), (ARG0), (ARG1))
  1031. #define gen_rtx_EQ_ATTR_ALT(MODE, ARG0, ARG1) \
  1032. gen_rtx_fmt_ww (EQ_ATTR_ALT, (MODE), (ARG0), (ARG1))
  1033. #define gen_rtx_ATTR_FLAG(MODE, ARG0) \
  1034. gen_rtx_fmt_s (ATTR_FLAG, (MODE), (ARG0))
  1035. #define gen_rtx_COND(MODE, ARG0, ARG1) \
  1036. gen_rtx_fmt_Ee (COND, (MODE), (ARG0), (ARG1))
  1037. #define gen_rtx_DEFINE_SUBST(MODE, ARG0, ARG1, ARG2, ARG3) \
  1038. gen_rtx_fmt_sEsE (DEFINE_SUBST, (MODE), (ARG0), (ARG1), (ARG2), (ARG3))
  1039. #define gen_rtx_DEFINE_SUBST_ATTR(MODE, ARG0, ARG1, ARG2, ARG3) \
  1040. gen_rtx_fmt_ssss (DEFINE_SUBST_ATTR, (MODE), (ARG0), (ARG1), (ARG2), (ARG3))
  1041. #endif /* GCC_GENRTL_H */