home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / program / 320 / compsrc2 / insn-out.c < prev    next >
Encoding:
C/C++ Source or Header  |  1988-10-20  |  76.2 KB  |  3,959 lines

  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 "conditions.h"
  8. #include "insn-flags.h"
  9. #include "insn-config.h"
  10.  
  11. #include "output.h"
  12. #include "aux-output.c"
  13.  
  14.  
  15. char *
  16. output_0 (operands, insn)
  17.      rtx *operands;
  18.      rtx insn;
  19. {
  20.  
  21. {
  22.   if (FP_REG_P (operands[1]))
  23.     return "fmove%.d %f1,%0";
  24.   return output_move_double (operands);
  25. }
  26. }
  27.  
  28. char *
  29. output_1 (operands, insn)
  30.      rtx *operands;
  31.      rtx insn;
  32. {
  33.  
  34. {
  35.   return output_move_double (operands);
  36. }
  37. }
  38.  
  39. char *
  40. output_2 (operands, insn)
  41.      rtx *operands;
  42.      rtx insn;
  43. {
  44.  
  45. {
  46. #ifdef ISI_OV
  47.   /* ISI's assembler fails to handle tstl a0.  */
  48.   if (! ADDRESS_REG_P (operands[0]))
  49. #else
  50.   if (TARGET_68020 || ! ADDRESS_REG_P (operands[0]))
  51. #endif
  52.     return "tst%.l %0";
  53.   /* If you think that the 68020 does not support tstl a0,
  54.      reread page B-167 of the 68020 manual more carefully.  */
  55.   /* On an address reg, cmpw may replace cmpl.  */
  56. #ifdef HPUX_ASM
  57.   return "cmp%.w %0,%#0";
  58. #else
  59.   return "cmp%.w %#0,%0";
  60. #endif
  61. }
  62. }
  63.  
  64. char *
  65. output_3 (operands, insn)
  66.      rtx *operands;
  67.      rtx insn;
  68. {
  69.  
  70. {
  71. #ifdef ISI_OV
  72.   if (! ADDRESS_REG_P (operands[0]))
  73. #else
  74.   if (TARGET_68020 || ! ADDRESS_REG_P (operands[0]))
  75. #endif
  76.     return "tst%.w %0";
  77. #ifdef HPUX_ASM
  78.   return "cmp%.w %0,%#0";
  79. #else
  80.   return "cmp%.w %#0,%0";
  81. #endif
  82. }
  83. }
  84.  
  85. char *
  86. output_5 (operands, insn)
  87.      rtx *operands;
  88.      rtx insn;
  89. {
  90.  
  91. {
  92.   cc_status.flags = CC_IN_68881;
  93.   if (FP_REG_P (operands[0]))
  94.     return "ftst%.x %0";
  95.   return "ftst%.s %0";
  96. }
  97. }
  98.  
  99. char *
  100. output_6 (operands, insn)
  101.      rtx *operands;
  102.      rtx insn;
  103. {
  104.  
  105. {
  106.   cc_status.flags = CC_IN_68881;
  107.   if (FP_REG_P (operands[0]))
  108.     return "ftst%.x %0";
  109.   return "ftst%.d %0";
  110. }
  111. }
  112.  
  113. char *
  114. output_7 (operands, insn)
  115.      rtx *operands;
  116.      rtx insn;
  117. {
  118.  
  119. {
  120.   if (REG_P (operands[1])
  121.       || (!REG_P (operands[0]) && GET_CODE (operands[0]) != MEM))
  122.     { cc_status.flags |= CC_REVERSED;
  123. #ifdef HPUX_ASM
  124.       return "cmp%.l %1,%0";
  125. #else
  126.       return "cmp%.l %0,%1"; 
  127. #endif
  128.     }
  129. #ifdef HPUX_ASM
  130.   return "cmp%.l %0,%1";
  131. #else
  132.   return "cmp%.l %1,%0";
  133. #endif
  134. }
  135. }
  136.  
  137. char *
  138. output_8 (operands, insn)
  139.      rtx *operands;
  140.      rtx insn;
  141. {
  142.  
  143. {
  144.   if (REG_P (operands[1])
  145.       || (!REG_P (operands[0]) && GET_CODE (operands[0]) != MEM))
  146.     { cc_status.flags |= CC_REVERSED;
  147. #ifdef HPUX_ASM
  148.       return "cmp%.w %1,%0";
  149. #else
  150.       return "cmp%.w %0,%1"; 
  151. #endif
  152.     }
  153. #ifdef HPUX_ASM
  154.   return "cmp%.w %0,%1";
  155. #else
  156.   return "cmp%.w %1,%0";
  157. #endif
  158. }
  159. }
  160.  
  161. char *
  162. output_9 (operands, insn)
  163.      rtx *operands;
  164.      rtx insn;
  165. {
  166.  
  167. #ifdef MOTOROLA
  168.   return "cmpm.b (%1)+,(%0)+";
  169. #else
  170.   return "cmpmb %1@+,%0@+";
  171. #endif
  172.  
  173. }
  174.  
  175. char *
  176. output_10 (operands, insn)
  177.      rtx *operands;
  178.      rtx insn;
  179. {
  180.  
  181. {
  182.   if (REG_P (operands[1])
  183.       || (!REG_P (operands[0]) && GET_CODE (operands[0]) != MEM))
  184.     { cc_status.flags |= CC_REVERSED;
  185. #ifdef HPUX_ASM
  186.       return "cmp%.b %1,%0";
  187. #else
  188.       return "cmp%.b %0,%1";
  189. #endif
  190.     }
  191. #ifdef HPUX_ASM
  192.   return "cmp%.b %0,%1";
  193. #else
  194.   return "cmp%.b %1,%0";
  195. #endif
  196. }
  197. }
  198.  
  199. char *
  200. output_11 (operands, insn)
  201.      rtx *operands;
  202.      rtx insn;
  203. {
  204.  
  205. {
  206.   cc_status.flags = CC_IN_68881;
  207. #ifdef HPUX_ASM
  208.   if (REG_P (operands[0]))
  209.     {
  210.       if (REG_P (operands[1]))
  211.     return "fcmp%.x %0,%1";
  212.       else
  213.         return "fcmp%.d %0,%f1";
  214.     }
  215.   cc_status.flags |= CC_REVERSED;
  216.   return "fcmp%.d %1,%f0";
  217. #else
  218.   if (REG_P (operands[0]))
  219.     {
  220.       if (REG_P (operands[1]))
  221.     return "fcmp%.x %1,%0";
  222.       else
  223.         return "fcmp%.d %f1,%0";
  224.     }
  225.   cc_status.flags |= CC_REVERSED;
  226.   return "fcmp%.d %f0,%1";
  227. #endif
  228. }
  229. }
  230.  
  231. char *
  232. output_12 (operands, insn)
  233.      rtx *operands;
  234.      rtx insn;
  235. {
  236.  
  237. {
  238.   cc_status.flags = CC_IN_68881;
  239. #ifdef HPUX_ASM
  240.   if (FP_REG_P (operands[0]))
  241.     {
  242.       if (FP_REG_P (operands[1]))
  243.     return "fcmp%.x %0,%1";
  244.       else
  245.         return "fcmp%.s %0,%f1";
  246.     }
  247.   cc_status.flags |= CC_REVERSED;
  248.   return "fcmp%.s %1,%f0";
  249. #else
  250.   if (FP_REG_P (operands[0]))
  251.     {
  252.       if (FP_REG_P (operands[1]))
  253.     return "fcmp%.x %1,%0";
  254.       else
  255.         return "fcmp%.s %f1,%0";
  256.     }
  257.   cc_status.flags |= CC_REVERSED;
  258.   return "fcmp%.s %f0,%1";
  259. #endif
  260. }
  261. }
  262.  
  263. char *
  264. output_13 (operands, insn)
  265.      rtx *operands;
  266.      rtx insn;
  267. {
  268.  { return output_btst (operands, operands[1], operands[0], insn, 7); }
  269. }
  270.  
  271. char *
  272. output_14 (operands, insn)
  273.      rtx *operands;
  274.      rtx insn;
  275. {
  276.  { return output_btst (operands, operands[1], operands[0], insn, 31); }
  277. }
  278.  
  279. char *
  280. output_15 (operands, insn)
  281.      rtx *operands;
  282.      rtx insn;
  283. {
  284.  { return output_btst (operands, operands[1], operands[0], insn, 7); }
  285. }
  286.  
  287. char *
  288. output_16 (operands, insn)
  289.      rtx *operands;
  290.      rtx insn;
  291. {
  292.  { return output_btst (operands, operands[1], operands[0], insn, 31); }
  293. }
  294.  
  295. char *
  296. output_17 (operands, insn)
  297.      rtx *operands;
  298.      rtx insn;
  299. {
  300.  
  301. { operands[1] = gen_rtx (CONST_INT, VOIDmode, 7 - INTVAL (operands[1]));
  302.   return output_btst (operands, operands[1], operands[0], insn, 7); }
  303. }
  304.  
  305. char *
  306. output_18 (operands, insn)
  307.      rtx *operands;
  308.      rtx insn;
  309. {
  310.  
  311. {
  312.   if (GET_CODE (operands[0]) == MEM)
  313.     {
  314.       operands[0] = adj_offsetable_operand (operands[0],
  315.                         INTVAL (operands[1]) / 8);
  316.       operands[1] = gen_rtx (CONST_INT, VOIDmode, 
  317.                  7 - INTVAL (operands[1]) % 8);
  318.       return output_btst (operands, operands[1], operands[0], insn, 7);
  319.     }
  320.   operands[1] = gen_rtx (CONST_INT, VOIDmode,
  321.              15 - INTVAL (operands[1]));
  322.   return output_btst (operands, operands[1], operands[0], insn, 15);
  323. }
  324. }
  325.  
  326. char *
  327. output_19 (operands, insn)
  328.      rtx *operands;
  329.      rtx insn;
  330. {
  331.  
  332. {
  333.   if (GET_CODE (operands[0]) == MEM)
  334.     {
  335.       operands[0] = adj_offsetable_operand (operands[0],
  336.                         INTVAL (operands[1]) / 8);
  337.       operands[1] = gen_rtx (CONST_INT, VOIDmode, 
  338.                  7 - INTVAL (operands[1]) % 8);
  339.       return output_btst (operands, operands[1], operands[0], insn, 7);
  340.     }
  341.   operands[1] = gen_rtx (CONST_INT, VOIDmode,
  342.              31 - INTVAL (operands[1]));
  343.   return output_btst (operands, operands[1], operands[0], insn, 31);
  344. }
  345. }
  346.  
  347. char *
  348. output_20 (operands, insn)
  349.      rtx *operands;
  350.      rtx insn;
  351. {
  352.  
  353. {
  354.   cc_status.flags = CC_Z_IN_NOT_N | CC_NOT_NEGATIVE;
  355.   return "tst%.b %0";
  356. }
  357. }
  358.  
  359. char *
  360. output_21 (operands, insn)
  361.      rtx *operands;
  362.      rtx insn;
  363. {
  364.  
  365. { register int log = exact_log2 (INTVAL (operands[1]));
  366.   operands[1] = gen_rtx (CONST_INT, VOIDmode, log);
  367.   return output_btst (operands, operands[1], operands[0], insn, 7);
  368. }
  369. }
  370.  
  371. char *
  372. output_23 (operands, insn)
  373.      rtx *operands;
  374.      rtx insn;
  375. {
  376.  
  377. {
  378.   if (ADDRESS_REG_P (operands[0]))
  379.     return "sub%.l %0,%0";
  380.   return "clr%.l %0";
  381. }
  382. }
  383.  
  384. char *
  385. output_25 (operands, insn)
  386.      rtx *operands;
  387.      rtx insn;
  388. {
  389.  
  390. {
  391.   if (GET_CODE (operands[1]) == CONST_INT)
  392.     {
  393.       if (operands[1] == const0_rtx
  394.       && (DATA_REG_P (operands[0])
  395.           || GET_CODE (operands[0]) == MEM))
  396.     return "clr%.l %0";
  397.       else if (DATA_REG_P (operands[0])
  398.            && INTVAL (operands[1]) < 128
  399.            && INTVAL (operands[1]) >= -128)
  400.         {
  401. #ifdef MOTOROLA
  402.           return "moveq%.l %1,%0";
  403. #else
  404.       return "moveq %1,%0";
  405. #endif
  406.     }
  407.       else if (ADDRESS_REG_P (operands[0])
  408.            && INTVAL (operands[1]) < 0x8000
  409.            && INTVAL (operands[1]) >= -0x8000)
  410.     return "move%.w %1,%0";
  411.       else if (push_operand (operands[0], SImode)
  412.            && INTVAL (operands[1]) < 0x8000
  413.            && INTVAL (operands[1]) >= -0x8000)
  414.         return "pea %a1";
  415.     }
  416.   else if ((GET_CODE (operands[1]) == SYMBOL_REF
  417.         || GET_CODE (operands[1]) == CONST)
  418.        && push_operand (operands[0], SImode))
  419.     return "pea %a1";
  420.   else if ((GET_CODE (operands[1]) == SYMBOL_REF
  421.         || GET_CODE (operands[1]) == CONST)
  422.        && ADDRESS_REG_P (operands[0]))
  423.     return "lea %a1,%0";
  424.   return "move%.l %1,%0";
  425. }
  426. }
  427.  
  428. char *
  429. output_26 (operands, insn)
  430.      rtx *operands;
  431.      rtx insn;
  432. {
  433.  
  434. {
  435.   if (GET_CODE (operands[1]) == CONST_INT)
  436.     {
  437.       if (operands[1] == const0_rtx
  438.       && (DATA_REG_P (operands[0])
  439.           || GET_CODE (operands[0]) == MEM))
  440.     return "clr%.w %0";
  441.     }
  442.   else if (CONSTANT_P (operands[1]))
  443.     return "move%.l %1,%0";
  444.   /* Recognize the insn before a tablejump, one that refers
  445.      to a table of offsets.  Such an insn will need to refer
  446.      to a label on the insn.  So output one.  Use the label-number
  447.      of the table of offsets to generate this label.  */
  448.   if (GET_CODE (operands[1]) == MEM
  449.       && GET_CODE (XEXP (operands[1], 0)) == PLUS
  450.       && (GET_CODE (XEXP (XEXP (operands[1], 0), 0)) == LABEL_REF
  451.       || GET_CODE (XEXP (XEXP (operands[1], 0), 1)) == LABEL_REF)
  452.       && GET_CODE (XEXP (XEXP (operands[1], 0), 0)) != PLUS
  453.       && GET_CODE (XEXP (XEXP (operands[1], 0), 1)) != PLUS)
  454.     {
  455.       rtx labelref;
  456.       if (GET_CODE (XEXP (XEXP (operands[1], 0), 0)) == LABEL_REF)
  457.     labelref = XEXP (XEXP (operands[1], 0), 0);
  458.       else
  459.     labelref = XEXP (XEXP (operands[1], 0), 1);
  460. #if defined (MOTOROLA) && ! defined (SGS_3B1)
  461. #ifdef SGS
  462.       fprintf (asm_out_file, "\tset %s%d,.+2\n", "LI",
  463.            CODE_LABEL_NUMBER (XEXP (labelref, 0)));
  464. #else
  465.       fprintf (asm_out_file, "\t.set %s%d,.+2\n", "LI",
  466.            CODE_LABEL_NUMBER (XEXP (labelref, 0)));
  467. #endif
  468. #else
  469.       ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, "LI",
  470.                  CODE_LABEL_NUMBER (XEXP (labelref, 0)));
  471. #endif
  472.     }
  473.   return "move%.w %1,%0";
  474. }
  475. }
  476.  
  477. char *
  478. output_27 (operands, insn)
  479.      rtx *operands;
  480.      rtx insn;
  481. {
  482.  
  483. {
  484.   if (GET_CODE (operands[1]) == CONST_INT)
  485.     {
  486.       if (operands[1] == const0_rtx
  487.       && (DATA_REG_P (operands[0])
  488.           || GET_CODE (operands[0]) == MEM))
  489.     return "clr%.w %0";
  490.     }
  491.   return "move%.w %1,%0";
  492. }
  493. }
  494.  
  495. char *
  496. output_28 (operands, insn)
  497.      rtx *operands;
  498.      rtx insn;
  499. {
  500.  
  501. {
  502.   if (operands[1] == const0_rtx)
  503.     return "clr%.b %0";
  504.   if (GET_CODE (operands[1]) == CONST_INT
  505.       && INTVAL (operands[1]) == -1)
  506.     return "st %0";
  507.   if (GET_CODE (operands[1]) != CONST_INT && CONSTANT_P (operands[1]))
  508.     return "move%.l %1,%0";
  509.   if (ADDRESS_REG_P (operands[0]) || ADDRESS_REG_P (operands[1]))
  510.     return "move%.w %1,%0";
  511.   return "move%.b %1,%0";
  512. }
  513. }
  514.  
  515. char *
  516. output_29 (operands, insn)
  517.      rtx *operands;
  518.      rtx insn;
  519. {
  520.  
  521. {
  522.   if (operands[1] == const0_rtx)
  523.     return "clr%.b %0";
  524.   return "move%.b %1,%0";
  525. }
  526. }
  527.  
  528. char *
  529. output_30 (operands, insn)
  530.      rtx *operands;
  531.      rtx insn;
  532. {
  533.  
  534. {
  535.   if (FP_REG_P (operands[0]))
  536.     {
  537.       if (FP_REG_P (operands[1]))
  538.     return "fmove%.x %1,%0";
  539.       else if (ADDRESS_REG_P (operands[1]))
  540.     return "move%.l %1,%-\n\tfmove%.s %+,%0";
  541.       else if (GET_CODE (operands[1]) == CONST_DOUBLE)
  542.     return output_move_const_single (operands);
  543.       return "fmove%.s %f1,%0";
  544.     }
  545.   if (FP_REG_P (operands[1]))
  546.     {
  547.       if (ADDRESS_REG_P (operands[0]))
  548.     return "fmove%.s %1,%-\n\tmove%.l %+,%0";
  549.       return "fmove%.s %f1,%0";
  550.     }
  551.   return "move%.l %1,%0";
  552. }
  553. }
  554.  
  555. char *
  556. output_31 (operands, insn)
  557.      rtx *operands;
  558.      rtx insn;
  559. {
  560.  
  561. {
  562.   if (FP_REG_P (operands[0]))
  563.     {
  564.       if (FP_REG_P (operands[1]))
  565.     return "fmove%.x %1,%0";
  566.       if (REG_P (operands[1]))
  567.     {
  568.       rtx xoperands[2];
  569.       xoperands[1] = gen_rtx (REG, SImode, REGNO (operands[1]) + 1);
  570.       output_asm_insn ("move%.l %1,%-", xoperands);
  571.       output_asm_insn ("move%.l %1,%-", operands);
  572.       return "fmove%.d %+,%0";
  573.     }
  574.       if (GET_CODE (operands[1]) == CONST_DOUBLE)
  575.     return output_move_const_double (operands);
  576.       return "fmove%.d %f1,%0";
  577.     }
  578.   else if (FP_REG_P (operands[1]))
  579.     {
  580.       if (REG_P (operands[0]))
  581.     {
  582.       output_asm_insn ("fmove%.d %f1,%-\n\tmove%.l %+,%0", operands);
  583.       operands[0] = gen_rtx (REG, SImode, REGNO (operands[0]) + 1);
  584.       return "move%.l %+,%0";
  585.     }
  586.       else
  587.         return "fmove%.d %f1,%0";
  588.     }
  589.   return output_move_double (operands);
  590. }
  591.  
  592. }
  593.  
  594. char *
  595. output_32 (operands, insn)
  596.      rtx *operands;
  597.      rtx insn;
  598. {
  599.  
  600. {
  601.   if (FP_REG_P (operands[0]))
  602.     {
  603.       if (FP_REG_P (operands[1]))
  604.     return "fmove%.x %1,%0";
  605.       if (REG_P (operands[1]))
  606.     {
  607.       rtx xoperands[2];
  608.       xoperands[1] = gen_rtx (REG, SImode, REGNO (operands[1]) + 1);
  609.       output_asm_insn ("move%.l %1,%-", xoperands);
  610.       output_asm_insn ("move%.l %1,%-", operands);
  611.       return "fmove%.d %+,%0";
  612.     }
  613.       if (GET_CODE (operands[1]) == CONST_DOUBLE)
  614.     return output_move_const_double (operands);
  615.       return "fmove%.d %f1,%0";
  616.     }
  617.   else if (FP_REG_P (operands[1]))
  618.     {
  619.       if (REG_P (operands[0]))
  620.     {
  621.       output_asm_insn ("fmove.d %f1,%-\n\tmove%.l %+,%0", operands);
  622.       operands[0] = gen_rtx (REG, SImode, REGNO (operands[0]) + 1);
  623.       return "move%.l %+,%0";
  624.     }
  625.       else
  626.         return "fmove%.d %f1,%0";
  627.     }
  628.   return output_move_double (operands);
  629. }
  630.  
  631. }
  632.  
  633. char *
  634. output_35 (operands, insn)
  635.      rtx *operands;
  636.      rtx insn;
  637. {
  638.  
  639. {
  640.   if (GET_CODE (operands[0]) == REG)
  641.     return "move%.l %1,%0";
  642.   if (GET_CODE (operands[1]) == MEM)
  643.     operands[1] = adj_offsetable_operand (operands[1], 3);
  644.   return "move%.b %1,%0";
  645. }
  646. }
  647.  
  648. char *
  649. output_36 (operands, insn)
  650.      rtx *operands;
  651.      rtx insn;
  652. {
  653.  
  654. {
  655.   if (GET_CODE (operands[0]) == REG)
  656.     return "move%.l %1,%0";
  657.   if (GET_CODE (operands[1]) == MEM)
  658.     operands[1] = adj_offsetable_operand (operands[1], 1);
  659.   return "move%.b %1,%0";
  660. }
  661. }
  662.  
  663. char *
  664. output_37 (operands, insn)
  665.      rtx *operands;
  666.      rtx insn;
  667. {
  668.  
  669. {
  670.   if (GET_CODE (operands[0]) == REG)
  671.     return "move%.l %1,%0";
  672.   if (GET_CODE (operands[1]) == MEM)
  673.     operands[1] = adj_offsetable_operand (operands[1], 2);
  674.   return "move%.w %1,%0";
  675. }
  676. }
  677.  
  678. char *
  679. output_41 (operands, insn)
  680.      rtx *operands;
  681.      rtx insn;
  682. {
  683.  
  684. {
  685.   if (ADDRESS_REG_P (operands[0]))
  686.     return "move%.w %1,%0";
  687.   return "ext%.l %0";
  688. }
  689. }
  690.  
  691. char *
  692. output_44 (operands, insn)
  693.      rtx *operands;
  694.      rtx insn;
  695. {
  696.  
  697. {
  698.   if (FP_REG_P (operands[0]) && FP_REG_P (operands[1]))
  699.     {
  700.       if (REGNO (operands[0]) == REGNO (operands[1]))
  701.     {
  702.       /* Extending float to double in an fp-reg is a no-op.
  703.          NOTICE_UPDATE_CC has already assumed that the
  704.          cc will be set.  So cancel what it did.  */
  705.       cc_status = cc_prev_status;
  706.       return "";
  707.     }
  708.       return "fmove%.x %1,%0";
  709.     }
  710.   if (FP_REG_P (operands[0]))
  711.     return "fmove%.s %f1,%0";
  712.   if (DATA_REG_P (operands[0]) && FP_REG_P (operands[1]))
  713.     {
  714.       output_asm_insn ("fmove%.d %f1,%-\n\tmove%.l %+,%0", operands);
  715.       operands[0] = gen_rtx (REG, SImode, REGNO (operands[0]) + 1);
  716.       return "move%.l %+,%0";
  717.     }
  718.   return "fmove%.d %f1,%0";
  719. }
  720. }
  721.  
  722. char *
  723. output_52 (operands, insn)
  724.      rtx *operands;
  725.      rtx insn;
  726. {
  727.  
  728. {
  729.   if (FP_REG_P (operands[1]))
  730.     return "fintrz%.x %f1,%0";
  731.   return "fintrz%.d %f1,%0";
  732. }
  733. }
  734.  
  735. char *
  736. output_53 (operands, insn)
  737.      rtx *operands;
  738.      rtx insn;
  739. {
  740.  
  741. {
  742.   if (FP_REG_P (operands[1]))
  743.     return "fintrz%.x %f1,%0";
  744.   return "fintrz%.s %f1,%0";
  745. }
  746. }
  747.  
  748. char *
  749. output_60 (operands, insn)
  750.      rtx *operands;
  751.      rtx insn;
  752. {
  753.  
  754. {
  755.   if (! operands_match_p (operands[0], operands[1]))
  756.     {
  757.       /* These insns can result from reloads to access
  758.      stack slots over 64k from the frame pointer.  */
  759.       if (GET_CODE (operands[2]) == CONST_INT
  760.       && INTVAL (operands[2]) + 0x8000 >= (unsigned) 0x10000)
  761.         return "move%.l %2,%0\n\tadd%.l %1,%0";
  762. #ifdef SGS
  763.       if (GET_CODE (operands[2]) == REG)
  764.     return "lea (%1,%2.l),%0";
  765.       else
  766.     return "lea %c2(%1),%0";
  767. #else /* not SGS */
  768. #ifdef MOTOROLA
  769.       if (GET_CODE (operands[2]) == REG)
  770.     return "lea (%1,%2.l),%0";
  771.       else
  772.     return "lea (%c2,%1),%0";
  773. #else /* not MOTOROLA (MIT syntax) */
  774.       if (GET_CODE (operands[2]) == REG)
  775.     return "lea %1@(0,%2:l),%0";
  776.       else
  777.     return "lea %1@(%c2),%0";
  778. #endif /* not MOTOROLA */
  779. #endif /* not SGS */
  780.     }
  781.   if (GET_CODE (operands[2]) == CONST_INT)
  782.     {
  783.       if (INTVAL (operands[2]) > 0
  784.       && INTVAL (operands[2]) <= 8)
  785.     return "addq%.l %2,%0";
  786.       if (INTVAL (operands[2]) < 0
  787.       && INTVAL (operands[2]) >= -8)
  788.         {
  789.       operands[2] = gen_rtx (CONST_INT, VOIDmode,
  790.                      - INTVAL (operands[2]));
  791.       return "subq%.l %2,%0";
  792.     }
  793.       if (ADDRESS_REG_P (operands[0])
  794.       && INTVAL (operands[2]) >= -0x8000
  795.       && INTVAL (operands[2]) < 0x8000)
  796.     return "add%.w %2,%0";
  797.     }
  798.   return "add%.l %2,%0";
  799. }
  800. }
  801.  
  802. char *
  803. output_62 (operands, insn)
  804.      rtx *operands;
  805.      rtx insn;
  806. {
  807.  
  808. {
  809.   if (GET_CODE (operands[2]) == CONST_INT)
  810.     {
  811.       if (INTVAL (operands[2]) > 0
  812.       && INTVAL (operands[2]) <= 8)
  813.     return "addq%.w %2,%0";
  814.     }
  815.   if (GET_CODE (operands[2]) == CONST_INT)
  816.     {
  817.       if (INTVAL (operands[2]) < 0
  818.       && INTVAL (operands[2]) >= -8)
  819.     {
  820.       operands[2] = gen_rtx (CONST_INT, VOIDmode,
  821.                      - INTVAL (operands[2]));
  822.       return "subq%.w %2,%0";
  823.     }
  824.     }
  825.   return "add%.w %2,%0";
  826. }
  827. }
  828.  
  829. char *
  830. output_64 (operands, insn)
  831.      rtx *operands;
  832.      rtx insn;
  833. {
  834.  
  835. {
  836.   if (GET_CODE (operands[2]) == CONST_INT)
  837.     {
  838.       if (INTVAL (operands[2]) > 0
  839.       && INTVAL (operands[2]) <= 8)
  840.     return "addq%.b %2,%0";
  841.     }
  842.   if (GET_CODE (operands[2]) == CONST_INT)
  843.     {
  844.       if (INTVAL (operands[2]) < 0 && INTVAL (operands[2]) >= -8)
  845.        {
  846.      operands[2] = gen_rtx (CONST_INT, VOIDmode, - INTVAL (operands[2]));
  847.      return "subq%.b %2,%0";
  848.        }
  849.     }
  850.   return "add%.b %2,%0";
  851. }
  852. }
  853.  
  854. char *
  855. output_66 (operands, insn)
  856.      rtx *operands;
  857.      rtx insn;
  858. {
  859.  
  860. {
  861.   if (REG_P (operands[2]))
  862.     return "fadd%.x %2,%0";
  863.   return "fadd%.d %f2,%0";
  864. }
  865. }
  866.  
  867. char *
  868. output_67 (operands, insn)
  869.      rtx *operands;
  870.      rtx insn;
  871. {
  872.  
  873. {
  874.   if (REG_P (operands[2]) && ! DATA_REG_P (operands[2]))
  875.     return "fadd%.x %2,%0";
  876.   return "fadd%.s %f2,%0";
  877. }
  878. }
  879.  
  880. char *
  881. output_68 (operands, insn)
  882.      rtx *operands;
  883.      rtx insn;
  884. {
  885.  
  886. {
  887.   if (! operands_match_p (operands[0], operands[1]))
  888.     {
  889.       if (operands_match_p (operands[0], operands[2]))
  890.     {
  891.       if (GET_CODE (operands[1]) == CONST_INT)
  892.         {
  893.           if (INTVAL (operands[1]) > 0
  894.           && INTVAL (operands[1]) <= 8)
  895.         return "subq%.l %1,%0\n\tneg%.l %0";
  896.         }
  897.       return "sub%.l %1,%0\n\tneg%.l %0";
  898.     }
  899.       /* This case is matched by J, but negating -0x8000
  900.          in an lea would give an invalid displacement.
  901.      So do this specially.  */
  902.       if (INTVAL (operands[2]) == -0x8000)
  903.     return "move%.l %1,%0\n\tsub%.l %2,%0";
  904. #ifdef SGS
  905.       return "lea %n2(%1),%0";
  906. #else
  907. #ifdef MOTOROLA
  908.       return "lea (%n2,%1),%0";
  909. #else /* not MOTOROLA (MIT syntax) */
  910.       return "lea %1@(%n2),%0";
  911. #endif /* not MOTOROLA */
  912. #endif /* not SGS */
  913.     }
  914.   if (GET_CODE (operands[2]) == CONST_INT)
  915.     {
  916.       if (INTVAL (operands[2]) > 0
  917.       && INTVAL (operands[2]) <= 8)
  918.     return "subq%.l %2,%0";
  919.       if (ADDRESS_REG_P (operands[0])
  920.       && INTVAL (operands[2]) >= -0x8000
  921.       && INTVAL (operands[2]) < 0x8000)
  922.     return "sub%.w %2,%0";
  923.     }
  924.   return "sub%.l %2,%0";
  925. }
  926. }
  927.  
  928. char *
  929. output_74 (operands, insn)
  930.      rtx *operands;
  931.      rtx insn;
  932. {
  933.  
  934. {
  935.   if (REG_P (operands[2]))
  936.     return "fsub%.x %2,%0";
  937.   return "fsub%.d %f2,%0";
  938. }
  939. }
  940.  
  941. char *
  942. output_75 (operands, insn)
  943.      rtx *operands;
  944.      rtx insn;
  945. {
  946.  
  947. {
  948.   if (REG_P (operands[2]) && ! DATA_REG_P (operands[2]))
  949.     return "fsub%.x %2,%0";
  950.   return "fsub%.s %f2,%0";
  951. }
  952. }
  953.  
  954. char *
  955. output_76 (operands, insn)
  956.      rtx *operands;
  957.      rtx insn;
  958. {
  959.  
  960. {
  961. #ifdef MOTOROLA
  962.   return "muls.w %2,%0";
  963. #else
  964.   return "muls %2,%0";
  965. #endif
  966. }
  967. }
  968.  
  969. char *
  970. output_77 (operands, insn)
  971.      rtx *operands;
  972.      rtx insn;
  973. {
  974.  
  975. {
  976. #ifdef MOTOROLA
  977.   return "muls.w %2,%0";
  978. #else
  979.   return "muls %2,%0";
  980. #endif
  981. }
  982. }
  983.  
  984. char *
  985. output_79 (operands, insn)
  986.      rtx *operands;
  987.      rtx insn;
  988. {
  989.  
  990. {
  991. #ifdef MOTOROLA
  992.   return "mulu.w %2,%0";
  993. #else
  994.   return "mulu %2,%0";
  995. #endif
  996. }
  997. }
  998.  
  999. char *
  1000. output_80 (operands, insn)
  1001.      rtx *operands;
  1002.      rtx insn;
  1003. {
  1004.  
  1005. {
  1006. #ifdef MOTOROLA
  1007.   return "mulu.w %2,%0";
  1008. #else
  1009.   return "mulu %2,%0";
  1010. #endif
  1011. }
  1012. }
  1013.  
  1014. char *
  1015. output_82 (operands, insn)
  1016.      rtx *operands;
  1017.      rtx insn;
  1018. {
  1019.  
  1020. {
  1021.   if (REG_P (operands[2]))
  1022.     return "fmul%.x %2,%0";
  1023.   return "fmul%.d %f2,%0";
  1024. }
  1025. }
  1026.  
  1027. char *
  1028. output_83 (operands, insn)
  1029.      rtx *operands;
  1030.      rtx insn;
  1031. {
  1032.  
  1033. {
  1034.   if (REG_P (operands[2]) && ! DATA_REG_P (operands[2]))
  1035.     return "fsglmul%.x %2,%0";
  1036.   return "fsglmul%.s %f2,%0";
  1037. }
  1038. }
  1039.  
  1040. char *
  1041. output_84 (operands, insn)
  1042.      rtx *operands;
  1043.      rtx insn;
  1044. {
  1045.  
  1046. {
  1047. #ifdef MOTOROLA
  1048.   return "ext.l %0\n\tdivs.w %2,%0";
  1049. #else
  1050.   return "extl %0\n\tdivs %2,%0";
  1051. #endif
  1052. }
  1053. }
  1054.  
  1055. char *
  1056. output_85 (operands, insn)
  1057.      rtx *operands;
  1058.      rtx insn;
  1059. {
  1060.  
  1061. {
  1062. #ifdef MOTOROLA
  1063.   return "divs.w %2,%0";
  1064. #else
  1065.   return "divs %2,%0";
  1066. #endif
  1067. }
  1068. }
  1069.  
  1070. char *
  1071. output_87 (operands, insn)
  1072.      rtx *operands;
  1073.      rtx insn;
  1074. {
  1075.  
  1076. {
  1077. #ifdef MOTOROLA
  1078.   return "and.l %#0xFFFF,%0\n\tdivu.w %2,%0";
  1079. #else
  1080.   return "andl %#0xFFFF,%0\n\tdivu %2,%0";
  1081. #endif
  1082. }
  1083. }
  1084.  
  1085. char *
  1086. output_88 (operands, insn)
  1087.      rtx *operands;
  1088.      rtx insn;
  1089. {
  1090.  
  1091. {
  1092. #ifdef MOTOROLA
  1093.   return "divu.w %2,%0";
  1094. #else
  1095.   return "divu %2,%0";
  1096. #endif
  1097. }
  1098. }
  1099.  
  1100. char *
  1101. output_90 (operands, insn)
  1102.      rtx *operands;
  1103.      rtx insn;
  1104. {
  1105.  
  1106. {
  1107.   if (REG_P (operands[2]))
  1108.     return "fdiv%.x %2,%0";
  1109.   return "fdiv%.d %f2,%0";
  1110. }
  1111. }
  1112.  
  1113. char *
  1114. output_91 (operands, insn)
  1115.      rtx *operands;
  1116.      rtx insn;
  1117. {
  1118.  
  1119. {
  1120.   if (REG_P (operands[2]) && ! DATA_REG_P (operands[2]))
  1121.     return "fsgldiv%.x %2,%0";
  1122.   return "fsgldiv%.s %f2,%0";
  1123. }
  1124. }
  1125.  
  1126. char *
  1127. output_92 (operands, insn)
  1128.      rtx *operands;
  1129.      rtx insn;
  1130. {
  1131.  
  1132. {
  1133.   /* The swap insn produces cc's that don't correspond to the result.  */
  1134.   CC_STATUS_INIT;
  1135. #ifdef MOTOROLA
  1136.   return "ext.l %0\n\tdivs.w %2,%0\n\tswap %0";
  1137. #else
  1138.   return "extl %0\n\tdivs %2,%0\n\tswap %0";
  1139. #endif
  1140. }
  1141. }
  1142.  
  1143. char *
  1144. output_93 (operands, insn)
  1145.      rtx *operands;
  1146.      rtx insn;
  1147. {
  1148.  
  1149. {
  1150.   /* The swap insn produces cc's that don't correspond to the result.  */
  1151.   CC_STATUS_INIT;
  1152. #ifdef MOTOROLA
  1153.   return "divs.w %2,%0\n\tswap %0";
  1154. #else
  1155.   return "divs %2,%0\n\tswap %0";
  1156. #endif
  1157. }
  1158. }
  1159.  
  1160. char *
  1161. output_94 (operands, insn)
  1162.      rtx *operands;
  1163.      rtx insn;
  1164. {
  1165.  
  1166. {
  1167.   /* The swap insn produces cc's that don't correspond to the result.  */
  1168.   CC_STATUS_INIT;
  1169. #ifdef MOTOROLA
  1170.   return "and.l %#0xFFFF,%0\n\tdivu.w %2,%0\n\tswap %0";
  1171. #else
  1172.   return "andl %#0xFFFF,%0\n\tdivu %2,%0\n\tswap %0";
  1173. #endif
  1174. }
  1175. }
  1176.  
  1177. char *
  1178. output_95 (operands, insn)
  1179.      rtx *operands;
  1180.      rtx insn;
  1181. {
  1182.  
  1183. {
  1184.   /* The swap insn produces cc's that don't correspond to the result.  */
  1185.   CC_STATUS_INIT;
  1186. #ifdef MOTOROLA
  1187.   return "divu.w %2,%0\n\tswap %0";
  1188. #else
  1189.   return "divu %2,%0\n\tswap %0";
  1190. #endif
  1191. }
  1192. }
  1193.  
  1194. char *
  1195. output_98 (operands, insn)
  1196.      rtx *operands;
  1197.      rtx insn;
  1198. {
  1199.  
  1200. {
  1201.   if (GET_CODE (operands[2]) == CONST_INT
  1202.       && (INTVAL (operands[2]) | 0xffff) == 0xffffffff
  1203.       && (DATA_REG_P (operands[0])
  1204.       || offsetable_memref_p (operands[0])))
  1205.     { 
  1206.       if (GET_CODE (operands[0]) != REG)
  1207.         operands[0] = adj_offsetable_operand (operands[0], 2);
  1208.       operands[2] = gen_rtx (CONST_INT, VOIDmode,
  1209.                  INTVAL (operands[2]) & 0xffff);
  1210.       /* Do not delete a following tstl %0 insn; that would be incorrect.  */
  1211.       CC_STATUS_INIT;
  1212.       return "and%.w %2,%0";
  1213.     }
  1214.   return "and%.l %2,%0";
  1215. }
  1216. }
  1217.  
  1218. char *
  1219. output_103 (operands, insn)
  1220.      rtx *operands;
  1221.      rtx insn;
  1222. {
  1223.  
  1224. {
  1225.   register int logval;
  1226.   if (GET_CODE (operands[2]) == CONST_INT
  1227.       && INTVAL (operands[2]) >> 16 == 0
  1228.       && (DATA_REG_P (operands[0])
  1229.       || offsetable_memref_p (operands[0])))
  1230.     { 
  1231.       if (GET_CODE (operands[0]) != REG)
  1232.         operands[0] = adj_offsetable_operand (operands[0], 2);
  1233.       /* Do not delete a following tstl %0 insn; that would be incorrect.  */
  1234.       CC_STATUS_INIT;
  1235.       return "or%.w %2,%0";
  1236.     }
  1237.   if (GET_CODE (operands[2]) == CONST_INT
  1238.       && (logval = exact_log2 (INTVAL (operands[2]))) >= 0
  1239.       && (DATA_REG_P (operands[0])
  1240.       || offsetable_memref_p (operands[0])))
  1241.     { 
  1242.       if (DATA_REG_P (operands[0]))
  1243.     {
  1244.       operands[1] = gen_rtx (CONST_INT, VOIDmode, logval);
  1245.     }
  1246.       else
  1247.         {
  1248.       operands[0] = adj_offsetable_operand (operands[0], 3 - (logval / 8));
  1249.       operands[1] = gen_rtx (CONST_INT, VOIDmode, logval % 8);
  1250.     }
  1251.       return "bset %1,%0";
  1252.     }
  1253.   return "or%.l %2,%0";
  1254. }
  1255. }
  1256.  
  1257. char *
  1258. output_106 (operands, insn)
  1259.      rtx *operands;
  1260.      rtx insn;
  1261. {
  1262.  
  1263. {
  1264.   if (GET_CODE (operands[2]) == CONST_INT
  1265.       && INTVAL (operands[2]) >> 16 == 0
  1266.       && (offsetable_memref_p (operands[0]) || DATA_REG_P (operands[0])))
  1267.     { 
  1268.       if (! DATA_REG_P (operands[0]))
  1269.     operands[0] = adj_offsetable_operand (operands[0], 2);
  1270.       /* Do not delete a following tstl %0 insn; that would be incorrect.  */
  1271.       CC_STATUS_INIT;
  1272.       return "eor%.w %2,%0";
  1273.     }
  1274.   return "eor%.l %2,%0";
  1275. }
  1276. }
  1277.  
  1278. char *
  1279. output_112 (operands, insn)
  1280.      rtx *operands;
  1281.      rtx insn;
  1282. {
  1283.  
  1284. {
  1285.   if (REG_P (operands[1]) && ! DATA_REG_P (operands[1]))
  1286.     return "fneg%.x %1,%0";
  1287.   return "fneg%.s %f1,%0";
  1288. }
  1289. }
  1290.  
  1291. char *
  1292. output_113 (operands, insn)
  1293.      rtx *operands;
  1294.      rtx insn;
  1295. {
  1296.  
  1297. {
  1298.   if (REG_P (operands[1]) && ! DATA_REG_P (operands[1]))
  1299.     return "fneg%.x %1,%0";
  1300.   return "fneg%.d %f1,%0";
  1301. }
  1302. }
  1303.  
  1304. char *
  1305. output_114 (operands, insn)
  1306.      rtx *operands;
  1307.      rtx insn;
  1308. {
  1309.  
  1310. {
  1311.   if (REG_P (operands[1]) && ! DATA_REG_P (operands[1]))
  1312.     return "fabs%.x %1,%0";
  1313.   return "fabs%.s %f1,%0";
  1314. }
  1315. }
  1316.  
  1317. char *
  1318. output_115 (operands, insn)
  1319.      rtx *operands;
  1320.      rtx insn;
  1321. {
  1322.  
  1323. {
  1324.   if (REG_P (operands[1]) && ! DATA_REG_P (operands[1]))
  1325.     return "fabs%.x %1,%0";
  1326.   return "fabs%.d %f1,%0";
  1327. }
  1328. }
  1329.  
  1330. char *
  1331. output_119 (operands, insn)
  1332.      rtx *operands;
  1333.      rtx insn;
  1334. {
  1335.  
  1336. {
  1337.   if (TARGET_68020)
  1338.     return "move%.b %1,%0\n\textb%.l %0";
  1339.   return "move%.b %1,%0\n\text%.w %0\n\text%.l %0";
  1340. }
  1341. }
  1342.  
  1343. char *
  1344. output_120 (operands, insn)
  1345.      rtx *operands;
  1346.      rtx insn;
  1347. {
  1348.  
  1349. {
  1350.   if (reg_mentioned_p (operands[0], operands[1]))
  1351.     return "move%.b %1,%0\n\tand%.l %#0xFF,%0";
  1352.   return "clr%.l %0\n\tmove%.b %1,%0";
  1353. }
  1354. }
  1355.  
  1356. char *
  1357. output_121 (operands, insn)
  1358.      rtx *operands;
  1359.      rtx insn;
  1360. {
  1361.  cc_status.flags |= CC_REVERSED;
  1362. #ifdef HPUX_ASM
  1363.   return "cmp%.b %1,%0";
  1364. #else
  1365.   return "cmp%.b %0,%1";
  1366. #endif
  1367.  
  1368. }
  1369.  
  1370. char *
  1371. output_122 (operands, insn)
  1372.      rtx *operands;
  1373.      rtx insn;
  1374. {
  1375.  
  1376. #ifdef HPUX_ASM
  1377.   return "cmp%.b %0,%1";
  1378. #else
  1379.   return "cmp%.b %1,%0";
  1380. #endif
  1381.  
  1382. }
  1383.  
  1384. char *
  1385. output_123 (operands, insn)
  1386.      rtx *operands;
  1387.      rtx insn;
  1388. {
  1389.  cc_status.flags |= CC_REVERSED;
  1390. #ifdef HPUX_ASM
  1391.   return "cmp%.b %1,%0";
  1392. #else
  1393.   return "cmp%.b %0,%1";
  1394. #endif
  1395.  
  1396. }
  1397.  
  1398. char *
  1399. output_124 (operands, insn)
  1400.      rtx *operands;
  1401.      rtx insn;
  1402. {
  1403.  
  1404. #ifdef HPUX_ASM
  1405.   return "cmp%.b %0,%1";
  1406. #else
  1407.   return "cmp%.b %1,%0";
  1408. #endif
  1409.  
  1410. }
  1411.  
  1412. char *
  1413. output_143 (operands, insn)
  1414.      rtx *operands;
  1415.      rtx insn;
  1416. {
  1417.  
  1418. {
  1419.   if (REG_P (operands[0]))
  1420.     {
  1421.       if (INTVAL (operands[1]) + INTVAL (operands[2]) != 32)
  1422.         return "bfins %3,%0{%b2:%b1}";
  1423.     }
  1424.   else
  1425.     operands[0]
  1426.       = adj_offsetable_operand (operands[0], INTVAL (operands[2]) / 8);
  1427.  
  1428.   if (GET_CODE (operands[3]) == MEM)
  1429.     operands[3] = adj_offsetable_operand (operands[3],
  1430.                       (32 - INTVAL (operands[1])) / 8);
  1431.   if (INTVAL (operands[1]) == 8)
  1432.     return "move%.b %3,%0";
  1433.   return "move%.w %3,%0";
  1434. }
  1435. }
  1436.  
  1437. char *
  1438. output_144 (operands, insn)
  1439.      rtx *operands;
  1440.      rtx insn;
  1441. {
  1442.  
  1443. {
  1444.   if (REG_P (operands[1]))
  1445.     {
  1446.       if (INTVAL (operands[2]) + INTVAL (operands[3]) != 32)
  1447.     return "bfextu %1{%b3:%b2},%0";
  1448.     }
  1449.   else
  1450.     operands[1]
  1451.       = adj_offsetable_operand (operands[1], INTVAL (operands[3]) / 8);
  1452.  
  1453.   output_asm_insn ("clr%.l %0", operands);
  1454.   if (GET_CODE (operands[0]) == MEM)
  1455.     operands[0] = adj_offsetable_operand (operands[0],
  1456.                       (32 - INTVAL (operands[1])) / 8);
  1457.   if (INTVAL (operands[2]) == 8)
  1458.     return "move%.b %1,%0";
  1459.   return "move%.w %1,%0";
  1460. }
  1461. }
  1462.  
  1463. char *
  1464. output_145 (operands, insn)
  1465.      rtx *operands;
  1466.      rtx insn;
  1467. {
  1468.  
  1469. {
  1470.   if (REG_P (operands[1]))
  1471.     {
  1472.       if (INTVAL (operands[2]) + INTVAL (operands[3]) != 32)
  1473.     return "bfexts %1{%b3:%b2},%0";
  1474.     }
  1475.   else
  1476.     operands[1]
  1477.       = adj_offsetable_operand (operands[1], INTVAL (operands[3]) / 8);
  1478.  
  1479.   if (INTVAL (operands[2]) == 8)
  1480.     return "move%.b %1,%0\n\textb%.l %0";
  1481.   return "move%.w %1,%0\n\text%.l %0";
  1482. }
  1483. }
  1484.  
  1485. char *
  1486. output_156 (operands, insn)
  1487.      rtx *operands;
  1488.      rtx insn;
  1489. {
  1490.  
  1491. {
  1492. #if 0
  1493.   /* These special cases are now recognized by a specific pattern.  */
  1494.   if (GET_CODE (operands[1]) == CONST_INT && GET_CODE (operands[2]) == CONST_INT
  1495.       && INTVAL (operands[1]) == 16 && INTVAL (operands[2]) == 16)
  1496.     return "move%.w %3,%0";
  1497.   if (GET_CODE (operands[1]) == CONST_INT && GET_CODE (operands[2]) == CONST_INT
  1498.       && INTVAL (operands[1]) == 24 && INTVAL (operands[2]) == 8)
  1499.     return "move%.b %3,%0";
  1500. #endif
  1501.   return "bfins %3,%0{%b2:%b1}";
  1502. }
  1503. }
  1504.  
  1505. char *
  1506. output_157 (operands, insn)
  1507.      rtx *operands;
  1508.      rtx insn;
  1509. {
  1510.  
  1511. {
  1512.   if (operands[1] == const1_rtx
  1513.       && GET_CODE (operands[2]) == CONST_INT)
  1514.     {    
  1515.       int width = GET_CODE (operands[0]) == REG ? 31 : 7;
  1516.       return output_btst (operands,
  1517.               gen_rtx (CONST_INT, VOIDmode,
  1518.                    width - INTVAL (operands[2])),
  1519.               operands[0],
  1520.               insn, 1000);
  1521.       /* Pass 1000 as SIGNPOS argument so that btst will
  1522.          not think we are testing the sign bit for an `and'
  1523.      and assume that nonzero implies a negative result.  */
  1524.     }
  1525.   if (INTVAL (operands[1]) != 32)
  1526.     cc_status.flags = CC_NOT_NEGATIVE;
  1527.   return "bftst %0{%b2:%b1}";
  1528. }
  1529. }
  1530.  
  1531. char *
  1532. output_158 (operands, insn)
  1533.      rtx *operands;
  1534.      rtx insn;
  1535. {
  1536.  
  1537. {
  1538.   if (operands[1] == const1_rtx
  1539.       && GET_CODE (operands[2]) == CONST_INT)
  1540.     {    
  1541.       int width = GET_CODE (operands[0]) == REG ? 31 : 7;
  1542.       return output_btst (operands,
  1543.               gen_rtx (CONST_INT, VOIDmode,
  1544.                    width - INTVAL (operands[2])),
  1545.               operands[0],
  1546.               insn, 1000);
  1547.       /* Pass 1000 as SIGNPOS argument so that btst will
  1548.          not think we are testing the sign bit for an `and'
  1549.      and assume that nonzero implies a negative result.  */
  1550.     }
  1551.   if (INTVAL (operands[1]) != 32)
  1552.     cc_status.flags = CC_NOT_NEGATIVE;
  1553.   return "bftst %0{%b2:%b1}";
  1554. }
  1555. }
  1556.  
  1557. char *
  1558. output_159 (operands, insn)
  1559.      rtx *operands;
  1560.      rtx insn;
  1561. {
  1562.  
  1563. {
  1564.   if (operands[1] == const1_rtx
  1565.       && GET_CODE (operands[2]) == CONST_INT)
  1566.     {    
  1567.       int width = GET_CODE (operands[0]) == REG ? 31 : 7;
  1568.       return output_btst (operands,
  1569.               gen_rtx (CONST_INT, VOIDmode,
  1570.                    width - INTVAL (operands[2])),
  1571.               operands[0],
  1572.               insn, 1000);
  1573.       /* Pass 1000 as SIGNPOS argument so that btst will
  1574.          not think we are testing the sign bit for an `and'
  1575.      and assume that nonzero implies a negative result.  */
  1576.     }
  1577.   if (INTVAL (operands[1]) != 32)
  1578.     cc_status.flags = CC_NOT_NEGATIVE;
  1579.   return "bftst %0{%b2:%b1}";
  1580. }
  1581. }
  1582.  
  1583. char *
  1584. output_160 (operands, insn)
  1585.      rtx *operands;
  1586.      rtx insn;
  1587. {
  1588.  
  1589. {
  1590.   if (operands[1] == const1_rtx
  1591.       && GET_CODE (operands[2]) == CONST_INT)
  1592.     {    
  1593.       int width = GET_CODE (operands[0]) == REG ? 31 : 7;
  1594.       return output_btst (operands,
  1595.               gen_rtx (CONST_INT, VOIDmode,
  1596.                    width - INTVAL (operands[2])),
  1597.               operands[0],
  1598.               insn, 1000);
  1599.       /* Pass 1000 as SIGNPOS argument so that btst will
  1600.          not think we are testing the sign bit for an `and'
  1601.      and assume that nonzero implies a negative result.  */
  1602.     }
  1603.   if (INTVAL (operands[1]) != 32)
  1604.     cc_status.flags = CC_NOT_NEGATIVE;
  1605.   return "bftst %0{%b2:%b1}";
  1606. }
  1607. }
  1608.  
  1609. char *
  1610. output_161 (operands, insn)
  1611.      rtx *operands;
  1612.      rtx insn;
  1613. {
  1614.  
  1615. {
  1616.   if (operands[1] == const1_rtx
  1617.       && GET_CODE (operands[2]) == CONST_INT)
  1618.     {    
  1619.       int width = GET_CODE (operands[0]) == REG ? 31 : 7;
  1620.       return output_btst (operands,
  1621.               gen_rtx (CONST_INT, VOIDmode,
  1622.                    width - INTVAL (operands[2])),
  1623.               operands[0],
  1624.               insn, 1000);
  1625.       /* Pass 1000 as SIGNPOS argument so that btst will
  1626.          not think we are testing the sign bit for an `and'
  1627.      and assume that nonzero implies a negative result.  */
  1628.     }
  1629.   if (INTVAL (operands[1]) != 32)
  1630.     cc_status.flags = CC_NOT_NEGATIVE;
  1631.   return "bftst %0{%b2:%b1}";
  1632. }
  1633. }
  1634.  
  1635. char *
  1636. output_162 (operands, insn)
  1637.      rtx *operands;
  1638.      rtx insn;
  1639. {
  1640.  
  1641. {
  1642.   if (operands[1] == const1_rtx
  1643.       && GET_CODE (operands[2]) == CONST_INT)
  1644.     {    
  1645.       int width = GET_CODE (operands[0]) == REG ? 31 : 7;
  1646.       return output_btst (operands,
  1647.               gen_rtx (CONST_INT, VOIDmode,
  1648.                    width - INTVAL (operands[2])),
  1649.               operands[0],
  1650.               insn, 1000);
  1651.       /* Pass 1000 as SIGNPOS argument so that btst will
  1652.          not think we are testing the sign bit for an `and'
  1653.      and assume that nonzero implies a negative result.  */
  1654.     }
  1655.   if (INTVAL (operands[1]) != 32)
  1656.     cc_status.flags = CC_NOT_NEGATIVE;
  1657.   return "bftst %0{%b2:%b1}";
  1658. }
  1659. }
  1660.  
  1661. char *
  1662. output_163 (operands, insn)
  1663.      rtx *operands;
  1664.      rtx insn;
  1665. {
  1666.  
  1667.   cc_status = cc_prev_status;
  1668.   if (cc_status.flags & CC_Z_IN_NOT_N)
  1669.     return "spl %0";
  1670.   OUTPUT_JUMP ("seq %0", "fseq %0", "seq %0");
  1671.  
  1672. }
  1673.  
  1674. char *
  1675. output_164 (operands, insn)
  1676.      rtx *operands;
  1677.      rtx insn;
  1678. {
  1679.  
  1680.   cc_status = cc_prev_status;
  1681.   if (cc_status.flags & CC_Z_IN_NOT_N)
  1682.     return "smi %0";
  1683.   OUTPUT_JUMP ("sne %0", "fsne %0", "sne %0");
  1684.  
  1685. }
  1686.  
  1687. char *
  1688. output_165 (operands, insn)
  1689.      rtx *operands;
  1690.      rtx insn;
  1691. {
  1692.  
  1693.   cc_status = cc_prev_status;
  1694.   OUTPUT_JUMP ("sgt %0", "fsgt %0", "and%.b %#0xc,%!\n\tsgt %0");
  1695.  
  1696. }
  1697.  
  1698. char *
  1699. output_166 (operands, insn)
  1700.      rtx *operands;
  1701.      rtx insn;
  1702. {
  1703.  cc_status = cc_prev_status;
  1704.      return "shi %0"; 
  1705. }
  1706.  
  1707. char *
  1708. output_167 (operands, insn)
  1709.      rtx *operands;
  1710.      rtx insn;
  1711. {
  1712.  cc_status = cc_prev_status;
  1713.      OUTPUT_JUMP ("slt %0", "fslt %0", "smi %0"); 
  1714. }
  1715.  
  1716. char *
  1717. output_168 (operands, insn)
  1718.      rtx *operands;
  1719.      rtx insn;
  1720. {
  1721.  cc_status = cc_prev_status;
  1722.      return "scs %0"; 
  1723. }
  1724.  
  1725. char *
  1726. output_169 (operands, insn)
  1727.      rtx *operands;
  1728.      rtx insn;
  1729. {
  1730.  cc_status = cc_prev_status;
  1731.      OUTPUT_JUMP ("sge %0", "fsge %0", "spl %0"); 
  1732. }
  1733.  
  1734. char *
  1735. output_170 (operands, insn)
  1736.      rtx *operands;
  1737.      rtx insn;
  1738. {
  1739.  cc_status = cc_prev_status;
  1740.      return "scc %0"; 
  1741. }
  1742.  
  1743. char *
  1744. output_171 (operands, insn)
  1745.      rtx *operands;
  1746.      rtx insn;
  1747. {
  1748.  
  1749.   cc_status = cc_prev_status;
  1750.   OUTPUT_JUMP ("sle %0", "fsle %0", "and%.b %#0xc,%!\n\tsle %0");
  1751.  
  1752. }
  1753.  
  1754. char *
  1755. output_172 (operands, insn)
  1756.      rtx *operands;
  1757.      rtx insn;
  1758. {
  1759.  cc_status = cc_prev_status;
  1760.      return "sls %0"; 
  1761. }
  1762.  
  1763. char *
  1764. output_173 (operands, insn)
  1765.      rtx *operands;
  1766.      rtx insn;
  1767. {
  1768.  
  1769. {
  1770.   if (cc_status.flags & CC_Z_IN_NOT_N)
  1771. #ifdef MOTOROLA
  1772.     return "jbpl %l0";
  1773. #else
  1774.     return "jpl %l0";
  1775. #endif
  1776. #ifdef MOTOROLA
  1777.   OUTPUT_JUMP ("jbeq %l0", "fbeq %l0", "jbeq %l0");
  1778. #else
  1779.   OUTPUT_JUMP ("jeq %l0", "fjeq %l0", "jeq %l0");
  1780. #endif
  1781. }
  1782. }
  1783.  
  1784. char *
  1785. output_174 (operands, insn)
  1786.      rtx *operands;
  1787.      rtx insn;
  1788. {
  1789.  
  1790. {
  1791.   if (cc_status.flags & CC_Z_IN_NOT_N)
  1792. #ifdef MOTOROLA
  1793.     return "jbmi %l0";
  1794. #else
  1795.     return "jmi %l0";
  1796. #endif
  1797. #ifdef MOTOROLA
  1798.   OUTPUT_JUMP ("jbne %l0", "fbne %l0", "jbne %l0");
  1799. #else
  1800.   OUTPUT_JUMP ("jne %l0", "fjne %l0", "jne %l0");
  1801. #endif
  1802. }
  1803. }
  1804.  
  1805. char *
  1806. output_175 (operands, insn)
  1807.      rtx *operands;
  1808.      rtx insn;
  1809. {
  1810.  
  1811. #ifdef MOTOROLA
  1812.   OUTPUT_JUMP ("jbgt %l0", "fbgt %l0", "and%.b %#0xc,%!\n\tjbgt %l0");
  1813. #else
  1814.   OUTPUT_JUMP ("jgt %l0", "fjgt %l0", "andb %#0xc,%!\n\tjgt %l0");
  1815. #endif
  1816.  
  1817. }
  1818.  
  1819. char *
  1820. output_176 (operands, insn)
  1821.      rtx *operands;
  1822.      rtx insn;
  1823. {
  1824.  
  1825. #ifdef MOTOROLA
  1826.   return "jbhi %l0";
  1827. #else
  1828.   return "jhi %l0";
  1829. #endif
  1830.  
  1831. }
  1832.  
  1833. char *
  1834. output_177 (operands, insn)
  1835.      rtx *operands;
  1836.      rtx insn;
  1837. {
  1838.  
  1839. #ifdef MOTOROLA
  1840.   OUTPUT_JUMP ("jblt %l0", "fblt %l0", "jbmi %l0");
  1841. #else
  1842.   OUTPUT_JUMP ("jlt %l0", "fjlt %l0", "jmi %l0");
  1843. #endif
  1844.  
  1845. }
  1846.  
  1847. char *
  1848. output_178 (operands, insn)
  1849.      rtx *operands;
  1850.      rtx insn;
  1851. {
  1852.  
  1853. #ifdef MOTOROLA
  1854.   return "jbcs %l0";
  1855. #else
  1856.   return "jcs %l0";
  1857. #endif
  1858.  
  1859. }
  1860.  
  1861. char *
  1862. output_179 (operands, insn)
  1863.      rtx *operands;
  1864.      rtx insn;
  1865. {
  1866.  
  1867. #ifdef MOTOROLA
  1868.   OUTPUT_JUMP ("jbge %l0", "fbge %l0", "jbpl %l0");
  1869. #else
  1870.   OUTPUT_JUMP ("jge %l0", "fjge %l0", "jpl %l0");
  1871. #endif
  1872.  
  1873. }
  1874.  
  1875. char *
  1876. output_180 (operands, insn)
  1877.      rtx *operands;
  1878.      rtx insn;
  1879. {
  1880.  
  1881. #ifdef MOTOROLA
  1882.   return "jbcc %l0";
  1883. #else
  1884.   return "jcc %l0";
  1885. #endif
  1886.  
  1887. }
  1888.  
  1889. char *
  1890. output_181 (operands, insn)
  1891.      rtx *operands;
  1892.      rtx insn;
  1893. {
  1894.  
  1895. #ifdef MOTOROLA
  1896.   OUTPUT_JUMP ("jble %l0", "fble %l0", "and%.b %#0xc,%!\n\tjble %l0");
  1897. #else
  1898.   OUTPUT_JUMP ("jle %l0", "fjle %l0", "and%.b %#0xc,%!\n\tjle %l0");
  1899. #endif
  1900.  
  1901. }
  1902.  
  1903. char *
  1904. output_182 (operands, insn)
  1905.      rtx *operands;
  1906.      rtx insn;
  1907. {
  1908.  
  1909. #ifdef MOTOROLA
  1910.   return "jbls %l0";
  1911. #else
  1912.   return "jls %l0";
  1913. #endif
  1914.  
  1915. }
  1916.  
  1917. char *
  1918. output_183 (operands, insn)
  1919.      rtx *operands;
  1920.      rtx insn;
  1921. {
  1922.  
  1923. {
  1924.   if (cc_status.flags & CC_Z_IN_NOT_N)
  1925. #ifdef MOTOROLA
  1926.     return "jbmi %l0";
  1927. #else
  1928.     return "jmi %l0";
  1929. #endif
  1930. #ifdef MOTOROLA
  1931.   OUTPUT_JUMP ("jbne %l0", "fbne %l0", "jbne %l0");
  1932. #else
  1933.   OUTPUT_JUMP ("jne %l0", "fjne %l0", "jne %l0");
  1934. #endif
  1935. }
  1936. }
  1937.  
  1938. char *
  1939. output_184 (operands, insn)
  1940.      rtx *operands;
  1941.      rtx insn;
  1942. {
  1943.  
  1944. {
  1945.   if (cc_status.flags & CC_Z_IN_NOT_N)
  1946. #ifdef MOTOROLA
  1947.     return "jbpl %l0";
  1948. #else
  1949.     return "jpl %l0";
  1950. #endif
  1951. #ifdef MOTOROLA
  1952.   OUTPUT_JUMP ("jbeq %l0", "fbeq %l0", "jbeq %l0");
  1953. #else
  1954.   OUTPUT_JUMP ("jeq %l0", "fjeq %l0", "jeq %l0");
  1955. #endif
  1956. }
  1957. }
  1958.  
  1959. char *
  1960. output_185 (operands, insn)
  1961.      rtx *operands;
  1962.      rtx insn;
  1963. {
  1964.  
  1965. #ifdef MOTOROLA
  1966.   OUTPUT_JUMP ("jble %l0", "fbngt %l0", "and%.b %#0xc,%!\n\tjble %l0");
  1967. #else
  1968.   OUTPUT_JUMP ("jle %l0", "fjngt %l0", "and%.b %#0xc,%!\n\tjle %l0");
  1969. #endif
  1970.  
  1971. }
  1972.  
  1973. char *
  1974. output_186 (operands, insn)
  1975.      rtx *operands;
  1976.      rtx insn;
  1977. {
  1978.  
  1979. #ifdef MOTOROLA
  1980.   return "jbls %l0";
  1981. #else
  1982.   return "jls %l0";
  1983. #endif
  1984.  
  1985. }
  1986.  
  1987. char *
  1988. output_187 (operands, insn)
  1989.      rtx *operands;
  1990.      rtx insn;
  1991. {
  1992.  
  1993. #ifdef MOTOROLA
  1994.   OUTPUT_JUMP ("jbge %l0", "fbnlt %l0", "jbpl %l0");
  1995. #else
  1996.   OUTPUT_JUMP ("jge %l0", "fjnlt %l0", "jpl %l0");
  1997. #endif
  1998.  
  1999. }
  2000.  
  2001. char *
  2002. output_188 (operands, insn)
  2003.      rtx *operands;
  2004.      rtx insn;
  2005. {
  2006.  
  2007. #ifdef MOTOROLA
  2008.   return "jbcc %l0";
  2009. #else
  2010.   return "jcc %l0";
  2011. #endif
  2012.  
  2013. }
  2014.  
  2015. char *
  2016. output_189 (operands, insn)
  2017.      rtx *operands;
  2018.      rtx insn;
  2019. {
  2020.  
  2021. #ifdef MOTOROLA
  2022.   OUTPUT_JUMP ("jblt %l0", "fbnge %l0", "jbmi %l0");
  2023. #else
  2024.   OUTPUT_JUMP ("jlt %l0", "fjnge %l0", "jmi %l0");
  2025. #endif
  2026.  
  2027. }
  2028.  
  2029. char *
  2030. output_190 (operands, insn)
  2031.      rtx *operands;
  2032.      rtx insn;
  2033. {
  2034.  
  2035. #ifdef MOTOROLA
  2036.   return "jbcs %l0";
  2037. #else
  2038.   return "jcs %l0";
  2039. #endif
  2040.  
  2041. }
  2042.  
  2043. char *
  2044. output_191 (operands, insn)
  2045.      rtx *operands;
  2046.      rtx insn;
  2047. {
  2048.  
  2049. #ifdef MOTOROLA
  2050.   OUTPUT_JUMP ("jbgt %l0", "fbnle %l0", "and%.b %#0xc,%!\n\tjbgt %l0");
  2051. #else
  2052.   OUTPUT_JUMP ("jgt %l0", "fjnle %l0", "and%.b %#0xc,%!\n\tjgt %l0");
  2053. #endif
  2054.  
  2055. }
  2056.  
  2057. char *
  2058. output_192 (operands, insn)
  2059.      rtx *operands;
  2060.      rtx insn;
  2061. {
  2062.  
  2063. #ifdef MOTOROLA
  2064.   return "jbhi %l0";
  2065. #else
  2066.   return "jhi %l0";
  2067. #endif
  2068.  
  2069. }
  2070.  
  2071. char *
  2072. output_196 (operands, insn)
  2073.      rtx *operands;
  2074.      rtx insn;
  2075. {
  2076.  
  2077. #ifdef SGS
  2078. #ifdef ASM_OUTPUT_CASE_LABEL
  2079.   return "jmp 6(%%pc,%0.w)";
  2080. #else
  2081.   return "jmp 2(%%pc,%0.w)";
  2082. #endif
  2083. #else
  2084. #ifdef MOTOROLA
  2085.   return "jmp (2,pc,%0.w)";
  2086. #else
  2087.   return "jmp pc@(2,%0:w)";
  2088. #endif
  2089. #endif
  2090.  
  2091. }
  2092.  
  2093. char *
  2094. output_197 (operands, insn)
  2095.      rtx *operands;
  2096.      rtx insn;
  2097. {
  2098.  
  2099. #ifdef MOTOROLA
  2100.   return "jbra %l0";
  2101. #else
  2102.   return "jra %l0";
  2103. #endif
  2104.  
  2105. }
  2106.  
  2107. char *
  2108. output_198 (operands, insn)
  2109.      rtx *operands;
  2110.      rtx insn;
  2111. {
  2112.  
  2113. {
  2114.   if (DATA_REG_P (operands[0]))
  2115.     return "dbra %0,%l1";
  2116.   if (GET_CODE (operands[0]) == MEM)
  2117.     {
  2118. #ifdef MOTOROLA
  2119.       return "subq%.w %#1,%0\n\tjbcc %l1";
  2120. #else
  2121.       return "subqw %#1,%0\n\tjcc %l1";
  2122. #endif
  2123.     }
  2124. #ifdef MOTOROLA
  2125. #ifdef HPUX_ASM
  2126.   return "subq%.w %#1,%0\n\tcmp%.w %0,%#-1\n\tjbne %l1";
  2127. #else
  2128.   return "subq%.w %#1,%0\n\tcmp%.w %#-1,%0\n\tjbne %l1";
  2129. #endif
  2130. #else
  2131.   return "subqw %#1,%0\n\tcmpw %#-1,%0\n\tjne %l1";
  2132. #endif
  2133. }
  2134. }
  2135.  
  2136. char *
  2137. output_199 (operands, insn)
  2138.      rtx *operands;
  2139.      rtx insn;
  2140. {
  2141.  
  2142. {
  2143. #ifdef MOTOROLA
  2144.   if (DATA_REG_P (operands[0]))
  2145.     return "dbra %0,%l1\n\tclr.w %0\n\tsubq.l %#1,%0\n\tjbcc %l1";
  2146.   if (GET_CODE (operands[0]) == MEM)
  2147.     return "subq.l %#1,%0\n\tjbcc %l1";
  2148. #ifdef HPUX_ASM
  2149.   return "subq.l %#1,%0\n\tcmp.l %0,%#-1\n\tjbne %l1";
  2150. #else
  2151.   return "subq.l %#1,%0\n\tcmp.l %#-1,%0\n\tjbne %l1";
  2152. #endif
  2153. #else
  2154.   if (DATA_REG_P (operands[0]))
  2155.     return "dbra %0,%l1\n\tclrw %0\n\tsubql %#1,%0\n\tjcc %l1";
  2156.   if (GET_CODE (operands[0]) == MEM)
  2157.     return "subql %#1,%0\n\tjcc %l1";
  2158.   return "subql %#1,%0\n\tcmpl %#-1,%0\n\tjne %l1";
  2159. #endif
  2160. }
  2161. }
  2162.  
  2163. char *
  2164. output_200 (operands, insn)
  2165.      rtx *operands;
  2166.      rtx insn;
  2167. {
  2168.  
  2169. #ifdef MOTOROLA
  2170.   return "jsr %0";
  2171. #else
  2172.   return "jbsr %0";
  2173. #endif
  2174.  
  2175. }
  2176.  
  2177. char *
  2178. output_201 (operands, insn)
  2179.      rtx *operands;
  2180.      rtx insn;
  2181. {
  2182.  
  2183. #ifdef MOTOROLA
  2184.   return "jsr %1";
  2185. #else
  2186.   return "jbsr %1";
  2187. #endif
  2188.  
  2189. }
  2190.  
  2191. char *
  2192. output_203 (operands, insn)
  2193.      rtx *operands;
  2194.      rtx insn;
  2195. {
  2196.  
  2197. {
  2198.   rtx xoperands[2];
  2199.   xoperands[1] = gen_rtx (REG, SImode, REGNO (operands[1]) + 1);
  2200.   output_asm_insn ("move%.l %1,%s", xoperands);
  2201.   output_asm_insn ("move%.l %1,%-", operands);
  2202.   return "fmove%.d %+,%0";
  2203. }
  2204.  
  2205. }
  2206.  
  2207. char *insn_template[] =
  2208.   {
  2209.     0,
  2210.     0,
  2211.     0,
  2212.     0,
  2213.     "tst%.b %0",
  2214.     0,
  2215.     0,
  2216.     0,
  2217.     0,
  2218.     0,
  2219.     0,
  2220.     0,
  2221.     0,
  2222.     0,
  2223.     0,
  2224.     0,
  2225.     0,
  2226.     0,
  2227.     0,
  2228.     0,
  2229.     0,
  2230.     0,
  2231.     "exg %1,%0",
  2232.     0,
  2233.     "pea %a1",
  2234.     0,
  2235.     0,
  2236.     0,
  2237.     0,
  2238.     0,
  2239.     0,
  2240.     0,
  2241.     0,
  2242.     "pea %a1",
  2243.     "lea %a1,%0",
  2244.     0,
  2245.     0,
  2246.     0,
  2247.     0,
  2248.     0,
  2249.     0,
  2250.     0,
  2251.     "ext%.w %0",
  2252.     "extb%.l %0",
  2253.     0,
  2254.     "fmove%.s %f1,%0",
  2255.     "fmove%.l %1,%0",
  2256.     "fmove%.l %1,%0",
  2257.     "fmove%.w %1,%0",
  2258.     "fmove%.w %1,%0",
  2259.     "fmove%.b %1,%0",
  2260.     "fmove%.b %1,%0",
  2261.     0,
  2262.     0,
  2263.     "fmove%.b %1,%0",
  2264.     "fmove%.w %1,%0",
  2265.     "fmove%.l %1,%0",
  2266.     "fmove%.b %1,%0",
  2267.     "fmove%.w %1,%0",
  2268.     "fmove%.l %1,%0",
  2269.     0,
  2270.     "add%.w %2,%0",
  2271.     0,
  2272.     "add%.w %1,%0",
  2273.     0,
  2274.     "add%.b %1,%0",
  2275.     0,
  2276.     0,
  2277.     0,
  2278.     "sub%.w %2,%0",
  2279.     "sub%.w %2,%0",
  2280.     "sub%.w %1,%0",
  2281.     "sub%.b %2,%0",
  2282.     "sub%.b %1,%0",
  2283.     0,
  2284.     0,
  2285.     0,
  2286.     0,
  2287.     "muls%.l %2,%0",
  2288.     0,
  2289.     0,
  2290.     "mulu%.l %2,%0",
  2291.     0,
  2292.     0,
  2293.     0,
  2294.     0,
  2295.     "divs%.l %2,%0",
  2296.     0,
  2297.     0,
  2298.     "divu%.l %2,%0",
  2299.     0,
  2300.     0,
  2301.     0,
  2302.     0,
  2303.     0,
  2304.     0,
  2305.     "divsl%.l %2,%3:%0",
  2306.     "divul%.l %2,%3:%0",
  2307.     0,
  2308.     "and%.w %2,%0",
  2309.     "and%.b %2,%0",
  2310.     "and%.w %1,%0",
  2311.     "and%.b %1,%0",
  2312.     0,
  2313.     "or%.w %2,%0",
  2314.     "or%.b %2,%0",
  2315.     0,
  2316.     "eor%.w %2,%0",
  2317.     "eor%.b %2,%0",
  2318.     "neg%.l %0",
  2319.     "neg%.w %0",
  2320.     "neg%.b %0",
  2321.     0,
  2322.     0,
  2323.     0,
  2324.     0,
  2325.     "not%.l %0",
  2326.     "not%.w %0",
  2327.     "not%.b %0",
  2328.     0,
  2329.     0,
  2330.     0,
  2331.     0,
  2332.     0,
  2333.     0,
  2334.     "asl%.l %2,%0",
  2335.     "asl%.w %2,%0",
  2336.     "asl%.b %2,%0",
  2337.     "asr%.l %2,%0",
  2338.     "asr%.w %2,%0",
  2339.     "asr%.b %2,%0",
  2340.     "lsl%.l %2,%0",
  2341.     "lsl%.w %2,%0",
  2342.     "lsl%.b %2,%0",
  2343.     "lsr%.l %2,%0",
  2344.     "lsr%.w %2,%0",
  2345.     "lsr%.b %2,%0",
  2346.     "rol%.l %2,%0",
  2347.     "rol%.w %2,%0",
  2348.     "rol%.b %2,%0",
  2349.     "ror%.l %2,%0",
  2350.     "ror%.w %2,%0",
  2351.     "ror%.b %2,%0",
  2352.     0,
  2353.     0,
  2354.     0,
  2355.     "bfexts %1{%b3:%b2},%0",
  2356.     "bfextu %1{%b3:%b2},%0",
  2357.     "bfchg %0{%b2:%b1}",
  2358.     "bfclr %0{%b2:%b1}",
  2359.     "bfset %0{%b2:%b1}",
  2360.     "bfins %3,%0{%b2:%b1}",
  2361.     "bfexts %1{%b3:%b2},%0",
  2362.     "bfextu %1{%b3:%b2},%0",
  2363.     "bfclr %0{%b2:%b1}",
  2364.     "bfset %0{%b2:%b1}",
  2365.     0,
  2366.     0,
  2367.     0,
  2368.     0,
  2369.     0,
  2370.     0,
  2371.     0,
  2372.     0,
  2373.     0,
  2374.     0,
  2375.     0,
  2376.     0,
  2377.     0,
  2378.     0,
  2379.     0,
  2380.     0,
  2381.     0,
  2382.     0,
  2383.     0,
  2384.     0,
  2385.     0,
  2386.     0,
  2387.     0,
  2388.     0,
  2389.     0,
  2390.     0,
  2391.     0,
  2392.     0,
  2393.     0,
  2394.     0,
  2395.     0,
  2396.     0,
  2397.     0,
  2398.     0,
  2399.     0,
  2400.     0,
  2401.     0,
  2402.     0,
  2403.     0,
  2404.     0,
  2405.     0,
  2406.     0,
  2407.     0,
  2408.     0,
  2409.     0,
  2410.     0,
  2411.     "rts",
  2412.     0,
  2413.   };
  2414.  
  2415. char *(*insn_outfun[])() =
  2416.   {
  2417.     output_0,    output_1,    output_2,    output_3,    0,
  2418.     output_5,    output_6,    output_7,    output_8,    output_9,    output_10,    output_11,    output_12,    output_13,    output_14,    output_15,    output_16,    output_17,    output_18,    output_19,    output_20,    output_21,    0,
  2419.     output_23,    0,
  2420.     output_25,    output_26,    output_27,    output_28,    output_29,    output_30,    output_31,    output_32,    0,
  2421.     0,
  2422.     output_35,    output_36,    output_37,    0,
  2423.     0,
  2424.     0,
  2425.     output_41,    0,
  2426.     0,
  2427.     output_44,    0,
  2428.     0,
  2429.     0,
  2430.     0,
  2431.     0,
  2432.     0,
  2433.     0,
  2434.     output_52,    output_53,    0,
  2435.     0,
  2436.     0,
  2437.     0,
  2438.     0,
  2439.     0,
  2440.     output_60,    0,
  2441.     output_62,    0,
  2442.     output_64,    0,
  2443.     output_66,    output_67,    output_68,    0,
  2444.     0,
  2445.     0,
  2446.     0,
  2447.     0,
  2448.     output_74,    output_75,    output_76,    output_77,    0,
  2449.     output_79,    output_80,    0,
  2450.     output_82,    output_83,    output_84,    output_85,    0,
  2451.     output_87,    output_88,    0,
  2452.     output_90,    output_91,    output_92,    output_93,    output_94,    output_95,    0,
  2453.     0,
  2454.     output_98,    0,
  2455.     0,
  2456.     0,
  2457.     0,
  2458.     output_103,    0,
  2459.     0,
  2460.     output_106,    0,
  2461.     0,
  2462.     0,
  2463.     0,
  2464.     0,
  2465.     output_112,    output_113,    output_114,    output_115,    0,
  2466.     0,
  2467.     0,
  2468.     output_119,    output_120,    output_121,    output_122,    output_123,    output_124,    0,
  2469.     0,
  2470.     0,
  2471.     0,
  2472.     0,
  2473.     0,
  2474.     0,
  2475.     0,
  2476.     0,
  2477.     0,
  2478.     0,
  2479.     0,
  2480.     0,
  2481.     0,
  2482.     0,
  2483.     0,
  2484.     0,
  2485.     0,
  2486.     output_143,    output_144,    output_145,    0,
  2487.     0,
  2488.     0,
  2489.     0,
  2490.     0,
  2491.     0,
  2492.     0,
  2493.     0,
  2494.     0,
  2495.     0,
  2496.     output_156,    output_157,    output_158,    output_159,    output_160,    output_161,    output_162,    output_163,    output_164,    output_165,    output_166,    output_167,    output_168,    output_169,    output_170,    output_171,    output_172,
  2497.     output_173,    output_174,    output_175,    output_176,    output_177,    output_178,    output_179,    output_180,    output_181,    output_182,    output_183,    output_184,    output_185,    output_186,    output_187,    output_188,    output_189,
  2498.     output_190,    output_191,    output_192,    0,
  2499.     0,
  2500.     0,
  2501.     output_196,    output_197,    output_198,    output_199,    output_200,    output_201,    0,
  2502.     output_203,  };
  2503.  
  2504. rtx (*insn_gen_function[]) () =
  2505.   {
  2506.     0,
  2507.     0,
  2508.     gen_tstsi,
  2509.     gen_tsthi,
  2510.     gen_tstqi,
  2511.     gen_tstsf,
  2512.     gen_tstdf,
  2513.     gen_cmpsi,
  2514.     gen_cmphi,
  2515.     0,
  2516.     gen_cmpqi,
  2517.     gen_cmpdf,
  2518.     gen_cmpsf,
  2519.     0,
  2520.     0,
  2521.     0,
  2522.     0,
  2523.     0,
  2524.     0,
  2525.     0,
  2526.     0,
  2527.     0,
  2528.     gen_swapsi,
  2529.     0,
  2530.     0,
  2531.     gen_movsi,
  2532.     gen_movhi,
  2533.     gen_movstricthi,
  2534.     gen_movqi,
  2535.     gen_movstrictqi,
  2536.     gen_movsf,
  2537.     gen_movdf,
  2538.     gen_movdi,
  2539.     gen_pushasi,
  2540.     0,
  2541.     gen_truncsiqi2,
  2542.     gen_trunchiqi2,
  2543.     gen_truncsihi2,
  2544.     gen_zero_extendhisi2,
  2545.     gen_zero_extendqihi2,
  2546.     gen_zero_extendqisi2,
  2547.     gen_extendhisi2,
  2548.     gen_extendqihi2,
  2549.     gen_extendqisi2,
  2550.     gen_extendsfdf2,
  2551.     gen_truncdfsf2,
  2552.     gen_floatsisf2,
  2553.     gen_floatsidf2,
  2554.     gen_floathisf2,
  2555.     gen_floathidf2,
  2556.     gen_floatqisf2,
  2557.     gen_floatqidf2,
  2558.     gen_ftruncdf2,
  2559.     gen_ftruncsf2,
  2560.     gen_fixsfqi2,
  2561.     gen_fixsfhi2,
  2562.     gen_fixsfsi2,
  2563.     gen_fixdfqi2,
  2564.     gen_fixdfhi2,
  2565.     gen_fixdfsi2,
  2566.     gen_addsi3,
  2567.     0,
  2568.     gen_addhi3,
  2569.     0,
  2570.     gen_addqi3,
  2571.     0,
  2572.     gen_adddf3,
  2573.     gen_addsf3,
  2574.     gen_subsi3,
  2575.     0,
  2576.     gen_subhi3,
  2577.     0,
  2578.     gen_subqi3,
  2579.     0,
  2580.     gen_subdf3,
  2581.     gen_subsf3,
  2582.     gen_mulhi3,
  2583.     gen_mulhisi3,
  2584.     gen_mulsi3,
  2585.     gen_umulhi3,
  2586.     gen_umulhisi3,
  2587.     gen_umulsi3,
  2588.     gen_muldf3,
  2589.     gen_mulsf3,
  2590.     gen_divhi3,
  2591.     gen_divhisi3,
  2592.     gen_divsi3,
  2593.     gen_udivhi3,
  2594.     gen_udivhisi3,
  2595.     gen_udivsi3,
  2596.     gen_divdf3,
  2597.     gen_divsf3,
  2598.     gen_modhi3,
  2599.     gen_modhisi3,
  2600.     gen_umodhi3,
  2601.     gen_umodhisi3,
  2602.     gen_divmodsi4,
  2603.     gen_udivmodsi4,
  2604.     gen_andsi3,
  2605.     gen_andhi3,
  2606.     gen_andqi3,
  2607.     0,
  2608.     0,
  2609.     gen_iorsi3,
  2610.     gen_iorhi3,
  2611.     gen_iorqi3,
  2612.     gen_xorsi3,
  2613.     gen_xorhi3,
  2614.     gen_xorqi3,
  2615.     gen_negsi2,
  2616.     gen_neghi2,
  2617.     gen_negqi2,
  2618.     gen_negsf2,
  2619.     gen_negdf2,
  2620.     gen_abssf2,
  2621.     gen_absdf2,
  2622.     gen_one_cmplsi2,
  2623.     gen_one_cmplhi2,
  2624.     gen_one_cmplqi2,
  2625.     0,
  2626.     0,
  2627.     0,
  2628.     0,
  2629.     0,
  2630.     0,
  2631.     gen_ashlsi3,
  2632.     gen_ashlhi3,
  2633.     gen_ashlqi3,
  2634.     gen_ashrsi3,
  2635.     gen_ashrhi3,
  2636.     gen_ashrqi3,
  2637.     gen_lshlsi3,
  2638.     gen_lshlhi3,
  2639.     gen_lshlqi3,
  2640.     gen_lshrsi3,
  2641.     gen_lshrhi3,
  2642.     gen_lshrqi3,
  2643.     gen_rotlsi3,
  2644.     gen_rotlhi3,
  2645.     gen_rotlqi3,
  2646.     gen_rotrsi3,
  2647.     gen_rotrhi3,
  2648.     gen_rotrqi3,
  2649.     0,
  2650.     0,
  2651.     0,
  2652.     gen_extv,
  2653.     gen_extzv,
  2654.     0,
  2655.     0,
  2656.     0,
  2657.     gen_insv,
  2658.     0,
  2659.     0,
  2660.     0,
  2661.     0,
  2662.     0,
  2663.     0,
  2664.     0,
  2665.     0,
  2666.     0,
  2667.     0,
  2668.     0,
  2669.     gen_seq,
  2670.     gen_sne,
  2671.     gen_sgt,
  2672.     gen_sgtu,
  2673.     gen_slt,
  2674.     gen_sltu,
  2675.     gen_sge,
  2676.     gen_sgeu,
  2677.     gen_sle,
  2678.     gen_sleu,
  2679.     gen_beq,
  2680.     gen_bne,
  2681.     gen_bgt,
  2682.     gen_bgtu,
  2683.     gen_blt,
  2684.     gen_bltu,
  2685.     gen_bge,
  2686.     gen_bgeu,
  2687.     gen_ble,
  2688.     gen_bleu,
  2689.     0,
  2690.     0,
  2691.     0,
  2692.     0,
  2693.     0,
  2694.     0,
  2695.     0,
  2696.     0,
  2697.     0,
  2698.     0,
  2699.     gen_casesi_1,
  2700.     gen_casesi_2,
  2701.     gen_casesi,
  2702.     0,
  2703.     gen_jump,
  2704.     0,
  2705.     0,
  2706.     gen_call,
  2707.     gen_call_value,
  2708.     gen_return,
  2709.     0,
  2710.   };
  2711.  
  2712. int insn_n_operands[] =
  2713.   {
  2714.     2,
  2715.     2,
  2716.     1,
  2717.     1,
  2718.     1,
  2719.     1,
  2720.     1,
  2721.     2,
  2722.     2,
  2723.     2,
  2724.     2,
  2725.     2,
  2726.     2,
  2727.     2,
  2728.     2,
  2729.     2,
  2730.     2,
  2731.     2,
  2732.     2,
  2733.     2,
  2734.     1,
  2735.     2,
  2736.     2,
  2737.     1,
  2738.     2,
  2739.     2,
  2740.     2,
  2741.     2,
  2742.     2,
  2743.     2,
  2744.     2,
  2745.     2,
  2746.     2,
  2747.     2,
  2748.     2,
  2749.     2,
  2750.     2,
  2751.     2,
  2752.     2,
  2753.     2,
  2754.     2,
  2755.     2,
  2756.     2,
  2757.     2,
  2758.     2,
  2759.     2,
  2760.     2,
  2761.     2,
  2762.     2,
  2763.     2,
  2764.     2,
  2765.     2,
  2766.     2,
  2767.     2,
  2768.     2,
  2769.     2,
  2770.     2,
  2771.     2,
  2772.     2,
  2773.     2,
  2774.     3,
  2775.     3,
  2776.     3,
  2777.     2,
  2778.     3,
  2779.     2,
  2780.     3,
  2781.     3,
  2782.     3,
  2783.     3,
  2784.     3,
  2785.     2,
  2786.     3,
  2787.     2,
  2788.     3,
  2789.     3,
  2790.     3,
  2791.     3,
  2792.     3,
  2793.     3,
  2794.     3,
  2795.     3,
  2796.     3,
  2797.     3,
  2798.     3,
  2799.     3,
  2800.     3,
  2801.     3,
  2802.     3,
  2803.     3,
  2804.     3,
  2805.     3,
  2806.     3,
  2807.     3,
  2808.     3,
  2809.     3,
  2810.     4,
  2811.     4,
  2812.     3,
  2813.     3,
  2814.     3,
  2815.     3,
  2816.     3,
  2817.     3,
  2818.     3,
  2819.     3,
  2820.     3,
  2821.     3,
  2822.     3,
  2823.     2,
  2824.     2,
  2825.     2,
  2826.     2,
  2827.     2,
  2828.     2,
  2829.     2,
  2830.     2,
  2831.     2,
  2832.     2,
  2833.     2,
  2834.     2,
  2835.     2,
  2836.     2,
  2837.     2,
  2838.     2,
  2839.     3,
  2840.     3,
  2841.     3,
  2842.     3,
  2843.     3,
  2844.     3,
  2845.     3,
  2846.     3,
  2847.     3,
  2848.     3,
  2849.     3,
  2850.     3,
  2851.     3,
  2852.     3,
  2853.     3,
  2854.     3,
  2855.     3,
  2856.     3,
  2857.     4,
  2858.     4,
  2859.     4,
  2860.     4,
  2861.     4,
  2862.     4,
  2863.     3,
  2864.     3,
  2865.     4,
  2866.     4,
  2867.     4,
  2868.     3,
  2869.     3,
  2870.     4,
  2871.     3,
  2872.     3,
  2873.     3,
  2874.     3,
  2875.     3,
  2876.     3,
  2877.     1,
  2878.     1,
  2879.     1,
  2880.     1,
  2881.     1,
  2882.     1,
  2883.     1,
  2884.     1,
  2885.     1,
  2886.     1,
  2887.     0,
  2888.     0,
  2889.     0,
  2890.     0,
  2891.     0,
  2892.     0,
  2893.     0,
  2894.     0,
  2895.     0,
  2896.     0,
  2897.     0,
  2898.     0,
  2899.     0,
  2900.     0,
  2901.     0,
  2902.     0,
  2903.     0,
  2904.     0,
  2905.     0,
  2906.     0,
  2907.     4,
  2908.     2,
  2909.     5,
  2910.     1,
  2911.     0,
  2912.     1,
  2913.     1,
  2914.     2,
  2915.     3,
  2916.     0,
  2917.     2,
  2918.   };
  2919.  
  2920. int insn_n_dups[] =
  2921.   {
  2922.     0,
  2923.     0,
  2924.     0,
  2925.     0,
  2926.     0,
  2927.     0,
  2928.     0,
  2929.     0,
  2930.     0,
  2931.     0,
  2932.     0,
  2933.     0,
  2934.     0,
  2935.     0,
  2936.     0,
  2937.     0,
  2938.     0,
  2939.     0,
  2940.     0,
  2941.     0,
  2942.     0,
  2943.     0,
  2944.     2,
  2945.     0,
  2946.     0,
  2947.     0,
  2948.     0,
  2949.     0,
  2950.     0,
  2951.     0,
  2952.     0,
  2953.     0,
  2954.     0,
  2955.     0,
  2956.     0,
  2957.     0,
  2958.     0,
  2959.     0,
  2960.     0,
  2961.     0,
  2962.     0,
  2963.     0,
  2964.     0,
  2965.     0,
  2966.     0,
  2967.     0,
  2968.     0,
  2969.     0,
  2970.     0,
  2971.     0,
  2972.     0,
  2973.     0,
  2974.     0,
  2975.     0,
  2976.     0,
  2977.     0,
  2978.     0,
  2979.     0,
  2980.     0,
  2981.     0,
  2982.     0,
  2983.     0,
  2984.     0,
  2985.     1,
  2986.     0,
  2987.     1,
  2988.     0,
  2989.     0,
  2990.     0,
  2991.     0,
  2992.     0,
  2993.     1,
  2994.     0,
  2995.     1,
  2996.     0,
  2997.     0,
  2998.     0,
  2999.     0,
  3000.     0,
  3001.     0,
  3002.     0,
  3003.     0,
  3004.     0,
  3005.     0,
  3006.     0,
  3007.     0,
  3008.     0,
  3009.     0,
  3010.     0,
  3011.     0,
  3012.     0,
  3013.     0,
  3014.     0,
  3015.     0,
  3016.     0,
  3017.     0,
  3018.     2,
  3019.     2,
  3020.     0,
  3021.     0,
  3022.     0,
  3023.     0,
  3024.     0,
  3025.     0,
  3026.     0,
  3027.     0,
  3028.     0,
  3029.     0,
  3030.     0,
  3031.     0,
  3032.     0,
  3033.     0,
  3034.     0,
  3035.     0,
  3036.     0,
  3037.     0,
  3038.     0,
  3039.     0,
  3040.     0,
  3041.     0,
  3042.     0,
  3043.     0,
  3044.     0,
  3045.     0,
  3046.     0,
  3047.     0,
  3048.     0,
  3049.     0,
  3050.     0,
  3051.     0,
  3052.     0,
  3053.     0,
  3054.     0,
  3055.     0,
  3056.     0,
  3057.     0,
  3058.     0,
  3059.     0,
  3060.     0,
  3061.     0,
  3062.     0,
  3063.     0,
  3064.     0,
  3065.     0,
  3066.     0,
  3067.     0,
  3068.     0,
  3069.     0,
  3070.     3,
  3071.     0,
  3072.     0,
  3073.     0,
  3074.     0,
  3075.     0,
  3076.     0,
  3077.     0,
  3078.     0,
  3079.     0,
  3080.     0,
  3081.     0,
  3082.     0,
  3083.     0,
  3084.     0,
  3085.     0,
  3086.     0,
  3087.     0,
  3088.     0,
  3089.     0,
  3090.     0,
  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.     0,
  3110.     0,
  3111.     0,
  3112.     0,
  3113.     0,
  3114.     0,
  3115.     0,
  3116.     0,
  3117.     0,
  3118.     0,
  3119.     0,
  3120.     2,
  3121.     2,
  3122.     0,
  3123.     0,
  3124.     0,
  3125.     0,
  3126.   };
  3127.  
  3128. char *insn_operand_constraint[][MAX_RECOG_OPERANDS] =
  3129.   {
  3130.     { "=m", "ro<>fF", },
  3131.     { "=m", "ro<>", },
  3132.     { "rm", },
  3133.     { "rm", },
  3134.     { "dm", },
  3135.     { "fdm", },
  3136.     { "fm", },
  3137.     { "rKs,mr", "mr,Ksr", },
  3138.     { "rn,mr", "mr,nr", },
  3139.     { "+a", "+a", },
  3140.     { "dn,md", "dm,nd", },
  3141.     { "f,mG", "fmG,f", },
  3142.     { "f,mdG", "fmdG,f", },
  3143.     { "do", "di", },
  3144.     { "d", "di", },
  3145.     { "do", "d", },
  3146.     { "d", "d", },
  3147.     { "o,d", "i,i", },
  3148.     { "o,d", "i,i", },
  3149.     { "do", "i", },
  3150.     { "dm", },
  3151.     { "dm", "i", },
  3152.     { "r", "r", },
  3153.     { "=g", },
  3154.     { "=m", "J", },
  3155.     { "=g,da", "damKs,i", },
  3156.     { "=g", "g", },
  3157.     { "+dm", "rmn", },
  3158.     { "=d,a,m", "g,d,dmi", },
  3159.     { "+dm", "dmn", },
  3160.     { "=rmf", "rmfF", },
  3161.     { "=rm,&rf,&rof<>", "rf,m,rofF<>", },
  3162.     { "=rm,&rf,&ro<>,!&rm,!&f", "r,m,roi<>,fF,rfF", },
  3163.     { "=m", "p", },
  3164.     { "=a", "p", },
  3165.     { "=dm,d", "doJ,i", },
  3166.     { "=dm,d", "doJ,i", },
  3167.     { "=dm,d", "roJ,i", },
  3168.     { "", "", },
  3169.     { "", "", },
  3170.     { "", "", },
  3171.     { "=*d,a", "0,rmn", },
  3172.     { "=d", "0", },
  3173.     { "=d", "0", },
  3174.     { "=*fdm,f", "f,dmF", },
  3175.     { "=dm", "f", },
  3176.     { "=f", "dmi", },
  3177.     { "=f", "dmi", },
  3178.     { "=f", "dmn", },
  3179.     { "=f", "dmn", },
  3180.     { "=f", "dmn", },
  3181.     { "=f", "dmn", },
  3182.     { "=f", "fFm", },
  3183.     { "=f", "dfFm", },
  3184.     { "=dm", "f", },
  3185.     { "=dm", "f", },
  3186.     { "=dm", "f", },
  3187.     { "=dm", "f", },
  3188.     { "=dm", "f", },
  3189.     { "=dm", "f", },
  3190.     { "=m,r,!a", "%0,0,a", "dIKLs,mrIKLs,rJK", },
  3191.     { "=a", "0", "rmn", },
  3192.     { "=m,r", "%0,0", "dn,rmn", },
  3193.     { "+m,d", "dn,rmn", },
  3194.     { "=m,d", "%0,0", "dn,dmn", },
  3195.     { "+m,d", "dn,dmn", },
  3196.     { "=f", "%0", "fmG", },
  3197.     { "=f", "%0", "fdmF", },
  3198.     { "=m,r,!a,?d", "0,0,a,mrIKs", "dIKs,mrIKs,J,0", },
  3199.     { "=a", "0", "rmn", },
  3200.     { "=m,r", "0,0", "dn,rmn", },
  3201.     { "+m,d", "dn,rmn", },
  3202.     { "=m,d", "0,0", "dn,dmn", },
  3203.     { "+m,d", "dn,dmn", },
  3204.     { "=f", "0", "fmG", },
  3205.     { "=f", "0", "fdmF", },
  3206.     { "=d", "%0", "dmn", },
  3207.     { "=d", "%0", "dmn", },
  3208.     { "=d", "%0", "dmsK", },
  3209.     { "=d", "%0", "dmn", },
  3210.     { "=d", "%0", "dmn", },
  3211.     { "=d", "%0", "dmsK", },
  3212.     { "=f", "%0", "fmG", },
  3213.     { "=f", "%0", "fdmF", },
  3214.     { "=d", "0", "dmn", },
  3215.     { "=d", "0", "dmn", },
  3216.     { "=d", "0", "dmsK", },
  3217.     { "=d", "0", "dmn", },
  3218.     { "=d", "0", "dmn", },
  3219.     { "=d", "0", "dmsK", },
  3220.     { "=f", "0", "fmG", },
  3221.     { "=f", "0", "fdmF", },
  3222.     { "=d", "0", "dmn", },
  3223.     { "=d", "0", "dmn", },
  3224.     { "=d", "0", "dmn", },
  3225.     { "=d", "0", "dmn", },
  3226.     { "=d", "0", "dmsK", "=d", },
  3227.     { "=d", "0", "dmsK", "=d", },
  3228.     { "=m,d", "%0,0", "dKs,dmKs", },
  3229.     { "=m,d", "%0,0", "dn,dmn", },
  3230.     { "=m,d", "%0,0", "dn,dmn", },
  3231.     { "=d", "dm", "0", },
  3232.     { "=d", "dm", "0", },
  3233.     { "=m,d", "%0,0", "dKs,dmKs", },
  3234.     { "=m,d", "%0,0", "dn,dmn", },
  3235.     { "=m,d", "%0,0", "dn,dmn", },
  3236.     { "=do,m", "%0,0", "di,dKs", },
  3237.     { "=dm", "%0", "dn", },
  3238.     { "=dm", "%0", "dn", },
  3239.     { "=dm", "0", },
  3240.     { "=dm", "0", },
  3241.     { "=dm", "0", },
  3242.     { "=f", "fdmF", },
  3243.     { "=f", "fmF", },
  3244.     { "=f", "fdmF", },
  3245.     { "=f", "fmF", },
  3246.     { "=dm", "0", },
  3247.     { "=dm", "0", },
  3248.     { "=dm", "0", },
  3249.     { "=d", "m", },
  3250.     { "=d", "m", },
  3251.     { "i", "m", },
  3252.     { "m", "i", },
  3253.     { "i", "m", },
  3254.     { "m", "i", },
  3255.     { "=d", "0", "dI", },
  3256.     { "=d", "0", "dI", },
  3257.     { "=d", "0", "dI", },
  3258.     { "=d", "0", "dI", },
  3259.     { "=d", "0", "dI", },
  3260.     { "=d", "0", "dI", },
  3261.     { "=d", "0", "dI", },
  3262.     { "=d", "0", "dI", },
  3263.     { "=d", "0", "dI", },
  3264.     { "=d", "0", "dI", },
  3265.     { "=d", "0", "dI", },
  3266.     { "=d", "0", "dI", },
  3267.     { "=d", "0", "dI", },
  3268.     { "=d", "0", "dI", },
  3269.     { "=d", "0", "dI", },
  3270.     { "=d", "0", "dI", },
  3271.     { "=d", "0", "dI", },
  3272.     { "=d", "0", "dI", },
  3273.     { "+do", "i", "i", "d", },
  3274.     { "=&d", "do", "i", "i", },
  3275.     { "=d", "do", "i", "i", },
  3276.     { "=d,d", "o,d", "di,di", "di,di", },
  3277.     { "=d,d", "o,d", "di,di", "di,di", },
  3278.     { "+o,d", "di,di", "di,di", "i", },
  3279.     { "+o,d", "di,di", "di,di", },
  3280.     { "+o,d", "di,di", "di,di", },
  3281.     { "+o,d", "di,di", "di,di", "d", },
  3282.     { "=d", "d", "di", "di", },
  3283.     { "=d", "d", "di", "di", },
  3284.     { "+d", "di", "di", },
  3285.     { "+d", "di", "di", },
  3286.     { "+d", "di", "di", "d", },
  3287.     { "o", "di", "di", },
  3288.     { "o", "di", "di", },
  3289.     { "o", "di", "di", },
  3290.     { "d", "di", "di", },
  3291.     { "d", "di", "di", },
  3292.     { "d", "di", "di", },
  3293.     { "=d", },
  3294.     { "=d", },
  3295.     { "=d", },
  3296.     { "=d", },
  3297.     { "=d", },
  3298.     { "=d", },
  3299.     { "=d", },
  3300.     { "=d", },
  3301.     { "=d", },
  3302.     { "=d", },
  3303.     { 0 },
  3304.     { 0 },
  3305.     { 0 },
  3306.     { 0 },
  3307.     { 0 },
  3308.     { 0 },
  3309.     { 0 },
  3310.     { 0 },
  3311.     { 0 },
  3312.     { 0 },
  3313.     { 0 },
  3314.     { 0 },
  3315.     { 0 },
  3316.     { 0 },
  3317.     { 0 },
  3318.     { 0 },
  3319.     { 0 },
  3320.     { 0 },
  3321.     { 0 },
  3322.     { 0 },
  3323.     { "", "", "", "", },
  3324.     { "", "", },
  3325.     { "", "", "", "", "", },
  3326.     { "r", },
  3327.     { 0 },
  3328.     { "g", },
  3329.     { "g", },
  3330.     { "m", "g", },
  3331.     { "rf", "m", "g", },
  3332.     { 0 },
  3333.     { "f", "ad", },
  3334.   };
  3335.  
  3336. enum machine_mode insn_operand_mode[][MAX_RECOG_OPERANDS] =
  3337.   {
  3338.     { DFmode, DFmode, },
  3339.     { DImode, DImode, },
  3340.     { SImode, },
  3341.     { HImode, },
  3342.     { QImode, },
  3343.     { SFmode, },
  3344.     { DFmode, },
  3345.     { SImode, SImode, },
  3346.     { HImode, HImode, },
  3347.     { SImode, SImode, },
  3348.     { QImode, QImode, },
  3349.     { DFmode, DFmode, },
  3350.     { SFmode, SFmode, },
  3351.     { QImode, SImode, },
  3352.     { SImode, SImode, },
  3353.     { QImode, SImode, },
  3354.     { SImode, SImode, },
  3355.     { QImode, SImode, },
  3356.     { HImode, SImode, },
  3357.     { SImode, SImode, },
  3358.     { QImode, },
  3359.     { QImode, SImode, },
  3360.     { SImode, SImode, },
  3361.     { SImode, },
  3362.     { SImode, SImode, },
  3363.     { SImode, SImode, },
  3364.     { HImode, HImode, },
  3365.     { HImode, HImode, },
  3366.     { QImode, QImode, },
  3367.     { QImode, QImode, },
  3368.     { SFmode, SFmode, },
  3369.     { DFmode, DFmode, },
  3370.     { DImode, DImode, },
  3371.     { SImode, SImode, },
  3372.     { SImode, QImode, },
  3373.     { QImode, SImode, },
  3374.     { QImode, HImode, },
  3375.     { HImode, SImode, },
  3376.     { SImode, HImode, },
  3377.     { HImode, QImode, },
  3378.     { SImode, QImode, },
  3379.     { SImode, HImode, },
  3380.     { HImode, QImode, },
  3381.     { SImode, QImode, },
  3382.     { DFmode, SFmode, },
  3383.     { SFmode, DFmode, },
  3384.     { SFmode, SImode, },
  3385.     { DFmode, SImode, },
  3386.     { SFmode, HImode, },
  3387.     { DFmode, HImode, },
  3388.     { SFmode, QImode, },
  3389.     { DFmode, QImode, },
  3390.     { DFmode, DFmode, },
  3391.     { SFmode, SFmode, },
  3392.     { QImode, SFmode, },
  3393.     { HImode, SFmode, },
  3394.     { SImode, SFmode, },
  3395.     { QImode, DFmode, },
  3396.     { HImode, DFmode, },
  3397.     { SImode, DFmode, },
  3398.     { SImode, SImode, SImode, },
  3399.     { SImode, SImode, HImode, },
  3400.     { HImode, HImode, HImode, },
  3401.     { HImode, HImode, },
  3402.     { QImode, QImode, QImode, },
  3403.     { QImode, QImode, },
  3404.     { DFmode, DFmode, DFmode, },
  3405.     { SFmode, SFmode, SFmode, },
  3406.     { SImode, SImode, SImode, },
  3407.     { SImode, SImode, HImode, },
  3408.     { HImode, HImode, HImode, },
  3409.     { HImode, HImode, },
  3410.     { QImode, QImode, QImode, },
  3411.     { QImode, QImode, },
  3412.     { DFmode, DFmode, DFmode, },
  3413.     { SFmode, SFmode, SFmode, },
  3414.     { HImode, HImode, HImode, },
  3415.     { SImode, HImode, HImode, },
  3416.     { SImode, SImode, SImode, },
  3417.     { HImode, HImode, HImode, },
  3418.     { SImode, HImode, HImode, },
  3419.     { SImode, SImode, SImode, },
  3420.     { DFmode, DFmode, DFmode, },
  3421.     { SFmode, SFmode, SFmode, },
  3422.     { HImode, HImode, HImode, },
  3423.     { HImode, SImode, HImode, },
  3424.     { SImode, SImode, SImode, },
  3425.     { HImode, HImode, HImode, },
  3426.     { HImode, SImode, HImode, },
  3427.     { SImode, SImode, SImode, },
  3428.     { DFmode, DFmode, DFmode, },
  3429.     { SFmode, SFmode, SFmode, },
  3430.     { HImode, HImode, HImode, },
  3431.     { HImode, SImode, HImode, },
  3432.     { HImode, HImode, HImode, },
  3433.     { HImode, SImode, HImode, },
  3434.     { SImode, SImode, SImode, SImode, },
  3435.     { SImode, SImode, SImode, SImode, },
  3436.     { SImode, SImode, SImode, },
  3437.     { HImode, HImode, HImode, },
  3438.     { QImode, QImode, QImode, },
  3439.     { SImode, HImode, SImode, },
  3440.     { SImode, QImode, SImode, },
  3441.     { SImode, SImode, SImode, },
  3442.     { HImode, HImode, HImode, },
  3443.     { QImode, QImode, QImode, },
  3444.     { SImode, SImode, SImode, },
  3445.     { HImode, HImode, HImode, },
  3446.     { QImode, QImode, QImode, },
  3447.     { SImode, SImode, },
  3448.     { HImode, HImode, },
  3449.     { QImode, QImode, },
  3450.     { SFmode, SFmode, },
  3451.     { DFmode, DFmode, },
  3452.     { SFmode, SFmode, },
  3453.     { DFmode, DFmode, },
  3454.     { SImode, SImode, },
  3455.     { HImode, HImode, },
  3456.     { QImode, QImode, },
  3457.     { SImode, SImode, },
  3458.     { SImode, SImode, },
  3459.     { QImode, SImode, },
  3460.     { SImode, QImode, },
  3461.     { QImode, SImode, },
  3462.     { SImode, QImode, },
  3463.     { SImode, SImode, SImode, },
  3464.     { HImode, HImode, HImode, },
  3465.     { QImode, QImode, QImode, },
  3466.     { SImode, SImode, SImode, },
  3467.     { HImode, HImode, HImode, },
  3468.     { QImode, QImode, QImode, },
  3469.     { SImode, SImode, SImode, },
  3470.     { HImode, HImode, HImode, },
  3471.     { QImode, QImode, QImode, },
  3472.     { SImode, SImode, SImode, },
  3473.     { HImode, HImode, HImode, },
  3474.     { QImode, QImode, QImode, },
  3475.     { SImode, SImode, SImode, },
  3476.     { HImode, HImode, HImode, },
  3477.     { QImode, QImode, QImode, },
  3478.     { SImode, SImode, SImode, },
  3479.     { HImode, HImode, HImode, },
  3480.     { QImode, QImode, QImode, },
  3481.     { SImode, SImode, SImode, SImode, },
  3482.     { SImode, SImode, SImode, SImode, },
  3483.     { SImode, SImode, SImode, SImode, },
  3484.     { SImode, QImode, SImode, SImode, },
  3485.     { SImode, QImode, SImode, SImode, },
  3486.     { QImode, SImode, SImode, VOIDmode, },
  3487.     { QImode, SImode, SImode, },
  3488.     { QImode, SImode, SImode, },
  3489.     { QImode, SImode, SImode, SImode, },
  3490.     { SImode, SImode, SImode, SImode, },
  3491.     { SImode, SImode, SImode, SImode, },
  3492.     { SImode, SImode, SImode, },
  3493.     { SImode, SImode, SImode, },
  3494.     { SImode, SImode, SImode, SImode, },
  3495.     { QImode, SImode, SImode, },
  3496.     { QImode, SImode, SImode, },
  3497.     { QImode, SImode, SImode, },
  3498.     { SImode, SImode, SImode, },
  3499.     { SImode, SImode, SImode, },
  3500.     { SImode, SImode, SImode, },
  3501.     { QImode, },
  3502.     { QImode, },
  3503.     { QImode, },
  3504.     { QImode, },
  3505.     { QImode, },
  3506.     { QImode, },
  3507.     { QImode, },
  3508.     { QImode, },
  3509.     { QImode, },
  3510.     { QImode, },
  3511.     { VOIDmode },
  3512.     { VOIDmode },
  3513.     { VOIDmode },
  3514.     { VOIDmode },
  3515.     { VOIDmode },
  3516.     { VOIDmode },
  3517.     { VOIDmode },
  3518.     { VOIDmode },
  3519.     { VOIDmode },
  3520.     { VOIDmode },
  3521.     { VOIDmode },
  3522.     { VOIDmode },
  3523.     { VOIDmode },
  3524.     { VOIDmode },
  3525.     { VOIDmode },
  3526.     { VOIDmode },
  3527.     { VOIDmode },
  3528.     { VOIDmode },
  3529.     { VOIDmode },
  3530.     { VOIDmode },
  3531.     { SImode, SImode, SImode, SImode, },
  3532.     { SImode, SImode, },
  3533.     { SImode, SImode, SImode, VOIDmode, VOIDmode, },
  3534.     { HImode, },
  3535.     { VOIDmode },
  3536.     { HImode, },
  3537.     { SImode, },
  3538.     { QImode, SImode, },
  3539.     { VOIDmode, QImode, SImode, },
  3540.     { VOIDmode },
  3541.     { VOIDmode, VOIDmode, },
  3542.   };
  3543.  
  3544. char insn_operand_strict_low[][MAX_RECOG_OPERANDS] =
  3545.   {
  3546.     { 0, 0, },
  3547.     { 0, 0, },
  3548.     { 0, },
  3549.     { 0, },
  3550.     { 0, },
  3551.     { 0, },
  3552.     { 0, },
  3553.     { 0, 0, },
  3554.     { 0, 0, },
  3555.     { 0, 0, },
  3556.     { 0, 0, },
  3557.     { 0, 0, },
  3558.     { 0, 0, },
  3559.     { 0, 0, },
  3560.     { 0, 0, },
  3561.     { 0, 0, },
  3562.     { 0, 0, },
  3563.     { 0, 0, },
  3564.     { 0, 0, },
  3565.     { 0, 0, },
  3566.     { 0, },
  3567.     { 0, 0, },
  3568.     { 0, 0, },
  3569.     { 0, },
  3570.     { 0, 0, },
  3571.     { 0, 0, },
  3572.     { 0, 0, },
  3573.     { 1, 0, },
  3574.     { 0, 0, },
  3575.     { 1, 0, },
  3576.     { 0, 0, },
  3577.     { 0, 0, },
  3578.     { 0, 0, },
  3579.     { 0, 0, },
  3580.     { 0, 0, },
  3581.     { 0, 0, },
  3582.     { 0, 0, },
  3583.     { 0, 0, },
  3584.     { 0, 0, },
  3585.     { 0, 0, },
  3586.     { 0, 0, },
  3587.     { 0, 0, },
  3588.     { 0, 0, },
  3589.     { 0, 0, },
  3590.     { 0, 0, },
  3591.     { 0, 0, },
  3592.     { 0, 0, },
  3593.     { 0, 0, },
  3594.     { 0, 0, },
  3595.     { 0, 0, },
  3596.     { 0, 0, },
  3597.     { 0, 0, },
  3598.     { 0, 0, },
  3599.     { 0, 0, },
  3600.     { 0, 0, },
  3601.     { 0, 0, },
  3602.     { 0, 0, },
  3603.     { 0, 0, },
  3604.     { 0, 0, },
  3605.     { 0, 0, },
  3606.     { 0, 0, 0, },
  3607.     { 0, 0, 0, },
  3608.     { 0, 0, 0, },
  3609.     { 1, 0, },
  3610.     { 0, 0, 0, },
  3611.     { 1, 0, },
  3612.     { 0, 0, 0, },
  3613.     { 0, 0, 0, },
  3614.     { 0, 0, 0, },
  3615.     { 0, 0, 0, },
  3616.     { 0, 0, 0, },
  3617.     { 1, 0, },
  3618.     { 0, 0, 0, },
  3619.     { 1, 0, },
  3620.     { 0, 0, 0, },
  3621.     { 0, 0, 0, },
  3622.     { 0, 0, 0, },
  3623.     { 0, 0, 0, },
  3624.     { 0, 0, 0, },
  3625.     { 0, 0, 0, },
  3626.     { 0, 0, 0, },
  3627.     { 0, 0, 0, },
  3628.     { 0, 0, 0, },
  3629.     { 0, 0, 0, },
  3630.     { 0, 0, 0, },
  3631.     { 0, 0, 0, },
  3632.     { 0, 0, 0, },
  3633.     { 0, 0, 0, },
  3634.     { 0, 0, 0, },
  3635.     { 0, 0, 0, },
  3636.     { 0, 0, 0, },
  3637.     { 0, 0, 0, },
  3638.     { 0, 0, 0, },
  3639.     { 0, 0, 0, },
  3640.     { 0, 0, 0, },
  3641.     { 0, 0, 0, },
  3642.     { 0, 0, 0, 0, },
  3643.     { 0, 0, 0, 0, },
  3644.     { 0, 0, 0, },
  3645.     { 0, 0, 0, },
  3646.     { 0, 0, 0, },
  3647.     { 0, 0, 0, },
  3648.     { 0, 0, 0, },
  3649.     { 0, 0, 0, },
  3650.     { 0, 0, 0, },
  3651.     { 0, 0, 0, },
  3652.     { 0, 0, 0, },
  3653.     { 0, 0, 0, },
  3654.     { 0, 0, 0, },
  3655.     { 0, 0, },
  3656.     { 0, 0, },
  3657.     { 0, 0, },
  3658.     { 0, 0, },
  3659.     { 0, 0, },
  3660.     { 0, 0, },
  3661.     { 0, 0, },
  3662.     { 0, 0, },
  3663.     { 0, 0, },
  3664.     { 0, 0, },
  3665.     { 0, 0, },
  3666.     { 0, 0, },
  3667.     { 0, 0, },
  3668.     { 0, 0, },
  3669.     { 0, 0, },
  3670.     { 0, 0, },
  3671.     { 0, 0, 0, },
  3672.     { 0, 0, 0, },
  3673.     { 0, 0, 0, },
  3674.     { 0, 0, 0, },
  3675.     { 0, 0, 0, },
  3676.     { 0, 0, 0, },
  3677.     { 0, 0, 0, },
  3678.     { 0, 0, 0, },
  3679.     { 0, 0, 0, },
  3680.     { 0, 0, 0, },
  3681.     { 0, 0, 0, },
  3682.     { 0, 0, 0, },
  3683.     { 0, 0, 0, },
  3684.     { 0, 0, 0, },
  3685.     { 0, 0, 0, },
  3686.     { 0, 0, 0, },
  3687.     { 0, 0, 0, },
  3688.     { 0, 0, 0, },
  3689.     { 0, 0, 0, 0, },
  3690.     { 0, 0, 0, 0, },
  3691.     { 0, 0, 0, 0, },
  3692.     { 0, 0, 0, 0, },
  3693.     { 0, 0, 0, 0, },
  3694.     { 0, 0, 0, 0, },
  3695.     { 0, 0, 0, },
  3696.     { 0, 0, 0, },
  3697.     { 0, 0, 0, 0, },
  3698.     { 0, 0, 0, 0, },
  3699.     { 0, 0, 0, 0, },
  3700.     { 0, 0, 0, },
  3701.     { 0, 0, 0, },
  3702.     { 0, 0, 0, 0, },
  3703.     { 0, 0, 0, },
  3704.     { 0, 0, 0, },
  3705.     { 0, 0, 0, },
  3706.     { 0, 0, 0, },
  3707.     { 0, 0, 0, },
  3708.     { 0, 0, 0, },
  3709.     { 0, },
  3710.     { 0, },
  3711.     { 0, },
  3712.     { 0, },
  3713.     { 0, },
  3714.     { 0, },
  3715.     { 0, },
  3716.     { 0, },
  3717.     { 0, },
  3718.     { 0, },
  3719.     { 0 },
  3720.     { 0 },
  3721.     { 0 },
  3722.     { 0 },
  3723.     { 0 },
  3724.     { 0 },
  3725.     { 0 },
  3726.     { 0 },
  3727.     { 0 },
  3728.     { 0 },
  3729.     { 0 },
  3730.     { 0 },
  3731.     { 0 },
  3732.     { 0 },
  3733.     { 0 },
  3734.     { 0 },
  3735.     { 0 },
  3736.     { 0 },
  3737.     { 0 },
  3738.     { 0 },
  3739.     { 0, 0, 0, 0, },
  3740.     { 0, 0, },
  3741.     { 0, 0, 0, 0, 0, },
  3742.     { 0, },
  3743.     { 0 },
  3744.     { 0, },
  3745.     { 0, },
  3746.     { 0, 0, },
  3747.     { 0, 0, 0, },
  3748.     { 0 },
  3749.     { 0, 0, },
  3750.   };
  3751.  
  3752. int (*insn_operand_predicate[][MAX_RECOG_OPERANDS])() =
  3753.   {
  3754.     { push_operand, general_operand, },
  3755.     { push_operand, general_operand, },
  3756.     { general_operand, },
  3757.     { general_operand, },
  3758.     { general_operand, },
  3759.     { general_operand, },
  3760.     { general_operand, },
  3761.     { general_operand, general_operand, },
  3762.     { general_operand, general_operand, },
  3763.     { general_operand, general_operand, },
  3764.     { general_operand, general_operand, },
  3765.     { general_operand, general_operand, },
  3766.     { general_operand, general_operand, },
  3767.     { nonimmediate_operand, general_operand, },
  3768.     { nonimmediate_operand, general_operand, },
  3769.     { nonimmediate_operand, general_operand, },
  3770.     { nonimmediate_operand, general_operand, },
  3771.     { nonimmediate_operand, general_operand, },
  3772.     { nonimmediate_operand, general_operand, },
  3773.     { nonimmediate_operand, general_operand, },
  3774.     { nonimmediate_operand, },
  3775.     { nonimmediate_operand, general_operand, },
  3776.     { general_operand, general_operand, },
  3777.     { general_operand, },
  3778.     { push_operand, general_operand, },
  3779.     { general_operand, general_operand, },
  3780.     { general_operand, general_operand, },
  3781.     { general_operand, general_operand, },
  3782.     { general_operand, general_operand, },
  3783.     { general_operand, general_operand, },
  3784.     { general_operand, general_operand, },
  3785.     { general_operand, general_operand, },
  3786.     { general_operand, general_operand, },
  3787.     { push_operand, address_operand, },
  3788.     { general_operand, address_operand, },
  3789.     { general_operand, general_operand, },
  3790.     { general_operand, general_operand, },
  3791.     { general_operand, general_operand, },
  3792.     { general_operand, general_operand, },
  3793.     { general_operand, general_operand, },
  3794.     { general_operand, general_operand, },
  3795.     { general_operand, general_operand, },
  3796.     { general_operand, general_operand, },
  3797.     { general_operand, general_operand, },
  3798.     { general_operand, general_operand, },
  3799.     { general_operand, general_operand, },
  3800.     { general_operand, general_operand, },
  3801.     { general_operand, general_operand, },
  3802.     { general_operand, general_operand, },
  3803.     { general_operand, general_operand, },
  3804.     { general_operand, general_operand, },
  3805.     { general_operand, general_operand, },
  3806.     { general_operand, general_operand, },
  3807.     { general_operand, general_operand, },
  3808.     { general_operand, general_operand, },
  3809.     { general_operand, general_operand, },
  3810.     { general_operand, general_operand, },
  3811.     { general_operand, general_operand, },
  3812.     { general_operand, general_operand, },
  3813.     { general_operand, general_operand, },
  3814.     { general_operand, general_operand, general_operand, },
  3815.     { general_operand, general_operand, general_operand, },
  3816.     { general_operand, general_operand, general_operand, },
  3817.     { general_operand, general_operand, },
  3818.     { general_operand, general_operand, general_operand, },
  3819.     { general_operand, general_operand, },
  3820.     { general_operand, general_operand, general_operand, },
  3821.     { general_operand, general_operand, general_operand, },
  3822.     { general_operand, general_operand, general_operand, },
  3823.     { general_operand, general_operand, general_operand, },
  3824.     { general_operand, general_operand, general_operand, },
  3825.     { general_operand, general_operand, },
  3826.     { general_operand, general_operand, general_operand, },
  3827.     { general_operand, general_operand, },
  3828.     { general_operand, general_operand, general_operand, },
  3829.     { general_operand, general_operand, general_operand, },
  3830.     { general_operand, general_operand, general_operand, },
  3831.     { general_operand, general_operand, general_operand, },
  3832.     { general_operand, general_operand, general_operand, },
  3833.     { general_operand, general_operand, general_operand, },
  3834.     { general_operand, general_operand, general_operand, },
  3835.     { general_operand, general_operand, general_operand, },
  3836.     { general_operand, general_operand, general_operand, },
  3837.     { general_operand, general_operand, general_operand, },
  3838.     { general_operand, general_operand, general_operand, },
  3839.     { general_operand, general_operand, general_operand, },
  3840.     { general_operand, general_operand, general_operand, },
  3841.     { general_operand, general_operand, general_operand, },
  3842.     { general_operand, general_operand, general_operand, },
  3843.     { general_operand, general_operand, general_operand, },
  3844.     { general_operand, general_operand, general_operand, },
  3845.     { general_operand, general_operand, general_operand, },
  3846.     { general_operand, general_operand, general_operand, },
  3847.     { general_operand, general_operand, general_operand, },
  3848.     { general_operand, general_operand, general_operand, },
  3849.     { general_operand, general_operand, general_operand, },
  3850.     { general_operand, general_operand, general_operand, general_operand, },
  3851.     { general_operand, general_operand, general_operand, general_operand, },
  3852.     { general_operand, general_operand, general_operand, },
  3853.     { general_operand, general_operand, general_operand, },
  3854.     { general_operand, general_operand, general_operand, },
  3855.     { general_operand, general_operand, general_operand, },
  3856.     { general_operand, general_operand, general_operand, },
  3857.     { general_operand, general_operand, general_operand, },
  3858.     { general_operand, general_operand, general_operand, },
  3859.     { general_operand, general_operand, general_operand, },
  3860.     { general_operand, general_operand, general_operand, },
  3861.     { general_operand, general_operand, general_operand, },
  3862.     { general_operand, general_operand, general_operand, },
  3863.     { general_operand, general_operand, },
  3864.     { general_operand, general_operand, },
  3865.     { general_operand, general_operand, },
  3866.     { general_operand, general_operand, },
  3867.     { general_operand, general_operand, },
  3868.     { general_operand, general_operand, },
  3869.     { general_operand, general_operand, },
  3870.     { general_operand, general_operand, },
  3871.     { general_operand, general_operand, },
  3872.     { general_operand, general_operand, },
  3873.     { general_operand, memory_operand, },
  3874.     { general_operand, memory_operand, },
  3875.     { general_operand, memory_operand, },
  3876.     { memory_operand, general_operand, },
  3877.     { general_operand, memory_operand, },
  3878.     { memory_operand, general_operand, },
  3879.     { general_operand, general_operand, general_operand, },
  3880.     { general_operand, general_operand, general_operand, },
  3881.     { general_operand, general_operand, general_operand, },
  3882.     { general_operand, general_operand, general_operand, },
  3883.     { general_operand, general_operand, general_operand, },
  3884.     { general_operand, general_operand, general_operand, },
  3885.     { general_operand, general_operand, general_operand, },
  3886.     { general_operand, general_operand, general_operand, },
  3887.     { general_operand, general_operand, general_operand, },
  3888.     { general_operand, general_operand, general_operand, },
  3889.     { general_operand, general_operand, general_operand, },
  3890.     { general_operand, general_operand, general_operand, },
  3891.     { general_operand, general_operand, general_operand, },
  3892.     { general_operand, general_operand, general_operand, },
  3893.     { general_operand, general_operand, general_operand, },
  3894.     { general_operand, general_operand, general_operand, },
  3895.     { general_operand, general_operand, general_operand, },
  3896.     { general_operand, general_operand, general_operand, },
  3897.     { nonimmediate_operand, immediate_operand, immediate_operand, general_operand, },
  3898.     { general_operand, nonimmediate_operand, immediate_operand, immediate_operand, },
  3899.     { general_operand, nonimmediate_operand, immediate_operand, immediate_operand, },
  3900.     { general_operand, nonimmediate_operand, general_operand, general_operand, },
  3901.     { general_operand, nonimmediate_operand, general_operand, general_operand, },
  3902.     { nonimmediate_operand, general_operand, general_operand, immediate_operand, },
  3903.     { nonimmediate_operand, general_operand, general_operand, },
  3904.     { nonimmediate_operand, general_operand, general_operand, },
  3905.     { nonimmediate_operand, general_operand, general_operand, general_operand, },
  3906.     { general_operand, nonimmediate_operand, general_operand, general_operand, },
  3907.     { general_operand, nonimmediate_operand, general_operand, general_operand, },
  3908.     { nonimmediate_operand, general_operand, general_operand, },
  3909.     { nonimmediate_operand, general_operand, general_operand, },
  3910.     { nonimmediate_operand, general_operand, general_operand, general_operand, },
  3911.     { memory_operand, general_operand, general_operand, },
  3912.     { memory_operand, general_operand, general_operand, },
  3913.     { memory_operand, general_operand, general_operand, },
  3914.     { nonimmediate_operand, general_operand, general_operand, },
  3915.     { nonimmediate_operand, general_operand, general_operand, },
  3916.     { nonimmediate_operand, general_operand, general_operand, },
  3917.     { general_operand, },
  3918.     { general_operand, },
  3919.     { general_operand, },
  3920.     { general_operand, },
  3921.     { general_operand, },
  3922.     { general_operand, },
  3923.     { general_operand, },
  3924.     { general_operand, },
  3925.     { general_operand, },
  3926.     { general_operand, },
  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.     { general_operand, immediate_operand, general_operand, general_operand, },
  3948.     { 0, 0, },
  3949.     { general_operand, immediate_operand, general_operand, 0, 0, },
  3950.     { general_operand, },
  3951.     { 0 },
  3952.     { general_operand, },
  3953.     { general_operand, },
  3954.     { general_operand, general_operand, },
  3955.     { 0, general_operand, general_operand, },
  3956.     { 0 },
  3957.     { 0, 0, },
  3958.   };
  3959.