insn-output.c 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386
  1. /* Generated automatically by the program `genoutput'
  2. from the machine description file `md'. */
  3. #include "config.h"
  4. #include "rtl.h"
  5. #include "regs.h"
  6. #include "conditions.h"
  7. #include "insn-flags.h"
  8. #include "insn-config.h"
  9. extern rtx adj_offsetable_operand();
  10. extern void output_asm_insn();
  11. #include "aux-output.c"
  12. char *
  13. output_insn_hairy (code_number, operands, insn)
  14. int code_number;
  15. rtx *operands;
  16. rtx insn;
  17. {
  18. switch (code_number)
  19. {
  20. case 13:
  21. {
  22. if (operands[1] == dconst0_rtx)
  23. return "clrd %0";
  24. return "movd %1,%0";
  25. }
  26. case 14:
  27. {
  28. if (operands[1] == fconst0_rtx)
  29. return "clrf %0";
  30. return "movf %1,%0";
  31. }
  32. case 17:
  33. { if (operands[1] == const1_rtx
  34. && GET_MODE (REG_NOTES (insn)) == (enum machine_mode) REG_WAS_0)
  35. return "incl %0";
  36. if (GET_CODE (operands[1]) == SYMBOL_REF || GET_CODE (operands[1]) == CONST)
  37. {
  38. if (push_operand (operands[0], SImode))
  39. return "pushab %a1";
  40. return "movab %a1,%0";
  41. }
  42. if (operands[1] == const0_rtx)
  43. return "clrl %0";
  44. if (GET_CODE (operands[1]) == CONST_INT
  45. && (unsigned) INTVAL (operands[1]) >= 64)
  46. {
  47. int i = INTVAL (operands[1]);
  48. if ((unsigned)(-i) < 64)
  49. {
  50. operands[1] = gen_rtx (CONST_INT, VOIDmode, -i);
  51. return "mnegl %1,%0";
  52. }
  53. if ((unsigned)i < 0x100)
  54. return "movzbl %1,%0";
  55. if (i >= -0x80 && i < 0)
  56. return "cvtbl %1,%0";
  57. if ((unsigned)i < 0x10000)
  58. return "movzwl %1,%0";
  59. if (i >= -0x8000 && i < 0)
  60. return "cvtwl %1,%0";
  61. }
  62. if (push_operand (operands[0], SImode))
  63. return "pushl %1";
  64. return "movl %1,%0";
  65. }
  66. case 18:
  67. {
  68. if (operands[1] == const1_rtx
  69. && GET_MODE (REG_NOTES (insn)) == (enum machine_mode) REG_WAS_0)
  70. return "incw %0";
  71. if (operands[1] == const0_rtx)
  72. return "clrw %0";
  73. if (GET_CODE (operands[1]) == CONST_INT
  74. && (unsigned) INTVAL (operands[1]) >= 64)
  75. {
  76. int i = INTVAL (operands[1]);
  77. if ((unsigned)(-i) < 64)
  78. {
  79. operands[1] = gen_rtx (CONST_INT, VOIDmode, -i);
  80. return "mnegw %1,%0";
  81. }
  82. if ((unsigned)i < 0x100)
  83. return "movzbw %1,%0";
  84. if (i >= -0x80 && i < 0)
  85. return "cvtbw %1,%0";
  86. }
  87. return "movw %1,%0";
  88. }
  89. case 19:
  90. {
  91. if (operands[1] == const0_rtx)
  92. return "clrb %0";
  93. return "movb %1,%0";
  94. }
  95. case 21:
  96. {
  97. if (push_operand (operands[0], SImode))
  98. return "pushab %a1";
  99. return "movab %a1,%0";
  100. }
  101. case 22:
  102. {
  103. if (push_operand (operands[0], SImode))
  104. return "pushaw %a1";
  105. return "movaw %a1,%0";
  106. }
  107. case 23:
  108. {
  109. if (push_operand (operands[0], SImode))
  110. return "pushal %a1";
  111. return "moval %a1,%0";
  112. }
  113. case 24:
  114. {
  115. if (push_operand (operands[0], SImode))
  116. return "pushaf %a1";
  117. return "movaf %a1,%0";
  118. }
  119. case 25:
  120. {
  121. if (push_operand (operands[0], SImode))
  122. return "pushad %a1";
  123. return "movad %a1,%0";
  124. }
  125. case 49:
  126. {
  127. if (rtx_equal_p (operands[0], operands[1]))
  128. return "addd2 %2,%0";
  129. if (rtx_equal_p (operands[0], operands[2]))
  130. return "addd2 %1,%0";
  131. return "addd3 %1,%2,%0";
  132. }
  133. case 50:
  134. {
  135. if (rtx_equal_p (operands[0], operands[1]))
  136. return "addf2 %2,%0";
  137. if (rtx_equal_p (operands[0], operands[2]))
  138. return "addf2 %1,%0";
  139. return "addf3 %1,%2,%0";
  140. }
  141. case 51:
  142. {
  143. if (rtx_equal_p (operands[0], operands[1]))
  144. {
  145. if (operands[2] == const1_rtx)
  146. return "incl %0";
  147. if (GET_CODE (operands[1]) == CONST_INT
  148. && INTVAL (operands[1]) == -1)
  149. return "decl %0";
  150. if (GET_CODE (operands[2]) == CONST_INT
  151. && (unsigned) (- INTVAL (operands[2])) < 64)
  152. return "subl2 $%n2,%0";
  153. return "addl2 %2,%0";
  154. }
  155. if (rtx_equal_p (operands[0], operands[2]))
  156. return "addl2 %1,%0";
  157. if (GET_CODE (operands[2]) == CONST_INT
  158. && GET_CODE (operands[1]) == REG)
  159. {
  160. if (push_operand (operands[0], SImode))
  161. return "pushab %c2(%1)";
  162. return "movab %c2(%1),%0";
  163. }
  164. if (GET_CODE (operands[2]) == CONST_INT
  165. && (unsigned) (- INTVAL (operands[2])) < 64)
  166. return "subl3 $%n2,%1,%0";
  167. return "addl3 %1,%2,%0";
  168. }
  169. case 52:
  170. {
  171. if (rtx_equal_p (operands[0], operands[1]))
  172. {
  173. if (operands[2] == const1_rtx)
  174. return "incw %0";
  175. if (GET_CODE (operands[1]) == CONST_INT
  176. && INTVAL (operands[1]) == -1)
  177. return "decw %0";
  178. if (GET_CODE (operands[2]) == CONST_INT
  179. && (unsigned) (- INTVAL (operands[2])) < 64)
  180. return "subw2 $%n2,%0";
  181. return "addw2 %2,%0";
  182. }
  183. if (rtx_equal_p (operands[0], operands[2]))
  184. return "addw2 %1,%0";
  185. if (GET_CODE (operands[2]) == CONST_INT
  186. && (unsigned) (- INTVAL (operands[2])) < 64)
  187. return "subw3 $%n2,%1,%0";
  188. return "addw3 %1,%2,%0";
  189. }
  190. case 53:
  191. {
  192. if (rtx_equal_p (operands[0], operands[1]))
  193. {
  194. if (operands[2] == const1_rtx)
  195. return "incb %0";
  196. if (GET_CODE (operands[1]) == CONST_INT
  197. && INTVAL (operands[1]) == -1)
  198. return "decb %0";
  199. if (GET_CODE (operands[2]) == CONST_INT
  200. && (unsigned) (- INTVAL (operands[2])) < 64)
  201. return "subb2 $%n2,%0";
  202. return "addb2 %2,%0";
  203. }
  204. if (rtx_equal_p (operands[0], operands[2]))
  205. return "addb2 %1,%0";
  206. if (GET_CODE (operands[2]) == CONST_INT
  207. && (unsigned) (- INTVAL (operands[2])) < 64)
  208. return "subb3 $%n2,%1,%0";
  209. return "addb3 %1,%2,%0";
  210. }
  211. case 54:
  212. {
  213. if (rtx_equal_p (operands[0], operands[1]))
  214. return "subd2 %2,%0";
  215. return "subd3 %2,%1,%0";
  216. }
  217. case 55:
  218. {
  219. if (rtx_equal_p (operands[0], operands[1]))
  220. return "subf2 %2,%0";
  221. return "subf3 %2,%1,%0";
  222. }
  223. case 56:
  224. {
  225. if (rtx_equal_p (operands[0], operands[1]))
  226. {
  227. if (operands[2] == const1_rtx)
  228. return "decl %0";
  229. return "subl2 %2,%0";
  230. }
  231. return "subl3 %2,%1,%0";
  232. }
  233. case 57:
  234. {
  235. if (rtx_equal_p (operands[0], operands[1]))
  236. {
  237. if (operands[2] == const1_rtx)
  238. return "decw %0";
  239. return "subw2 %2,%0";
  240. }
  241. return "subw3 %2,%1,%0";
  242. }
  243. case 58:
  244. {
  245. if (rtx_equal_p (operands[0], operands[1]))
  246. {
  247. if (operands[2] == const1_rtx)
  248. return "decb %0";
  249. return "subb2 %2,%0";
  250. }
  251. return "subb3 %2,%1,%0";
  252. }
  253. case 59:
  254. {
  255. if (rtx_equal_p (operands[0], operands[1]))
  256. return "muld2 %2,%0";
  257. if (rtx_equal_p (operands[0], operands[2]))
  258. return "muld2 %1,%0";
  259. return "muld3 %1,%2,%0";
  260. }
  261. case 60:
  262. {
  263. if (rtx_equal_p (operands[0], operands[1]))
  264. return "mulf2 %2,%0";
  265. if (rtx_equal_p (operands[0], operands[2]))
  266. return "mulf2 %1,%0";
  267. return "mulf3 %1,%2,%0";
  268. }
  269. case 61:
  270. {
  271. if (rtx_equal_p (operands[0], operands[1]))
  272. return "mull2 %2,%0";
  273. if (rtx_equal_p (operands[0], operands[2]))
  274. return "mull2 %1,%0";
  275. return "mull3 %1,%2,%0";
  276. }
  277. case 62:
  278. {
  279. if (rtx_equal_p (operands[0], operands[1]))
  280. return "mulw2 %2,%0";
  281. if (rtx_equal_p (operands[0], operands[2]))
  282. return "mulw2 %1,%0";
  283. return "mulw3 %1,%2,%0";
  284. }
  285. case 63:
  286. {
  287. if (rtx_equal_p (operands[0], operands[1]))
  288. return "mulb2 %2,%0";
  289. if (rtx_equal_p (operands[0], operands[2]))
  290. return "mulb2 %1,%0";
  291. return "mulb3 %1,%2,%0";
  292. }
  293. case 64:
  294. {
  295. if (rtx_equal_p (operands[0], operands[1]))
  296. return "divd2 %2,%0";
  297. return "divd3 %2,%1,%0";
  298. }
  299. case 65:
  300. {
  301. if (rtx_equal_p (operands[0], operands[1]))
  302. return "divf2 %2,%0";
  303. return "divf3 %2,%1,%0";
  304. }
  305. case 66:
  306. {
  307. if (rtx_equal_p (operands[0], operands[1]))
  308. return "divl2 %2,%0";
  309. return "divl3 %2,%1,%0";
  310. }
  311. case 67:
  312. {
  313. if (rtx_equal_p (operands[0], operands[1]))
  314. return "divw2 %2,%0";
  315. return "divw3 %2,%1,%0";
  316. }
  317. case 68:
  318. {
  319. if (rtx_equal_p (operands[0], operands[1]))
  320. return "divb2 %2,%0";
  321. return "divb3 %2,%1,%0";
  322. }
  323. case 69:
  324. {
  325. if (rtx_equal_p (operands[0], operands[1]))
  326. return "bicl2 %2,%0";
  327. return "bicl3 %2,%1,%0";
  328. }
  329. case 70:
  330. {
  331. if (rtx_equal_p (operands[0], operands[1]))
  332. return "bicw2 %2,%0";
  333. return "bicw3 %2,%1,%0";
  334. }
  335. case 71:
  336. {
  337. if (rtx_equal_p (operands[0], operands[1]))
  338. return "bicb2 %2,%0";
  339. return "bicb3 %2,%1,%0";
  340. }
  341. case 72:
  342. { operands[2] = gen_rtx (CONST_INT, VOIDmode, ~INTVAL (operands[2]));
  343. if (rtx_equal_p (operands[1], operands[0]))
  344. return "bicl2 %2,%0";
  345. return "bicl3 %2,%1,%0";
  346. }
  347. case 73:
  348. { operands[2] = gen_rtx (CONST_INT, VOIDmode, 0xffff & ~INTVAL (operands[2]));
  349. if (rtx_equal_p (operands[1], operands[0]))
  350. return "bicw2 %2,%0";
  351. return "bicw3 %2,%1,%0";
  352. }
  353. case 74:
  354. { operands[2] = gen_rtx (CONST_INT, VOIDmode, 0xff & ~INTVAL (operands[2]));
  355. if (rtx_equal_p (operands[1], operands[0]))
  356. return "bicb2 %2,%0";
  357. return "bicb3 %2,%1,%0";
  358. }
  359. case 75:
  360. {
  361. if (rtx_equal_p (operands[0], operands[1]))
  362. return "bisl2 %2,%0";
  363. if (rtx_equal_p (operands[0], operands[2]))
  364. return "bisl2 %1,%0";
  365. return "bisl3 %2,%1,%0";
  366. }
  367. case 76:
  368. {
  369. if (rtx_equal_p (operands[0], operands[1]))
  370. return "bisw2 %2,%0";
  371. if (rtx_equal_p (operands[0], operands[2]))
  372. return "bisw2 %1,%0";
  373. return "bisw3 %2,%1,%0";
  374. }
  375. case 77:
  376. {
  377. if (rtx_equal_p (operands[0], operands[1]))
  378. return "bisb2 %2,%0";
  379. if (rtx_equal_p (operands[0], operands[2]))
  380. return "bisb2 %1,%0";
  381. return "bisb3 %2,%1,%0";
  382. }
  383. case 78:
  384. {
  385. if (rtx_equal_p (operands[0], operands[1]))
  386. return "xorl2 %2,%0";
  387. if (rtx_equal_p (operands[0], operands[2]))
  388. return "xorl2 %1,%0";
  389. return "xorl3 %2,%1,%0";
  390. }
  391. case 79:
  392. {
  393. if (rtx_equal_p (operands[0], operands[1]))
  394. return "xorw2 %2,%0";
  395. if (rtx_equal_p (operands[0], operands[2]))
  396. return "xorw2 %1,%0";
  397. return "xorw3 %2,%1,%0";
  398. }
  399. case 80:
  400. {
  401. if (rtx_equal_p (operands[0], operands[1]))
  402. return "xorb2 %2,%0";
  403. if (rtx_equal_p (operands[0], operands[2]))
  404. return "xorb2 %1,%0";
  405. return "xorb3 %2,%1,%0";
  406. }
  407. default: abort ();
  408. }
  409. }
  410. char *insn_template[] =
  411. {
  412. "tstd %0",
  413. "tstf %0",
  414. "tstl %0",
  415. "tstw %0",
  416. "tstb %0",
  417. "cmpd %0,%1",
  418. "cmpf %0,%1",
  419. "cmpl %0,%1",
  420. "cmpw %0,%1",
  421. "cmpb %0,%1",
  422. "bitl %0,%1",
  423. "bitw %0,%1",
  424. "bitb %0,%1",
  425. 0,
  426. 0,
  427. "movh %1,%0",
  428. "movd %1,%0",
  429. 0,
  430. 0,
  431. 0,
  432. "movc3 %2,%1,%0",
  433. 0,
  434. 0,
  435. 0,
  436. 0,
  437. 0,
  438. "cvtbw %1,%0",
  439. "cvtbl %1,%0",
  440. "cvtbf %1,%0",
  441. "cvtbd %1,%0",
  442. "cvtwb %1,%0",
  443. "cvtwl %1,%0",
  444. "cvtwf %1,%0",
  445. "cvtwd %1,%0",
  446. "cvtlb %1,%0",
  447. "cvtlw %1,%0",
  448. "cvtlf %1,%0",
  449. "cvtld %1,%0",
  450. "cvtfb %1,%0",
  451. "cvtfw %1,%0",
  452. "cvtfl %1,%0",
  453. "cvtfd %1,%0",
  454. "cvtdb %1,%0",
  455. "cvtdw %1,%0",
  456. "cvtdl %1,%0",
  457. "cvtdf %1,%0",
  458. "movzbw %1,%0",
  459. "movzbl %1,%0",
  460. "movzwl %1,%0",
  461. 0,
  462. 0,
  463. 0,
  464. 0,
  465. 0,
  466. 0,
  467. 0,
  468. 0,
  469. 0,
  470. 0,
  471. 0,
  472. 0,
  473. 0,
  474. 0,
  475. 0,
  476. 0,
  477. 0,
  478. 0,
  479. 0,
  480. 0,
  481. 0,
  482. 0,
  483. 0,
  484. 0,
  485. 0,
  486. 0,
  487. 0,
  488. 0,
  489. 0,
  490. 0,
  491. 0,
  492. 0,
  493. "mnegd %1,%0",
  494. "mnegf %1,%0",
  495. "mnegl %1,%0",
  496. "mnegw %1,%0",
  497. "mnegb %1,%0",
  498. "mcoml %1,%0",
  499. "mcomw %1,%0",
  500. "mcomb %1,%0",
  501. "ashl %2,%1,%0",
  502. "ashq %2,%1,%0",
  503. "rotl %2,%1,%0",
  504. "rotq %2,%1,%0",
  505. "index %1,$??,$??,%3,%2,%0",
  506. "cmpv %2,%1,%0,%3",
  507. "cmpzv %2,%1,%0,%3",
  508. "extv %3,%2,%1,%0",
  509. "extzv %3,%2,%1,%0",
  510. "extv %3,%2,%1,%0",
  511. "extzv %3,%2,%1,%0",
  512. "insv %3,%2,%1,%0",
  513. "insv %3,%2,%1,%0",
  514. "jbr %l0",
  515. "jeql %l0",
  516. "jneq %l0",
  517. "jgtr %l0",
  518. "jgtru %l0",
  519. "jlss %l0",
  520. "jlssu %l0",
  521. "jgeq %l0",
  522. "jgequ %l0",
  523. "jleq %l0",
  524. "jlequ %l0",
  525. "jneq %l0",
  526. "jeql %l0",
  527. "jleq %l0",
  528. "jlequ %l0",
  529. "jgeq %l0",
  530. "jgequ %l0",
  531. "jlss %l0",
  532. "jlssu %l0",
  533. "jgtr %l0",
  534. "jgtru %l0",
  535. "jbs %1,%0,%l2",
  536. "jbc %1,%0,%l2",
  537. "jbc %1,%0,%l2",
  538. "jbs %1,%0,%l2",
  539. "jbs %1,%0,%l2",
  540. "jbc %1,%0,%l2",
  541. "jbc %1,%0,%l2",
  542. "jbs %1,%0,%l2",
  543. "jlbs %0,%l1",
  544. "jlbc %0,%l1",
  545. "jlbc %0,%l1",
  546. "jlbs %0,%l1",
  547. "jlbs %0,%l1",
  548. "jlbc %0,%l1",
  549. "jlbc %0,%l1",
  550. "jlbs %0,%l1",
  551. "jsobgtr %0,%l1",
  552. "jsobgeq %0,%l1",
  553. "jsobgtr %0,%l1",
  554. "jsobgeq %0,%l1",
  555. "jaoblss %1,%0,%l2",
  556. "jaobleq %1,%0,%l2",
  557. "jaoblss %1,%0,%l2",
  558. "jaobleq %1,%0,%l2",
  559. "calls %1,%0",
  560. "ret",
  561. "casel %0,%1,%2",
  562. "casel %0,$0,%1",
  563. };
  564. rtx (*insn_gen_function[]) () =
  565. {
  566. gen_tstdf,
  567. gen_tstsf,
  568. gen_tstsi,
  569. gen_tsthi,
  570. gen_tstqi,
  571. gen_cmpdf,
  572. gen_cmpsf,
  573. gen_cmpsi,
  574. gen_cmphi,
  575. gen_cmpqi,
  576. 0,
  577. 0,
  578. 0,
  579. gen_movdf,
  580. gen_movsf,
  581. gen_movti,
  582. gen_movdi,
  583. gen_movsi,
  584. gen_movhi,
  585. gen_movqi,
  586. gen_movstrhi,
  587. 0,
  588. 0,
  589. 0,
  590. 0,
  591. 0,
  592. gen_extendqihi2,
  593. gen_extendqisi2,
  594. gen_floatqisf2,
  595. gen_floatqidf2,
  596. gen_trunchiqi2,
  597. gen_extendhisi2,
  598. gen_floathisf2,
  599. gen_floathidf2,
  600. gen_truncsiqi2,
  601. gen_truncsihi2,
  602. gen_floatsisf2,
  603. gen_floatsidf2,
  604. gen_fixsfqi2,
  605. gen_fixsfhi2,
  606. gen_fixsfsi2,
  607. gen_extendsfdf2,
  608. gen_fixdfqi2,
  609. gen_fixdfhi2,
  610. gen_fixdfsi2,
  611. gen_truncdfsf2,
  612. gen_zero_extendqihi2,
  613. gen_zero_extendqisi2,
  614. gen_zero_extendhisi2,
  615. gen_adddf3,
  616. gen_addsf3,
  617. gen_addsi3,
  618. gen_addhi3,
  619. gen_addqi3,
  620. gen_subdf3,
  621. gen_subsf3,
  622. gen_subsi3,
  623. gen_subhi3,
  624. gen_subqi3,
  625. gen_muldf3,
  626. gen_mulsf3,
  627. gen_mulsi3,
  628. gen_mulhi3,
  629. gen_mulqi3,
  630. gen_divdf3,
  631. gen_divsf3,
  632. gen_divsi3,
  633. gen_divhi3,
  634. gen_divqi3,
  635. gen_andcbsi3,
  636. gen_andcbhi3,
  637. gen_andcbqi3,
  638. 0,
  639. 0,
  640. 0,
  641. gen_iorsi3,
  642. gen_iorhi3,
  643. gen_iorqi3,
  644. gen_xorsi3,
  645. gen_xorhi3,
  646. gen_xorqi3,
  647. gen_negdf2,
  648. gen_negsf2,
  649. gen_negsi2,
  650. gen_neghi2,
  651. gen_negqi2,
  652. gen_one_cmplsi2,
  653. gen_one_cmplhi2,
  654. gen_one_cmplqi2,
  655. gen_ashlsi3,
  656. gen_ashldi3,
  657. gen_rotlsi3,
  658. gen_rotldi3,
  659. 0,
  660. 0,
  661. 0,
  662. gen_extv,
  663. gen_extzv,
  664. 0,
  665. 0,
  666. gen_insv,
  667. 0,
  668. gen_jump,
  669. gen_beq,
  670. gen_bne,
  671. gen_bgt,
  672. gen_bgtu,
  673. gen_blt,
  674. gen_bltu,
  675. gen_bge,
  676. gen_bgeu,
  677. gen_ble,
  678. gen_bleu,
  679. 0,
  680. 0,
  681. 0,
  682. 0,
  683. 0,
  684. 0,
  685. 0,
  686. 0,
  687. 0,
  688. 0,
  689. 0,
  690. 0,
  691. 0,
  692. 0,
  693. 0,
  694. 0,
  695. 0,
  696. 0,
  697. 0,
  698. 0,
  699. 0,
  700. 0,
  701. 0,
  702. 0,
  703. 0,
  704. 0,
  705. 0,
  706. 0,
  707. 0,
  708. 0,
  709. 0,
  710. 0,
  711. 0,
  712. 0,
  713. gen_call,
  714. gen_return,
  715. gen_casesi,
  716. 0,
  717. };
  718. int insn_n_operands[] =
  719. {
  720. 1,
  721. 1,
  722. 1,
  723. 1,
  724. 1,
  725. 2,
  726. 2,
  727. 2,
  728. 2,
  729. 2,
  730. 2,
  731. 2,
  732. 2,
  733. 2,
  734. 2,
  735. 2,
  736. 2,
  737. 2,
  738. 2,
  739. 2,
  740. 3,
  741. 2,
  742. 2,
  743. 2,
  744. 2,
  745. 2,
  746. 2,
  747. 2,
  748. 2,
  749. 2,
  750. 2,
  751. 2,
  752. 2,
  753. 2,
  754. 2,
  755. 2,
  756. 2,
  757. 2,
  758. 2,
  759. 2,
  760. 2,
  761. 2,
  762. 2,
  763. 2,
  764. 2,
  765. 2,
  766. 2,
  767. 2,
  768. 2,
  769. 3,
  770. 3,
  771. 3,
  772. 3,
  773. 3,
  774. 3,
  775. 3,
  776. 3,
  777. 3,
  778. 3,
  779. 3,
  780. 3,
  781. 3,
  782. 3,
  783. 3,
  784. 3,
  785. 3,
  786. 3,
  787. 3,
  788. 3,
  789. 3,
  790. 3,
  791. 3,
  792. 3,
  793. 3,
  794. 3,
  795. 3,
  796. 3,
  797. 3,
  798. 3,
  799. 3,
  800. 3,
  801. 2,
  802. 2,
  803. 2,
  804. 2,
  805. 2,
  806. 2,
  807. 2,
  808. 2,
  809. 3,
  810. 3,
  811. 3,
  812. 3,
  813. 4,
  814. 4,
  815. 4,
  816. 4,
  817. 4,
  818. 4,
  819. 4,
  820. 4,
  821. 4,
  822. 0,
  823. 0,
  824. 0,
  825. 0,
  826. 0,
  827. 0,
  828. 0,
  829. 0,
  830. 0,
  831. 0,
  832. 0,
  833. 0,
  834. 0,
  835. 0,
  836. 0,
  837. 0,
  838. 0,
  839. 0,
  840. 0,
  841. 0,
  842. 0,
  843. 2,
  844. 2,
  845. 2,
  846. 2,
  847. 2,
  848. 2,
  849. 2,
  850. 2,
  851. 1,
  852. 1,
  853. 1,
  854. 1,
  855. 1,
  856. 1,
  857. 1,
  858. 1,
  859. 1,
  860. 1,
  861. 1,
  862. 1,
  863. 2,
  864. 2,
  865. 2,
  866. 2,
  867. 2,
  868. 0,
  869. 3,
  870. 2,
  871. };
  872. int insn_n_dups[] =
  873. {
  874. 0,
  875. 0,
  876. 0,
  877. 0,
  878. 0,
  879. 0,
  880. 0,
  881. 0,
  882. 0,
  883. 0,
  884. 0,
  885. 0,
  886. 0,
  887. 0,
  888. 0,
  889. 0,
  890. 0,
  891. 0,
  892. 0,
  893. 0,
  894. 0,
  895. 0,
  896. 0,
  897. 0,
  898. 0,
  899. 0,
  900. 0,
  901. 0,
  902. 0,
  903. 0,
  904. 0,
  905. 0,
  906. 0,
  907. 0,
  908. 0,
  909. 0,
  910. 0,
  911. 0,
  912. 0,
  913. 0,
  914. 0,
  915. 0,
  916. 0,
  917. 0,
  918. 0,
  919. 0,
  920. 0,
  921. 0,
  922. 0,
  923. 0,
  924. 0,
  925. 0,
  926. 0,
  927. 0,
  928. 0,
  929. 0,
  930. 0,
  931. 0,
  932. 0,
  933. 0,
  934. 0,
  935. 0,
  936. 0,
  937. 0,
  938. 0,
  939. 0,
  940. 0,
  941. 0,
  942. 0,
  943. 0,
  944. 0,
  945. 0,
  946. 0,
  947. 0,
  948. 0,
  949. 0,
  950. 0,
  951. 0,
  952. 0,
  953. 0,
  954. 0,
  955. 0,
  956. 0,
  957. 0,
  958. 0,
  959. 0,
  960. 0,
  961. 0,
  962. 0,
  963. 0,
  964. 0,
  965. 0,
  966. 0,
  967. 0,
  968. 0,
  969. 0,
  970. 0,
  971. 0,
  972. 0,
  973. 0,
  974. 0,
  975. 0,
  976. 0,
  977. 0,
  978. 0,
  979. 0,
  980. 0,
  981. 0,
  982. 0,
  983. 0,
  984. 0,
  985. 0,
  986. 0,
  987. 0,
  988. 0,
  989. 0,
  990. 0,
  991. 0,
  992. 0,
  993. 0,
  994. 0,
  995. 0,
  996. 0,
  997. 0,
  998. 0,
  999. 0,
  1000. 0,
  1001. 0,
  1002. 0,
  1003. 0,
  1004. 0,
  1005. 0,
  1006. 0,
  1007. 0,
  1008. 0,
  1009. 0,
  1010. 0,
  1011. 0,
  1012. 0,
  1013. 2,
  1014. 2,
  1015. 2,
  1016. 2,
  1017. 2,
  1018. 2,
  1019. 2,
  1020. 2,
  1021. 0,
  1022. 0,
  1023. 2,
  1024. 1,
  1025. };
  1026. char *insn_operand_constraint[][MAX_RECOG_OPERANDS] =
  1027. {
  1028. { "gF", },
  1029. { "gF", },
  1030. { "g", },
  1031. { "g", },
  1032. { "g", },
  1033. { "gF", "gF", },
  1034. { "gF", "gF", },
  1035. { "g", "g", },
  1036. { "g", "g", },
  1037. { "g", "g", },
  1038. { "g", "g", },
  1039. { "g", "g", },
  1040. { "g", "g", },
  1041. { "=g", "gF", },
  1042. { "=g", "gF", },
  1043. { "=g", "g", },
  1044. { "=g", "g", },
  1045. { "=g", "g", },
  1046. { "=g", "g", },
  1047. { "=g", "g", },
  1048. { "=g", "g", "g", },
  1049. { "=g", "p", },
  1050. { "=g", "p", },
  1051. { "=g", "p", },
  1052. { "=g", "p", },
  1053. { "=g", "p", },
  1054. { "=g", "g", },
  1055. { "=g", "g", },
  1056. { "=g", "g", },
  1057. { "=g", "g", },
  1058. { "=g", "g", },
  1059. { "=g", "g", },
  1060. { "=g", "g", },
  1061. { "=g", "g", },
  1062. { "=g", "g", },
  1063. { "=g", "g", },
  1064. { "=g", "g", },
  1065. { "=g", "g", },
  1066. { "=g", "gF", },
  1067. { "=g", "gF", },
  1068. { "=g", "gF", },
  1069. { "=g", "gF", },
  1070. { "=g", "gF", },
  1071. { "=g", "gF", },
  1072. { "=g", "gF", },
  1073. { "=g", "gF", },
  1074. { "=g", "g", },
  1075. { "=g", "g", },
  1076. { "=g", "g", },
  1077. { "=g", "gF", "gF", },
  1078. { "=g", "gF", "gF", },
  1079. { "=g", "g", "g", },
  1080. { "=g", "g", "g", },
  1081. { "=g", "g", "g", },
  1082. { "=g", "gF", "gF", },
  1083. { "=g", "gF", "gF", },
  1084. { "=g", "g", "g", },
  1085. { "=g", "g", "g", },
  1086. { "=g", "g", "g", },
  1087. { "=g", "gF", "gF", },
  1088. { "=g", "gF", "gF", },
  1089. { "=g", "g", "g", },
  1090. { "=g", "g", "g", },
  1091. { "=g", "g", "g", },
  1092. { "=g", "gF", "gF", },
  1093. { "=g", "gF", "gF", },
  1094. { "=g", "g", "g", },
  1095. { "=g", "g", "g", },
  1096. { "=g", "g", "g", },
  1097. { "=g", "g", "g", },
  1098. { "=g", "g", "g", },
  1099. { "=g", "g", "g", },
  1100. { "=g", "g", "g", },
  1101. { "=g", "g", "g", },
  1102. { "=g", "g", "g", },
  1103. { "=g", "g", "g", },
  1104. { "=g", "g", "g", },
  1105. { "=g", "g", "g", },
  1106. { "=g", "g", "g", },
  1107. { "=g", "g", "g", },
  1108. { "=g", "g", "g", },
  1109. { "=g", "gF", },
  1110. { "=g", "gF", },
  1111. { "=g", "g", },
  1112. { "=g", "g", },
  1113. { "=g", "g", },
  1114. { "=g", "g", },
  1115. { "=g", "g", },
  1116. { "=g", "g", },
  1117. { "=g", "g", "g", },
  1118. { "=g", "g", "g", },
  1119. { "=g", "g", "g", },
  1120. { "=g", "g", "g", },
  1121. { "=g", "g", "g", "g", },
  1122. { "g", "g", "g", "g", },
  1123. { "g", "g", "g", "g", },
  1124. { "=g", "g", "g", "g", },
  1125. { "=g", "g", "g", "g", },
  1126. { "=g", "r", "g", "g", },
  1127. { "=g", "r", "g", "g", },
  1128. { "=g", "g", "g", "g", },
  1129. { "=r", "g", "g", "g", },
  1130. { 0 },
  1131. { 0 },
  1132. { 0 },
  1133. { 0 },
  1134. { 0 },
  1135. { 0 },
  1136. { 0 },
  1137. { 0 },
  1138. { 0 },
  1139. { 0 },
  1140. { 0 },
  1141. { 0 },
  1142. { 0 },
  1143. { 0 },
  1144. { 0 },
  1145. { 0 },
  1146. { 0 },
  1147. { 0 },
  1148. { 0 },
  1149. { 0 },
  1150. { 0 },
  1151. { "g", "g", },
  1152. { "g", "g", },
  1153. { "g", "g", },
  1154. { "g", "g", },
  1155. { "r", "g", },
  1156. { "r", "g", },
  1157. { "r", "g", },
  1158. { "r", "g", },
  1159. { "g", },
  1160. { "g", },
  1161. { "g", },
  1162. { "g", },
  1163. { "g", },
  1164. { "g", },
  1165. { "g", },
  1166. { "g", },
  1167. { "+g", },
  1168. { "+g", },
  1169. { "+g", },
  1170. { "+g", },
  1171. { "+g", "g", },
  1172. { "+g", "g", },
  1173. { "+g", "g", },
  1174. { "+g", "g", },
  1175. { "g", "g", },
  1176. { 0 },
  1177. { "g", "g", "g", },
  1178. { "g", "g", },
  1179. };
  1180. enum machine_mode insn_operand_mode[][MAX_RECOG_OPERANDS] =
  1181. {
  1182. { DFmode, },
  1183. { SFmode, },
  1184. { SImode, },
  1185. { HImode, },
  1186. { QImode, },
  1187. { DFmode, DFmode, },
  1188. { SFmode, SFmode, },
  1189. { SImode, SImode, },
  1190. { HImode, HImode, },
  1191. { QImode, QImode, },
  1192. { SImode, SImode, },
  1193. { HImode, HImode, },
  1194. { QImode, QImode, },
  1195. { DFmode, DFmode, },
  1196. { SFmode, SFmode, },
  1197. { TImode, TImode, },
  1198. { DImode, DImode, },
  1199. { SImode, SImode, },
  1200. { HImode, HImode, },
  1201. { QImode, QImode, },
  1202. { BLKmode, BLKmode, HImode, },
  1203. { SImode, QImode, },
  1204. { SImode, HImode, },
  1205. { SImode, SImode, },
  1206. { SImode, SFmode, },
  1207. { SImode, DFmode, },
  1208. { HImode, QImode, },
  1209. { SImode, QImode, },
  1210. { SFmode, QImode, },
  1211. { DFmode, QImode, },
  1212. { QImode, HImode, },
  1213. { SImode, HImode, },
  1214. { SFmode, HImode, },
  1215. { DFmode, HImode, },
  1216. { QImode, SImode, },
  1217. { HImode, SImode, },
  1218. { SFmode, SImode, },
  1219. { DFmode, SImode, },
  1220. { QImode, SFmode, },
  1221. { HImode, SFmode, },
  1222. { SImode, SFmode, },
  1223. { DFmode, SFmode, },
  1224. { QImode, DFmode, },
  1225. { HImode, DFmode, },
  1226. { SImode, DFmode, },
  1227. { SFmode, DFmode, },
  1228. { HImode, QImode, },
  1229. { SImode, QImode, },
  1230. { SImode, HImode, },
  1231. { DFmode, DFmode, DFmode, },
  1232. { SFmode, SFmode, SFmode, },
  1233. { SImode, SImode, SImode, },
  1234. { HImode, HImode, HImode, },
  1235. { QImode, QImode, QImode, },
  1236. { DFmode, DFmode, DFmode, },
  1237. { SFmode, SFmode, SFmode, },
  1238. { SImode, SImode, SImode, },
  1239. { HImode, HImode, HImode, },
  1240. { QImode, QImode, QImode, },
  1241. { DFmode, DFmode, DFmode, },
  1242. { SFmode, SFmode, SFmode, },
  1243. { SImode, SImode, SImode, },
  1244. { HImode, HImode, HImode, },
  1245. { QImode, QImode, QImode, },
  1246. { DFmode, DFmode, DFmode, },
  1247. { SFmode, SFmode, SFmode, },
  1248. { SImode, SImode, SImode, },
  1249. { HImode, HImode, HImode, },
  1250. { QImode, QImode, QImode, },
  1251. { SImode, SImode, SImode, },
  1252. { HImode, HImode, HImode, },
  1253. { QImode, QImode, QImode, },
  1254. { SImode, SImode, SImode, },
  1255. { HImode, HImode, HImode, },
  1256. { QImode, QImode, QImode, },
  1257. { SImode, SImode, SImode, },
  1258. { HImode, HImode, HImode, },
  1259. { QImode, QImode, QImode, },
  1260. { SImode, SImode, SImode, },
  1261. { HImode, HImode, HImode, },
  1262. { QImode, QImode, QImode, },
  1263. { DFmode, DFmode, },
  1264. { SFmode, SFmode, },
  1265. { SImode, SImode, },
  1266. { HImode, HImode, },
  1267. { QImode, QImode, },
  1268. { SImode, SImode, },
  1269. { HImode, HImode, },
  1270. { QImode, QImode, },
  1271. { SImode, SImode, QImode, },
  1272. { DImode, DImode, QImode, },
  1273. { SImode, SImode, QImode, },
  1274. { DImode, DImode, QImode, },
  1275. { SImode, SImode, SImode, SImode, },
  1276. { QImode, SImode, SImode, SImode, },
  1277. { QImode, SImode, SImode, SImode, },
  1278. { SImode, QImode, SImode, SImode, },
  1279. { SImode, QImode, SImode, SImode, },
  1280. { SImode, SImode, SImode, SImode, },
  1281. { SImode, SImode, SImode, SImode, },
  1282. { QImode, SImode, SImode, SImode, },
  1283. { SImode, SImode, SImode, SImode, },
  1284. { VOIDmode },
  1285. { VOIDmode },
  1286. { VOIDmode },
  1287. { VOIDmode },
  1288. { VOIDmode },
  1289. { VOIDmode },
  1290. { VOIDmode },
  1291. { VOIDmode },
  1292. { VOIDmode },
  1293. { VOIDmode },
  1294. { VOIDmode },
  1295. { VOIDmode },
  1296. { VOIDmode },
  1297. { VOIDmode },
  1298. { VOIDmode },
  1299. { VOIDmode },
  1300. { VOIDmode },
  1301. { VOIDmode },
  1302. { VOIDmode },
  1303. { VOIDmode },
  1304. { VOIDmode },
  1305. { QImode, SImode, },
  1306. { QImode, SImode, },
  1307. { QImode, SImode, },
  1308. { QImode, SImode, },
  1309. { SImode, SImode, },
  1310. { SImode, SImode, },
  1311. { SImode, SImode, },
  1312. { SImode, SImode, },
  1313. { SImode, },
  1314. { SImode, },
  1315. { SImode, },
  1316. { SImode, },
  1317. { SImode, },
  1318. { SImode, },
  1319. { SImode, },
  1320. { SImode, },
  1321. { SImode, },
  1322. { SImode, },
  1323. { SImode, },
  1324. { SImode, },
  1325. { SImode, SImode, },
  1326. { SImode, SImode, },
  1327. { SImode, SImode, },
  1328. { SImode, SImode, },
  1329. { QImode, QImode, },
  1330. { VOIDmode },
  1331. { SImode, SImode, SImode, },
  1332. { SImode, SImode, },
  1333. };