home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Tools / Languages / GCC 1.37.1r14 / usr / gcc-1.37.1r14 / (gcc-1.37.π) / insn-out-old.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-09-28  |  110.6 KB  |  6,139 lines  |  [TEXT/KAHL]

  1. /* Generated automatically by the program `genoutput'
  2. from the machine description file `md'.  */
  3.  
  4. #include "config.h"
  5. #include "rtl.h"
  6. #include "regs.h"
  7. #include "hard-reg-set.h"
  8. #include "real.h"
  9. #include "conditions.h"
  10. #include "insn-flags.h"
  11. #include "insn-config.h"
  12. #include "recog.h"
  13.  
  14. #ifndef __STDC__
  15. #define const
  16. #endif
  17.  
  18. #include "output.h"
  19. #include "aux-output.c"
  20.  
  21. #ifndef INSN_MACHINE_INFO
  22. #define INSN_MACHINE_INFO struct dummy1 {int i;}
  23. #endif
  24.  
  25.  
  26. static char *
  27. output_0 (operands, insn)
  28.      rtx *operands;
  29.      rtx insn;
  30. {
  31.  
  32. {
  33.   if (FP_REG_P (operands[1]))
  34.     return "fmove%.d %1,%0";
  35.   return output_move_double (operands);
  36. }
  37. }
  38.  
  39. static char *
  40. output_1 (operands, insn)
  41.      rtx *operands;
  42.      rtx insn;
  43. {
  44.  
  45. {
  46.   return output_move_double (operands);
  47. }
  48. }
  49.  
  50. static char *
  51. output_2 (operands, insn)
  52.      rtx *operands;
  53.      rtx insn;
  54. {
  55.  
  56. {
  57.   if (TARGET_68020 || ! ADDRESS_REG_P (operands[0]))
  58.     return "tst%.l %0";
  59.   /* If you think that the 68020 does not support tstl a0,
  60.      reread page B-167 of the 68020 manual more carefully.  */
  61.   /* On an address reg, cmpw may replace cmpl.  */
  62.   return "cmp%.w #0,%0";
  63. }
  64. }
  65.  
  66. static char *
  67. output_3 (operands, insn)
  68.      rtx *operands;
  69.      rtx insn;
  70. {
  71.  
  72. {
  73.   if (TARGET_68020 || ! ADDRESS_REG_P (operands[0]))
  74.     return "tst%.w %0";
  75.   return "cmp%.w #0,%0";
  76. }
  77. }
  78.  
  79. static char *
  80. output_6 (operands, insn)
  81.      rtx *operands;
  82.      rtx insn;
  83. {
  84.  
  85. {
  86.   cc_status.flags = CC_IN_68881;
  87.   if (FP_REG_P (operands[0]))
  88.     return "ftest%.x %0";
  89.   return "ftest%.s %0";
  90. }
  91. }
  92.  
  93. static char *
  94. output_7 (operands, insn)
  95.      rtx *operands;
  96.      rtx insn;
  97. {
  98.  return output_sane_tst (operands, 0x1008, "FCMPS");
  99. }
  100.  
  101. static char *
  102. output_9 (operands, insn)
  103.      rtx *operands;
  104.      rtx insn;
  105. {
  106.  
  107. {
  108.   cc_status.flags = CC_IN_68881;
  109.   if (FP_REG_P (operands[0]))
  110.     return "ftest%.x %0";
  111.   return "ftest%.d %0";
  112. }
  113. }
  114.  
  115. static char *
  116. output_10 (operands, insn)
  117.      rtx *operands;
  118.      rtx insn;
  119. {
  120.  return output_sane_tst (operands, 0x0808, "FCMPD");
  121. }
  122.  
  123. static char *
  124. output_12 (operands, insn)
  125.      rtx *operands;
  126.      rtx insn;
  127. {
  128.  
  129. {
  130.   cc_status.flags = CC_IN_68881;
  131.   return "ftest%.x %0";
  132. }
  133. }
  134.  
  135. static char *
  136. output_13 (operands, insn)
  137.      rtx *operands;
  138.      rtx insn;
  139. {
  140.  return output_sane_tst (operands, 0x0008, "FCMPX");
  141. }
  142.  
  143. static char *
  144. output_14 (operands, insn)
  145.      rtx *operands;
  146.      rtx insn;
  147. {
  148.  
  149. {
  150.   if (GET_CODE (operands[0]) == MEM && GET_CODE (operands[1]) == MEM)
  151.     return "cmpm%.l %1,%0";
  152.   if (REG_P (operands[1])
  153.       || (!REG_P (operands[0]) && GET_CODE (operands[0]) != MEM))
  154.     { cc_status.flags |= CC_REVERSED;
  155.       return "cmp%.l %d0,%d1"; 
  156.     }
  157.   return "cmp%.l %d1,%d0";
  158. }
  159. }
  160.  
  161. static char *
  162. output_15 (operands, insn)
  163.      rtx *operands;
  164.      rtx insn;
  165. {
  166.  
  167. {
  168.   if (GET_CODE (operands[0]) == MEM && GET_CODE (operands[1]) == MEM)
  169.     return "cmpm%.w %1,%0";
  170.   if ((REG_P (operands[1]) && !ADDRESS_REG_P (operands[1]))
  171.       || (!REG_P (operands[0]) && GET_CODE (operands[0]) != MEM))
  172.     { cc_status.flags |= CC_REVERSED;
  173.       return "cmp%.w %d0,%d1"; 
  174.     }
  175.   return "cmp%.w %d1,%d0";
  176. }
  177. }
  178.  
  179. static char *
  180. output_16 (operands, insn)
  181.      rtx *operands;
  182.      rtx insn;
  183. {
  184.  
  185. {
  186.   if (GET_CODE (operands[0]) == MEM && GET_CODE (operands[1]) == MEM)
  187.     return "cmpm%.b %1,%0";
  188.   if (REG_P (operands[1])
  189.       || (!REG_P (operands[0]) && GET_CODE (operands[0]) != MEM))
  190.     { cc_status.flags |= CC_REVERSED;
  191.       return "cmp%.b %d0,%d1";
  192.     }
  193.   return "cmp%.b %d1,%d0";
  194. }
  195. }
  196.  
  197. static char *
  198. output_18 (operands, insn)
  199.      rtx *operands;
  200.      rtx insn;
  201. {
  202.  
  203. {
  204.   cc_status.flags = CC_IN_68881;
  205.   if (FP_REG_P (operands[0]))
  206.     {
  207.       if (FP_REG_P (operands[1]))
  208.     return "fcmp.x %1,%0";
  209.       else
  210.         return "fcmp%.s%1,%0";
  211.     }
  212.   cc_status.flags |= CC_REVERSED;
  213.   return "fcmp%.s%0,%1";
  214. }
  215. }
  216.  
  217. static char *
  218. output_19 (operands, insn)
  219.      rtx *operands;
  220.      rtx insn;
  221. {
  222.  return output_sane_cmp (operands, 0x1008, "FCMPS");
  223. }
  224.  
  225. static char *
  226. output_21 (operands, insn)
  227.      rtx *operands;
  228.      rtx insn;
  229. {
  230.  
  231. {
  232.   cc_status.flags = CC_IN_68881;
  233.   if (FP_REG_P (operands[0]))
  234.     {
  235.       if (FP_REG_P (operands[1]))
  236.     return "fcmp.x %1,%0";
  237.       else
  238.         return "fcmp.d %1,%0";
  239.     }
  240.   cc_status.flags |= CC_REVERSED;
  241.   return "fcmp.d %0,%1";
  242. }
  243. }
  244.  
  245. static char *
  246. output_22 (operands, insn)
  247.      rtx *operands;
  248.      rtx insn;
  249. {
  250.  return output_sane_cmp (operands, 0x0808, "FCMPD");
  251. }
  252.  
  253. static char *
  254. output_24 (operands, insn)
  255.      rtx *operands;
  256.      rtx insn;
  257. {
  258.  
  259. {
  260.   cc_status.flags = CC_IN_68881; 
  261.   if (REG_P (operands[0]))
  262.     return "fcmp.x %1,%0";
  263.   cc_status.flags |= CC_REVERSED;
  264.   return "fcmp.x %0,%1";
  265. }
  266. }
  267.  
  268. static char *
  269. output_25 (operands, insn)
  270.      rtx *operands;
  271.      rtx insn;
  272. {
  273.  return output_sane_cmp(operands, 0x0008, "FCMPX");
  274. }
  275.  
  276. static char *
  277. output_26 (operands, insn)
  278.      rtx *operands;
  279.      rtx insn;
  280. {
  281.  { return output_btst (operands, operands[1], operands[0], insn, 7); }
  282. }
  283.  
  284. static char *
  285. output_27 (operands, insn)
  286.      rtx *operands;
  287.      rtx insn;
  288. {
  289.  { return output_btst (operands, operands[1], operands[0], insn, 31); }
  290. }
  291.  
  292. static char *
  293. output_28 (operands, insn)
  294.      rtx *operands;
  295.      rtx insn;
  296. {
  297.  { return output_btst (operands, operands[1], operands[0], insn, 7); }
  298. }
  299.  
  300. static char *
  301. output_29 (operands, insn)
  302.      rtx *operands;
  303.      rtx insn;
  304. {
  305.  { return output_btst (operands, operands[1], operands[0], insn, 31); }
  306. }
  307.  
  308. static char *
  309. output_30 (operands, insn)
  310.      rtx *operands;
  311.      rtx insn;
  312. {
  313.  
  314. {
  315.   operands[1] = gen_rtx (CONST_INT, VOIDmode, 7 - INTVAL (operands[1]));
  316.   return output_btst (operands, operands[1], operands[0], insn, 7);
  317. }
  318. }
  319.  
  320. static char *
  321. output_31 (operands, insn)
  322.      rtx *operands;
  323.      rtx insn;
  324. {
  325.  
  326. {
  327.   if (GET_CODE (operands[0]) == MEM)
  328.     {
  329.       operands[0] = adj_offsettable_operand (operands[0],
  330.                         INTVAL (operands[1]) / 8);
  331.       operands[1] = gen_rtx (CONST_INT, VOIDmode, 
  332.                  7 - INTVAL (operands[1]) % 8);
  333.       return output_btst (operands, operands[1], operands[0], insn, 7);
  334.     }
  335.   operands[1] = gen_rtx (CONST_INT, VOIDmode,
  336.              15 - INTVAL (operands[1]));
  337.   return output_btst (operands, operands[1], operands[0], insn, 15);
  338. }
  339. }
  340.  
  341. static char *
  342. output_32 (operands, insn)
  343.      rtx *operands;
  344.      rtx insn;
  345. {
  346.  
  347. {
  348.   if (GET_CODE (operands[0]) == MEM)
  349.     {
  350.       operands[0] = adj_offsettable_operand (operands[0],
  351.                         INTVAL (operands[1]) / 8);
  352.       operands[1] = gen_rtx (CONST_INT, VOIDmode, 
  353.                  7 - INTVAL (operands[1]) % 8);
  354.       return output_btst (operands, operands[1], operands[0], insn, 7);
  355.     }
  356.   operands[1] = gen_rtx (CONST_INT, VOIDmode,
  357.              31 - INTVAL (operands[1]));
  358.   return output_btst (operands, operands[1], operands[0], insn, 31);
  359. }
  360. }
  361.  
  362. static char *
  363. output_33 (operands, insn)
  364.      rtx *operands;
  365.      rtx insn;
  366. {
  367.  
  368. {
  369.   cc_status.flags = CC_Z_IN_NOT_N | CC_NOT_NEGATIVE;
  370.   return "tst%.b %0";
  371. }
  372. }
  373.  
  374. static char *
  375. output_34 (operands, insn)
  376.      rtx *operands;
  377.      rtx insn;
  378. {
  379.  
  380. { register int log = exact_log2 (INTVAL (operands[1]));
  381.   operands[1] = gen_rtx (CONST_INT, VOIDmode, log);
  382.   return output_btst (operands, operands[1], operands[0], insn, 7);
  383. }
  384. }
  385.  
  386. static char *
  387. output_35 (operands, insn)
  388.      rtx *operands;
  389.      rtx insn;
  390. {
  391.  
  392. {
  393.   if (operands[1] == const0_rtx)
  394.     return "clr%.l %0";
  395.   return "pea %a1";
  396. }
  397. }
  398.  
  399. static char *
  400. output_36 (operands, insn)
  401.      rtx *operands;
  402.      rtx insn;
  403. {
  404.  
  405. {
  406.   if (ADDRESS_REG_P (operands[0]))
  407.     return "sub%.l %0,%0";
  408.   return "clr%.l %0";
  409. }
  410. }
  411.  
  412. static char *
  413. output_37 (operands, insn)
  414.      rtx *operands;
  415.      rtx insn;
  416. {
  417.  
  418. {
  419.   if (GET_CODE (operands[1]) == CONST_INT)
  420.     {
  421.       if (operands[1] == const0_rtx
  422.       && (DATA_REG_P (operands[0])
  423.           || GET_CODE (operands[0]) == MEM))
  424.     return "clr%.l %0";
  425.       else if (DATA_REG_P (operands[0])
  426.            && INTVAL (operands[1]) < 128
  427.            && INTVAL (operands[1]) >= -128)
  428.         {
  429.           return "moveq%.l %1,%0";
  430.     }
  431.       else if (ADDRESS_REG_P (operands[0])
  432.            && INTVAL (operands[1]) < 0x8000
  433.            && INTVAL (operands[1]) >= -0x8000)
  434.     return "move%.w %1,%0";
  435.       else if (push_operand (operands[0], SImode)
  436.            && INTVAL (operands[1]) < 0x8000
  437.            && INTVAL (operands[1]) >= -0x8000)
  438.         return "pea %a1";
  439.     }
  440.   else if ((GET_CODE (operands[1]) == SYMBOL_REF
  441.         || GET_CODE (operands[1]) == CONST)
  442.        && push_operand (operands[0], SImode))
  443.     return "pea %a1";
  444.   else if ((GET_CODE (operands[1]) == SYMBOL_REF
  445.         || GET_CODE (operands[1]) == CONST)) {
  446.            if (ADDRESS_REG_P (operands[0])) {
  447.                return "lea %a1,%0";
  448.            } else {
  449.                return "pea %a1\n\tmove%.l %+,%0";
  450.            }
  451.   }
  452.   return "move%.l %1,%0";
  453. }
  454. }
  455.  
  456. static char *
  457. output_38 (operands, insn)
  458.      rtx *operands;
  459.      rtx insn;
  460. {
  461.  
  462. {
  463.   if (GET_CODE (operands[1]) == CONST_INT)
  464.     {
  465.       if (operands[1] == const0_rtx
  466.       && (DATA_REG_P (operands[0])
  467.           || GET_CODE (operands[0]) == MEM))
  468.     return "clr%.w %0";
  469.       else if (DATA_REG_P (operands[0])
  470.            && INTVAL (operands[1]) < 128
  471.            && INTVAL (operands[1]) >= -128)
  472.         {
  473.           return "moveq%.l %1,%0";
  474.     }
  475.       else if (INTVAL (operands[1]) < 0x8000
  476.            && INTVAL (operands[1]) >= -0x8000)
  477.     return "move%.w %1,%0";
  478.     }
  479.   else if (CONSTANT_P (operands[1]))
  480.     return "move%.l %1,%0";
  481.   return "move%.w %1,%0";
  482. }
  483. }
  484.  
  485. static char *
  486. output_39 (operands, insn)
  487.      rtx *operands;
  488.      rtx insn;
  489. {
  490.  
  491. {
  492.   if (GET_CODE (operands[1]) == CONST_INT)
  493.     {
  494.       if (operands[1] == const0_rtx
  495.       && (DATA_REG_P (operands[0])
  496.           || GET_CODE (operands[0]) == MEM))
  497.     return "clr%.w %0";
  498.     }
  499.   return "move%.w %1,%0";
  500. }
  501. }
  502.  
  503. static char *
  504. output_40 (operands, insn)
  505.      rtx *operands;
  506.      rtx insn;
  507. {
  508.  
  509. {
  510.   if (operands[1] == const0_rtx)
  511.     return "clr%.b %0";
  512.   if (GET_CODE (operands[1]) == CONST_INT
  513.       && INTVAL (operands[1]) == -1)
  514.     return "st %0";
  515.   if (GET_CODE (operands[1]) != CONST_INT && CONSTANT_P (operands[1]))
  516.     return "move%.l %1,%0";
  517.   if (ADDRESS_REG_P (operands[0]) || ADDRESS_REG_P (operands[1]))
  518.     return "move%.w %1,%0";
  519.   return "move%.b %1,%0";
  520. }
  521. }
  522.  
  523. static char *
  524. output_41 (operands, insn)
  525.      rtx *operands;
  526.      rtx insn;
  527. {
  528.  
  529. {
  530.   if (operands[1] == const0_rtx)
  531.     return "clr%.b %0";
  532.   return "move%.b %1,%0";
  533. }
  534. }
  535.  
  536. static char *
  537. output_42 (operands, insn)
  538.      rtx *operands;
  539.      rtx insn;
  540. {
  541.  
  542. {
  543.   if (FP_REG_P (operands[0]))
  544.     {
  545.       if (FP_REG_P (operands[1]))
  546.     return "fmove.x %1,%0";
  547.       else if (ADDRESS_REG_P (operands[1]))
  548.     return "move%.l %1,%-\n\tfmove%.s%+,%0";
  549.       else if (GET_CODE (operands[1]) == CONST_DOUBLE)
  550.     return output_move_const_single (operands);
  551.       return "fmove%.s%1,%0";
  552.     }
  553.   if (FP_REG_P (operands[1]))
  554.     {
  555.       if (ADDRESS_REG_P (operands[0]))
  556.     return "fmove%.s%1,%-\n\tmove%.l %+,%0";
  557.       return "fmove%.s%1,%0";
  558.     }
  559.   return "move%.l %f1,%0";
  560. }
  561. }
  562.  
  563. static char *
  564. output_43 (operands, insn)
  565.      rtx *operands;
  566.      rtx insn;
  567. {
  568.  
  569. {
  570.   if (FP_REG_P (operands[0]))
  571.     {
  572.       if (FP_REG_P (operands[1]))
  573.     return "fmove.x %1,%0";
  574.       if (REG_P (operands[1]))
  575.     {
  576.       rtx xoperands[2];
  577.       xoperands[1] = gen_rtx (REG, SImode, REGNO (operands[1]) + 1);
  578.       output_asm_insn ("move%.l %1,%-", xoperands);
  579.       output_asm_insn ("move%.l %1,%-", operands);
  580.       return "fmove.d %+,%0";
  581.     }
  582.       if (GET_CODE (operands[1]) == CONST_DOUBLE)
  583.     return output_move_const_double (operands);
  584.       return "fmove.d %1,%0";
  585.     }
  586.   else if (FP_REG_P (operands[1]))
  587.     {
  588.       if (REG_P (operands[0]))
  589.     {
  590.       output_asm_insn ("fmove.d %1,%-\n\tmove%.l %+,%0", operands);
  591.       operands[0] = gen_rtx (REG, SImode, REGNO (operands[0]) + 1);
  592.       return "move%.l %+,%0";
  593.     }
  594.       else
  595.         return "fmove.d %1,%0";
  596.     }
  597.   return output_move_double (operands);
  598. }
  599.  
  600. }
  601.  
  602. static char *
  603. output_44 (operands, insn)
  604.      rtx *operands;
  605.      rtx insn;
  606. {
  607.  
  608. {
  609.   if (FP_REG_P (operands[0]))
  610.     {
  611.       if (FP_REG_P (operands[1]))
  612.     return "fmove.x %1,%0";
  613.       if (REG_P (operands[1]))
  614.     {
  615.       rtx xoperands[2], xxoperands[2];
  616.       xoperands[1] = gen_rtx (REG, SImode, REGNO (operands[1]) + 1);
  617.       xxoperands[1] = gen_rtx (REG, SImode, REGNO (operands[1]) + 2);
  618.       output_asm_insn ("move%.l %1,%-", xxoperands);
  619.       output_asm_insn ("move%.l %1,%-", xoperands);
  620.       output_asm_insn ("move%.l %1,%-", operands);
  621.       return "fmove.x %+,%0";
  622.     }
  623.       if (GET_CODE (operands[1]) == CONST_DOUBLE)
  624.     return output_move_const_long_double (operands);
  625.       return "fmove.x %1,%0";
  626.     }
  627.   else if (FP_REG_P (operands[1]))
  628.     {
  629.       if (REG_P (operands[0]))
  630.     {
  631.       output_asm_insn ("fmove.x %1,%-\n\tmove%.l %+,%0", operands);
  632.       operands[0] = gen_rtx (REG, SImode, REGNO (operands[0]) + 1);
  633.       output_asm_insn ("move%.l %+,%0", operands);
  634.       operands[0] = gen_rtx (REG, SImode, REGNO (operands[0]) + 1);
  635.       return "move%.l %+,%0";
  636.     }
  637.       else
  638.         return "fmove.x %1,%0";
  639.     }
  640.   return output_move_extended (operands);
  641. }
  642.  
  643. }
  644.  
  645. static char *
  646. output_45 (operands, insn)
  647.      rtx *operands;
  648.      rtx insn;
  649. {
  650.  
  651. {
  652.   if (FP_REG_P (operands[0]))
  653.     {
  654.       if (FP_REG_P (operands[1]))
  655.     return "fmove.x %1,%0";
  656.       if (REG_P (operands[1]))
  657.     {
  658.       rtx xoperands[2];
  659.       xoperands[1] = gen_rtx (REG, SImode, REGNO (operands[1]) + 1);
  660.       output_asm_insn ("move%.l %1,%-", xoperands);
  661.       output_asm_insn ("move%.l %1,%-", operands);
  662.       return "fmove.d %+,%0";
  663.     }
  664.       if (GET_CODE (operands[1]) == CONST_DOUBLE)
  665.     return output_move_const_double (operands);
  666.       return "fmove.d %1,%0";
  667.     }
  668.   else if (FP_REG_P (operands[1]))
  669.     {
  670.       if (REG_P (operands[0]))
  671.     {
  672.       output_asm_insn ("fmove.d %1,%-\n\tmove%.l %+,%0", operands);
  673.       operands[0] = gen_rtx (REG, SImode, REGNO (operands[0]) + 1);
  674.       return "move%.l %+,%0";
  675.     }
  676.       else
  677.         return "fmove.d %1,%0";
  678.     }
  679.   return output_move_double (operands);
  680. }
  681.  
  682. }
  683.  
  684. static char *
  685. output_47 (operands, insn)
  686.      rtx *operands;
  687.      rtx insn;
  688. {
  689.  
  690. {
  691.   if (GET_CODE (operands[0]) == REG)
  692.     return "move%.l %1,%0";
  693.   if (GET_CODE (operands[1]) == MEM)
  694.     operands[1] = adj_offsettable_operand (operands[1], 3);
  695.   return "move%.b %1,%0";
  696. }
  697. }
  698.  
  699. static char *
  700. output_48 (operands, insn)
  701.      rtx *operands;
  702.      rtx insn;
  703. {
  704.  
  705. {
  706.   if (GET_CODE (operands[0]) == REG)
  707.     return "move%.l %1,%0";
  708.   if (GET_CODE (operands[1]) == MEM)
  709.     operands[1] = adj_offsettable_operand (operands[1], 1);
  710.   return "move%.b %1,%0";
  711. }
  712. }
  713.  
  714. static char *
  715. output_49 (operands, insn)
  716.      rtx *operands;
  717.      rtx insn;
  718. {
  719.  
  720. {
  721.   if (GET_CODE (operands[0]) == REG)
  722.     return "move%.l %1,%0";
  723.   if (GET_CODE (operands[1]) == MEM)
  724.     operands[1] = adj_offsettable_operand (operands[1], 2);
  725.   return "move%.w %1,%0";
  726. }
  727. }
  728.  
  729. static char *
  730. output_53 (operands, insn)
  731.      rtx *operands;
  732.      rtx insn;
  733. {
  734.  
  735. {
  736.   if (DATA_REG_P (operands[0]))
  737.     {
  738.       if (GET_CODE (operands[1]) == REG
  739.       && REGNO (operands[0]) == REGNO (operands[1]))
  740.     return "and%.l #$FFFF,%0";
  741.       if (reg_mentioned_p (operands[0], operands[1]))
  742.         return "move%.w %1,%0\n\tand%.l #$FFFF,%0";
  743.       return "clr%.l %0\n\tmove%.w %1,%0";
  744.     }
  745.   else if (GET_CODE (operands[0]) == MEM
  746.        && GET_CODE (XEXP (operands[0], 0)) == PRE_DEC)
  747.     return "move%.w %1,%0\n\tclr%.w %0";
  748.   else if (GET_CODE (operands[0]) == MEM
  749.        && GET_CODE (XEXP (operands[0], 0)) == POST_INC)
  750.     return "clr%.w %0\n\tmove%.w %1,%0";
  751.   else
  752.     {
  753.       output_asm_insn ("clr%.w %0", operands);
  754.       operands[0] = adj_offsettable_operand (operands[0], 2);
  755.       return "move%.w %1,%0";
  756.     }
  757. }
  758. }
  759.  
  760. static char *
  761. output_54 (operands, insn)
  762.      rtx *operands;
  763.      rtx insn;
  764. {
  765.  
  766. {
  767.   if (DATA_REG_P (operands[0]))
  768.     {
  769.       if (GET_CODE (operands[1]) == REG
  770.       && REGNO (operands[0]) == REGNO (operands[1]))
  771.     return "and%.w #$FF,%0";
  772.       if (reg_mentioned_p (operands[0], operands[1]))
  773.         return "move%.b %1,%0\n\tand%.w #$FF,%0";
  774.       return "clr%.w %0\n\tmove%.b %1,%0";
  775.     }
  776.   else if (GET_CODE (operands[0]) == MEM
  777.        && GET_CODE (XEXP (operands[0], 0)) == PRE_DEC)
  778.     {
  779.       if (REGNO (XEXP (XEXP (operands[0], 0), 0))
  780.       == STACK_POINTER_REGNUM)
  781.     return "clr%.w %-\n\tmove%.b %1,%0";
  782.       else
  783.     return "move%.b %1,%0\n\tclr%.b %0";
  784.     }
  785.   else if (GET_CODE (operands[0]) == MEM
  786.        && GET_CODE (XEXP (operands[0], 0)) == POST_INC)
  787.     return "clr%.b %0\n\tmove%.b %1,%0";
  788.   else
  789.     {
  790.       output_asm_insn ("clr%.b %0", operands);
  791.       operands[0] = adj_offsettable_operand (operands[0], 1);
  792.       return "move%.b %1,%0";
  793.     }
  794. }
  795. }
  796.  
  797. static char *
  798. output_55 (operands, insn)
  799.      rtx *operands;
  800.      rtx insn;
  801. {
  802.  
  803. {
  804.   if (DATA_REG_P (operands[0]))
  805.     {
  806.       if (GET_CODE (operands[1]) == REG
  807.       && REGNO (operands[0]) == REGNO (operands[1]))
  808.     return "and%.l #$FF,%0";
  809.       if (reg_mentioned_p (operands[0], operands[1]))
  810.         return "move%.b %1,%0\n\tand%.l #$FF,%0";
  811.       return "clr%.l %0\n\tmove%.b %1,%0";
  812.     }
  813.   else if (GET_CODE (operands[0]) == MEM
  814.        && GET_CODE (XEXP (operands[0], 0)) == PRE_DEC)
  815.     {
  816.       operands[0] = XEXP (XEXP (operands[0], 0), 0);
  817.       return "clr%.l -(%0)\n\tmove%.b %1,(3,%0)";
  818.     }
  819.   else if (GET_CODE (operands[0]) == MEM
  820.        && GET_CODE (XEXP (operands[0], 0)) == POST_INC)
  821.     {
  822.       operands[0] = XEXP (XEXP (operands[0], 0), 0);
  823.       return "clr%.l (%0)+\n\tmove%.b %1,(-1,%0)";
  824.     }
  825.   else
  826.     {
  827.       output_asm_insn ("clr%.l %0", operands);
  828.       operands[0] = adj_offsettable_operand (operands[0], 3);
  829.       return "move%.b %1,%0";
  830.     }
  831. }
  832. }
  833.  
  834. static char *
  835. output_56 (operands, insn)
  836.      rtx *operands;
  837.      rtx insn;
  838. {
  839.  
  840. {
  841.   if (ADDRESS_REG_P (operands[0]))
  842.     return "move%.w %1,%0";
  843.   return "ext%.l %0";
  844. }
  845. }
  846.  
  847. static char *
  848. output_60 (operands, insn)
  849.      rtx *operands;
  850.      rtx insn;
  851. {
  852.  
  853. {
  854.   if (FP_REG_P (operands[0]) && FP_REG_P (operands[1]))
  855.     {
  856.       if (REGNO (operands[0]) == REGNO (operands[1]))
  857.     {
  858.       /* Extending float to double in an fp-reg is a no-op.
  859.          NOTICE_UPDATE_CC has already assumed that the
  860.          cc will be set.  So cancel what it did.  */
  861.       cc_status = cc_prev_status;
  862.       return "";
  863.     }
  864.       return "fmove.x %1,%0";
  865.     }
  866.   if (FP_REG_P (operands[0]))
  867.     return "fmove%.s%1,%0";
  868.   if (DATA_REG_P (operands[0]) && FP_REG_P (operands[1]))
  869.     {
  870.       output_asm_insn ("fmove.d %1,%-\n\tmove%.l %+,%0", operands);
  871.       /* seems unreliable - what if opnd 0 was d7? */
  872.       operands[0] = gen_rtx (REG, SImode, REGNO (operands[0]) + 1);
  873.       return "move%.l %+,%0";
  874.     }
  875.   if (FP_REG_P (operands[0]) || FP_REG_P (operands[1]))
  876.     return "fmove.d %1,%0";
  877. }
  878. }
  879.  
  880. static char *
  881. output_61 (operands, insn)
  882.      rtx *operands;
  883.      rtx insn;
  884. {
  885.  return output_sane_convert(operands);
  886. }
  887.  
  888. static char *
  889. output_63 (operands, insn)
  890.      rtx *operands;
  891.      rtx insn;
  892. {
  893.  
  894. {
  895.   if (FP_REG_P (operands[0]) && FP_REG_P (operands[1]))
  896.     {
  897.       if (REGNO (operands[0]) == REGNO (operands[1]))
  898.     {
  899.       /* Extending float to long double in an fp-reg is a no-op.
  900.          NOTICE_UPDATE_CC has already assumed that the
  901.          cc will be set.  So cancel what it did.  */
  902.       cc_status = cc_prev_status;
  903.       return "";
  904.     }
  905.       return "fmove.x %1,%0";
  906.     }
  907.   if (FP_REG_P (operands[0]))
  908.     return "fmove%.s%1,%0";
  909.   return "fmove.x %1,%0";
  910. }
  911. }
  912.  
  913. static char *
  914. output_64 (operands, insn)
  915.      rtx *operands;
  916.      rtx insn;
  917. {
  918.  return output_sane_convert(operands);
  919. }
  920.  
  921. static char *
  922. output_66 (operands, insn)
  923.      rtx *operands;
  924.      rtx insn;
  925. {
  926.  
  927. {
  928.   if (FP_REG_P (operands[0]) && FP_REG_P (operands[1]))
  929.     {
  930.       if (REGNO (operands[0]) == REGNO (operands[1]))
  931.     {
  932.       /* Extending double to long double in an fp-reg is a no-op.
  933.          NOTICE_UPDATE_CC has already assumed that the
  934.          cc will be set.  So cancel what it did.  */
  935.       cc_status = cc_prev_status;
  936.       return "";
  937.     }
  938.       return "fmove.x %1,%0";
  939.     }
  940.   if (FP_REG_P (operands[0]))
  941.     return "fmove.d %1,%0";
  942.   return "fmove.x %1,%0";
  943. }
  944. }
  945.  
  946. static char *
  947. output_67 (operands, insn)
  948.      rtx *operands;
  949.      rtx insn;
  950. {
  951.  return output_sane_convert (operands);
  952. }
  953.  
  954. static char *
  955. output_70 (operands, insn)
  956.      rtx *operands;
  957.      rtx insn;
  958. {
  959.  return output_sane_convert (operands);
  960. }
  961.  
  962. static char *
  963. output_73 (operands, insn)
  964.      rtx *operands;
  965.      rtx insn;
  966. {
  967.  return output_sane_convert (operands);
  968. }
  969.  
  970. static char *
  971. output_75 (operands, insn)
  972.      rtx *operands;
  973.      rtx insn;
  974. {
  975.  
  976. {
  977.   if (DATA_REG_P (operands[0]))
  978.     {
  979.       output_asm_insn ("fmove.d %1,%-\n\tmove%.l %+,%0", operands);
  980.       operands[0] = gen_rtx (REG, SImode, REGNO (operands[0]) + 1);
  981.       return "move%.l %+,%0";
  982.     }
  983.   return "fmove.d %1,%0";
  984. }
  985. }
  986.  
  987. static char *
  988. output_76 (operands, insn)
  989.      rtx *operands;
  990.      rtx insn;
  991. {
  992.  return output_sane_convert (operands);
  993. }
  994.  
  995. static char *
  996. output_79 (operands, insn)
  997.      rtx *operands;
  998.      rtx insn;
  999. {
  1000.  return output_sane_convert (operands);
  1001. }
  1002.  
  1003. static char *
  1004. output_82 (operands, insn)
  1005.      rtx *operands;
  1006.      rtx insn;
  1007. {
  1008.  return output_sane_convert (operands);
  1009. }
  1010.  
  1011. static char *
  1012. output_85 (operands, insn)
  1013.      rtx *operands;
  1014.      rtx insn;
  1015. {
  1016.  return output_sane_convert (operands);
  1017. }
  1018.  
  1019. static char *
  1020. output_93 (operands, insn)
  1021.      rtx *operands;
  1022.      rtx insn;
  1023. {
  1024.  return output_sane_2 (operands, 0x0016, "FTINTX");
  1025. }
  1026.  
  1027. static char *
  1028. output_94 (operands, insn)
  1029.      rtx *operands;
  1030.      rtx insn;
  1031. {
  1032.  
  1033. {
  1034.   if (FP_REG_P (operands[1]))
  1035.     return "fintrz.x %1,%0";
  1036.   return "fintrz%.s%1,%0";
  1037. }
  1038. }
  1039.  
  1040. static char *
  1041. output_96 (operands, insn)
  1042.      rtx *operands;
  1043.      rtx insn;
  1044. {
  1045.  return output_sane_2 (operands, 0x0016, "FTINTX");
  1046. }
  1047.  
  1048. static char *
  1049. output_97 (operands, insn)
  1050.      rtx *operands;
  1051.      rtx insn;
  1052. {
  1053.  
  1054. {
  1055.   if (FP_REG_P (operands[1]))
  1056.     return "fintrz.x %1,%0";
  1057.   return "fintrz.d %1,%0";
  1058. }
  1059. }
  1060.  
  1061. static char *
  1062. output_99 (operands, insn)
  1063.      rtx *operands;
  1064.      rtx insn;
  1065. {
  1066.  return output_sane_2 (operands, 0x0016, "FTINTX");
  1067. }
  1068.  
  1069. static char *
  1070. output_110 (operands, insn)
  1071.      rtx *operands;
  1072.      rtx insn;
  1073. {
  1074.  return output_lib_convert(operands, "_XTOI");
  1075. }
  1076.  
  1077. static char *
  1078. output_113 (operands, insn)
  1079.      rtx *operands;
  1080.      rtx insn;
  1081. {
  1082.  return output_lib_convert(operands, "_XTOU");
  1083. }
  1084.  
  1085. static char *
  1086. output_114 (operands, insn)
  1087.      rtx *operands;
  1088.      rtx insn;
  1089. {
  1090.  return output_lib_convert(operands, "_X96TOU");
  1091. }
  1092.  
  1093. static char *
  1094. output_115 (operands, insn)
  1095.      rtx *operands;
  1096.      rtx insn;
  1097. {
  1098.  
  1099. {
  1100.   if (! operands_match_p (operands[0], operands[1]))
  1101.     {
  1102.       if (!ADDRESS_REG_P (operands[1]))
  1103.     {
  1104.       rtx tmp = operands[1];
  1105.  
  1106.       operands[1] = operands[2];
  1107.       operands[2] = tmp;
  1108.     }
  1109.  
  1110.       /* These insns can result from reloads to access
  1111.      stack slots over 64k from the frame pointer.  */
  1112.       if (GET_CODE (operands[2]) == CONST_INT
  1113.       && INTVAL (operands[2]) + 0x8000 >= (unsigned) 0x10000)
  1114.         return "move%.l %2,%0\n\tadd%.l %1,%0";
  1115.       if (GET_CODE (operands[2]) == REG)
  1116.     return TARGET_GAS?"lea %1@(%2.l),%0":"lea (%1,%2.l),%0";
  1117.       else
  1118.     return TARGET_GAS?"lea %1@(%c2),%0":"lea (%c2,%1),%0";
  1119.     }
  1120.   if (GET_CODE (operands[2]) == CONST_INT)
  1121.     {
  1122.       if (INTVAL (operands[2]) > 0
  1123.       && INTVAL (operands[2]) <= 8)
  1124.     return (ADDRESS_REG_P (operands[0])
  1125.         ? "addq%.w %2,%0"
  1126.         : "addq%.l %2,%0");
  1127.       if (INTVAL (operands[2]) < 0
  1128.       && INTVAL (operands[2]) >= -8)
  1129.         {
  1130.       operands[2] = gen_rtx (CONST_INT, VOIDmode,
  1131.                      - INTVAL (operands[2]));
  1132.       return (ADDRESS_REG_P (operands[0])
  1133.           ? "subq%.w %2,%0"
  1134.           : "subq%.l %2,%0");
  1135.     }
  1136.       if (ADDRESS_REG_P (operands[0])
  1137.       && INTVAL (operands[2]) >= -0x8000
  1138.       && INTVAL (operands[2]) < 0x8000)
  1139.     return "add%.w %2,%0";
  1140.     }
  1141.   return "add%.l %2,%0";
  1142. }
  1143. }
  1144.  
  1145. static char *
  1146. output_117 (operands, insn)
  1147.      rtx *operands;
  1148.      rtx insn;
  1149. {
  1150.  
  1151. {
  1152.   if (GET_CODE (operands[2]) == CONST_INT)
  1153.     {
  1154.       if (INTVAL (operands[2]) > 0
  1155.       && INTVAL (operands[2]) <= 8)
  1156.     return "addq%.w %2,%0";
  1157.     }
  1158.   if (GET_CODE (operands[2]) == CONST_INT)
  1159.     {
  1160.       if (INTVAL (operands[2]) < 0
  1161.       && INTVAL (operands[2]) >= -8)
  1162.     {
  1163.       operands[2] = gen_rtx (CONST_INT, VOIDmode,
  1164.                      - INTVAL (operands[2]));
  1165.       return "subq%.w %2,%0";
  1166.     }
  1167.     }
  1168.   return "add%.w %2,%0";
  1169. }
  1170. }
  1171.  
  1172. static char *
  1173. output_119 (operands, insn)
  1174.      rtx *operands;
  1175.      rtx insn;
  1176. {
  1177.  
  1178. {
  1179.   if (GET_CODE (operands[2]) == CONST_INT)
  1180.     {
  1181.       if (INTVAL (operands[2]) > 0
  1182.       && INTVAL (operands[2]) <= 8)
  1183.     return "addq%.b %2,%0";
  1184.     }
  1185.   if (GET_CODE (operands[2]) == CONST_INT)
  1186.     {
  1187.       if (INTVAL (operands[2]) < 0 && INTVAL (operands[2]) >= -8)
  1188.        {
  1189.      operands[2] = gen_rtx (CONST_INT, VOIDmode, - INTVAL (operands[2]));
  1190.      return "subq%.b %2,%0";
  1191.        }
  1192.     }
  1193.   return "add%.b %2,%0";
  1194. }
  1195. }
  1196.  
  1197. static char *
  1198. output_122 (operands, insn)
  1199.      rtx *operands;
  1200.      rtx insn;
  1201. {
  1202.  
  1203. {
  1204.   if (REG_P (operands[2]) && ! DATA_REG_P (operands[2]))
  1205.     return "fadd.x %2,%0";
  1206.   return "fadd%.s%2,%0";
  1207. }
  1208. }
  1209.  
  1210. static char *
  1211. output_123 (operands, insn)
  1212.      rtx *operands;
  1213.      rtx insn;
  1214. {
  1215.  return output_sane_3 (operands, 0x1000, "FADDS");
  1216. }
  1217.  
  1218. static char *
  1219. output_125 (operands, insn)
  1220.      rtx *operands;
  1221.      rtx insn;
  1222. {
  1223.  
  1224. {
  1225.   if (REG_P (operands[2]))
  1226.     return "fadd.x %2,%0";
  1227.   return "fadd.d %2,%0";
  1228. }
  1229. }
  1230.  
  1231. static char *
  1232. output_126 (operands, insn)
  1233.      rtx *operands;
  1234.      rtx insn;
  1235. {
  1236.  return output_sane_3 (operands, 0x0800, "FADDD");
  1237. }
  1238.  
  1239. static char *
  1240. output_129 (operands, insn)
  1241.      rtx *operands;
  1242.      rtx insn;
  1243. {
  1244.  return output_sane_3 (operands, 0x0000, "FADDX");
  1245. }
  1246.  
  1247. static char *
  1248. output_130 (operands, insn)
  1249.      rtx *operands;
  1250.      rtx insn;
  1251. {
  1252.  
  1253. {
  1254.   if (! operands_match_p (operands[0], operands[1]))
  1255.     {
  1256.       if (operands_match_p (operands[0], operands[2]))
  1257.     {
  1258.       if (GET_CODE (operands[1]) == CONST_INT)
  1259.         {
  1260.           if (INTVAL (operands[1]) > 0
  1261.           && INTVAL (operands[1]) <= 8)
  1262.         return "subq%.l %1,%0\n\tneg%.l %0";
  1263.         }
  1264.       return "sub%.l %1,%0\n\tneg%.l %0";
  1265.     }
  1266.       /* This case is matched by J, but negating -0x8000
  1267.          in an lea would give an invalid displacement.
  1268.      So do this specially.  */
  1269.       if (INTVAL (operands[2]) == -0x8000)
  1270.     return "move%.l %1,%0\n\tsub%.l %2,%0";
  1271.       return TARGET_GAS?"lea %1@(%n2),%0":"lea (%n2,%1),%0";
  1272.     }
  1273.   if (GET_CODE (operands[2]) == CONST_INT)
  1274.     {
  1275.       if (INTVAL (operands[2]) > 0
  1276.       && INTVAL (operands[2]) <= 8)
  1277.     return "subq%.l %2,%0";
  1278.       if (ADDRESS_REG_P (operands[0])
  1279.       && INTVAL (operands[2]) >= -0x8000
  1280.       && INTVAL (operands[2]) < 0x8000)
  1281.     return "sub%.w %2,%0";
  1282.     }
  1283.   if (GET_CODE (operands[2]) == SYMBOL_REF)
  1284.     {
  1285.       return "pea %a2\n\tsub%.l %+,%0";
  1286.     }
  1287.   return "sub%.l %2,%0";
  1288. }
  1289. }
  1290.  
  1291. static char *
  1292. output_137 (operands, insn)
  1293.      rtx *operands;
  1294.      rtx insn;
  1295. {
  1296.  
  1297. {
  1298.   if (REG_P (operands[2]) && ! DATA_REG_P (operands[2]))
  1299.     return "fsub.x %2,%0";
  1300.   return "fsub%.s%2,%0";
  1301. }
  1302. }
  1303.  
  1304. static char *
  1305. output_138 (operands, insn)
  1306.      rtx *operands;
  1307.      rtx insn;
  1308. {
  1309.  return output_sane_3 (operands, 0x1002, "FSUBS");
  1310. }
  1311.  
  1312. static char *
  1313. output_140 (operands, insn)
  1314.      rtx *operands;
  1315.      rtx insn;
  1316. {
  1317.  
  1318. {
  1319.   if (REG_P (operands[2]))
  1320.     return "fsub.x %2,%0";
  1321.   return "fsub.d %2,%0";
  1322. }
  1323. }
  1324.  
  1325. static char *
  1326. output_141 (operands, insn)
  1327.      rtx *operands;
  1328.      rtx insn;
  1329. {
  1330.  return output_sane_3 (operands, 0x0802, "FSUBD");
  1331. }
  1332.  
  1333. static char *
  1334. output_144 (operands, insn)
  1335.      rtx *operands;
  1336.      rtx insn;
  1337. {
  1338.  return output_sane_3 (operands, 0x0002, "FSUBX");
  1339. }
  1340.  
  1341. static char *
  1342. output_149 (operands, insn)
  1343.      rtx *operands;
  1344.      rtx insn;
  1345. {
  1346.  return output_int_lib_call (operands, "ULMULT");
  1347. }
  1348.  
  1349. static char *
  1350. output_154 (operands, insn)
  1351.      rtx *operands;
  1352.      rtx insn;
  1353. {
  1354.  return output_int_lib_call (operands, "ULMULT");
  1355. }
  1356.  
  1357. static char *
  1358. output_156 (operands, insn)
  1359.      rtx *operands;
  1360.      rtx insn;
  1361. {
  1362.  
  1363. {
  1364.   if (REG_P (operands[2]) && ! DATA_REG_P (operands[2]))
  1365.     return "fsglmul.x %2,%0";
  1366.   return "fsglmul%.s%2,%0";
  1367. }
  1368. }
  1369.  
  1370. static char *
  1371. output_157 (operands, insn)
  1372.      rtx *operands;
  1373.      rtx insn;
  1374. {
  1375.  return output_sane_3 (operands, 0x1004, "FMULS");
  1376. }
  1377.  
  1378. static char *
  1379. output_159 (operands, insn)
  1380.      rtx *operands;
  1381.      rtx insn;
  1382. {
  1383.  
  1384. {
  1385.   if (REG_P (operands[2]))
  1386.     return "fmul.x %2,%0";
  1387.   return "fmul.d %2,%0";
  1388. }
  1389. }
  1390.  
  1391. static char *
  1392. output_160 (operands, insn)
  1393.      rtx *operands;
  1394.      rtx insn;
  1395. {
  1396.  return output_sane_3 (operands, 0x0804, "FMULD");
  1397. }
  1398.  
  1399. static char *
  1400. output_163 (operands, insn)
  1401.      rtx *operands;
  1402.      rtx insn;
  1403. {
  1404.  return output_sane_3 (operands, 0x0004, "FMULX");
  1405. }
  1406.  
  1407. static char *
  1408. output_168 (operands, insn)
  1409.      rtx *operands;
  1410.      rtx insn;
  1411. {
  1412.  return output_int_lib_call (operands, "LDIVT");
  1413. }
  1414.  
  1415. static char *
  1416. output_173 (operands, insn)
  1417.      rtx *operands;
  1418.      rtx insn;
  1419. {
  1420.  return output_int_lib_call (operands, "ULDIVT");
  1421. }
  1422.  
  1423. static char *
  1424. output_175 (operands, insn)
  1425.      rtx *operands;
  1426.      rtx insn;
  1427. {
  1428.  
  1429. {
  1430.   if (REG_P (operands[2]) && ! DATA_REG_P (operands[2]))
  1431.     return "fsgldiv.x %2,%0";
  1432.   return "fsgldiv%.s%2,%0";
  1433. }
  1434. }
  1435.  
  1436. static char *
  1437. output_176 (operands, insn)
  1438.      rtx *operands;
  1439.      rtx insn;
  1440. {
  1441.  return output_sane_3 (operands, 0x1006, "FDIVS");
  1442. }
  1443.  
  1444. static char *
  1445. output_178 (operands, insn)
  1446.      rtx *operands;
  1447.      rtx insn;
  1448. {
  1449.  
  1450. {
  1451.   if (REG_P (operands[2]))
  1452.     return "fdiv.x %2,%0";
  1453.   return "fdiv.d %2,%0";
  1454. }
  1455. }
  1456.  
  1457. static char *
  1458. output_179 (operands, insn)
  1459.      rtx *operands;
  1460.      rtx insn;
  1461. {
  1462.  return output_sane_3 (operands, 0x0806, "FDIVD");
  1463. }
  1464.  
  1465. static char *
  1466. output_182 (operands, insn)
  1467.      rtx *operands;
  1468.      rtx insn;
  1469. {
  1470.  return output_sane_3 (operands, 0x0006, "FDIVX");
  1471. }
  1472.  
  1473. static char *
  1474. output_183 (operands, insn)
  1475.      rtx *operands;
  1476.      rtx insn;
  1477. {
  1478.  
  1479. {
  1480.   /* The swap insn produces cc's that don't correspond to the result.  */
  1481.   CC_STATUS_INIT;
  1482.   return "ext%.l %0\n\tdivs%.w %2,%0\n\tswap %0";
  1483. }
  1484. }
  1485.  
  1486. static char *
  1487. output_184 (operands, insn)
  1488.      rtx *operands;
  1489.      rtx insn;
  1490. {
  1491.  
  1492. {
  1493.   /* The swap insn produces cc's that don't correspond to the result.  */
  1494.   CC_STATUS_INIT;
  1495.   return "divs%.w %2,%0\n\tswap %0";
  1496. }
  1497. }
  1498.  
  1499. static char *
  1500. output_185 (operands, insn)
  1501.      rtx *operands;
  1502.      rtx insn;
  1503. {
  1504.  
  1505. {
  1506.   /* The swap insn produces cc's that don't correspond to the result.  */
  1507.   CC_STATUS_INIT;
  1508.   return "and%.l #$FFFF,%0\n\tdivu%.w %2,%0\n\tswap %0";
  1509. }
  1510. }
  1511.  
  1512. static char *
  1513. output_186 (operands, insn)
  1514.      rtx *operands;
  1515.      rtx insn;
  1516. {
  1517.  
  1518. {
  1519.   /* The swap insn produces cc's that don't correspond to the result.  */
  1520.   CC_STATUS_INIT;
  1521.   return "divu%.w %2,%0\n\tswap %0";
  1522. }
  1523. }
  1524.  
  1525. static char *
  1526. output_189 (operands, insn)
  1527.      rtx *operands;
  1528.      rtx insn;
  1529. {
  1530.  
  1531. {
  1532.   if (GET_CODE (operands[2]) == CONST_INT
  1533.       && (INTVAL (operands[2]) | 0xffff) == 0xffffffff
  1534.       && (DATA_REG_P (operands[0])
  1535.       || offsettable_memref_p (operands[0])))
  1536.     { 
  1537.       if (GET_CODE (operands[0]) != REG)
  1538.         operands[0] = adj_offsettable_operand (operands[0], 2);
  1539.       operands[2] = gen_rtx (CONST_INT, VOIDmode,
  1540.                  INTVAL (operands[2]) & 0xffff);
  1541.       /* Do not delete a following tstl %0 insn; that would be incorrect.  */
  1542.       CC_STATUS_INIT;
  1543.       if (operands[2] == const0_rtx)
  1544.         return "clr%.w %0";
  1545.       return "and%.w %2,%0";
  1546.     }
  1547.   return "and%.l %2,%0";
  1548. }
  1549. }
  1550.  
  1551. static char *
  1552. output_194 (operands, insn)
  1553.      rtx *operands;
  1554.      rtx insn;
  1555. {
  1556.  
  1557. {
  1558.   register int logval;
  1559.   if (GET_CODE (operands[2]) == CONST_INT
  1560.       && INTVAL (operands[2]) >> 16 == 0
  1561.       && (DATA_REG_P (operands[0])
  1562.       || offsettable_memref_p (operands[0])))
  1563.     { 
  1564.       if (GET_CODE (operands[0]) != REG)
  1565.         operands[0] = adj_offsettable_operand (operands[0], 2);
  1566.       /* Do not delete a following tstl %0 insn; that would be incorrect.  */
  1567.       CC_STATUS_INIT;
  1568.       return "or%.w %2,%0";
  1569.     }
  1570.   if (GET_CODE (operands[2]) == CONST_INT
  1571.       && (logval = exact_log2 (INTVAL (operands[2]))) >= 0
  1572.       && (DATA_REG_P (operands[0])
  1573.       || offsettable_memref_p (operands[0])))
  1574.     { 
  1575.       if (DATA_REG_P (operands[0]))
  1576.     {
  1577.       operands[1] = gen_rtx (CONST_INT, VOIDmode, logval);
  1578.     }
  1579.       else
  1580.         {
  1581.       operands[0] = adj_offsettable_operand (operands[0], 3 - (logval / 8));
  1582.       operands[1] = gen_rtx (CONST_INT, VOIDmode, logval % 8);
  1583.     }
  1584.       return "bset %1,%0";
  1585.     }
  1586.   return "or%.l %2,%0";
  1587. }
  1588. }
  1589.  
  1590. static char *
  1591. output_197 (operands, insn)
  1592.      rtx *operands;
  1593.      rtx insn;
  1594. {
  1595.  
  1596. {
  1597.   if (GET_CODE (operands[2]) == CONST_INT
  1598.       && INTVAL (operands[2]) >> 16 == 0
  1599.       && (offsettable_memref_p (operands[0]) || DATA_REG_P (operands[0])))
  1600.     { 
  1601.       if (! DATA_REG_P (operands[0]))
  1602.     operands[0] = adj_offsettable_operand (operands[0], 2);
  1603.       /* Do not delete a following tstl %0 insn; that would be incorrect.  */
  1604.       CC_STATUS_INIT;
  1605.       return "eor%.w %2,%0";
  1606.     }
  1607.   return "eor%.l %2,%0";
  1608. }
  1609. }
  1610.  
  1611. static char *
  1612. output_204 (operands, insn)
  1613.      rtx *operands;
  1614.      rtx insn;
  1615. {
  1616.  
  1617. {
  1618.   if (REG_P (operands[1]) && ! DATA_REG_P (operands[1]))
  1619.     return "fneg.x %1,%0";
  1620.   return "fneg%.s%1,%0";
  1621. }
  1622. }
  1623.  
  1624. static char *
  1625. output_205 (operands, insn)
  1626.      rtx *operands;
  1627.      rtx insn;
  1628. {
  1629.  return output_sane_2 (operands, 0x000d, "FNEGX");
  1630. }
  1631.  
  1632. static char *
  1633. output_207 (operands, insn)
  1634.      rtx *operands;
  1635.      rtx insn;
  1636. {
  1637.  
  1638. {
  1639.   if (REG_P (operands[1]) && ! DATA_REG_P (operands[1]))
  1640.     return "fneg.x %1,%0";
  1641.   return "fneg.d %1,%0";
  1642. }
  1643. }
  1644.  
  1645. static char *
  1646. output_208 (operands, insn)
  1647.      rtx *operands;
  1648.      rtx insn;
  1649. {
  1650.  return output_sane_2 (operands, 0x000d, "FNEGX");
  1651. }
  1652.  
  1653. static char *
  1654. output_211 (operands, insn)
  1655.      rtx *operands;
  1656.      rtx insn;
  1657. {
  1658.  return output_sane_2 (operands, 0x000d, "FNEGX");
  1659. }
  1660.  
  1661. static char *
  1662. output_226 (operands, insn)
  1663.      rtx *operands;
  1664.      rtx insn;
  1665. {
  1666.  
  1667. {
  1668.   if (REG_P (operands[1]) && ! DATA_REG_P (operands[1]))
  1669.     return "fabs.x %1,%0";
  1670.   return "fabs%.s%1,%0";
  1671. }
  1672. }
  1673.  
  1674. static char *
  1675. output_227 (operands, insn)
  1676.      rtx *operands;
  1677.      rtx insn;
  1678. {
  1679.  return output_sane_2 (operands, 0x000f, "FABSX");
  1680. }
  1681.  
  1682. static char *
  1683. output_229 (operands, insn)
  1684.      rtx *operands;
  1685.      rtx insn;
  1686. {
  1687.  
  1688. {
  1689.   if (REG_P (operands[1]) && ! DATA_REG_P (operands[1]))
  1690.     return "fabs.x %1,%0";
  1691.   return "fabs.d %1,%0";
  1692. }
  1693. }
  1694.  
  1695. static char *
  1696. output_230 (operands, insn)
  1697.      rtx *operands;
  1698.      rtx insn;
  1699. {
  1700.  return output_sane_2 (operands, 0x000f, "FABSX");
  1701. }
  1702.  
  1703. static char *
  1704. output_233 (operands, insn)
  1705.      rtx *operands;
  1706.      rtx insn;
  1707. {
  1708.  return output_sane_2 (operands, 0x000f, "FABSX");
  1709. }
  1710.  
  1711. static char *
  1712. output_237 (operands, insn)
  1713.      rtx *operands;
  1714.      rtx insn;
  1715. {
  1716.  
  1717. {
  1718.   if (TARGET_68020)
  1719.     return "move%.b %1,%0\n\textb%.l %0";
  1720.   return "move%.b %1,%0\n\text%.w %0\n\text%.l %0";
  1721. }
  1722. }
  1723.  
  1724. static char *
  1725. output_238 (operands, insn)
  1726.      rtx *operands;
  1727.      rtx insn;
  1728. {
  1729.  
  1730. {
  1731.   if (reg_mentioned_p (operands[0], operands[1]))
  1732.     return "move%.b %1,%0\n\tand%.l #$FF,%0";
  1733.   return "clr%.l %0\n\tmove%.b %1,%0";
  1734. }
  1735. }
  1736.  
  1737. static char *
  1738. output_239 (operands, insn)
  1739.      rtx *operands;
  1740.      rtx insn;
  1741. {
  1742.  cc_status.flags |= CC_REVERSED;
  1743.   return "cmp%.b %0,%1";
  1744.  
  1745. }
  1746.  
  1747. static char *
  1748. output_240 (operands, insn)
  1749.      rtx *operands;
  1750.      rtx insn;
  1751. {
  1752.  
  1753.   return "cmp%.b %1,%0";
  1754.  
  1755. }
  1756.  
  1757. static char *
  1758. output_241 (operands, insn)
  1759.      rtx *operands;
  1760.      rtx insn;
  1761. {
  1762.  cc_status.flags |= CC_REVERSED;
  1763.   return "cmp%.b %0,%1";
  1764.  
  1765. }
  1766.  
  1767. static char *
  1768. output_242 (operands, insn)
  1769.      rtx *operands;
  1770.      rtx insn;
  1771. {
  1772.  
  1773.   return "cmp%.b %1,%0";
  1774.  
  1775. }
  1776.  
  1777. static char *
  1778. output_261 (operands, insn)
  1779.      rtx *operands;
  1780.      rtx insn;
  1781. {
  1782.  
  1783. {
  1784.   if (REG_P (operands[0]))
  1785.     {
  1786.       if (INTVAL (operands[1]) + INTVAL (operands[2]) != 32)
  1787.         return "bfins %3,%0{%b2:%b1}";
  1788.     }
  1789.   else
  1790.     operands[0]
  1791.       = adj_offsettable_operand (operands[0], INTVAL (operands[2]) / 8);
  1792.  
  1793.   if (GET_CODE (operands[3]) == MEM)
  1794.     operands[3] = adj_offsettable_operand (operands[3],
  1795.                       (32 - INTVAL (operands[1])) / 8);
  1796.   if (INTVAL (operands[1]) == 8)
  1797.     return "move%.b %3,%0";
  1798.   return "move%.w %3,%0";
  1799. }
  1800. }
  1801.  
  1802. static char *
  1803. output_262 (operands, insn)
  1804.      rtx *operands;
  1805.      rtx insn;
  1806. {
  1807.  
  1808. {
  1809.   if (REG_P (operands[1]))
  1810.     {
  1811.       if (INTVAL (operands[2]) + INTVAL (operands[3]) != 32)
  1812.     return "bfextu %1{%b3:%b2},%0";
  1813.     }
  1814.   else
  1815.     operands[1]
  1816.       = adj_offsettable_operand (operands[1], INTVAL (operands[3]) / 8);
  1817.  
  1818.   output_asm_insn ("clr%.l %0", operands);
  1819.   if (GET_CODE (operands[0]) == MEM)
  1820.     operands[0] = adj_offsettable_operand (operands[0],
  1821.                       (32 - INTVAL (operands[1])) / 8);
  1822.   if (INTVAL (operands[2]) == 8)
  1823.     return "move%.b %1,%0";
  1824.   return "move%.w %1,%0";
  1825. }
  1826. }
  1827.  
  1828. static char *
  1829. output_263 (operands, insn)
  1830.      rtx *operands;
  1831.      rtx insn;
  1832. {
  1833.  
  1834. {
  1835.   if (REG_P (operands[1]))
  1836.     {
  1837.       if (INTVAL (operands[2]) + INTVAL (operands[3]) != 32)
  1838.     return "bfexts %1{%b3:%b2},%0";
  1839.     }
  1840.   else
  1841.     operands[1]
  1842.       = adj_offsettable_operand (operands[1], INTVAL (operands[3]) / 8);
  1843.  
  1844.   if (INTVAL (operands[2]) == 8)
  1845.     return "move%.b %1,%0\n\textb%.l %0";
  1846.   return "move%.w %1,%0\n\text%.l %0";
  1847. }
  1848. }
  1849.  
  1850. static char *
  1851. output_266 (operands, insn)
  1852.      rtx *operands;
  1853.      rtx insn;
  1854. {
  1855.  
  1856. {
  1857.   CC_STATUS_INIT;
  1858.   return "bfchg %0{%b2:%b1}";
  1859. }
  1860. }
  1861.  
  1862. static char *
  1863. output_267 (operands, insn)
  1864.      rtx *operands;
  1865.      rtx insn;
  1866. {
  1867.  
  1868. {
  1869.   CC_STATUS_INIT;
  1870.   return "bfclr %0{%b2:%b1}";
  1871. }
  1872. }
  1873.  
  1874. static char *
  1875. output_268 (operands, insn)
  1876.      rtx *operands;
  1877.      rtx insn;
  1878. {
  1879.  
  1880. {
  1881.   CC_STATUS_INIT;
  1882.   return "bfset %0{%b2:%b1}";
  1883. }
  1884. }
  1885.  
  1886. static char *
  1887. output_272 (operands, insn)
  1888.      rtx *operands;
  1889.      rtx insn;
  1890. {
  1891.  
  1892. {
  1893.   CC_STATUS_INIT;
  1894.   return "bfclr %0{%b2:%b1}";
  1895. }
  1896. }
  1897.  
  1898. static char *
  1899. output_273 (operands, insn)
  1900.      rtx *operands;
  1901.      rtx insn;
  1902. {
  1903.  
  1904. {
  1905.   CC_STATUS_INIT;
  1906.   return "bfset %0{%b2:%b1}";
  1907. }
  1908. }
  1909.  
  1910. static char *
  1911. output_274 (operands, insn)
  1912.      rtx *operands;
  1913.      rtx insn;
  1914. {
  1915.  
  1916. {
  1917. #if 0
  1918.   /* These special cases are now recognized by a specific pattern.  */
  1919.   if (GET_CODE (operands[1]) == CONST_INT && GET_CODE (operands[2]) == CONST_INT
  1920.       && INTVAL (operands[1]) == 16 && INTVAL (operands[2]) == 16)
  1921.     return "move%.w %3,%0";
  1922.   if (GET_CODE (operands[1]) == CONST_INT && GET_CODE (operands[2]) == CONST_INT
  1923.       && INTVAL (operands[1]) == 24 && INTVAL (operands[2]) == 8)
  1924.     return "move%.b %3,%0";
  1925. #endif
  1926.   return "bfins %3,%0{%b2:%b1}";
  1927. }
  1928. }
  1929.  
  1930. static char *
  1931. output_275 (operands, insn)
  1932.      rtx *operands;
  1933.      rtx insn;
  1934. {
  1935.  
  1936. {
  1937.   if (operands[1] == const1_rtx
  1938.       && GET_CODE (operands[2]) == CONST_INT)
  1939.     {    
  1940.       int width = GET_CODE (operands[0]) == REG ? 31 : 7;
  1941.       return output_btst (operands,
  1942.               gen_rtx (CONST_INT, VOIDmode,
  1943.                    width - INTVAL (operands[2])),
  1944.               operands[0],
  1945.               insn, 1000);
  1946.       /* Pass 1000 as SIGNPOS argument so that btst will
  1947.          not think we are testing the sign bit for an `and'
  1948.      and assume that nonzero implies a negative result.  */
  1949.     }
  1950.   if (INTVAL (operands[1]) != 32)
  1951.     cc_status.flags = CC_NOT_NEGATIVE;
  1952.   return "bftst %0{%b2:%b1}";
  1953. }
  1954. }
  1955.  
  1956. static char *
  1957. output_276 (operands, insn)
  1958.      rtx *operands;
  1959.      rtx insn;
  1960. {
  1961.  
  1962. {
  1963.   if (operands[1] == const1_rtx
  1964.       && GET_CODE (operands[2]) == CONST_INT)
  1965.     {    
  1966.       int width = GET_CODE (operands[0]) == REG ? 31 : 7;
  1967.       return output_btst (operands,
  1968.               gen_rtx (CONST_INT, VOIDmode,
  1969.                    width - INTVAL (operands[2])),
  1970.               operands[0],
  1971.               insn, 1000);
  1972.       /* Pass 1000 as SIGNPOS argument so that btst will
  1973.          not think we are testing the sign bit for an `and'
  1974.      and assume that nonzero implies a negative result.  */
  1975.     }
  1976.   if (INTVAL (operands[1]) != 32)
  1977.     cc_status.flags = CC_NOT_NEGATIVE;
  1978.   return "bftst %0{%b2:%b1}";
  1979. }
  1980. }
  1981.  
  1982. static char *
  1983. output_277 (operands, insn)
  1984.      rtx *operands;
  1985.      rtx insn;
  1986. {
  1987.  
  1988. {
  1989.   if (operands[1] == const1_rtx
  1990.       && GET_CODE (operands[2]) == CONST_INT)
  1991.     {    
  1992.       int width = GET_CODE (operands[0]) == REG ? 31 : 7;
  1993.       return output_btst (operands,
  1994.               gen_rtx (CONST_INT, VOIDmode,
  1995.                    width - INTVAL (operands[2])),
  1996.               operands[0],
  1997.               insn, 1000);
  1998.       /* Pass 1000 as SIGNPOS argument so that btst will
  1999.          not think we are testing the sign bit for an `and'
  2000.      and assume that nonzero implies a negative result.  */
  2001.     }
  2002.   if (INTVAL (operands[1]) != 32)
  2003.     cc_status.flags = CC_NOT_NEGATIVE;
  2004.   return "bftst %0{%b2:%b1}";
  2005. }
  2006. }
  2007.  
  2008. static char *
  2009. output_278 (operands, insn)
  2010.      rtx *operands;
  2011.      rtx insn;
  2012. {
  2013.  
  2014. {
  2015.   if (operands[1] == const1_rtx
  2016.       && GET_CODE (operands[2]) == CONST_INT)
  2017.     {    
  2018.       int width = GET_CODE (operands[0]) == REG ? 31 : 7;
  2019.       return output_btst (operands,
  2020.               gen_rtx (CONST_INT, VOIDmode,
  2021.                    width - INTVAL (operands[2])),
  2022.               operands[0],
  2023.               insn, 1000);
  2024.       /* Pass 1000 as SIGNPOS argument so that btst will
  2025.          not think we are testing the sign bit for an `and'
  2026.      and assume that nonzero implies a negative result.  */
  2027.     }
  2028.   if (INTVAL (operands[1]) != 32)
  2029.     cc_status.flags = CC_NOT_NEGATIVE;
  2030.   return "bftst %0{%b2:%b1}";
  2031. }
  2032. }
  2033.  
  2034. static char *
  2035. output_279 (operands, insn)
  2036.      rtx *operands;
  2037.      rtx insn;
  2038. {
  2039.  
  2040. {
  2041.   if (operands[1] == const1_rtx
  2042.       && GET_CODE (operands[2]) == CONST_INT)
  2043.     {    
  2044.       int width = GET_CODE (operands[0]) == REG ? 31 : 7;
  2045.       return output_btst (operands,
  2046.               gen_rtx (CONST_INT, VOIDmode,
  2047.                    width - INTVAL (operands[2])),
  2048.               operands[0],
  2049.               insn, 1000);
  2050.       /* Pass 1000 as SIGNPOS argument so that btst will
  2051.          not think we are testing the sign bit for an `and'
  2052.      and assume that nonzero implies a negative result.  */
  2053.     }
  2054.   if (INTVAL (operands[1]) != 32)
  2055.     cc_status.flags = CC_NOT_NEGATIVE;
  2056.   return "bftst %0{%b2:%b1}";
  2057. }
  2058. }
  2059.  
  2060. static char *
  2061. output_280 (operands, insn)
  2062.      rtx *operands;
  2063.      rtx insn;
  2064. {
  2065.  
  2066. {
  2067.   if (operands[1] == const1_rtx
  2068.       && GET_CODE (operands[2]) == CONST_INT)
  2069.     {    
  2070.       int width = GET_CODE (operands[0]) == REG ? 31 : 7;
  2071.       return output_btst (operands,
  2072.               gen_rtx (CONST_INT, VOIDmode,
  2073.                    width - INTVAL (operands[2])),
  2074.               operands[0],
  2075.               insn, 1000);
  2076.       /* Pass 1000 as SIGNPOS argument so that btst will
  2077.          not think we are testing the sign bit for an `and'
  2078.      and assume that nonzero implies a negative result.  */
  2079.     }
  2080.   if (INTVAL (operands[1]) != 32)
  2081.     cc_status.flags = CC_NOT_NEGATIVE;
  2082.   return "bftst %0{%b2:%b1}";
  2083. }
  2084. }
  2085.  
  2086. static char *
  2087. output_281 (operands, insn)
  2088.      rtx *operands;
  2089.      rtx insn;
  2090. {
  2091.  
  2092.   cc_status = cc_prev_status;
  2093.   OUTPUT_JUMP ("seq %0", "fseq %0", "seq %0");
  2094.  
  2095. }
  2096.  
  2097. static char *
  2098. output_282 (operands, insn)
  2099.      rtx *operands;
  2100.      rtx insn;
  2101. {
  2102.  
  2103.   cc_status = cc_prev_status;
  2104.   OUTPUT_JUMP ("sne %0", "fsne %0", "sne %0");
  2105.  
  2106. }
  2107.  
  2108. static char *
  2109. output_283 (operands, insn)
  2110.      rtx *operands;
  2111.      rtx insn;
  2112. {
  2113.  
  2114.   cc_status = cc_prev_status;
  2115.   OUTPUT_JUMP ("sgt %0", "fsgt %0", 0);
  2116.  
  2117. }
  2118.  
  2119. static char *
  2120. output_284 (operands, insn)
  2121.      rtx *operands;
  2122.      rtx insn;
  2123. {
  2124.  cc_status = cc_prev_status;
  2125.      return "shi %0"; 
  2126. }
  2127.  
  2128. static char *
  2129. output_285 (operands, insn)
  2130.      rtx *operands;
  2131.      rtx insn;
  2132. {
  2133.  cc_status = cc_prev_status;
  2134.      OUTPUT_JUMP ("slt %0", "fslt %0", "smi %0"); 
  2135. }
  2136.  
  2137. static char *
  2138. output_286 (operands, insn)
  2139.      rtx *operands;
  2140.      rtx insn;
  2141. {
  2142.  cc_status = cc_prev_status;
  2143.      return "scs %0"; 
  2144. }
  2145.  
  2146. static char *
  2147. output_287 (operands, insn)
  2148.      rtx *operands;
  2149.      rtx insn;
  2150. {
  2151.  cc_status = cc_prev_status;
  2152.      OUTPUT_JUMP ("sge %0", "fsge %0", "spl %0"); 
  2153. }
  2154.  
  2155. static char *
  2156. output_288 (operands, insn)
  2157.      rtx *operands;
  2158.      rtx insn;
  2159. {
  2160.  cc_status = cc_prev_status;
  2161.      return "scc %0"; 
  2162. }
  2163.  
  2164. static char *
  2165. output_289 (operands, insn)
  2166.      rtx *operands;
  2167.      rtx insn;
  2168. {
  2169.  
  2170.   cc_status = cc_prev_status;
  2171.   OUTPUT_JUMP ("sle %0", "fsle %0", 0);
  2172.  
  2173. }
  2174.  
  2175. static char *
  2176. output_290 (operands, insn)
  2177.      rtx *operands;
  2178.      rtx insn;
  2179. {
  2180.  cc_status = cc_prev_status;
  2181.      return "sls %0"; 
  2182. }
  2183.  
  2184. static char *
  2185. output_291 (operands, insn)
  2186.      rtx *operands;
  2187.      rtx insn;
  2188. {
  2189.  
  2190. {
  2191.   OUTPUT_JUMP ("beq %l0", "fbeq %l0", "beq %l0");
  2192. }
  2193. }
  2194.  
  2195. static char *
  2196. output_292 (operands, insn)
  2197.      rtx *operands;
  2198.      rtx insn;
  2199. {
  2200.  
  2201. {
  2202.   OUTPUT_JUMP ("bne %l0", "fbne %l0", "bne %l0");
  2203. }
  2204. }
  2205.  
  2206. static char *
  2207. output_293 (operands, insn)
  2208.      rtx *operands;
  2209.      rtx insn;
  2210. {
  2211.  
  2212.   OUTPUT_JUMP ("bgt %l0", "fbgt %l0", 0);
  2213.  
  2214. }
  2215.  
  2216. static char *
  2217. output_294 (operands, insn)
  2218.      rtx *operands;
  2219.      rtx insn;
  2220. {
  2221.  
  2222.   return "bhi %l0";
  2223.  
  2224. }
  2225.  
  2226. static char *
  2227. output_295 (operands, insn)
  2228.      rtx *operands;
  2229.      rtx insn;
  2230. {
  2231.  
  2232.   OUTPUT_JUMP ("blt %l0", "fblt %l0", "bmi %l0");
  2233.  
  2234. }
  2235.  
  2236. static char *
  2237. output_296 (operands, insn)
  2238.      rtx *operands;
  2239.      rtx insn;
  2240. {
  2241.  
  2242.   return "bcs %l0";
  2243.  
  2244. }
  2245.  
  2246. static char *
  2247. output_297 (operands, insn)
  2248.      rtx *operands;
  2249.      rtx insn;
  2250. {
  2251.  
  2252.   OUTPUT_JUMP ("bge %l0", "fbge %l0", "bpl %l0");
  2253.  
  2254. }
  2255.  
  2256. static char *
  2257. output_298 (operands, insn)
  2258.      rtx *operands;
  2259.      rtx insn;
  2260. {
  2261.  
  2262.   return "bcc %l0";
  2263.  
  2264. }
  2265.  
  2266. static char *
  2267. output_299 (operands, insn)
  2268.      rtx *operands;
  2269.      rtx insn;
  2270. {
  2271.  
  2272.   OUTPUT_JUMP ("ble %l0", "fble %l0", 0);
  2273.  
  2274. }
  2275.  
  2276. static char *
  2277. output_300 (operands, insn)
  2278.      rtx *operands;
  2279.      rtx insn;
  2280. {
  2281.  
  2282.   return "bls %l0";
  2283.  
  2284. }
  2285.  
  2286. static char *
  2287. output_301 (operands, insn)
  2288.      rtx *operands;
  2289.      rtx insn;
  2290. {
  2291.  
  2292. {
  2293.   OUTPUT_JUMP ("bne %l0", "fbne %l0", "bne %l0");
  2294. }
  2295. }
  2296.  
  2297. static char *
  2298. output_302 (operands, insn)
  2299.      rtx *operands;
  2300.      rtx insn;
  2301. {
  2302.  
  2303. {
  2304.   OUTPUT_JUMP ("beq %l0", "fbeq %l0", "beq %l0");
  2305. }
  2306. }
  2307.  
  2308. static char *
  2309. output_303 (operands, insn)
  2310.      rtx *operands;
  2311.      rtx insn;
  2312. {
  2313.  
  2314.   OUTPUT_JUMP ("ble %l0", "fbngt %l0", 0);
  2315.  
  2316. }
  2317.  
  2318. static char *
  2319. output_304 (operands, insn)
  2320.      rtx *operands;
  2321.      rtx insn;
  2322. {
  2323.  
  2324.   return "bls %l0";
  2325.  
  2326. }
  2327.  
  2328. static char *
  2329. output_305 (operands, insn)
  2330.      rtx *operands;
  2331.      rtx insn;
  2332. {
  2333.  
  2334.   OUTPUT_JUMP ("bge %l0", "fbnlt %l0", "bpl %l0");
  2335.  
  2336. }
  2337.  
  2338. static char *
  2339. output_306 (operands, insn)
  2340.      rtx *operands;
  2341.      rtx insn;
  2342. {
  2343.  
  2344.   return "bcc %l0";
  2345.  
  2346. }
  2347.  
  2348. static char *
  2349. output_307 (operands, insn)
  2350.      rtx *operands;
  2351.      rtx insn;
  2352. {
  2353.  
  2354.   OUTPUT_JUMP ("blt %l0", "fbnge %l0", "bmi %l0");
  2355.  
  2356. }
  2357.  
  2358. static char *
  2359. output_308 (operands, insn)
  2360.      rtx *operands;
  2361.      rtx insn;
  2362. {
  2363.  
  2364.   return "bcs %l0";
  2365.  
  2366. }
  2367.  
  2368. static char *
  2369. output_309 (operands, insn)
  2370.      rtx *operands;
  2371.      rtx insn;
  2372. {
  2373.  
  2374.   OUTPUT_JUMP ("bgt %l0", "fbnle %l0", 0);
  2375.  
  2376. }
  2377.  
  2378. static char *
  2379. output_310 (operands, insn)
  2380.      rtx *operands;
  2381.      rtx insn;
  2382. {
  2383.  
  2384.   return "bhi %l0";
  2385.  
  2386. }
  2387.  
  2388. static char *
  2389. output_314 (operands, insn)
  2390.      rtx *operands;
  2391.      rtx insn;
  2392. {
  2393.  
  2394.   return TARGET_GAS?"jmp @(%l1,%0:w)":"jmp %l1(%0.w)";
  2395.  
  2396. }
  2397.  
  2398. static char *
  2399. output_315 (operands, insn)
  2400.      rtx *operands;
  2401.      rtx insn;
  2402. {
  2403.  
  2404.   return "bra %l0";
  2405.  
  2406. }
  2407.  
  2408. static char *
  2409. output_316 (operands, insn)
  2410.      rtx *operands;
  2411.      rtx insn;
  2412. {
  2413.  
  2414. {
  2415.   if (DATA_REG_P (operands[0]))
  2416.     return "dbra %0,%l1";
  2417.   if (GET_CODE (operands[0]) == MEM)
  2418.     {
  2419.       return "subq%.w #1,%0\n\tbcc %l1";
  2420.     }
  2421.   return "subq%.w #1,%0\n\tcmp%.w #-1,%0\n\tbne %l1";
  2422. }
  2423. }
  2424.  
  2425. static char *
  2426. output_317 (operands, insn)
  2427.      rtx *operands;
  2428.      rtx insn;
  2429. {
  2430.  
  2431. {
  2432.   if (DATA_REG_P (operands[0]))
  2433.     return "dbra %0,%l1\n\tclr%.w %0\n\tsubq%.l #1,%0\n\tbcc %l1";
  2434.   if (GET_CODE (operands[0]) == MEM)
  2435.     return "subq%.l #1,%0\n\tbcc %l1";
  2436.   return "subq%.l #1,%0\n\tcmp%.l #-1,%0\n\tbne %l1";
  2437. }
  2438. }
  2439.  
  2440. static char *
  2441. output_318 (operands, insn)
  2442.      rtx *operands;
  2443.      rtx insn;
  2444. {
  2445.  
  2446. {
  2447.   if (DATA_REG_P (operands[0]))
  2448.     return "dbra %0,%l1\n\tclr%.w %0\n\tsubq%.l #1,%0\n\tbcc %l1";
  2449.   if (GET_CODE (operands[0]) == MEM)
  2450.     return "subq%.l #1,%0\n\tbcc %l1";
  2451.   return "subq%.l #1,%0\n\tcmp%.l #-1,%0\n\tbne %l1";
  2452. }
  2453. }
  2454.  
  2455. static char *
  2456. output_319 (operands, insn)
  2457.      rtx *operands;
  2458.      rtx insn;
  2459. {
  2460.  
  2461. {
  2462.   char *name = "?";
  2463.   rtx sym = XEXP (operands[0], 0);
  2464.   if (GET_CODE(sym) == SYMBOL_REF) name = XSTR (sym, 0);
  2465.  
  2466.   if (name[1] == ';')
  2467.     {
  2468.       operands[0] = gen_rtx (MEM, QImode,
  2469.                  gen_rtx (SYMBOL_REF, SImode, name+2));
  2470.       return TARGET_GAS?".word %0":"DC.W %0";
  2471.     }
  2472.   if (TARGET_FX30 && GET_CODE (XEXP (operands[0], 0)) == SYMBOL_REF)
  2473.     {
  2474.       return "DC.W $61ff ; bsr.l\n\tDC.L %0-m#start-*";
  2475.     }
  2476.   return "jsr %0";
  2477. }
  2478. }
  2479.  
  2480. static char *
  2481. output_320 (operands, insn)
  2482.      rtx *operands;
  2483.      rtx insn;
  2484. {
  2485.  
  2486. {
  2487.   char *name = XSTR (XEXP (operands[1], 0), 0);
  2488.  
  2489.   if (name[1] == ';') {
  2490.     operands[1] = gen_rtx (MEM, QImode, gen_rtx (SYMBOL_REF, SImode, name+2));
  2491.     return TARGET_GAS?".word %1":"DC.W %1";
  2492.   }
  2493.   if (TARGET_FX30 && GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF)
  2494.     {
  2495.       return "DC.W $61ff ; bsr.l\n\tDC.L %1-m#start-*";
  2496.     }
  2497.   return "jsr %1";
  2498. }
  2499. }
  2500.  
  2501. static char *
  2502. output_324 (operands, insn)
  2503.      rtx *operands;
  2504.      rtx insn;
  2505. {
  2506.  
  2507. {
  2508.   rtx xoperands[2];
  2509.   xoperands[1] = gen_rtx (REG, SImode, REGNO (operands[1]) + 1);
  2510.   output_asm_insn ("move%.l %1,%@", xoperands);
  2511.   output_asm_insn ("move%.l %1,%-", operands);
  2512.   return "fmove.d %+,%0";
  2513. }
  2514.  
  2515. }
  2516.  
  2517. char * const insn_template[] =
  2518.   {
  2519.     0,
  2520.     0,
  2521.     0,
  2522.     0,
  2523.     "tst%.b %0",
  2524.     0,
  2525.     0,
  2526.     0,
  2527.     0,
  2528.     0,
  2529.     0,
  2530.     0,
  2531.     0,
  2532.     0,
  2533.     0,
  2534.     0,
  2535.     0,
  2536.     0,
  2537.     0,
  2538.     0,
  2539.     0,
  2540.     0,
  2541.     0,
  2542.     0,
  2543.     0,
  2544.     0,
  2545.     0,
  2546.     0,
  2547.     0,
  2548.     0,
  2549.     0,
  2550.     0,
  2551.     0,
  2552.     0,
  2553.     0,
  2554.     0,
  2555.     0,
  2556.     0,
  2557.     0,
  2558.     0,
  2559.     0,
  2560.     0,
  2561.     0,
  2562.     0,
  2563.     0,
  2564.     0,
  2565.     "pea %a1",
  2566.     0,
  2567.     0,
  2568.     0,
  2569.     0,
  2570.     0,
  2571.     0,
  2572.     0,
  2573.     0,
  2574.     0,
  2575.     0,
  2576.     "ext%.w %0",
  2577.     "extb%.l %0",
  2578.     0,
  2579.     0,
  2580.     0,
  2581.     0,
  2582.     0,
  2583.     0,
  2584.     0,
  2585.     0,
  2586.     0,
  2587.     0,
  2588.     "fmove%.s%1,%0",
  2589.     0,
  2590.     0,
  2591.     "fmove%.s%1,%0",
  2592.     0,
  2593.     0,
  2594.     0,
  2595.     0,
  2596.     0,
  2597.     "fmove%.l %1,%0",
  2598.     0,
  2599.     0,
  2600.     "fmove%.l %1,%0",
  2601.     0,
  2602.     0,
  2603.     "fmove%.l %1,%0",
  2604.     0,
  2605.     "fmove%.w %1,%0",
  2606.     "fmove%.w %1,%0",
  2607.     "fmove%.w %1,%0",
  2608.     "fmove%.b %1,%0",
  2609.     "fmove%.b %1,%0",
  2610.     "fmove%.b %1,%0",
  2611.     0,
  2612.     0,
  2613.     0,
  2614.     0,
  2615.     0,
  2616.     0,
  2617.     0,
  2618.     0,
  2619.     "fintrz.x %1,%0",
  2620.     "fmove%.b %1,%0",
  2621.     "fmove%.w %1,%0",
  2622.     "fmove%.l %1,%0",
  2623.     "fmove%.b %1,%0",
  2624.     "fmove%.w %1,%0",
  2625.     "fmove%.l %1,%0",
  2626.     "fmove%.b %1,%0",
  2627.     "fmove%.w %1,%0",
  2628.     0,
  2629.     0,
  2630.     "fmove%.l %1,%0",
  2631.     0,
  2632.     0,
  2633.     0,
  2634.     0,
  2635.     "add%.w %2,%0",
  2636.     0,
  2637.     "add%.w %1,%0",
  2638.     0,
  2639.     "add%.b %1,%0",
  2640.     0,
  2641.     0,
  2642.     0,
  2643.     0,
  2644.     0,
  2645.     0,
  2646.     0,
  2647.     "fadd.x %2,%0",
  2648.     0,
  2649.     0,
  2650.     "sub%.w %2,%0",
  2651.     "sub%.w %2,%0",
  2652.     "sub%.w %1,%0",
  2653.     "sub%.b %2,%0",
  2654.     "sub%.b %1,%0",
  2655.     0,
  2656.     0,
  2657.     0,
  2658.     0,
  2659.     0,
  2660.     0,
  2661.     0,
  2662.     "fsub.x %2,%0",
  2663.     0,
  2664.     "muls%.w %2,%0",
  2665.     "muls%.w %2,%0",
  2666.     0,
  2667.     "muls%.l %2,%0",
  2668.     0,
  2669.     "mulu%.w %2,%0",
  2670.     "mulu%.w %2,%0",
  2671.     0,
  2672.     "mulu%.l %2,%0",
  2673.     0,
  2674.     0,
  2675.     0,
  2676.     0,
  2677.     0,
  2678.     0,
  2679.     0,
  2680.     0,
  2681.     "fmul.x %2,%0",
  2682.     0,
  2683.     "ext%.l %0\n\tdivs%.w %2,%0",
  2684.     "divs%.w %2,%0",
  2685.     0,
  2686.     "divs%.l %2,%0",
  2687.     0,
  2688.     "and%.l #$FFFF,%0\n\tdivu%.w %2,%0",
  2689.     "divu%.w %2,%0",
  2690.     0,
  2691.     "divu%.l %2,%0",
  2692.     0,
  2693.     0,
  2694.     0,
  2695.     0,
  2696.     0,
  2697.     0,
  2698.     0,
  2699.     0,
  2700.     "fdiv.x %2,%0",
  2701.     0,
  2702.     0,
  2703.     0,
  2704.     0,
  2705.     0,
  2706.     "tdivs%.l %2,%3:%0",
  2707.     "tdivu%.l %2,%3:%0",
  2708.     0,
  2709.     "and%.w %2,%0",
  2710.     "and%.b %2,%0",
  2711.     "and%.w %1,%0",
  2712.     "and%.b %1,%0",
  2713.     0,
  2714.     "or%.w %2,%0",
  2715.     "or%.b %2,%0",
  2716.     0,
  2717.     "eor%.w %2,%0",
  2718.     "eor%.b %2,%0",
  2719.     "neg%.l %0",
  2720.     "neg%.w %0",
  2721.     "neg%.b %0",
  2722.     0,
  2723.     0,
  2724.     0,
  2725.     0,
  2726.     0,
  2727.     0,
  2728.     0,
  2729.     "fneg.x %1,%0",
  2730.     0,
  2731.     "fsin.x %1,%0",
  2732.     "fcos.x %1,%0",
  2733.     "ftan.x %1,%0",
  2734.     "fasin.x %1,%0",
  2735.     "facos.x %1,%0",
  2736.     "fatan.x %1,%0",
  2737.     "fsinh.x %1,%0",
  2738.     "fcosh.x %1,%0",
  2739.     "ftanh.x %1,%0",
  2740.     "fetox.x %1,%0",
  2741.     "flogn.x %1,%0",
  2742.     "flog10.x %1,%0",
  2743.     "fsqrt.x %1,%0",
  2744.     0,
  2745.     0,
  2746.     0,
  2747.     0,
  2748.     0,
  2749.     0,
  2750.     0,
  2751.     "fabs.x %1,%0",
  2752.     0,
  2753.     "not%.l %0",
  2754.     "not%.w %0",
  2755.     "not%.b %0",
  2756.     0,
  2757.     0,
  2758.     0,
  2759.     0,
  2760.     0,
  2761.     0,
  2762.     "asl%.l %2,%0",
  2763.     "asl%.w %2,%0",
  2764.     "asl%.b %2,%0",
  2765.     "asr%.l %2,%0",
  2766.     "asr%.w %2,%0",
  2767.     "asr%.b %2,%0",
  2768.     "lsl%.l %2,%0",
  2769.     "lsl%.w %2,%0",
  2770.     "lsl%.b %2,%0",
  2771.     "lsr%.l %2,%0",
  2772.     "lsr%.w %2,%0",
  2773.     "lsr%.b %2,%0",
  2774.     "rol%.l %2,%0",
  2775.     "rol%.w %2,%0",
  2776.     "rol%.b %2,%0",
  2777.     "ror%.l %2,%0",
  2778.     "ror%.w %2,%0",
  2779.     "ror%.b %2,%0",
  2780.     0,
  2781.     0,
  2782.     0,
  2783.     "bfexts %1{%b3:%b2},%0",
  2784.     "bfextu %1{%b3:%b2},%0",
  2785.     0,
  2786.     0,
  2787.     0,
  2788.     "bfins %3,%0{%b2:%b1}",
  2789.     "bfexts %1{%b3:%b2},%0",
  2790.     "bfextu %1{%b3:%b2},%0",
  2791.     0,
  2792.     0,
  2793.     0,
  2794.     0,
  2795.     0,
  2796.     0,
  2797.     0,
  2798.     0,
  2799.     0,
  2800.     0,
  2801.     0,
  2802.     0,
  2803.     0,
  2804.     0,
  2805.     0,
  2806.     0,
  2807.     0,
  2808.     0,
  2809.     0,
  2810.     0,
  2811.     0,
  2812.     0,
  2813.     0,
  2814.     0,
  2815.     0,
  2816.     0,
  2817.     0,
  2818.     0,
  2819.     0,
  2820.     0,
  2821.     0,
  2822.     0,
  2823.     0,
  2824.     0,
  2825.     0,
  2826.     0,
  2827.     0,
  2828.     0,
  2829.     0,
  2830.     0,
  2831.     0,
  2832.     0,
  2833.     0,
  2834.     0,
  2835.     0,
  2836.     0,
  2837.     0,
  2838.     0,
  2839.     0,
  2840.     "ret 0",
  2841.     "nop",
  2842.     "lea %a1,%0",
  2843.     0,
  2844.   };
  2845.  
  2846. char *(*const insn_outfun[])() =
  2847.   {
  2848.     output_0,
  2849.     output_1,
  2850.     output_2,
  2851.     output_3,
  2852.     0,
  2853.     0,
  2854.     output_6,
  2855.     output_7,
  2856.     0,
  2857.     output_9,
  2858.     output_10,
  2859.     0,
  2860.     output_12,
  2861.     output_13,
  2862.     output_14,
  2863.     output_15,
  2864.     output_16,
  2865.     0,
  2866.     output_18,
  2867.     output_19,
  2868.     0,
  2869.     output_21,
  2870.     output_22,
  2871.     0,
  2872.     output_24,
  2873.     output_25,
  2874.     output_26,
  2875.     output_27,
  2876.     output_28,
  2877.     output_29,
  2878.     output_30,
  2879.     output_31,
  2880.     output_32,
  2881.     output_33,
  2882.     output_34,
  2883.     output_35,
  2884.     output_36,
  2885.     output_37,
  2886.     output_38,
  2887.     output_39,
  2888.     output_40,
  2889.     output_41,
  2890.     output_42,
  2891.     output_43,
  2892.     output_44,
  2893.     output_45,
  2894.     0,
  2895.     output_47,
  2896.     output_48,
  2897.     output_49,
  2898.     0,
  2899.     0,
  2900.     0,
  2901.     output_53,
  2902.     output_54,
  2903.     output_55,
  2904.     output_56,
  2905.     0,
  2906.     0,
  2907.     0,
  2908.     output_60,
  2909.     output_61,
  2910.     0,
  2911.     output_63,
  2912.     output_64,
  2913.     0,
  2914.     output_66,
  2915.     output_67,
  2916.     0,
  2917.     0,
  2918.     output_70,
  2919.     0,
  2920.     0,
  2921.     output_73,
  2922.     0,
  2923.     output_75,
  2924.     output_76,
  2925.     0,
  2926.     0,
  2927.     output_79,
  2928.     0,
  2929.     0,
  2930.     output_82,
  2931.     0,
  2932.     0,
  2933.     output_85,
  2934.     0,
  2935.     0,
  2936.     0,
  2937.     0,
  2938.     0,
  2939.     0,
  2940.     0,
  2941.     output_93,
  2942.     output_94,
  2943.     0,
  2944.     output_96,
  2945.     output_97,
  2946.     0,
  2947.     output_99,
  2948.     0,
  2949.     0,
  2950.     0,
  2951.     0,
  2952.     0,
  2953.     0,
  2954.     0,
  2955.     0,
  2956.     0,
  2957.     0,
  2958.     output_110,
  2959.     0,
  2960.     0,
  2961.     output_113,
  2962.     output_114,
  2963.     output_115,
  2964.     0,
  2965.     output_117,
  2966.     0,
  2967.     output_119,
  2968.     0,
  2969.     0,
  2970.     output_122,
  2971.     output_123,
  2972.     0,
  2973.     output_125,
  2974.     output_126,
  2975.     0,
  2976.     0,
  2977.     output_129,
  2978.     output_130,
  2979.     0,
  2980.     0,
  2981.     0,
  2982.     0,
  2983.     0,
  2984.     0,
  2985.     output_137,
  2986.     output_138,
  2987.     0,
  2988.     output_140,
  2989.     output_141,
  2990.     0,
  2991.     0,
  2992.     output_144,
  2993.     0,
  2994.     0,
  2995.     0,
  2996.     0,
  2997.     output_149,
  2998.     0,
  2999.     0,
  3000.     0,
  3001.     0,
  3002.     output_154,
  3003.     0,
  3004.     output_156,
  3005.     output_157,
  3006.     0,
  3007.     output_159,
  3008.     output_160,
  3009.     0,
  3010.     0,
  3011.     output_163,
  3012.     0,
  3013.     0,
  3014.     0,
  3015.     0,
  3016.     output_168,
  3017.     0,
  3018.     0,
  3019.     0,
  3020.     0,
  3021.     output_173,
  3022.     0,
  3023.     output_175,
  3024.     output_176,
  3025.     0,
  3026.     output_178,
  3027.     output_179,
  3028.     0,
  3029.     0,
  3030.     output_182,
  3031.     output_183,
  3032.     output_184,
  3033.     output_185,
  3034.     output_186,
  3035.     0,
  3036.     0,
  3037.     output_189,
  3038.     0,
  3039.     0,
  3040.     0,
  3041.     0,
  3042.     output_194,
  3043.     0,
  3044.     0,
  3045.     output_197,
  3046.     0,
  3047.     0,
  3048.     0,
  3049.     0,
  3050.     0,
  3051.     0,
  3052.     output_204,
  3053.     output_205,
  3054.     0,
  3055.     output_207,
  3056.     output_208,
  3057.     0,
  3058.     0,
  3059.     output_211,
  3060.     0,
  3061.     0,
  3062.     0,
  3063.     0,
  3064.     0,
  3065.     0,
  3066.     0,
  3067.     0,
  3068.     0,
  3069.     0,
  3070.     0,
  3071.     0,
  3072.     0,
  3073.     0,
  3074.     output_226,
  3075.     output_227,
  3076.     0,
  3077.     output_229,
  3078.     output_230,
  3079.     0,
  3080.     0,
  3081.     output_233,
  3082.     0,
  3083.     0,
  3084.     0,
  3085.     output_237,
  3086.     output_238,
  3087.     output_239,
  3088.     output_240,
  3089.     output_241,
  3090.     output_242,
  3091.     0,
  3092.     0,
  3093.     0,
  3094.     0,
  3095.     0,
  3096.     0,
  3097.     0,
  3098.     0,
  3099.     0,
  3100.     0,
  3101.     0,
  3102.     0,
  3103.     0,
  3104.     0,
  3105.     0,
  3106.     0,
  3107.     0,
  3108.     0,
  3109.     output_261,
  3110.     output_262,
  3111.     output_263,
  3112.     0,
  3113.     0,
  3114.     output_266,
  3115.     output_267,
  3116.     output_268,
  3117.     0,
  3118.     0,
  3119.     0,
  3120.     output_272,
  3121.     output_273,
  3122.     output_274,
  3123.     output_275,
  3124.     output_276,
  3125.     output_277,
  3126.     output_278,
  3127.     output_279,
  3128.     output_280,
  3129.     output_281,
  3130.     output_282,
  3131.     output_283,
  3132.     output_284,
  3133.     output_285,
  3134.     output_286,
  3135.     output_287,
  3136.     output_288,
  3137.     output_289,
  3138.     output_290,
  3139.     output_291,
  3140.     output_292,
  3141.     output_293,
  3142.     output_294,
  3143.     output_295,
  3144.     output_296,
  3145.     output_297,
  3146.     output_298,
  3147.     output_299,
  3148.     output_300,
  3149.     output_301,
  3150.     output_302,
  3151.     output_303,
  3152.     output_304,
  3153.     output_305,
  3154.     output_306,
  3155.     output_307,
  3156.     output_308,
  3157.     output_309,
  3158.     output_310,
  3159.     0,
  3160.     0,
  3161.     0,
  3162.     output_314,
  3163.     output_315,
  3164.     output_316,
  3165.     output_317,
  3166.     output_318,
  3167.     output_319,
  3168.     output_320,
  3169.     0,
  3170.     0,
  3171.     0,
  3172.     output_324,
  3173.   };
  3174.  
  3175. rtx (*const insn_gen_function[]) () =
  3176.   {
  3177.     0,
  3178.     0,
  3179.     gen_tstsi,
  3180.     gen_tsthi,
  3181.     gen_tstqi,
  3182.     gen_tstsf,
  3183.     0,
  3184.     0,
  3185.     gen_tstdf,
  3186.     0,
  3187.     0,
  3188.     gen_tstxf,
  3189.     0,
  3190.     0,
  3191.     gen_cmpsi,
  3192.     gen_cmphi,
  3193.     gen_cmpqi,
  3194.     gen_cmpsf,
  3195.     0,
  3196.     0,
  3197.     gen_cmpdf,
  3198.     0,
  3199.     0,
  3200.     gen_cmpxf,
  3201.     0,
  3202.     0,
  3203.     0,
  3204.     0,
  3205.     0,
  3206.     0,
  3207.     0,
  3208.     0,
  3209.     0,
  3210.     0,
  3211.     0,
  3212.     0,
  3213.     0,
  3214.     gen_movsi,
  3215.     gen_movhi,
  3216.     gen_movstricthi,
  3217.     gen_movqi,
  3218.     gen_movstrictqi,
  3219.     gen_movsf,
  3220.     gen_movdf,
  3221.     gen_movxf,
  3222.     gen_movdi,
  3223.     gen_pushasi,
  3224.     gen_truncsiqi2,
  3225.     gen_trunchiqi2,
  3226.     gen_truncsihi2,
  3227.     gen_zero_extendhisi2,
  3228.     gen_zero_extendqihi2,
  3229.     gen_zero_extendqisi2,
  3230.     0,
  3231.     0,
  3232.     0,
  3233.     gen_extendhisi2,
  3234.     gen_extendqihi2,
  3235.     gen_extendqisi2,
  3236.     gen_extendsfdf2,
  3237.     0,
  3238.     0,
  3239.     gen_extendsfxf2,
  3240.     0,
  3241.     0,
  3242.     gen_extenddfxf2,
  3243.     0,
  3244.     0,
  3245.     gen_truncdfsf2,
  3246.     0,
  3247.     0,
  3248.     gen_truncxfsf2,
  3249.     0,
  3250.     0,
  3251.     gen_truncxfdf2,
  3252.     0,
  3253.     0,
  3254.     gen_floatsisf2,
  3255.     0,
  3256.     0,
  3257.     gen_floatsidf2,
  3258.     0,
  3259.     0,
  3260.     gen_floatsixf2,
  3261.     0,
  3262.     0,
  3263.     gen_floathisf2,
  3264.     gen_floathidf2,
  3265.     gen_floathixf2,
  3266.     gen_floatqisf2,
  3267.     gen_floatqidf2,
  3268.     gen_floatqixf2,
  3269.     gen_ftruncsf2,
  3270.     0,
  3271.     0,
  3272.     gen_ftruncdf2,
  3273.     0,
  3274.     0,
  3275.     gen_ftruncxf2,
  3276.     0,
  3277.     0,
  3278.     gen_fixsfqi2,
  3279.     gen_fixsfhi2,
  3280.     gen_fixsfsi2,
  3281.     gen_fixdfqi2,
  3282.     gen_fixdfhi2,
  3283.     gen_fixdfsi2,
  3284.     gen_fixxfqi2,
  3285.     gen_fixxfhi2,
  3286.     gen_fixxfsi2,
  3287.     0,
  3288.     0,
  3289.     gen_fixunsxfsi2,
  3290.     0,
  3291.     0,
  3292.     gen_addsi3,
  3293.     0,
  3294.     gen_addhi3,
  3295.     0,
  3296.     gen_addqi3,
  3297.     0,
  3298.     gen_addsf3,
  3299.     0,
  3300.     0,
  3301.     gen_adddf3,
  3302.     0,
  3303.     0,
  3304.     gen_addxf3,
  3305.     0,
  3306.     0,
  3307.     gen_subsi3,
  3308.     0,
  3309.     gen_subhi3,
  3310.     0,
  3311.     gen_subqi3,
  3312.     0,
  3313.     gen_subsf3,
  3314.     0,
  3315.     0,
  3316.     gen_subdf3,
  3317.     0,
  3318.     0,
  3319.     gen_subxf3,
  3320.     0,
  3321.     0,
  3322.     gen_mulhi3,
  3323.     gen_mulhisi3,
  3324.     gen_mulsi3,
  3325.     0,
  3326.     0,
  3327.     gen_umulhi3,
  3328.     gen_umulhisi3,
  3329.     gen_umulsi3,
  3330.     0,
  3331.     0,
  3332.     gen_mulsf3,
  3333.     0,
  3334.     0,
  3335.     gen_muldf3,
  3336.     0,
  3337.     0,
  3338.     gen_mulxf3,
  3339.     0,
  3340.     0,
  3341.     gen_divhi3,
  3342.     gen_divhisi3,
  3343.     gen_divsi3,
  3344.     0,
  3345.     0,
  3346.     gen_udivhi3,
  3347.     gen_udivhisi3,
  3348.     gen_udivsi3,
  3349.     0,
  3350.     0,
  3351.     gen_divsf3,
  3352.     0,
  3353.     0,
  3354.     gen_divdf3,
  3355.     0,
  3356.     0,
  3357.     gen_divxf3,
  3358.     0,
  3359.     0,
  3360.     gen_modhi3,
  3361.     gen_modhisi3,
  3362.     gen_umodhi3,
  3363.     gen_umodhisi3,
  3364.     gen_divmodsi4,
  3365.     gen_udivmodsi4,
  3366.     gen_andsi3,
  3367.     gen_andhi3,
  3368.     gen_andqi3,
  3369.     0,
  3370.     0,
  3371.     gen_iorsi3,
  3372.     gen_iorhi3,
  3373.     gen_iorqi3,
  3374.     gen_xorsi3,
  3375.     gen_xorhi3,
  3376.     gen_xorqi3,
  3377.     gen_negsi2,
  3378.     gen_neghi2,
  3379.     gen_negqi2,
  3380.     gen_negsf2,
  3381.     0,
  3382.     0,
  3383.     gen_negdf2,
  3384.     0,
  3385.     0,
  3386.     gen_negxf2,
  3387.     0,
  3388.     0,
  3389.     gen_sinxf2,
  3390.     gen_cosxf2,
  3391.     gen_tanxf2,
  3392.     gen_asinxf2,
  3393.     gen_acosxf2,
  3394.     gen_atanxf2,
  3395.     gen_sinhxf2,
  3396.     gen_coshxf2,
  3397.     gen_tanhxf2,
  3398.     gen_expxf2,
  3399.     gen_logxf2,
  3400.     gen_log10xf2,
  3401.     gen_sqrtxf2,
  3402.     gen_abssf2,
  3403.     0,
  3404.     0,
  3405.     gen_absdf2,
  3406.     0,
  3407.     0,
  3408.     gen_absxf2,
  3409.     0,
  3410.     0,
  3411.     gen_one_cmplsi2,
  3412.     gen_one_cmplhi2,
  3413.     gen_one_cmplqi2,
  3414.     0,
  3415.     0,
  3416.     0,
  3417.     0,
  3418.     0,
  3419.     0,
  3420.     gen_ashlsi3,
  3421.     gen_ashlhi3,
  3422.     gen_ashlqi3,
  3423.     gen_ashrsi3,
  3424.     gen_ashrhi3,
  3425.     gen_ashrqi3,
  3426.     gen_lshlsi3,
  3427.     gen_lshlhi3,
  3428.     gen_lshlqi3,
  3429.     gen_lshrsi3,
  3430.     gen_lshrhi3,
  3431.     gen_lshrqi3,
  3432.     gen_rotlsi3,
  3433.     gen_rotlhi3,
  3434.     gen_rotlqi3,
  3435.     gen_rotrsi3,
  3436.     gen_rotrhi3,
  3437.     gen_rotrqi3,
  3438.     0,
  3439.     0,
  3440.     0,
  3441.     gen_extv,
  3442.     gen_extzv,
  3443.     0,
  3444.     0,
  3445.     0,
  3446.     gen_insv,
  3447.     0,
  3448.     0,
  3449.     0,
  3450.     0,
  3451.     0,
  3452.     0,
  3453.     0,
  3454.     0,
  3455.     0,
  3456.     0,
  3457.     0,
  3458.     gen_seq,
  3459.     gen_sne,
  3460.     gen_sgt,
  3461.     gen_sgtu,
  3462.     gen_slt,
  3463.     gen_sltu,
  3464.     gen_sge,
  3465.     gen_sgeu,
  3466.     gen_sle,
  3467.     gen_sleu,
  3468.     gen_beq,
  3469.     gen_bne,
  3470.     gen_bgt,
  3471.     gen_bgtu,
  3472.     gen_blt,
  3473.     gen_bltu,
  3474.     gen_bge,
  3475.     gen_bgeu,
  3476.     gen_ble,
  3477.     gen_bleu,
  3478.     0,
  3479.     0,
  3480.     0,
  3481.     0,
  3482.     0,
  3483.     0,
  3484.     0,
  3485.     0,
  3486.     0,
  3487.     0,
  3488.     gen_casesi_1,
  3489.     gen_casesi_2,
  3490.     gen_casesi,
  3491.     0,
  3492.     gen_jump,
  3493.     0,
  3494.     0,
  3495.     0,
  3496.     gen_call,
  3497.     gen_call_value,
  3498.     gen_return,
  3499.     gen_nop,
  3500.     0,
  3501.     0,
  3502.   };
  3503.  
  3504. const char insn_n_operands[] =
  3505.   {
  3506.     2,
  3507.     2,
  3508.     1,
  3509.     1,
  3510.     1,
  3511.     1,
  3512.     1,
  3513.     1,
  3514.     1,
  3515.     1,
  3516.     1,
  3517.     1,
  3518.     1,
  3519.     1,
  3520.     2,
  3521.     2,
  3522.     2,
  3523.     2,
  3524.     2,
  3525.     2,
  3526.     2,
  3527.     2,
  3528.     2,
  3529.     2,
  3530.     2,
  3531.     2,
  3532.     2,
  3533.     2,
  3534.     2,
  3535.     2,
  3536.     2,
  3537.     2,
  3538.     2,
  3539.     1,
  3540.     2,
  3541.     2,
  3542.     1,
  3543.     2,
  3544.     2,
  3545.     2,
  3546.     2,
  3547.     2,
  3548.     2,
  3549.     2,
  3550.     2,
  3551.     2,
  3552.     2,
  3553.     2,
  3554.     2,
  3555.     2,
  3556.     2,
  3557.     2,
  3558.     2,
  3559.     2,
  3560.     2,
  3561.     2,
  3562.     2,
  3563.     2,
  3564.     2,
  3565.     2,
  3566.     2,
  3567.     2,
  3568.     2,
  3569.     2,
  3570.     2,
  3571.     2,
  3572.     2,
  3573.     2,
  3574.     2,
  3575.     2,
  3576.     2,
  3577.     2,
  3578.     2,
  3579.     2,
  3580.     2,
  3581.     2,
  3582.     2,
  3583.     2,
  3584.     2,
  3585.     2,
  3586.     2,
  3587.     2,
  3588.     2,
  3589.     2,
  3590.     2,
  3591.     2,
  3592.     2,
  3593.     2,
  3594.     2,
  3595.     2,
  3596.     2,
  3597.     2,
  3598.     2,
  3599.     2,
  3600.     2,
  3601.     2,
  3602.     2,
  3603.     2,
  3604.     2,
  3605.     2,
  3606.     2,
  3607.     2,
  3608.     2,
  3609.     2,
  3610.     2,
  3611.     2,
  3612.     2,
  3613.     2,
  3614.     2,
  3615.     2,
  3616.     2,
  3617.     2,
  3618.     2,
  3619.     2,
  3620.     2,
  3621.     3,
  3622.     3,
  3623.     3,
  3624.     2,
  3625.     3,
  3626.     2,
  3627.     3,
  3628.     3,
  3629.     3,
  3630.     3,
  3631.     3,
  3632.     3,
  3633.     3,
  3634.     3,
  3635.     3,
  3636.     3,
  3637.     3,
  3638.     3,
  3639.     2,
  3640.     3,
  3641.     2,
  3642.     3,
  3643.     3,
  3644.     3,
  3645.     3,
  3646.     3,
  3647.     3,
  3648.     3,
  3649.     3,
  3650.     3,
  3651.     3,
  3652.     3,
  3653.     3,
  3654.     3,
  3655.     3,
  3656.     3,
  3657.     3,
  3658.     3,
  3659.     3,
  3660.     3,
  3661.     3,
  3662.     3,
  3663.     3,
  3664.     3,
  3665.     3,
  3666.     3,
  3667.     3,
  3668.     3,
  3669.     3,
  3670.     3,
  3671.     3,
  3672.     3,
  3673.     3,
  3674.     3,
  3675.     3,
  3676.     3,
  3677.     3,
  3678.     3,
  3679.     3,
  3680.     3,
  3681.     3,
  3682.     3,
  3683.     3,
  3684.     3,
  3685.     3,
  3686.     3,
  3687.     3,
  3688.     3,
  3689.     3,
  3690.     3,
  3691.     3,
  3692.     3,
  3693.     4,
  3694.     4,
  3695.     3,
  3696.     3,
  3697.     3,
  3698.     3,
  3699.     3,
  3700.     3,
  3701.     3,
  3702.     3,
  3703.     3,
  3704.     3,
  3705.     3,
  3706.     2,
  3707.     2,
  3708.     2,
  3709.     2,
  3710.     2,
  3711.     2,
  3712.     2,
  3713.     2,
  3714.     2,
  3715.     2,
  3716.     2,
  3717.     2,
  3718.     2,
  3719.     2,
  3720.     2,
  3721.     2,
  3722.     2,
  3723.     2,
  3724.     2,
  3725.     2,
  3726.     2,
  3727.     2,
  3728.     2,
  3729.     2,
  3730.     2,
  3731.     2,
  3732.     2,
  3733.     2,
  3734.     2,
  3735.     2,
  3736.     2,
  3737.     2,
  3738.     2,
  3739.     2,
  3740.     2,
  3741.     2,
  3742.     2,
  3743.     2,
  3744.     2,
  3745.     2,
  3746.     2,
  3747.     2,
  3748.     2,
  3749.     3,
  3750.     3,
  3751.     3,
  3752.     3,
  3753.     3,
  3754.     3,
  3755.     3,
  3756.     3,
  3757.     3,
  3758.     3,
  3759.     3,
  3760.     3,
  3761.     3,
  3762.     3,
  3763.     3,
  3764.     3,
  3765.     3,
  3766.     3,
  3767.     4,
  3768.     4,
  3769.     4,
  3770.     4,
  3771.     4,
  3772.     4,
  3773.     3,
  3774.     3,
  3775.     4,
  3776.     4,
  3777.     4,
  3778.     3,
  3779.     3,
  3780.     4,
  3781.     3,
  3782.     3,
  3783.     3,
  3784.     3,
  3785.     3,
  3786.     3,
  3787.     1,
  3788.     1,
  3789.     1,
  3790.     1,
  3791.     1,
  3792.     1,
  3793.     1,
  3794.     1,
  3795.     1,
  3796.     1,
  3797.     0,
  3798.     0,
  3799.     0,
  3800.     0,
  3801.     0,
  3802.     0,
  3803.     0,
  3804.     0,
  3805.     0,
  3806.     0,
  3807.     0,
  3808.     0,
  3809.     0,
  3810.     0,
  3811.     0,
  3812.     0,
  3813.     0,
  3814.     0,
  3815.     0,
  3816.     0,
  3817.     4,
  3818.     2,
  3819.     5,
  3820.     1,
  3821.     0,
  3822.     1,
  3823.     1,
  3824.     1,
  3825.     2,
  3826.     3,
  3827.     0,
  3828.     0,
  3829.     2,
  3830.     2,
  3831.   };
  3832.  
  3833. const char insn_n_dups[] =
  3834.   {
  3835.     0,
  3836.     0,
  3837.     0,
  3838.     0,
  3839.     0,
  3840.     0,
  3841.     0,
  3842.     0,
  3843.     0,
  3844.     0,
  3845.     0,
  3846.     0,
  3847.     0,
  3848.     0,
  3849.     0,
  3850.     0,
  3851.     0,
  3852.     0,
  3853.     0,
  3854.     0,
  3855.     0,
  3856.     0,
  3857.     0,
  3858.     0,
  3859.     0,
  3860.     0,
  3861.     0,
  3862.     0,
  3863.     0,
  3864.     0,
  3865.     0,
  3866.     0,
  3867.     0,
  3868.     0,
  3869.     0,
  3870.     0,
  3871.     0,
  3872.     0,
  3873.     0,
  3874.     0,
  3875.     0,
  3876.     0,
  3877.     0,
  3878.     0,
  3879.     0,
  3880.     0,
  3881.     0,
  3882.     0,
  3883.     0,
  3884.     0,
  3885.     0,
  3886.     0,
  3887.     0,
  3888.     0,
  3889.     0,
  3890.     0,
  3891.     0,
  3892.     0,
  3893.     0,
  3894.     0,
  3895.     0,
  3896.     0,
  3897.     0,
  3898.     0,
  3899.     0,
  3900.     0,
  3901.     0,
  3902.     0,
  3903.     0,
  3904.     0,
  3905.     0,
  3906.     0,
  3907.     0,
  3908.     0,
  3909.     0,
  3910.     0,
  3911.     0,
  3912.     0,
  3913.     0,
  3914.     0,
  3915.     0,
  3916.     0,
  3917.     0,
  3918.     0,
  3919.     0,
  3920.     0,
  3921.     0,
  3922.     0,
  3923.     0,
  3924.     0,
  3925.     0,
  3926.     0,
  3927.     0,
  3928.     0,
  3929.     0,
  3930.     0,
  3931.     0,
  3932.     0,
  3933.     0,
  3934.     0,
  3935.     0,
  3936.     0,
  3937.     0,
  3938.     0,
  3939.     0,
  3940.     0,
  3941.     0,
  3942.     0,
  3943.     0,
  3944.     0,
  3945.     0,
  3946.     0,
  3947.     0,
  3948.     0,
  3949.     0,
  3950.     0,
  3951.     0,
  3952.     0,
  3953.     1,
  3954.     0,
  3955.     1,
  3956.     0,
  3957.     0,
  3958.     0,
  3959.     0,
  3960.     0,
  3961.     0,
  3962.     0,
  3963.     0,
  3964.     0,
  3965.     0,
  3966.     0,
  3967.     0,
  3968.     1,
  3969.     0,
  3970.     1,
  3971.     0,
  3972.     0,
  3973.     0,
  3974.     0,
  3975.     0,
  3976.     0,
  3977.     0,
  3978.     0,
  3979.     0,
  3980.     0,
  3981.     0,
  3982.     0,
  3983.     0,
  3984.     0,
  3985.     0,
  3986.     0,
  3987.     0,
  3988.     0,
  3989.     0,
  3990.     0,
  3991.     0,
  3992.     0,
  3993.     0,
  3994.     0,
  3995.     0,
  3996.     0,
  3997.     0,
  3998.     0,
  3999.     0,
  4000.     0,
  4001.     0,
  4002.     0,
  4003.     0,
  4004.     0,
  4005.     0,
  4006.     0,
  4007.     0,
  4008.     0,
  4009.     0,
  4010.     0,
  4011.     0,
  4012.     0,
  4013.     0,
  4014.     0,
  4015.     0,
  4016.     0,
  4017.     0,
  4018.     0,
  4019.     0,
  4020.     0,
  4021.     0,
  4022.     2,
  4023.     2,
  4024.     0,
  4025.     0,
  4026.     0,
  4027.     0,
  4028.     0,
  4029.     0,
  4030.     0,
  4031.     0,
  4032.     0,
  4033.     0,
  4034.     0,
  4035.     0,
  4036.     0,
  4037.     0,
  4038.     0,
  4039.     0,
  4040.     0,
  4041.     0,
  4042.     0,
  4043.     0,
  4044.     0,
  4045.     0,
  4046.     0,
  4047.     0,
  4048.     0,
  4049.     0,
  4050.     0,
  4051.     0,
  4052.     0,
  4053.     0,
  4054.     0,
  4055.     0,
  4056.     0,
  4057.     0,
  4058.     0,
  4059.     0,
  4060.     0,
  4061.     0,
  4062.     0,
  4063.     0,
  4064.     0,
  4065.     0,
  4066.     0,
  4067.     0,
  4068.     0,
  4069.     0,
  4070.     0,
  4071.     0,
  4072.     0,
  4073.     0,
  4074.     0,
  4075.     0,
  4076.     0,
  4077.     0,
  4078.     0,
  4079.     0,
  4080.     0,
  4081.     0,
  4082.     0,
  4083.     0,
  4084.     0,
  4085.     0,
  4086.     0,
  4087.     0,
  4088.     0,
  4089.     0,
  4090.     0,
  4091.     0,
  4092.     0,
  4093.     0,
  4094.     0,
  4095.     0,
  4096.     0,
  4097.     0,
  4098.     0,
  4099.     0,
  4100.     0,
  4101.     3,
  4102.     0,
  4103.     0,
  4104.     0,
  4105.     0,
  4106.     0,
  4107.     0,
  4108.     0,
  4109.     0,
  4110.     0,
  4111.     0,
  4112.     0,
  4113.     0,
  4114.     0,
  4115.     0,
  4116.     0,
  4117.     0,
  4118.     0,
  4119.     0,
  4120.     0,
  4121.     0,
  4122.     0,
  4123.     0,
  4124.     0,
  4125.     0,
  4126.     0,
  4127.     0,
  4128.     0,
  4129.     0,
  4130.     0,
  4131.     0,
  4132.     0,
  4133.     0,
  4134.     0,
  4135.     0,
  4136.     0,
  4137.     0,
  4138.     0,
  4139.     0,
  4140.     0,
  4141.     0,
  4142.     0,
  4143.     0,
  4144.     0,
  4145.     0,
  4146.     0,
  4147.     0,
  4148.     0,
  4149.     0,
  4150.     0,
  4151.     2,
  4152.     2,
  4153.     2,
  4154.     0,
  4155.     0,
  4156.     0,
  4157.     0,
  4158.     0,
  4159.     0,
  4160.   };
  4161.  
  4162. char *const insn_operand_constraint[][MAX_RECOG_OPERANDS] =
  4163.   {
  4164.     { "=m", "ro<>fF", },
  4165.     { "=m", "ro<>F", },
  4166.     { "rm", },
  4167.     { "rm", },
  4168.     { "dm", },
  4169.     { "", },
  4170.     { "fdm", },
  4171.     { "ro", },
  4172.     { "", },
  4173.     { "fm", },
  4174.     { "ro", },
  4175.     { "", },
  4176.     { "f", },
  4177.     { "ro", },
  4178.     { "rM,mr,>", "mr,Mr,>", },
  4179.     { "rnm,d,n,m", "d,rnm,m,n", },
  4180.     { "dn,d,m,>", "dm,nd,d,>", },
  4181.     { "", "", },
  4182.     { "f,mdG", "fmdG,f", },
  4183.     { "ro", "ro", },
  4184.     { "", "", },
  4185.     { "f,mG", "fmG,f", },
  4186.     { "ro", "ro", },
  4187.     { "", "", },
  4188.     { "f,mG", "fmG,f", },
  4189.     { "ro", "ro", },
  4190.     { "do", "di", },
  4191.     { "d", "di", },
  4192.     { "do", "d", },
  4193.     { "d", "d", },
  4194.     { "md", "i", },
  4195.     { "o,d", "i,i", },
  4196.     { "do", "i", },
  4197.     { "dm", },
  4198.     { "dm", "i", },
  4199.     { "=m", "J", },
  4200.     { "=g", },
  4201.     { "=dam", "dami", },
  4202.     { "=g", "g", },
  4203.     { "+dm", "rmn", },
  4204.     { "=d,*a,m", "dmi*a,d*a,dmi", },
  4205.     { "+dm", "dmn", },
  4206.     { "=rmf", "rmfF", },
  4207.     { "=rm,&rf,&ro<>f", "rf,m,ro<>fF", },
  4208.     { "=&ro<>f", "ro<>fF", },
  4209.     { "=rm,&rf,&ro<>,!&rm,!&f", "r,m,roi<>,fF,rfF", },
  4210.     { "=m", "p", },
  4211.     { "=dm,d", "doJ,i", },
  4212.     { "=dm,d", "doJ,i", },
  4213.     { "=dm,d", "roJ,i", },
  4214.     { "", "", },
  4215.     { "", "", },
  4216.     { "", "", },
  4217.     { "=do<>", "rmn", },
  4218.     { "=do<>", "dmn", },
  4219.     { "=do<>", "dmn", },
  4220.     { "=*d,a", "0,rmn", },
  4221.     { "=d", "0", },
  4222.     { "=d", "0", },
  4223.     { "", "", },
  4224.     { "=*fdm,f", "f,dmF", },
  4225.     { "=ro", "ro", },
  4226.     { "", "", },
  4227.     { "=*fm,f", "f,dmF", },
  4228.     { "=ro", "ro", },
  4229.     { "", "", },
  4230.     { "=*fm,f", "f,mF", },
  4231.     { "=ro", "ro", },
  4232.     { "", "", },
  4233.     { "=dm", "f", },
  4234.     { "=ro", "ro", },
  4235.     { "", "", },
  4236.     { "=dm", "f", },
  4237.     { "=ro", "ro", },
  4238.     { "", "", },
  4239.     { "=dm", "f", },
  4240.     { "=ro", "ro", },
  4241.     { "", "", },
  4242.     { "=f", "dmi", },
  4243.     { "=ro", "ro", },
  4244.     { "", "", },
  4245.     { "=f", "dmi", },
  4246.     { "=ro", "ro", },
  4247.     { "", "", },
  4248.     { "=f", "dmi", },
  4249.     { "=ro", "ro", },
  4250.     { "=f", "dmn", },
  4251.     { "=f", "dmn", },
  4252.     { "=f", "dmn", },
  4253.     { "=f", "dmn", },
  4254.     { "=f", "dmn", },
  4255.     { "=f", "dmn", },
  4256.     { "", "", },
  4257.     { "=ro", "0", },
  4258.     { "=f", "dfmF", },
  4259.     { "", "", },
  4260.     { "=ro", "0", },
  4261.     { "=f", "fmF", },
  4262.     { "", "", },
  4263.     { "=ro", "0", },
  4264.     { "=f", "fmF", },
  4265.     { "=dm", "f", },
  4266.     { "=dm", "f", },
  4267.     { "=dm", "f", },
  4268.     { "=dm", "f", },
  4269.     { "=dm", "f", },
  4270.     { "=dm", "f", },
  4271.     { "=dm", "f", },
  4272.     { "=dm", "f", },
  4273.     { "", "", },
  4274.     { "=do", "ro", },
  4275.     { "=dm", "f", },
  4276.     { "", "", },
  4277.     { "=do", "ro", },
  4278.     { "=do", "f", },
  4279.     { "=m,r,!a,!a", "%0,0,a,rJK", "dIKLM,mrIKLM,rJK,a", },
  4280.     { "=a", "0", "rmn", },
  4281.     { "=m,r", "%0,0", "dn,rmn", },
  4282.     { "+m,d", "dn,rmn", },
  4283.     { "=m,d", "%0,0", "dn,dmn", },
  4284.     { "+m,d", "dn,dmn", },
  4285.     { "", "", "", },
  4286.     { "=f", "%0", "dfmF", },
  4287.     { "=ro", "%0", "ro", },
  4288.     { "", "", "", },
  4289.     { "=f", "%0", "fmF", },
  4290.     { "=ro", "%0", "ro", },
  4291.     { "", "", "", },
  4292.     { "=f", "%0", "fmG", },
  4293.     { "=ro", "%0", "ro", },
  4294.     { "=m,r,!a,?d", "0,0,a,mrIKs", "dIKs,mrIKs,J,0", },
  4295.     { "=a", "0", "rmn", },
  4296.     { "=m,r", "0,0", "dn,rmn", },
  4297.     { "+m,d", "dn,rmn", },
  4298.     { "=m,d", "0,0", "dn,dmn", },
  4299.     { "+m,d", "dn,dmn", },
  4300.     { "", "", "", },
  4301.     { "=f", "0", "dfmF", },
  4302.     { "=ro", "0", "ro", },
  4303.     { "", "", "", },
  4304.     { "=f", "0", "fmF", },
  4305.     { "=ro", "0", "ro", },
  4306.     { "", "", "", },
  4307.     { "=f", "0", "fmG", },
  4308.     { "=ro", "0", "ro", },
  4309.     { "=d", "%0", "dmn", },
  4310.     { "=d", "%0", "dmn", },
  4311.     { "", "", "", },
  4312.     { "=d", "%0", "dmsK", },
  4313.     { "=d", "%0", "dsK", },
  4314.     { "=d", "%0", "dmn", },
  4315.     { "=d", "%0", "dmn", },
  4316.     { "", "", "", },
  4317.     { "=d", "%0", "dmsK", },
  4318.     { "=d", "%0", "dsK", },
  4319.     { "", "", "", },
  4320.     { "=f", "%0", "dfmF", },
  4321.     { "=ro", "%0", "ro", },
  4322.     { "", "", "", },
  4323.     { "=f", "%0", "fmF", },
  4324.     { "=ro", "%0", "ro", },
  4325.     { "", "", "", },
  4326.     { "=f", "%0", "fmG", },
  4327.     { "=ro", "%0", "ro", },
  4328.     { "=d", "0", "dmn", },
  4329.     { "=d", "0", "dmn", },
  4330.     { "", "", "", },
  4331.     { "=d", "0", "dmsK", },
  4332.     { "=d", "0", "dsK", },
  4333.     { "=d", "0", "dmn", },
  4334.     { "=d", "0", "dmn", },
  4335.     { "", "", "", },
  4336.     { "=d", "0", "dmsK", },
  4337.     { "=d", "0", "dsK", },
  4338.     { "", "", "", },
  4339.     { "=f", "0", "dfmF", },
  4340.     { "=ro", "0", "ro", },
  4341.     { "", "", "", },
  4342.     { "=f", "0", "fmG", },
  4343.     { "=ro", "0", "ro", },
  4344.     { "", "", "", },
  4345.     { "=f", "0", "fmG", },
  4346.     { "=ro", "0", "ro", },
  4347.     { "=d", "0", "dmn", },
  4348.     { "=d", "0", "dmn", },
  4349.     { "=d", "0", "dmn", },
  4350.     { "=d", "0", "dmn", },
  4351.     { "=d", "0", "dmsK", "=d", },
  4352.     { "=d", "0", "dmsK", "=d", },
  4353.     { "=m,d", "%0,0", "dKs,dmKs", },
  4354.     { "=m,d", "%0,0", "dn,dmn", },
  4355.     { "=m,d", "%0,0", "dn,dmn", },
  4356.     { "=d", "dm", "0", },
  4357.     { "=d", "dm", "0", },
  4358.     { "=m,d", "%0,0", "dKs,dmKs", },
  4359.     { "=m,d", "%0,0", "dn,dmn", },
  4360.     { "=m,d", "%0,0", "dn,dmn", },
  4361.     { "=do,m", "%0,0", "di,dKs", },
  4362.     { "=dm", "%0", "dn", },
  4363.     { "=dm", "%0", "dn", },
  4364.     { "=dm", "0", },
  4365.     { "=dm", "0", },
  4366.     { "=dm", "0", },
  4367.     { "", "", },
  4368.     { "=f", "fmF", },
  4369.     { "=ro", "0", },
  4370.     { "", "", },
  4371.     { "=f", "fmG", },
  4372.     { "=ro", "0", },
  4373.     { "", "", },
  4374.     { "=f", "fmG", },
  4375.     { "=ro", "0", },
  4376.     { "=f", "fmG", },
  4377.     { "=f", "fmG", },
  4378.     { "=f", "fmG", },
  4379.     { "=f", "fmG", },
  4380.     { "=f", "fmG", },
  4381.     { "=f", "fmG", },
  4382.     { "=f", "fmG", },
  4383.     { "=f", "fmG", },
  4384.     { "=f", "fmG", },
  4385.     { "=f", "fmG", },
  4386.     { "=f", "fmG", },
  4387.     { "=f", "fmG", },
  4388.     { "=f", "fmG", },
  4389.     { "", "", },
  4390.     { "=f", "fmF", },
  4391.     { "=ro", "0", },
  4392.     { "", "", },
  4393.     { "=f", "fmG", },
  4394.     { "=ro", "0", },
  4395.     { "", "", },
  4396.     { "=f", "fmG", },
  4397.     { "=ro", "0", },
  4398.     { "=dm", "0", },
  4399.     { "=dm", "0", },
  4400.     { "=dm", "0", },
  4401.     { "=d", "m", },
  4402.     { "=d", "m", },
  4403.     { "i", "m", },
  4404.     { "m", "i", },
  4405.     { "i", "m", },
  4406.     { "m", "i", },
  4407.     { "=d", "0", "dI", },
  4408.     { "=d", "0", "dI", },
  4409.     { "=d", "0", "dI", },
  4410.     { "=d", "0", "dI", },
  4411.     { "=d", "0", "dI", },
  4412.     { "=d", "0", "dI", },
  4413.     { "=d", "0", "dI", },
  4414.     { "=d", "0", "dI", },
  4415.     { "=d", "0", "dI", },
  4416.     { "=d", "0", "dI", },
  4417.     { "=d", "0", "dI", },
  4418.     { "=d", "0", "dI", },
  4419.     { "=d", "0", "dI", },
  4420.     { "=d", "0", "dI", },
  4421.     { "=d", "0", "dI", },
  4422.     { "=d", "0", "dI", },
  4423.     { "=d", "0", "dI", },
  4424.     { "=d", "0", "dI", },
  4425.     { "+do", "i", "i", "d", },
  4426.     { "=&d", "do", "i", "i", },
  4427.     { "=d", "do", "i", "i", },
  4428.     { "=d,d", "o,d", "di,di", "di,di", },
  4429.     { "=d,d", "o,d", "di,di", "di,di", },
  4430.     { "+o,d", "di,di", "di,di", "i,i", },
  4431.     { "+o,d", "di,di", "di,di", },
  4432.     { "+o,d", "di,di", "di,di", },
  4433.     { "+o,d", "di,di", "di,di", "d,d", },
  4434.     { "=d", "d", "di", "di", },
  4435.     { "=d", "d", "di", "di", },
  4436.     { "+d", "di", "di", },
  4437.     { "+d", "di", "di", },
  4438.     { "+d", "di", "di", "d", },
  4439.     { "o", "di", "di", },
  4440.     { "o", "di", "di", },
  4441.     { "o", "di", "di", },
  4442.     { "d", "di", "di", },
  4443.     { "d", "di", "di", },
  4444.     { "d", "di", "di", },
  4445.     { "=d", },
  4446.     { "=d", },
  4447.     { "=d", },
  4448.     { "=d", },
  4449.     { "=d", },
  4450.     { "=d", },
  4451.     { "=d", },
  4452.     { "=d", },
  4453.     { "=d", },
  4454.     { "=d", },
  4455.     { 0 },
  4456.     { 0 },
  4457.     { 0 },
  4458.     { 0 },
  4459.     { 0 },
  4460.     { 0 },
  4461.     { 0 },
  4462.     { 0 },
  4463.     { 0 },
  4464.     { 0 },
  4465.     { 0 },
  4466.     { 0 },
  4467.     { 0 },
  4468.     { 0 },
  4469.     { 0 },
  4470.     { 0 },
  4471.     { 0 },
  4472.     { 0 },
  4473.     { 0 },
  4474.     { 0 },
  4475.     { "", "", "", "", },
  4476.     { "", "", },
  4477.     { "", "", "", "", "", },
  4478.     { "r", },
  4479.     { 0 },
  4480.     { "g", },
  4481.     { "g", },
  4482.     { "g", },
  4483.     { "o", "g", },
  4484.     { "rf", "o", "g", },
  4485.     { 0 },
  4486.     { 0 },
  4487.     { "=a", "p", },
  4488.     { "f", "ad", },
  4489.   };
  4490.  
  4491. const enum machine_mode insn_operand_mode[][MAX_RECOG_OPERANDS] =
  4492.   {
  4493.     { DFmode, DFmode, },
  4494.     { DImode, DImode, },
  4495.     { SImode, },
  4496.     { HImode, },
  4497.     { QImode, },
  4498.     { SFmode, },
  4499.     { SFmode, },
  4500.     { SFmode, },
  4501.     { DFmode, },
  4502.     { DFmode, },
  4503.     { DFmode, },
  4504.     { XFmode, },
  4505.     { XFmode, },
  4506.     { XFmode, },
  4507.     { SImode, SImode, },
  4508.     { HImode, HImode, },
  4509.     { QImode, QImode, },
  4510.     { SFmode, SFmode, },
  4511.     { SFmode, SFmode, },
  4512.     { SFmode, SFmode, },
  4513.     { DFmode, DFmode, },
  4514.     { DFmode, DFmode, },
  4515.     { DFmode, DFmode, },
  4516.     { XFmode, XFmode, },
  4517.     { XFmode, XFmode, },
  4518.     { XFmode, XFmode, },
  4519.     { QImode, SImode, },
  4520.     { SImode, SImode, },
  4521.     { QImode, SImode, },
  4522.     { SImode, SImode, },
  4523.     { QImode, SImode, },
  4524.     { HImode, SImode, },
  4525.     { SImode, SImode, },
  4526.     { QImode, },
  4527.     { QImode, SImode, },
  4528.     { SImode, SImode, },
  4529.     { SImode, },
  4530.     { SImode, SImode, },
  4531.     { HImode, HImode, },
  4532.     { HImode, HImode, },
  4533.     { QImode, QImode, },
  4534.     { QImode, QImode, },
  4535.     { SFmode, SFmode, },
  4536.     { DFmode, DFmode, },
  4537.     { XFmode, XFmode, },
  4538.     { DImode, DImode, },
  4539.     { SImode, SImode, },
  4540.     { QImode, SImode, },
  4541.     { QImode, HImode, },
  4542.     { HImode, SImode, },
  4543.     { SImode, HImode, },
  4544.     { HImode, QImode, },
  4545.     { SImode, QImode, },
  4546.     { SImode, HImode, },
  4547.     { HImode, QImode, },
  4548.     { SImode, QImode, },
  4549.     { SImode, HImode, },
  4550.     { HImode, QImode, },
  4551.     { SImode, QImode, },
  4552.     { DFmode, SFmode, },
  4553.     { DFmode, SFmode, },
  4554.     { DFmode, SFmode, },
  4555.     { XFmode, SFmode, },
  4556.     { XFmode, SFmode, },
  4557.     { XFmode, SFmode, },
  4558.     { XFmode, DFmode, },
  4559.     { XFmode, DFmode, },
  4560.     { XFmode, DFmode, },
  4561.     { SFmode, DFmode, },
  4562.     { SFmode, DFmode, },
  4563.     { SFmode, DFmode, },
  4564.     { SFmode, XFmode, },
  4565.     { SFmode, XFmode, },
  4566.     { SFmode, XFmode, },
  4567.     { DFmode, XFmode, },
  4568.     { DFmode, XFmode, },
  4569.     { DFmode, XFmode, },
  4570.     { SFmode, SImode, },
  4571.     { SFmode, SImode, },
  4572.     { SFmode, SImode, },
  4573.     { DFmode, SImode, },
  4574.     { DFmode, SImode, },
  4575.     { DFmode, SImode, },
  4576.     { XFmode, SImode, },
  4577.     { XFmode, SImode, },
  4578.     { XFmode, SImode, },
  4579.     { SFmode, HImode, },
  4580.     { DFmode, HImode, },
  4581.     { XFmode, HImode, },
  4582.     { SFmode, QImode, },
  4583.     { DFmode, QImode, },
  4584.     { XFmode, QImode, },
  4585.     { SFmode, SFmode, },
  4586.     { SFmode, SFmode, },
  4587.     { SFmode, SFmode, },
  4588.     { DFmode, DFmode, },
  4589.     { DFmode, DFmode, },
  4590.     { DFmode, DFmode, },
  4591.     { XFmode, XFmode, },
  4592.     { XFmode, XFmode, },
  4593.     { XFmode, XFmode, },
  4594.     { QImode, SFmode, },
  4595.     { HImode, SFmode, },
  4596.     { SImode, SFmode, },
  4597.     { QImode, DFmode, },
  4598.     { HImode, DFmode, },
  4599.     { SImode, DFmode, },
  4600.     { QImode, XFmode, },
  4601.     { HImode, XFmode, },
  4602.     { SImode, XFmode, },
  4603.     { SImode, XFmode, },
  4604.     { SImode, XFmode, },
  4605.     { SImode, XFmode, },
  4606.     { SImode, XFmode, },
  4607.     { SImode, XFmode, },
  4608.     { SImode, SImode, SImode, },
  4609.     { SImode, SImode, HImode, },
  4610.     { HImode, HImode, HImode, },
  4611.     { HImode, HImode, },
  4612.     { QImode, QImode, QImode, },
  4613.     { QImode, QImode, },
  4614.     { SFmode, SFmode, SFmode, },
  4615.     { SFmode, SFmode, SFmode, },
  4616.     { SFmode, SFmode, SFmode, },
  4617.     { DFmode, DFmode, DFmode, },
  4618.     { DFmode, DFmode, DFmode, },
  4619.     { DFmode, DFmode, DFmode, },
  4620.     { XFmode, XFmode, XFmode, },
  4621.     { XFmode, XFmode, XFmode, },
  4622.     { XFmode, XFmode, XFmode, },
  4623.     { SImode, SImode, SImode, },
  4624.     { SImode, SImode, HImode, },
  4625.     { HImode, HImode, HImode, },
  4626.     { HImode, HImode, },
  4627.     { QImode, QImode, QImode, },
  4628.     { QImode, QImode, },
  4629.     { SFmode, SFmode, SFmode, },
  4630.     { SFmode, SFmode, SFmode, },
  4631.     { SFmode, SFmode, SFmode, },
  4632.     { DFmode, DFmode, DFmode, },
  4633.     { DFmode, DFmode, DFmode, },
  4634.     { DFmode, DFmode, DFmode, },
  4635.     { XFmode, XFmode, XFmode, },
  4636.     { XFmode, XFmode, XFmode, },
  4637.     { XFmode, XFmode, XFmode, },
  4638.     { HImode, HImode, HImode, },
  4639.     { SImode, HImode, HImode, },
  4640.     { SImode, SImode, SImode, },
  4641.     { SImode, SImode, SImode, },
  4642.     { SImode, SImode, SImode, },
  4643.     { HImode, HImode, HImode, },
  4644.     { SImode, HImode, HImode, },
  4645.     { SImode, SImode, SImode, },
  4646.     { SImode, SImode, SImode, },
  4647.     { SImode, SImode, SImode, },
  4648.     { SFmode, SFmode, SFmode, },
  4649.     { SFmode, SFmode, SFmode, },
  4650.     { SFmode, SFmode, SFmode, },
  4651.     { DFmode, DFmode, DFmode, },
  4652.     { DFmode, DFmode, DFmode, },
  4653.     { DFmode, DFmode, DFmode, },
  4654.     { XFmode, XFmode, XFmode, },
  4655.     { XFmode, XFmode, XFmode, },
  4656.     { XFmode, XFmode, XFmode, },
  4657.     { HImode, HImode, HImode, },
  4658.     { HImode, SImode, HImode, },
  4659.     { SImode, SImode, SImode, },
  4660.     { SImode, SImode, SImode, },
  4661.     { SImode, SImode, SImode, },
  4662.     { HImode, HImode, HImode, },
  4663.     { HImode, SImode, HImode, },
  4664.     { SImode, SImode, SImode, },
  4665.     { SImode, SImode, SImode, },
  4666.     { SImode, SImode, SImode, },
  4667.     { SFmode, SFmode, SFmode, },
  4668.     { SFmode, SFmode, SFmode, },
  4669.     { SFmode, SFmode, SFmode, },
  4670.     { DFmode, DFmode, DFmode, },
  4671.     { DFmode, DFmode, DFmode, },
  4672.     { DFmode, DFmode, DFmode, },
  4673.     { XFmode, XFmode, XFmode, },
  4674.     { XFmode, XFmode, XFmode, },
  4675.     { XFmode, XFmode, XFmode, },
  4676.     { HImode, HImode, HImode, },
  4677.     { HImode, SImode, HImode, },
  4678.     { HImode, HImode, HImode, },
  4679.     { HImode, SImode, HImode, },
  4680.     { SImode, SImode, SImode, SImode, },
  4681.     { SImode, SImode, SImode, SImode, },
  4682.     { SImode, SImode, SImode, },
  4683.     { HImode, HImode, HImode, },
  4684.     { QImode, QImode, QImode, },
  4685.     { SImode, HImode, SImode, },
  4686.     { SImode, QImode, SImode, },
  4687.     { SImode, SImode, SImode, },
  4688.     { HImode, HImode, HImode, },
  4689.     { QImode, QImode, QImode, },
  4690.     { SImode, SImode, SImode, },
  4691.     { HImode, HImode, HImode, },
  4692.     { QImode, QImode, QImode, },
  4693.     { SImode, SImode, },
  4694.     { HImode, HImode, },
  4695.     { QImode, QImode, },
  4696.     { SFmode, SFmode, },
  4697.     { SFmode, SFmode, },
  4698.     { SFmode, SFmode, },
  4699.     { DFmode, DFmode, },
  4700.     { DFmode, DFmode, },
  4701.     { DFmode, DFmode, },
  4702.     { XFmode, XFmode, },
  4703.     { XFmode, XFmode, },
  4704.     { XFmode, XFmode, },
  4705.     { XFmode, XFmode, },
  4706.     { XFmode, XFmode, },
  4707.     { XFmode, XFmode, },
  4708.     { XFmode, XFmode, },
  4709.     { XFmode, XFmode, },
  4710.     { XFmode, XFmode, },
  4711.     { XFmode, XFmode, },
  4712.     { XFmode, XFmode, },
  4713.     { XFmode, XFmode, },
  4714.     { XFmode, XFmode, },
  4715.     { XFmode, XFmode, },
  4716.     { XFmode, XFmode, },
  4717.     { XFmode, XFmode, },
  4718.     { SFmode, SFmode, },
  4719.     { SFmode, SFmode, },
  4720.     { SFmode, SFmode, },
  4721.     { DFmode, DFmode, },
  4722.     { DFmode, DFmode, },
  4723.     { DFmode, DFmode, },
  4724.     { XFmode, XFmode, },
  4725.     { XFmode, XFmode, },
  4726.     { XFmode, XFmode, },
  4727.     { SImode, SImode, },
  4728.     { HImode, HImode, },
  4729.     { QImode, QImode, },
  4730.     { SImode, SImode, },
  4731.     { SImode, SImode, },
  4732.     { QImode, SImode, },
  4733.     { SImode, QImode, },
  4734.     { QImode, SImode, },
  4735.     { SImode, QImode, },
  4736.     { SImode, SImode, SImode, },
  4737.     { HImode, HImode, HImode, },
  4738.     { QImode, QImode, QImode, },
  4739.     { SImode, SImode, SImode, },
  4740.     { HImode, HImode, HImode, },
  4741.     { QImode, QImode, QImode, },
  4742.     { SImode, SImode, SImode, },
  4743.     { HImode, HImode, HImode, },
  4744.     { QImode, QImode, QImode, },
  4745.     { SImode, SImode, SImode, },
  4746.     { HImode, HImode, HImode, },
  4747.     { QImode, QImode, QImode, },
  4748.     { SImode, SImode, SImode, },
  4749.     { HImode, HImode, HImode, },
  4750.     { QImode, QImode, QImode, },
  4751.     { SImode, SImode, SImode, },
  4752.     { HImode, HImode, HImode, },
  4753.     { QImode, QImode, QImode, },
  4754.     { SImode, SImode, SImode, SImode, },
  4755.     { SImode, SImode, SImode, SImode, },
  4756.     { SImode, SImode, SImode, SImode, },
  4757.     { SImode, QImode, SImode, SImode, },
  4758.     { SImode, QImode, SImode, SImode, },
  4759.     { QImode, SImode, SImode, VOIDmode, },
  4760.     { QImode, SImode, SImode, },
  4761.     { QImode, SImode, SImode, },
  4762.     { QImode, SImode, SImode, SImode, },
  4763.     { SImode, SImode, SImode, SImode, },
  4764.     { SImode, SImode, SImode, SImode, },
  4765.     { SImode, SImode, SImode, },
  4766.     { SImode, SImode, SImode, },
  4767.     { SImode, SImode, SImode, SImode, },
  4768.     { QImode, SImode, SImode, },
  4769.     { QImode, SImode, SImode, },
  4770.     { QImode, SImode, SImode, },
  4771.     { SImode, SImode, SImode, },
  4772.     { SImode, SImode, SImode, },
  4773.     { SImode, SImode, SImode, },
  4774.     { QImode, },
  4775.     { QImode, },
  4776.     { QImode, },
  4777.     { QImode, },
  4778.     { QImode, },
  4779.     { QImode, },
  4780.     { QImode, },
  4781.     { QImode, },
  4782.     { QImode, },
  4783.     { QImode, },
  4784.     { VOIDmode },
  4785.     { VOIDmode },
  4786.     { VOIDmode },
  4787.     { VOIDmode },
  4788.     { VOIDmode },
  4789.     { VOIDmode },
  4790.     { VOIDmode },
  4791.     { VOIDmode },
  4792.     { VOIDmode },
  4793.     { VOIDmode },
  4794.     { VOIDmode },
  4795.     { VOIDmode },
  4796.     { VOIDmode },
  4797.     { VOIDmode },
  4798.     { VOIDmode },
  4799.     { VOIDmode },
  4800.     { VOIDmode },
  4801.     { VOIDmode },
  4802.     { VOIDmode },
  4803.     { VOIDmode },
  4804.     { SImode, SImode, SImode, SImode, },
  4805.     { SImode, SImode, },
  4806.     { SImode, SImode, SImode, VOIDmode, VOIDmode, },
  4807.     { HImode, },
  4808.     { VOIDmode },
  4809.     { HImode, },
  4810.     { SImode, },
  4811.     { SImode, },
  4812.     { QImode, SImode, },
  4813.     { VOIDmode, QImode, SImode, },
  4814.     { VOIDmode },
  4815.     { VOIDmode },
  4816.     { SImode, QImode, },
  4817.     { VOIDmode, VOIDmode, },
  4818.   };
  4819.  
  4820. const char insn_operand_strict_low[][MAX_RECOG_OPERANDS] =
  4821.   {
  4822.     { 0, 0, },
  4823.     { 0, 0, },
  4824.     { 0, },
  4825.     { 0, },
  4826.     { 0, },
  4827.     { 0, },
  4828.     { 0, },
  4829.     { 0, },
  4830.     { 0, },
  4831.     { 0, },
  4832.     { 0, },
  4833.     { 0, },
  4834.     { 0, },
  4835.     { 0, },
  4836.     { 0, 0, },
  4837.     { 0, 0, },
  4838.     { 0, 0, },
  4839.     { 0, 0, },
  4840.     { 0, 0, },
  4841.     { 0, 0, },
  4842.     { 0, 0, },
  4843.     { 0, 0, },
  4844.     { 0, 0, },
  4845.     { 0, 0, },
  4846.     { 0, 0, },
  4847.     { 0, 0, },
  4848.     { 0, 0, },
  4849.     { 0, 0, },
  4850.     { 0, 0, },
  4851.     { 0, 0, },
  4852.     { 0, 0, },
  4853.     { 0, 0, },
  4854.     { 0, 0, },
  4855.     { 0, },
  4856.     { 0, 0, },
  4857.     { 0, 0, },
  4858.     { 0, },
  4859.     { 0, 0, },
  4860.     { 0, 0, },
  4861.     { 1, 0, },
  4862.     { 0, 0, },
  4863.     { 1, 0, },
  4864.     { 0, 0, },
  4865.     { 0, 0, },
  4866.     { 0, 0, },
  4867.     { 0, 0, },
  4868.     { 0, 0, },
  4869.     { 0, 0, },
  4870.     { 0, 0, },
  4871.     { 0, 0, },
  4872.     { 0, 0, },
  4873.     { 0, 0, },
  4874.     { 0, 0, },
  4875.     { 0, 0, },
  4876.     { 0, 0, },
  4877.     { 0, 0, },
  4878.     { 0, 0, },
  4879.     { 0, 0, },
  4880.     { 0, 0, },
  4881.     { 0, 0, },
  4882.     { 0, 0, },
  4883.     { 0, 0, },
  4884.     { 0, 0, },
  4885.     { 0, 0, },
  4886.     { 0, 0, },
  4887.     { 0, 0, },
  4888.     { 0, 0, },
  4889.     { 0, 0, },
  4890.     { 0, 0, },
  4891.     { 0, 0, },
  4892.     { 0, 0, },
  4893.     { 0, 0, },
  4894.     { 0, 0, },
  4895.     { 0, 0, },
  4896.     { 0, 0, },
  4897.     { 0, 0, },
  4898.     { 0, 0, },
  4899.     { 0, 0, },
  4900.     { 0, 0, },
  4901.     { 0, 0, },
  4902.     { 0, 0, },
  4903.     { 0, 0, },
  4904.     { 0, 0, },
  4905.     { 0, 0, },
  4906.     { 0, 0, },
  4907.     { 0, 0, },
  4908.     { 0, 0, },
  4909.     { 0, 0, },
  4910.     { 0, 0, },
  4911.     { 0, 0, },
  4912.     { 0, 0, },
  4913.     { 0, 0, },
  4914.     { 0, 0, },
  4915.     { 0, 0, },
  4916.     { 0, 0, },
  4917.     { 0, 0, },
  4918.     { 0, 0, },
  4919.     { 0, 0, },
  4920.     { 0, 0, },
  4921.     { 0, 0, },
  4922.     { 0, 0, },
  4923.     { 0, 0, },
  4924.     { 0, 0, },
  4925.     { 0, 0, },
  4926.     { 0, 0, },
  4927.     { 0, 0, },
  4928.     { 0, 0, },
  4929.     { 0, 0, },
  4930.     { 0, 0, },
  4931.     { 0, 0, },
  4932.     { 0, 0, },
  4933.     { 0, 0, },
  4934.     { 0, 0, },
  4935.     { 0, 0, },
  4936.     { 0, 0, },
  4937.     { 0, 0, 0, },
  4938.     { 0, 0, 0, },
  4939.     { 0, 0, 0, },
  4940.     { 1, 0, },
  4941.     { 0, 0, 0, },
  4942.     { 1, 0, },
  4943.     { 0, 0, 0, },
  4944.     { 0, 0, 0, },
  4945.     { 0, 0, 0, },
  4946.     { 0, 0, 0, },
  4947.     { 0, 0, 0, },
  4948.     { 0, 0, 0, },
  4949.     { 0, 0, 0, },
  4950.     { 0, 0, 0, },
  4951.     { 0, 0, 0, },
  4952.     { 0, 0, 0, },
  4953.     { 0, 0, 0, },
  4954.     { 0, 0, 0, },
  4955.     { 1, 0, },
  4956.     { 0, 0, 0, },
  4957.     { 1, 0, },
  4958.     { 0, 0, 0, },
  4959.     { 0, 0, 0, },
  4960.     { 0, 0, 0, },
  4961.     { 0, 0, 0, },
  4962.     { 0, 0, 0, },
  4963.     { 0, 0, 0, },
  4964.     { 0, 0, 0, },
  4965.     { 0, 0, 0, },
  4966.     { 0, 0, 0, },
  4967.     { 0, 0, 0, },
  4968.     { 0, 0, 0, },
  4969.     { 0, 0, 0, },
  4970.     { 0, 0, 0, },
  4971.     { 0, 0, 0, },
  4972.     { 0, 0, 0, },
  4973.     { 0, 0, 0, },
  4974.     { 0, 0, 0, },
  4975.     { 0, 0, 0, },
  4976.     { 0, 0, 0, },
  4977.     { 0, 0, 0, },
  4978.     { 0, 0, 0, },
  4979.     { 0, 0, 0, },
  4980.     { 0, 0, 0, },
  4981.     { 0, 0, 0, },
  4982.     { 0, 0, 0, },
  4983.     { 0, 0, 0, },
  4984.     { 0, 0, 0, },
  4985.     { 0, 0, 0, },
  4986.     { 0, 0, 0, },
  4987.     { 0, 0, 0, },
  4988.     { 0, 0, 0, },
  4989.     { 0, 0, 0, },
  4990.     { 0, 0, 0, },
  4991.     { 0, 0, 0, },
  4992.     { 0, 0, 0, },
  4993.     { 0, 0, 0, },
  4994.     { 0, 0, 0, },
  4995.     { 0, 0, 0, },
  4996.     { 0, 0, 0, },
  4997.     { 0, 0, 0, },
  4998.     { 0, 0, 0, },
  4999.     { 0, 0, 0, },
  5000.     { 0, 0, 0, },
  5001.     { 0, 0, 0, },
  5002.     { 0, 0, 0, },
  5003.     { 0, 0, 0, },
  5004.     { 0, 0, 0, },
  5005.     { 0, 0, 0, },
  5006.     { 0, 0, 0, },
  5007.     { 0, 0, 0, },
  5008.     { 0, 0, 0, },
  5009.     { 0, 0, 0, 0, },
  5010.     { 0, 0, 0, 0, },
  5011.     { 0, 0, 0, },
  5012.     { 0, 0, 0, },
  5013.     { 0, 0, 0, },
  5014.     { 0, 0, 0, },
  5015.     { 0, 0, 0, },
  5016.     { 0, 0, 0, },
  5017.     { 0, 0, 0, },
  5018.     { 0, 0, 0, },
  5019.     { 0, 0, 0, },
  5020.     { 0, 0, 0, },
  5021.     { 0, 0, 0, },
  5022.     { 0, 0, },
  5023.     { 0, 0, },
  5024.     { 0, 0, },
  5025.     { 0, 0, },
  5026.     { 0, 0, },
  5027.     { 0, 0, },
  5028.     { 0, 0, },
  5029.     { 0, 0, },
  5030.     { 0, 0, },
  5031.     { 0, 0, },
  5032.     { 0, 0, },
  5033.     { 0, 0, },
  5034.     { 0, 0, },
  5035.     { 0, 0, },
  5036.     { 0, 0, },
  5037.     { 0, 0, },
  5038.     { 0, 0, },
  5039.     { 0, 0, },
  5040.     { 0, 0, },
  5041.     { 0, 0, },
  5042.     { 0, 0, },
  5043.     { 0, 0, },
  5044.     { 0, 0, },
  5045.     { 0, 0, },
  5046.     { 0, 0, },
  5047.     { 0, 0, },
  5048.     { 0, 0, },
  5049.     { 0, 0, },
  5050.     { 0, 0, },
  5051.     { 0, 0, },
  5052.     { 0, 0, },
  5053.     { 0, 0, },
  5054.     { 0, 0, },
  5055.     { 0, 0, },
  5056.     { 0, 0, },
  5057.     { 0, 0, },
  5058.     { 0, 0, },
  5059.     { 0, 0, },
  5060.     { 0, 0, },
  5061.     { 0, 0, },
  5062.     { 0, 0, },
  5063.     { 0, 0, },
  5064.     { 0, 0, },
  5065.     { 0, 0, 0, },
  5066.     { 0, 0, 0, },
  5067.     { 0, 0, 0, },
  5068.     { 0, 0, 0, },
  5069.     { 0, 0, 0, },
  5070.     { 0, 0, 0, },
  5071.     { 0, 0, 0, },
  5072.     { 0, 0, 0, },
  5073.     { 0, 0, 0, },
  5074.     { 0, 0, 0, },
  5075.     { 0, 0, 0, },
  5076.     { 0, 0, 0, },
  5077.     { 0, 0, 0, },
  5078.     { 0, 0, 0, },
  5079.     { 0, 0, 0, },
  5080.     { 0, 0, 0, },
  5081.     { 0, 0, 0, },
  5082.     { 0, 0, 0, },
  5083.     { 0, 0, 0, 0, },
  5084.     { 0, 0, 0, 0, },
  5085.     { 0, 0, 0, 0, },
  5086.     { 0, 0, 0, 0, },
  5087.     { 0, 0, 0, 0, },
  5088.     { 0, 0, 0, 0, },
  5089.     { 0, 0, 0, },
  5090.     { 0, 0, 0, },
  5091.     { 0, 0, 0, 0, },
  5092.     { 0, 0, 0, 0, },
  5093.     { 0, 0, 0, 0, },
  5094.     { 0, 0, 0, },
  5095.     { 0, 0, 0, },
  5096.     { 0, 0, 0, 0, },
  5097.     { 0, 0, 0, },
  5098.     { 0, 0, 0, },
  5099.     { 0, 0, 0, },
  5100.     { 0, 0, 0, },
  5101.     { 0, 0, 0, },
  5102.     { 0, 0, 0, },
  5103.     { 0, },
  5104.     { 0, },
  5105.     { 0, },
  5106.     { 0, },
  5107.     { 0, },
  5108.     { 0, },
  5109.     { 0, },
  5110.     { 0, },
  5111.     { 0, },
  5112.     { 0, },
  5113.     { 0 },
  5114.     { 0 },
  5115.     { 0 },
  5116.     { 0 },
  5117.     { 0 },
  5118.     { 0 },
  5119.     { 0 },
  5120.     { 0 },
  5121.     { 0 },
  5122.     { 0 },
  5123.     { 0 },
  5124.     { 0 },
  5125.     { 0 },
  5126.     { 0 },
  5127.     { 0 },
  5128.     { 0 },
  5129.     { 0 },
  5130.     { 0 },
  5131.     { 0 },
  5132.     { 0 },
  5133.     { 0, 0, 0, 0, },
  5134.     { 0, 0, },
  5135.     { 0, 0, 0, 0, 0, },
  5136.     { 0, },
  5137.     { 0 },
  5138.     { 0, },
  5139.     { 0, },
  5140.     { 0, },
  5141.     { 0, 0, },
  5142.     { 0, 0, 0, },
  5143.     { 0 },
  5144.     { 0 },
  5145.     { 0, 0, },
  5146.     { 0, 0, },
  5147.   };
  5148.  
  5149. int (*const insn_operand_predicate[][MAX_RECOG_OPERANDS])() =
  5150.   {
  5151.     { push_operand, general_operand, },
  5152.     { push_operand, general_operand, },
  5153.     { general_operand, },
  5154.     { general_operand, },
  5155.     { general_operand, },
  5156.     { general_operand, },
  5157.     { general_operand, },
  5158.     { general_operand, },
  5159.     { general_operand, },
  5160.     { general_operand, },
  5161.     { general_operand, },
  5162.     { general_operand, },
  5163.     { general_operand, },
  5164.     { general_operand, },
  5165.     { general_operand, general_operand, },
  5166.     { general_operand, general_operand, },
  5167.     { general_operand, general_operand, },
  5168.     { general_operand, general_operand, },
  5169.     { general_operand, general_operand, },
  5170.     { general_operand, general_operand, },
  5171.     { general_operand, general_operand, },
  5172.     { general_operand, general_operand, },
  5173.     { general_operand, general_operand, },
  5174.     { general_operand, general_operand, },
  5175.     { general_operand, general_operand, },
  5176.     { general_operand, general_operand, },
  5177.     { nonimmediate_operand, general_operand, },
  5178.     { nonimmediate_operand, general_operand, },
  5179.     { nonimmediate_operand, general_operand, },
  5180.     { nonimmediate_operand, general_operand, },
  5181.     { nonimmediate_operand, general_operand, },
  5182.     { nonimmediate_operand, general_operand, },
  5183.     { nonimmediate_operand, general_operand, },
  5184.     { nonimmediate_operand, },
  5185.     { nonimmediate_operand, general_operand, },
  5186.     { push_operand, general_operand, },
  5187.     { general_operand, },
  5188.     { general_operand, general_operand, },
  5189.     { general_operand, general_operand, },
  5190.     { general_operand, general_operand, },
  5191.     { general_operand, general_operand, },
  5192.     { general_operand, general_operand, },
  5193.     { general_operand, general_operand, },
  5194.     { general_operand, general_operand, },
  5195.     { general_operand, general_operand, },
  5196.     { general_operand, general_operand, },
  5197.     { push_operand, address_operand, },
  5198.     { general_operand, general_operand, },
  5199.     { general_operand, general_operand, },
  5200.     { general_operand, general_operand, },
  5201.     { register_operand, general_operand, },
  5202.     { register_operand, general_operand, },
  5203.     { register_operand, general_operand, },
  5204.     { general_operand, general_operand, },
  5205.     { general_operand, general_operand, },
  5206.     { general_operand, general_operand, },
  5207.     { general_operand, general_operand, },
  5208.     { general_operand, general_operand, },
  5209.     { general_operand, general_operand, },
  5210.     { general_operand, general_operand, },
  5211.     { general_operand, general_operand, },
  5212.     { general_operand, general_operand, },
  5213.     { general_operand, general_operand, },
  5214.     { general_operand, general_operand, },
  5215.     { general_operand, general_operand, },
  5216.     { general_operand, general_operand, },
  5217.     { general_operand, general_operand, },
  5218.     { general_operand, general_operand, },
  5219.     { general_operand, general_operand, },
  5220.     { general_operand, general_operand, },
  5221.     { general_operand, general_operand, },
  5222.     { general_operand, general_operand, },
  5223.     { general_operand, general_operand, },
  5224.     { general_operand, general_operand, },
  5225.     { general_operand, general_operand, },
  5226.     { general_operand, general_operand, },
  5227.     { general_operand, general_operand, },
  5228.     { general_operand, general_operand, },
  5229.     { general_operand, general_operand, },
  5230.     { general_operand, general_operand, },
  5231.     { general_operand, general_operand, },
  5232.     { general_operand, general_operand, },
  5233.     { general_operand, general_operand, },
  5234.     { general_operand, general_operand, },
  5235.     { general_operand, general_operand, },
  5236.     { general_operand, general_operand, },
  5237.     { general_operand, general_operand, },
  5238.     { general_operand, general_operand, },
  5239.     { general_operand, general_operand, },
  5240.     { general_operand, general_operand, },
  5241.     { general_operand, general_operand, },
  5242.     { general_operand, general_operand, },
  5243.     { general_operand, general_operand, },
  5244.     { general_operand, general_operand, },
  5245.     { general_operand, general_operand, },
  5246.     { general_operand, general_operand, },
  5247.     { general_operand, general_operand, },
  5248.     { general_operand, general_operand, },
  5249.     { general_operand, general_operand, },
  5250.     { general_operand, general_operand, },
  5251.     { general_operand, general_operand, },
  5252.     { general_operand, general_operand, },
  5253.     { general_operand, general_operand, },
  5254.     { general_operand, general_operand, },
  5255.     { general_operand, general_operand, },
  5256.     { general_operand, general_operand, },
  5257.     { general_operand, general_operand, },
  5258.     { general_operand, general_operand, },
  5259.     { general_operand, general_operand, },
  5260.     { general_operand, general_operand, },
  5261.     { general_operand, general_operand, },
  5262.     { general_operand, general_operand, },
  5263.     { general_operand, general_operand, },
  5264.     { general_operand, general_operand, },
  5265.     { general_operand, general_operand, },
  5266.     { general_operand, general_operand, general_operand, },
  5267.     { general_operand, general_operand, general_operand, },
  5268.     { general_operand, general_operand, general_operand, },
  5269.     { general_operand, general_operand, },
  5270.     { general_operand, general_operand, general_operand, },
  5271.     { general_operand, general_operand, },
  5272.     { general_operand, general_operand, general_operand, },
  5273.     { general_operand, general_operand, general_operand, },
  5274.     { general_operand, general_operand, general_operand, },
  5275.     { general_operand, general_operand, general_operand, },
  5276.     { general_operand, general_operand, general_operand, },
  5277.     { general_operand, general_operand, general_operand, },
  5278.     { general_operand, general_operand, general_operand, },
  5279.     { general_operand, general_operand, general_operand, },
  5280.     { general_operand, general_operand, general_operand, },
  5281.     { general_operand, general_operand, general_operand, },
  5282.     { general_operand, general_operand, general_operand, },
  5283.     { general_operand, general_operand, general_operand, },
  5284.     { general_operand, general_operand, },
  5285.     { general_operand, general_operand, general_operand, },
  5286.     { general_operand, general_operand, },
  5287.     { general_operand, general_operand, general_operand, },
  5288.     { general_operand, general_operand, general_operand, },
  5289.     { general_operand, general_operand, general_operand, },
  5290.     { general_operand, general_operand, general_operand, },
  5291.     { general_operand, general_operand, general_operand, },
  5292.     { general_operand, general_operand, general_operand, },
  5293.     { general_operand, general_operand, general_operand, },
  5294.     { general_operand, general_operand, general_operand, },
  5295.     { general_operand, general_operand, general_operand, },
  5296.     { general_operand, general_operand, general_operand, },
  5297.     { general_operand, general_operand, general_operand, },
  5298.     { general_operand, general_operand, general_operand, },
  5299.     { general_operand, general_operand, general_operand, },
  5300.     { general_operand, general_operand, general_operand, },
  5301.     { general_operand, general_operand, general_operand, },
  5302.     { general_operand, general_operand, general_operand, },
  5303.     { general_operand, general_operand, general_operand, },
  5304.     { general_operand, general_operand, general_operand, },
  5305.     { general_operand, general_operand, general_operand, },
  5306.     { general_operand, general_operand, general_operand, },
  5307.     { general_operand, general_operand, general_operand, },
  5308.     { general_operand, general_operand, general_operand, },
  5309.     { general_operand, general_operand, general_operand, },
  5310.     { general_operand, general_operand, general_operand, },
  5311.     { general_operand, general_operand, general_operand, },
  5312.     { general_operand, general_operand, general_operand, },
  5313.     { general_operand, general_operand, general_operand, },
  5314.     { general_operand, general_operand, general_operand, },
  5315.     { general_operand, general_operand, general_operand, },
  5316.     { general_operand, general_operand, general_operand, },
  5317.     { general_operand, general_operand, general_operand, },
  5318.     { general_operand, general_operand, general_operand, },
  5319.     { general_operand, general_operand, general_operand, },
  5320.     { general_operand, general_operand, general_operand, },
  5321.     { general_operand, general_operand, general_operand, },
  5322.     { general_operand, general_operand, general_operand, },
  5323.     { general_operand, general_operand, general_operand, },
  5324.     { general_operand, general_operand, general_operand, },
  5325.     { general_operand, general_operand, general_operand, },
  5326.     { general_operand, general_operand, general_operand, },
  5327.     { general_operand, general_operand, general_operand, },
  5328.     { general_operand, general_operand, general_operand, },
  5329.     { general_operand, general_operand, general_operand, },
  5330.     { general_operand, general_operand, general_operand, },
  5331.     { general_operand, general_operand, general_operand, },
  5332.     { general_operand, general_operand, general_operand, },
  5333.     { general_operand, general_operand, general_operand, },
  5334.     { general_operand, general_operand, general_operand, },
  5335.     { general_operand, general_operand, general_operand, },
  5336.     { general_operand, general_operand, general_operand, },
  5337.     { general_operand, general_operand, general_operand, },
  5338.     { general_operand, general_operand, general_operand, general_operand, },
  5339.     { general_operand, general_operand, general_operand, general_operand, },
  5340.     { general_operand, general_operand, general_operand, },
  5341.     { general_operand, general_operand, general_operand, },
  5342.     { general_operand, general_operand, general_operand, },
  5343.     { general_operand, general_operand, general_operand, },
  5344.     { general_operand, general_operand, general_operand, },
  5345.     { general_operand, general_operand, general_operand, },
  5346.     { general_operand, general_operand, general_operand, },
  5347.     { general_operand, general_operand, general_operand, },
  5348.     { general_operand, general_operand, general_operand, },
  5349.     { general_operand, general_operand, general_operand, },
  5350.     { general_operand, general_operand, general_operand, },
  5351.     { general_operand, general_operand, },
  5352.     { general_operand, general_operand, },
  5353.     { general_operand, general_operand, },
  5354.     { general_operand, general_operand, },
  5355.     { general_operand, general_operand, },
  5356.     { general_operand, general_operand, },
  5357.     { general_operand, general_operand, },
  5358.     { general_operand, general_operand, },
  5359.     { general_operand, general_operand, },
  5360.     { general_operand, general_operand, },
  5361.     { general_operand, general_operand, },
  5362.     { general_operand, general_operand, },
  5363.     { general_operand, general_operand, },
  5364.     { general_operand, general_operand, },
  5365.     { general_operand, general_operand, },
  5366.     { general_operand, general_operand, },
  5367.     { general_operand, general_operand, },
  5368.     { general_operand, general_operand, },
  5369.     { general_operand, general_operand, },
  5370.     { general_operand, general_operand, },
  5371.     { general_operand, general_operand, },
  5372.     { general_operand, general_operand, },
  5373.     { general_operand, general_operand, },
  5374.     { general_operand, general_operand, },
  5375.     { general_operand, general_operand, },
  5376.     { general_operand, general_operand, },
  5377.     { general_operand, general_operand, },
  5378.     { general_operand, general_operand, },
  5379.     { general_operand, general_operand, },
  5380.     { general_operand, general_operand, },
  5381.     { general_operand, general_operand, },
  5382.     { general_operand, general_operand, },
  5383.     { general_operand, general_operand, },
  5384.     { general_operand, general_operand, },
  5385.     { general_operand, general_operand, },
  5386.     { general_operand, general_operand, },
  5387.     { general_operand, general_operand, },
  5388.     { general_operand, memory_operand, },
  5389.     { general_operand, memory_operand, },
  5390.     { general_operand, memory_operand, },
  5391.     { memory_operand, general_operand, },
  5392.     { general_operand, memory_operand, },
  5393.     { memory_operand, general_operand, },
  5394.     { general_operand, general_operand, general_operand, },
  5395.     { general_operand, general_operand, general_operand, },
  5396.     { general_operand, general_operand, general_operand, },
  5397.     { general_operand, general_operand, general_operand, },
  5398.     { general_operand, general_operand, general_operand, },
  5399.     { general_operand, general_operand, general_operand, },
  5400.     { general_operand, general_operand, general_operand, },
  5401.     { general_operand, general_operand, general_operand, },
  5402.     { general_operand, general_operand, general_operand, },
  5403.     { general_operand, general_operand, general_operand, },
  5404.     { general_operand, general_operand, general_operand, },
  5405.     { general_operand, general_operand, general_operand, },
  5406.     { general_operand, general_operand, general_operand, },
  5407.     { general_operand, general_operand, general_operand, },
  5408.     { general_operand, general_operand, general_operand, },
  5409.     { general_operand, general_operand, general_operand, },
  5410.     { general_operand, general_operand, general_operand, },
  5411.     { general_operand, general_operand, general_operand, },
  5412.     { nonimmediate_operand, immediate_operand, immediate_operand, general_operand, },
  5413.     { general_operand, nonimmediate_operand, immediate_operand, immediate_operand, },
  5414.     { general_operand, nonimmediate_operand, immediate_operand, immediate_operand, },
  5415.     { general_operand, nonimmediate_operand, general_operand, general_operand, },
  5416.     { general_operand, nonimmediate_operand, general_operand, general_operand, },
  5417.     { nonimmediate_operand, general_operand, general_operand, immediate_operand, },
  5418.     { nonimmediate_operand, general_operand, general_operand, },
  5419.     { nonimmediate_operand, general_operand, general_operand, },
  5420.     { nonimmediate_operand, general_operand, general_operand, general_operand, },
  5421.     { general_operand, nonimmediate_operand, general_operand, general_operand, },
  5422.     { general_operand, nonimmediate_operand, general_operand, general_operand, },
  5423.     { nonimmediate_operand, general_operand, general_operand, },
  5424.     { nonimmediate_operand, general_operand, general_operand, },
  5425.     { nonimmediate_operand, general_operand, general_operand, general_operand, },
  5426.     { memory_operand, general_operand, general_operand, },
  5427.     { memory_operand, general_operand, general_operand, },
  5428.     { memory_operand, general_operand, general_operand, },
  5429.     { nonimmediate_operand, general_operand, general_operand, },
  5430.     { nonimmediate_operand, general_operand, general_operand, },
  5431.     { nonimmediate_operand, general_operand, general_operand, },
  5432.     { general_operand, },
  5433.     { general_operand, },
  5434.     { general_operand, },
  5435.     { general_operand, },
  5436.     { general_operand, },
  5437.     { general_operand, },
  5438.     { general_operand, },
  5439.     { general_operand, },
  5440.     { general_operand, },
  5441.     { general_operand, },
  5442.     { 0 },
  5443.     { 0 },
  5444.     { 0 },
  5445.     { 0 },
  5446.     { 0 },
  5447.     { 0 },
  5448.     { 0 },
  5449.     { 0 },
  5450.     { 0 },
  5451.     { 0 },
  5452.     { 0 },
  5453.     { 0 },
  5454.     { 0 },
  5455.     { 0 },
  5456.     { 0 },
  5457.     { 0 },
  5458.     { 0 },
  5459.     { 0 },
  5460.     { 0 },
  5461.     { 0 },
  5462.     { general_operand, immediate_operand, general_operand, general_operand, },
  5463.     { 0, 0, },
  5464.     { general_operand, immediate_operand, general_operand, 0, 0, },
  5465.     { general_operand, },
  5466.     { 0 },
  5467.     { general_operand, },
  5468.     { general_operand, },
  5469.     { general_operand, },
  5470.     { general_operand, general_operand, },
  5471.     { 0, general_operand, general_operand, },
  5472.     { 0 },
  5473.     { 0 },
  5474.     { general_operand, address_operand, },
  5475.     { 0, 0, },
  5476.   };
  5477.  
  5478. #ifndef DEFAULT_MACHINE_INFO
  5479. #define DEFAULT_MACHINE_INFO 0
  5480. #endif
  5481.  
  5482. const INSN_MACHINE_INFO insn_machine_info[] =
  5483.   {
  5484.      { DEFAULT_MACHINE_INFO },
  5485.      { DEFAULT_MACHINE_INFO },
  5486.      { DEFAULT_MACHINE_INFO },
  5487.      { DEFAULT_MACHINE_INFO },
  5488.      { DEFAULT_MACHINE_INFO },
  5489.      { DEFAULT_MACHINE_INFO },
  5490.      { DEFAULT_MACHINE_INFO },
  5491.      { DEFAULT_MACHINE_INFO },
  5492.      { DEFAULT_MACHINE_INFO },
  5493.      { DEFAULT_MACHINE_INFO },
  5494.      { DEFAULT_MACHINE_INFO },
  5495.      { DEFAULT_MACHINE_INFO },
  5496.      { DEFAULT_MACHINE_INFO },
  5497.      { DEFAULT_MACHINE_INFO },
  5498.      { DEFAULT_MACHINE_INFO },
  5499.      { DEFAULT_MACHINE_INFO },
  5500.      { DEFAULT_MACHINE_INFO },
  5501.      { DEFAULT_MACHINE_INFO },
  5502.      { DEFAULT_MACHINE_INFO },
  5503.      { DEFAULT_MACHINE_INFO },
  5504.      { DEFAULT_MACHINE_INFO },
  5505.      { DEFAULT_MACHINE_INFO },
  5506.      { DEFAULT_MACHINE_INFO },
  5507.      { DEFAULT_MACHINE_INFO },
  5508.      { DEFAULT_MACHINE_INFO },
  5509.      { DEFAULT_MACHINE_INFO },
  5510.      { DEFAULT_MACHINE_INFO },
  5511.      { DEFAULT_MACHINE_INFO },
  5512.      { DEFAULT_MACHINE_INFO },
  5513.      { DEFAULT_MACHINE_INFO },
  5514.      { DEFAULT_MACHINE_INFO },
  5515.      { DEFAULT_MACHINE_INFO },
  5516.      { DEFAULT_MACHINE_INFO },
  5517.      { DEFAULT_MACHINE_INFO },
  5518.      { DEFAULT_MACHINE_INFO },
  5519.      { DEFAULT_MACHINE_INFO },
  5520.      { DEFAULT_MACHINE_INFO },
  5521.      { DEFAULT_MACHINE_INFO },
  5522.      { DEFAULT_MACHINE_INFO },
  5523.      { DEFAULT_MACHINE_INFO },
  5524.      { DEFAULT_MACHINE_INFO },
  5525.      { DEFAULT_MACHINE_INFO },
  5526.      { DEFAULT_MACHINE_INFO },
  5527.      { DEFAULT_MACHINE_INFO },
  5528.      { DEFAULT_MACHINE_INFO },
  5529.      { DEFAULT_MACHINE_INFO },
  5530.      { DEFAULT_MACHINE_INFO },
  5531.      { DEFAULT_MACHINE_INFO },
  5532.      { DEFAULT_MACHINE_INFO },
  5533.      { DEFAULT_MACHINE_INFO },
  5534.      { DEFAULT_MACHINE_INFO },
  5535.      { DEFAULT_MACHINE_INFO },
  5536.      { DEFAULT_MACHINE_INFO },
  5537.      { DEFAULT_MACHINE_INFO },
  5538.      { DEFAULT_MACHINE_INFO },
  5539.      { DEFAULT_MACHINE_INFO },
  5540.      { DEFAULT_MACHINE_INFO },
  5541.      { DEFAULT_MACHINE_INFO },
  5542.      { DEFAULT_MACHINE_INFO },
  5543.      { DEFAULT_MACHINE_INFO },
  5544.      { DEFAULT_MACHINE_INFO },
  5545.      { DEFAULT_MACHINE_INFO },
  5546.      { DEFAULT_MACHINE_INFO },
  5547.      { DEFAULT_MACHINE_INFO },
  5548.      { DEFAULT_MACHINE_INFO },
  5549.      { DEFAULT_MACHINE_INFO },
  5550.      { DEFAULT_MACHINE_INFO },
  5551.      { DEFAULT_MACHINE_INFO },
  5552.      { DEFAULT_MACHINE_INFO },
  5553.      { DEFAULT_MACHINE_INFO },
  5554.      { DEFAULT_MACHINE_INFO },
  5555.      { DEFAULT_MACHINE_INFO },
  5556.      { DEFAULT_MACHINE_INFO },
  5557.      { DEFAULT_MACHINE_INFO },
  5558.      { DEFAULT_MACHINE_INFO },
  5559.      { DEFAULT_MACHINE_INFO },
  5560.      { DEFAULT_MACHINE_INFO },
  5561.      { DEFAULT_MACHINE_INFO },
  5562.      { DEFAULT_MACHINE_INFO },
  5563.      { DEFAULT_MACHINE_INFO },
  5564.      { DEFAULT_MACHINE_INFO },
  5565.      { DEFAULT_MACHINE_INFO },
  5566.      { DEFAULT_MACHINE_INFO },
  5567.      { DEFAULT_MACHINE_INFO },
  5568.      { DEFAULT_MACHINE_INFO },
  5569.      { DEFAULT_MACHINE_INFO },
  5570.      { DEFAULT_MACHINE_INFO },
  5571.      { DEFAULT_MACHINE_INFO },
  5572.      { DEFAULT_MACHINE_INFO },
  5573.      { DEFAULT_MACHINE_INFO },
  5574.      { DEFAULT_MACHINE_INFO },
  5575.      { DEFAULT_MACHINE_INFO },
  5576.      { DEFAULT_MACHINE_INFO },
  5577.      { DEFAULT_MACHINE_INFO },
  5578.      { DEFAULT_MACHINE_INFO },
  5579.      { DEFAULT_MACHINE_INFO },
  5580.      { DEFAULT_MACHINE_INFO },
  5581.      { DEFAULT_MACHINE_INFO },
  5582.      { DEFAULT_MACHINE_INFO },
  5583.      { DEFAULT_MACHINE_INFO },
  5584.      { DEFAULT_MACHINE_INFO },
  5585.      { DEFAULT_MACHINE_INFO },
  5586.      { DEFAULT_MACHINE_INFO },
  5587.      { DEFAULT_MACHINE_INFO },
  5588.      { DEFAULT_MACHINE_INFO },
  5589.      { DEFAULT_MACHINE_INFO },
  5590.      { DEFAULT_MACHINE_INFO },
  5591.      { DEFAULT_MACHINE_INFO },
  5592.      { DEFAULT_MACHINE_INFO },
  5593.      { DEFAULT_MACHINE_INFO },
  5594.      { DEFAULT_MACHINE_INFO },
  5595.      { DEFAULT_MACHINE_INFO },
  5596.      { DEFAULT_MACHINE_INFO },
  5597.      { DEFAULT_MACHINE_INFO },
  5598.      { DEFAULT_MACHINE_INFO },
  5599.      { DEFAULT_MACHINE_INFO },
  5600.      { DEFAULT_MACHINE_INFO },
  5601.      { DEFAULT_MACHINE_INFO },
  5602.      { DEFAULT_MACHINE_INFO },
  5603.      { DEFAULT_MACHINE_INFO },
  5604.      { DEFAULT_MACHINE_INFO },
  5605.      { DEFAULT_MACHINE_INFO },
  5606.      { DEFAULT_MACHINE_INFO },
  5607.      { DEFAULT_MACHINE_INFO },
  5608.      { DEFAULT_MACHINE_INFO },
  5609.      { DEFAULT_MACHINE_INFO },
  5610.      { DEFAULT_MACHINE_INFO },
  5611.      { DEFAULT_MACHINE_INFO },
  5612.      { DEFAULT_MACHINE_INFO },
  5613.      { DEFAULT_MACHINE_INFO },
  5614.      { DEFAULT_MACHINE_INFO },
  5615.      { DEFAULT_MACHINE_INFO },
  5616.      { DEFAULT_MACHINE_INFO },
  5617.      { DEFAULT_MACHINE_INFO },
  5618.      { DEFAULT_MACHINE_INFO },
  5619.      { DEFAULT_MACHINE_INFO },
  5620.      { DEFAULT_MACHINE_INFO },
  5621.      { DEFAULT_MACHINE_INFO },
  5622.      { DEFAULT_MACHINE_INFO },
  5623.      { DEFAULT_MACHINE_INFO },
  5624.      { DEFAULT_MACHINE_INFO },
  5625.      { DEFAULT_MACHINE_INFO },
  5626.      { DEFAULT_MACHINE_INFO },
  5627.      { DEFAULT_MACHINE_INFO },
  5628.      { DEFAULT_MACHINE_INFO },
  5629.      { DEFAULT_MACHINE_INFO },
  5630.      { DEFAULT_MACHINE_INFO },
  5631.      { DEFAULT_MACHINE_INFO },
  5632.      { DEFAULT_MACHINE_INFO },
  5633.      { DEFAULT_MACHINE_INFO },
  5634.      { DEFAULT_MACHINE_INFO },
  5635.      { DEFAULT_MACHINE_INFO },
  5636.      { DEFAULT_MACHINE_INFO },
  5637.      { DEFAULT_MACHINE_INFO },
  5638.      { DEFAULT_MACHINE_INFO },
  5639.      { DEFAULT_MACHINE_INFO },
  5640.      { DEFAULT_MACHINE_INFO },
  5641.      { DEFAULT_MACHINE_INFO },
  5642.      { DEFAULT_MACHINE_INFO },
  5643.      { DEFAULT_MACHINE_INFO },
  5644.      { DEFAULT_MACHINE_INFO },
  5645.      { DEFAULT_MACHINE_INFO },
  5646.      { DEFAULT_MACHINE_INFO },
  5647.      { DEFAULT_MACHINE_INFO },
  5648.      { DEFAULT_MACHINE_INFO },
  5649.      { DEFAULT_MACHINE_INFO },
  5650.      { DEFAULT_MACHINE_INFO },
  5651.      { DEFAULT_MACHINE_INFO },
  5652.      { DEFAULT_MACHINE_INFO },
  5653.      { DEFAULT_MACHINE_INFO },
  5654.      { DEFAULT_MACHINE_INFO },
  5655.      { DEFAULT_MACHINE_INFO },
  5656.      { DEFAULT_MACHINE_INFO },
  5657.      { DEFAULT_MACHINE_INFO },
  5658.      { DEFAULT_MACHINE_INFO },
  5659.      { DEFAULT_MACHINE_INFO },
  5660.      { DEFAULT_MACHINE_INFO },
  5661.      { DEFAULT_MACHINE_INFO },
  5662.      { DEFAULT_MACHINE_INFO },
  5663.      { DEFAULT_MACHINE_INFO },
  5664.      { DEFAULT_MACHINE_INFO },
  5665.      { DEFAULT_MACHINE_INFO },
  5666.      { DEFAULT_MACHINE_INFO },
  5667.      { DEFAULT_MACHINE_INFO },
  5668.      { DEFAULT_MACHINE_INFO },
  5669.      { DEFAULT_MACHINE_INFO },
  5670.      { DEFAULT_MACHINE_INFO },
  5671.      { DEFAULT_MACHINE_INFO },
  5672.      { DEFAULT_MACHINE_INFO },
  5673.      { DEFAULT_MACHINE_INFO },
  5674.      { DEFAULT_MACHINE_INFO },
  5675.      { DEFAULT_MACHINE_INFO },
  5676.      { DEFAULT_MACHINE_INFO },
  5677.      { DEFAULT_MACHINE_INFO },
  5678.      { DEFAULT_MACHINE_INFO },
  5679.      { DEFAULT_MACHINE_INFO },
  5680.      { DEFAULT_MACHINE_INFO },
  5681.      { DEFAULT_MACHINE_INFO },
  5682.      { DEFAULT_MACHINE_INFO },
  5683.      { DEFAULT_MACHINE_INFO },
  5684.      { DEFAULT_MACHINE_INFO },
  5685.      { DEFAULT_MACHINE_INFO },
  5686.      { DEFAULT_MACHINE_INFO },
  5687.      { DEFAULT_MACHINE_INFO },
  5688.      { DEFAULT_MACHINE_INFO },
  5689.      { DEFAULT_MACHINE_INFO },
  5690.      { DEFAULT_MACHINE_INFO },
  5691.      { DEFAULT_MACHINE_INFO },
  5692.      { DEFAULT_MACHINE_INFO },
  5693.      { DEFAULT_MACHINE_INFO },
  5694.      { DEFAULT_MACHINE_INFO },
  5695.      { DEFAULT_MACHINE_INFO },
  5696.      { DEFAULT_MACHINE_INFO },
  5697.      { DEFAULT_MACHINE_INFO },
  5698.      { DEFAULT_MACHINE_INFO },
  5699.      { DEFAULT_MACHINE_INFO },
  5700.      { DEFAULT_MACHINE_INFO },
  5701.      { DEFAULT_MACHINE_INFO },
  5702.      { DEFAULT_MACHINE_INFO },
  5703.      { DEFAULT_MACHINE_INFO },
  5704.      { DEFAULT_MACHINE_INFO },
  5705.      { DEFAULT_MACHINE_INFO },
  5706.      { DEFAULT_MACHINE_INFO },
  5707.      { DEFAULT_MACHINE_INFO },
  5708.      { DEFAULT_MACHINE_INFO },
  5709.      { DEFAULT_MACHINE_INFO },
  5710.      { DEFAULT_MACHINE_INFO },
  5711.      { DEFAULT_MACHINE_INFO },
  5712.      { DEFAULT_MACHINE_INFO },
  5713.      { DEFAULT_MACHINE_INFO },
  5714.      { DEFAULT_MACHINE_INFO },
  5715.      { DEFAULT_MACHINE_INFO },
  5716.      { DEFAULT_MACHINE_INFO },
  5717.      { DEFAULT_MACHINE_INFO },
  5718.      { DEFAULT_MACHINE_INFO },
  5719.      { DEFAULT_MACHINE_INFO },
  5720.      { DEFAULT_MACHINE_INFO },
  5721.      { DEFAULT_MACHINE_INFO },
  5722.      { DEFAULT_MACHINE_INFO },
  5723.      { DEFAULT_MACHINE_INFO },
  5724.      { DEFAULT_MACHINE_INFO },
  5725.      { DEFAULT_MACHINE_INFO },
  5726.      { DEFAULT_MACHINE_INFO },
  5727.      { DEFAULT_MACHINE_INFO },
  5728.      { DEFAULT_MACHINE_INFO },
  5729.      { DEFAULT_MACHINE_INFO },
  5730.      { DEFAULT_MACHINE_INFO },
  5731.      { DEFAULT_MACHINE_INFO },
  5732.      { DEFAULT_MACHINE_INFO },
  5733.      { DEFAULT_MACHINE_INFO },
  5734.      { DEFAULT_MACHINE_INFO },
  5735.      { DEFAULT_MACHINE_INFO },
  5736.      { DEFAULT_MACHINE_INFO },
  5737.      { DEFAULT_MACHINE_INFO },
  5738.      { DEFAULT_MACHINE_INFO },
  5739.      { DEFAULT_MACHINE_INFO },
  5740.      { DEFAULT_MACHINE_INFO },
  5741.      { DEFAULT_MACHINE_INFO },
  5742.      { DEFAULT_MACHINE_INFO },
  5743.      { DEFAULT_MACHINE_INFO },
  5744.      { DEFAULT_MACHINE_INFO },
  5745.      { DEFAULT_MACHINE_INFO },
  5746.      { DEFAULT_MACHINE_INFO },
  5747.      { DEFAULT_MACHINE_INFO },
  5748.      { DEFAULT_MACHINE_INFO },
  5749.      { DEFAULT_MACHINE_INFO },
  5750.      { DEFAULT_MACHINE_INFO },
  5751.      { DEFAULT_MACHINE_INFO },
  5752.      { DEFAULT_MACHINE_INFO },
  5753.      { DEFAULT_MACHINE_INFO },
  5754.      { DEFAULT_MACHINE_INFO },
  5755.      { DEFAULT_MACHINE_INFO },
  5756.      { DEFAULT_MACHINE_INFO },
  5757.      { DEFAULT_MACHINE_INFO },
  5758.      { DEFAULT_MACHINE_INFO },
  5759.      { DEFAULT_MACHINE_INFO },
  5760.      { DEFAULT_MACHINE_INFO },
  5761.      { DEFAULT_MACHINE_INFO },
  5762.      { DEFAULT_MACHINE_INFO },
  5763.      { DEFAULT_MACHINE_INFO },
  5764.      { DEFAULT_MACHINE_INFO },
  5765.      { DEFAULT_MACHINE_INFO },
  5766.      { DEFAULT_MACHINE_INFO },
  5767.      { DEFAULT_MACHINE_INFO },
  5768.      { DEFAULT_MACHINE_INFO },
  5769.      { DEFAULT_MACHINE_INFO },
  5770.      { DEFAULT_MACHINE_INFO },
  5771.      { DEFAULT_MACHINE_INFO },
  5772.      { DEFAULT_MACHINE_INFO },
  5773.      { DEFAULT_MACHINE_INFO },
  5774.      { DEFAULT_MACHINE_INFO },
  5775.      { DEFAULT_MACHINE_INFO },
  5776.      { DEFAULT_MACHINE_INFO },
  5777.      { DEFAULT_MACHINE_INFO },
  5778.      { DEFAULT_MACHINE_INFO },
  5779.      { DEFAULT_MACHINE_INFO },
  5780.      { DEFAULT_MACHINE_INFO },
  5781.      { DEFAULT_MACHINE_INFO },
  5782.      { DEFAULT_MACHINE_INFO },
  5783.      { DEFAULT_MACHINE_INFO },
  5784.      { DEFAULT_MACHINE_INFO },
  5785.      { DEFAULT_MACHINE_INFO },
  5786.      { DEFAULT_MACHINE_INFO },
  5787.      { DEFAULT_MACHINE_INFO },
  5788.      { DEFAULT_MACHINE_INFO },
  5789.      { DEFAULT_MACHINE_INFO },
  5790.      { DEFAULT_MACHINE_INFO },
  5791.      { DEFAULT_MACHINE_INFO },
  5792.      { DEFAULT_MACHINE_INFO },
  5793.      { DEFAULT_MACHINE_INFO },
  5794.      { DEFAULT_MACHINE_INFO },
  5795.      { DEFAULT_MACHINE_INFO },
  5796.      { DEFAULT_MACHINE_INFO },
  5797.      { DEFAULT_MACHINE_INFO },
  5798.      { DEFAULT_MACHINE_INFO },
  5799.      { DEFAULT_MACHINE_INFO },
  5800.      { DEFAULT_MACHINE_INFO },
  5801.      { DEFAULT_MACHINE_INFO },
  5802.      { DEFAULT_MACHINE_INFO },
  5803.      { DEFAULT_MACHINE_INFO },
  5804.      { DEFAULT_MACHINE_INFO },
  5805.      { DEFAULT_MACHINE_INFO },
  5806.      { DEFAULT_MACHINE_INFO },
  5807.      { DEFAULT_MACHINE_INFO },
  5808.      { DEFAULT_MACHINE_INFO },
  5809.   };
  5810.  
  5811. const char insn_n_alternatives[] =
  5812.   {
  5813.     1,
  5814.     1,
  5815.     1,
  5816.     1,
  5817.     1,
  5818.      0,
  5819.     1,
  5820.     1,
  5821.      0,
  5822.     1,
  5823.     1,
  5824.      0,
  5825.     1,
  5826.     1,
  5827.     3,
  5828.     4,
  5829.     4,
  5830.      0,
  5831.     2,
  5832.     1,
  5833.      0,
  5834.     2,
  5835.     1,
  5836.      0,
  5837.     2,
  5838.     1,
  5839.     1,
  5840.     1,
  5841.     1,
  5842.     1,
  5843.     1,
  5844.     2,
  5845.     1,
  5846.     1,
  5847.     1,
  5848.     1,
  5849.     1,
  5850.     1,
  5851.     1,
  5852.     1,
  5853.     3,
  5854.     1,
  5855.     1,
  5856.     3,
  5857.     1,
  5858.     5,
  5859.     1,
  5860.     2,
  5861.     2,
  5862.     2,
  5863.      0,
  5864.      0,
  5865.      0,
  5866.     1,
  5867.     1,
  5868.     1,
  5869.     2,
  5870.     1,
  5871.     1,
  5872.      0,
  5873.     2,
  5874.     1,
  5875.      0,
  5876.     2,
  5877.     1,
  5878.      0,
  5879.     2,
  5880.     1,
  5881.      0,
  5882.     1,
  5883.     1,
  5884.      0,
  5885.     1,
  5886.     1,
  5887.      0,
  5888.     1,
  5889.     1,
  5890.      0,
  5891.     1,
  5892.     1,
  5893.      0,
  5894.     1,
  5895.     1,
  5896.      0,
  5897.     1,
  5898.     1,
  5899.     1,
  5900.     1,
  5901.     1,
  5902.     1,
  5903.     1,
  5904.     1,
  5905.      0,
  5906.     1,
  5907.     1,
  5908.      0,
  5909.     1,
  5910.     1,
  5911.      0,
  5912.     1,
  5913.     1,
  5914.     1,
  5915.     1,
  5916.     1,
  5917.     1,
  5918.     1,
  5919.     1,
  5920.     1,
  5921.     1,
  5922.      0,
  5923.     1,
  5924.     1,
  5925.      0,
  5926.     1,
  5927.     1,
  5928.     4,
  5929.     1,
  5930.     2,
  5931.     2,
  5932.     2,
  5933.     2,
  5934.      0,
  5935.     1,
  5936.     1,
  5937.      0,
  5938.     1,
  5939.     1,
  5940.      0,
  5941.     1,
  5942.     1,
  5943.     4,
  5944.     1,
  5945.     2,
  5946.     2,
  5947.     2,
  5948.     2,
  5949.      0,
  5950.     1,
  5951.     1,
  5952.      0,
  5953.     1,
  5954.     1,
  5955.      0,
  5956.     1,
  5957.     1,
  5958.     1,
  5959.     1,
  5960.      0,
  5961.     1,
  5962.     1,
  5963.     1,
  5964.     1,
  5965.      0,
  5966.     1,
  5967.     1,
  5968.      0,
  5969.     1,
  5970.     1,
  5971.      0,
  5972.     1,
  5973.     1,
  5974.      0,
  5975.     1,
  5976.     1,
  5977.     1,
  5978.     1,
  5979.      0,
  5980.     1,
  5981.     1,
  5982.     1,
  5983.     1,
  5984.      0,
  5985.     1,
  5986.     1,
  5987.      0,
  5988.     1,
  5989.     1,
  5990.      0,
  5991.     1,
  5992.     1,
  5993.      0,
  5994.     1,
  5995.     1,
  5996.     1,
  5997.     1,
  5998.     1,
  5999.     1,
  6000.     1,
  6001.     1,
  6002.     2,
  6003.     2,
  6004.     2,
  6005.     1,
  6006.     1,
  6007.     2,
  6008.     2,
  6009.     2,
  6010.     2,
  6011.     1,
  6012.     1,
  6013.     1,
  6014.     1,
  6015.     1,
  6016.      0,
  6017.     1,
  6018.     1,
  6019.      0,
  6020.     1,
  6021.     1,
  6022.      0,
  6023.     1,
  6024.     1,
  6025.     1,
  6026.     1,
  6027.     1,
  6028.     1,
  6029.     1,
  6030.     1,
  6031.     1,
  6032.     1,
  6033.     1,
  6034.     1,
  6035.     1,
  6036.     1,
  6037.     1,
  6038.      0,
  6039.     1,
  6040.     1,
  6041.      0,
  6042.     1,
  6043.     1,
  6044.      0,
  6045.     1,
  6046.     1,
  6047.     1,
  6048.     1,
  6049.     1,
  6050.     1,
  6051.     1,
  6052.     1,
  6053.     1,
  6054.     1,
  6055.     1,
  6056.     1,
  6057.     1,
  6058.     1,
  6059.     1,
  6060.     1,
  6061.     1,
  6062.     1,
  6063.     1,
  6064.     1,
  6065.     1,
  6066.     1,
  6067.     1,
  6068.     1,
  6069.     1,
  6070.     1,
  6071.     1,
  6072.     1,
  6073.     1,
  6074.     1,
  6075.     1,
  6076.     1,
  6077.     2,
  6078.     2,
  6079.     2,
  6080.     2,
  6081.     2,
  6082.     2,
  6083.     1,
  6084.     1,
  6085.     1,
  6086.     1,
  6087.     1,
  6088.     1,
  6089.     1,
  6090.     1,
  6091.     1,
  6092.     1,
  6093.     1,
  6094.     1,
  6095.     1,
  6096.     1,
  6097.     1,
  6098.     1,
  6099.     1,
  6100.     1,
  6101.     1,
  6102.     1,
  6103.     1,
  6104.      0,
  6105.      0,
  6106.      0,
  6107.      0,
  6108.      0,
  6109.      0,
  6110.      0,
  6111.      0,
  6112.      0,
  6113.      0,
  6114.      0,
  6115.      0,
  6116.      0,
  6117.      0,
  6118.      0,
  6119.      0,
  6120.      0,
  6121.      0,
  6122.      0,
  6123.      0,
  6124.      0,
  6125.      0,
  6126.      0,
  6127.     1,
  6128.      0,
  6129.     1,
  6130.     1,
  6131.     1,
  6132.     1,
  6133.     1,
  6134.      0,
  6135.      0,
  6136.     1,
  6137.     1,
  6138.   };
  6139.