aboutsummaryrefslogtreecommitdiff
path: root/gnu/usr.bin/cc/lib/insn-recog.c
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/usr.bin/cc/lib/insn-recog.c')
-rw-r--r--gnu/usr.bin/cc/lib/insn-recog.c6158
1 files changed, 6158 insertions, 0 deletions
diff --git a/gnu/usr.bin/cc/lib/insn-recog.c b/gnu/usr.bin/cc/lib/insn-recog.c
new file mode 100644
index 000000000000..bca21b305fe8
--- /dev/null
+++ b/gnu/usr.bin/cc/lib/insn-recog.c
@@ -0,0 +1,6158 @@
+/* Generated automatically by the program `genrecog'
+from the machine description file `md'. */
+
+#include "config.h"
+#include "rtl.h"
+#include "insn-config.h"
+#include "recog.h"
+#include "real.h"
+#include "output.h"
+#include "flags.h"
+
+
+/* `recog' contains a decision tree
+ that recognizes whether the rtx X0 is a valid instruction.
+
+ recog returns -1 if the rtx is not valid.
+ If the rtx is valid, recog returns a nonnegative number
+ which is the insn code number for the pattern that matched.
+ This is the same as the order in the machine description of
+ the entry that matched. This number can be used as an index into
+ entry that matched. This number can be used as an index into various
+ insn_* tables, such as insn_templates, insn_outfun, and insn_n_operands
+ (found in insn-output.c).
+
+ The third argument to recog is an optional pointer to an int.
+ If present, recog will accept a pattern if it matches except for
+ missing CLOBBER expressions at the end. In that case, the value
+ pointed to by the optional pointer will be set to the number of
+ CLOBBERs that need to be added (it should be initialized to zero by
+ the caller). If it is set nonzero, the caller should allocate a
+ PARALLEL of the appropriate size, copy the initial entries, and call
+ add_clobbers (found in insn-emit.c) to fill in the CLOBBERs.*/
+
+rtx recog_operand[MAX_RECOG_OPERANDS];
+
+rtx *recog_operand_loc[MAX_RECOG_OPERANDS];
+
+rtx *recog_dup_loc[MAX_DUP_OPERANDS];
+
+char recog_dup_num[MAX_DUP_OPERANDS];
+
+#define operands recog_operand
+
+int
+recog_1 (x0, insn, pnum_clobbers)
+ register rtx x0;
+ rtx insn;
+ int *pnum_clobbers;
+{
+ register rtx *ro = &recog_operand[0];
+ register rtx x1, x2, x3, x4, x5, x6;
+ int tem;
+
+ x1 = XEXP (x0, 1);
+ switch (GET_MODE (x1))
+ {
+ case SImode:
+ if (nonimmediate_operand (x1, SImode))
+ {
+ ro[0] = x1;
+ return 0;
+ }
+ break;
+ case HImode:
+ if (nonimmediate_operand (x1, HImode))
+ {
+ ro[0] = x1;
+ return 2;
+ }
+ break;
+ case QImode:
+ if (nonimmediate_operand (x1, QImode))
+ {
+ ro[0] = x1;
+ return 4;
+ }
+ break;
+ case SFmode:
+ if (pnum_clobbers != 0 && register_operand (x1, SFmode))
+ {
+ ro[0] = x1;
+ if (TARGET_80387 && ! TARGET_IEEE_FP)
+ {
+ *pnum_clobbers = 1;
+ return 6;
+ }
+ }
+ break;
+ case DFmode:
+ if (pnum_clobbers != 0 && register_operand (x1, DFmode))
+ {
+ ro[0] = x1;
+ if (TARGET_80387 && ! TARGET_IEEE_FP)
+ {
+ *pnum_clobbers = 1;
+ return 8;
+ }
+ }
+ }
+ switch (GET_CODE (x1))
+ {
+ case COMPARE:
+ goto L30;
+ case ZERO_EXTRACT:
+ goto L813;
+ }
+ L52:
+ if (VOIDmode_compare_op (x1, VOIDmode))
+ {
+ ro[2] = x1;
+ goto L82;
+ }
+ L125:
+ switch (GET_MODE (x1))
+ {
+ case CCFPEQmode:
+ switch (GET_CODE (x1))
+ {
+ case COMPARE:
+ goto L126;
+ }
+ break;
+ case SImode:
+ switch (GET_CODE (x1))
+ {
+ case AND:
+ goto L187;
+ }
+ break;
+ case HImode:
+ switch (GET_CODE (x1))
+ {
+ case AND:
+ goto L192;
+ }
+ break;
+ case QImode:
+ if (GET_CODE (x1) == AND && 1)
+ goto L197;
+ }
+ goto ret0;
+
+ L30:
+ x2 = XEXP (x1, 0);
+ switch (GET_MODE (x2))
+ {
+ case SImode:
+ if (nonimmediate_operand (x2, SImode))
+ {
+ ro[0] = x2;
+ goto L31;
+ }
+ break;
+ case HImode:
+ if (nonimmediate_operand (x2, HImode))
+ {
+ ro[0] = x2;
+ goto L36;
+ }
+ break;
+ case QImode:
+ if (nonimmediate_operand (x2, QImode))
+ {
+ ro[0] = x2;
+ goto L41;
+ }
+ }
+ goto L52;
+
+ L31:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, SImode))
+ {
+ ro[1] = x2;
+ if (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
+ return 10;
+ }
+ goto L52;
+
+ L36:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, HImode))
+ {
+ ro[1] = x2;
+ if (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
+ return 12;
+ }
+ goto L52;
+
+ L41:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, QImode))
+ {
+ ro[1] = x2;
+ if (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
+ return 14;
+ }
+ goto L52;
+
+ L813:
+ x2 = XEXP (x1, 0);
+ switch (GET_MODE (x2))
+ {
+ case SImode:
+ if (register_operand (x2, SImode))
+ {
+ ro[0] = x2;
+ goto L814;
+ }
+ break;
+ case QImode:
+ if (general_operand (x2, QImode))
+ {
+ ro[0] = x2;
+ goto L826;
+ }
+ }
+ goto L52;
+
+ L814:
+ x2 = XEXP (x1, 1);
+ if (GET_CODE (x2) != CONST_INT)
+ {
+ goto L52;
+ }
+ if (XWINT (x2, 0) == 1 && 1)
+ goto L815;
+ L820:
+ ro[1] = x2;
+ goto L821;
+
+ L815:
+ x2 = XEXP (x1, 2);
+ if (general_operand (x2, SImode))
+ {
+ ro[1] = x2;
+ if (GET_CODE (operands[1]) != CONST_INT)
+ return 167;
+ }
+ x2 = XEXP (x1, 1);
+ goto L820;
+
+ L821:
+ x2 = XEXP (x1, 2);
+ if (GET_CODE (x2) == CONST_INT && 1)
+ {
+ ro[2] = x2;
+ return 168;
+ }
+ goto L52;
+
+ L826:
+ x2 = XEXP (x1, 1);
+ if (GET_CODE (x2) == CONST_INT && 1)
+ {
+ ro[1] = x2;
+ goto L827;
+ }
+ goto L52;
+
+ L827:
+ x2 = XEXP (x1, 2);
+ if (GET_CODE (x2) == CONST_INT && 1)
+ {
+ ro[2] = x2;
+ if (GET_CODE (operands[0]) != MEM || ! MEM_VOLATILE_P (operands[0]))
+ return 169;
+ }
+ goto L52;
+
+ L82:
+ x2 = XEXP (x1, 0);
+ switch (GET_MODE (x2))
+ {
+ case DFmode:
+ switch (GET_CODE (x2))
+ {
+ case FLOAT:
+ goto L83;
+ case FLOAT_EXTEND:
+ goto L113;
+ case SUBREG:
+ case REG:
+ case MEM:
+ if (nonimmediate_operand (x2, DFmode))
+ {
+ ro[0] = x2;
+ goto L54;
+ }
+ }
+ L67:
+ if (register_operand (x2, DFmode))
+ {
+ ro[0] = x2;
+ goto L68;
+ }
+ break;
+ case SFmode:
+ if (GET_CODE (x2) == FLOAT && 1)
+ goto L169;
+ if (nonimmediate_operand (x2, SFmode))
+ {
+ ro[0] = x2;
+ goto L140;
+ }
+ L153:
+ if (register_operand (x2, SFmode))
+ {
+ ro[0] = x2;
+ goto L154;
+ }
+ }
+ goto L125;
+
+ L83:
+ x3 = XEXP (x2, 0);
+ if (nonimmediate_operand (x3, SImode))
+ {
+ ro[0] = x3;
+ goto L84;
+ }
+ goto L125;
+
+ L84:
+ x2 = XEXP (x1, 1);
+ if (pnum_clobbers != 0 && register_operand (x2, DFmode))
+ {
+ ro[1] = x2;
+ if (TARGET_80387)
+ {
+ *pnum_clobbers = 1;
+ return 18;
+ }
+ }
+ goto L125;
+
+ L113:
+ x3 = XEXP (x2, 0);
+ if (nonimmediate_operand (x3, SFmode))
+ {
+ ro[0] = x3;
+ goto L114;
+ }
+ goto L125;
+
+ L114:
+ x2 = XEXP (x1, 1);
+ if (pnum_clobbers != 0 && register_operand (x2, DFmode))
+ {
+ ro[1] = x2;
+ if (TARGET_80387)
+ {
+ *pnum_clobbers = 1;
+ return 20;
+ }
+ }
+ goto L125;
+
+ L54:
+ x2 = XEXP (x1, 1);
+ if (pnum_clobbers != 0 && nonimmediate_operand (x2, DFmode))
+ {
+ ro[1] = x2;
+ if (TARGET_80387
+ && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM))
+ {
+ *pnum_clobbers = 1;
+ return 16;
+ }
+ }
+ x2 = XEXP (x1, 0);
+ goto L67;
+
+ L68:
+ x2 = XEXP (x1, 1);
+ if (GET_MODE (x2) != DFmode)
+ {
+ goto L125;
+ }
+ switch (GET_CODE (x2))
+ {
+ case FLOAT:
+ goto L69;
+ case FLOAT_EXTEND:
+ goto L99;
+ }
+ goto L125;
+
+ L69:
+ x3 = XEXP (x2, 0);
+ if (pnum_clobbers != 0 && nonimmediate_operand (x3, SImode))
+ {
+ ro[1] = x3;
+ if (TARGET_80387)
+ {
+ *pnum_clobbers = 1;
+ return 17;
+ }
+ }
+ goto L125;
+
+ L99:
+ x3 = XEXP (x2, 0);
+ if (pnum_clobbers != 0 && nonimmediate_operand (x3, SFmode))
+ {
+ ro[1] = x3;
+ if (TARGET_80387)
+ {
+ *pnum_clobbers = 1;
+ return 19;
+ }
+ }
+ goto L125;
+
+ L169:
+ x3 = XEXP (x2, 0);
+ if (nonimmediate_operand (x3, SImode))
+ {
+ ro[0] = x3;
+ goto L170;
+ }
+ goto L125;
+
+ L170:
+ x2 = XEXP (x1, 1);
+ if (pnum_clobbers != 0 && register_operand (x2, SFmode))
+ {
+ ro[1] = x2;
+ if (TARGET_80387)
+ {
+ *pnum_clobbers = 1;
+ return 24;
+ }
+ }
+ goto L125;
+
+ L140:
+ x2 = XEXP (x1, 1);
+ if (pnum_clobbers != 0 && nonimmediate_operand (x2, SFmode))
+ {
+ ro[1] = x2;
+ if (TARGET_80387
+ && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM))
+ {
+ *pnum_clobbers = 1;
+ return 22;
+ }
+ }
+ x2 = XEXP (x1, 0);
+ goto L153;
+
+ L154:
+ x2 = XEXP (x1, 1);
+ if (GET_MODE (x2) == SFmode && GET_CODE (x2) == FLOAT && 1)
+ goto L155;
+ goto L125;
+
+ L155:
+ x3 = XEXP (x2, 0);
+ if (pnum_clobbers != 0 && nonimmediate_operand (x3, SImode))
+ {
+ ro[1] = x3;
+ if (TARGET_80387)
+ {
+ *pnum_clobbers = 1;
+ return 23;
+ }
+ }
+ goto L125;
+
+ L126:
+ x2 = XEXP (x1, 0);
+ switch (GET_MODE (x2))
+ {
+ case DFmode:
+ if (register_operand (x2, DFmode))
+ {
+ ro[0] = x2;
+ goto L127;
+ }
+ break;
+ case SFmode:
+ if (register_operand (x2, SFmode))
+ {
+ ro[0] = x2;
+ goto L183;
+ }
+ }
+ goto ret0;
+
+ L127:
+ x2 = XEXP (x1, 1);
+ if (pnum_clobbers != 0 && register_operand (x2, DFmode))
+ {
+ ro[1] = x2;
+ if (TARGET_80387)
+ {
+ *pnum_clobbers = 1;
+ return 21;
+ }
+ }
+ goto ret0;
+
+ L183:
+ x2 = XEXP (x1, 1);
+ if (pnum_clobbers != 0 && register_operand (x2, SFmode))
+ {
+ ro[1] = x2;
+ if (TARGET_80387)
+ {
+ *pnum_clobbers = 1;
+ return 25;
+ }
+ }
+ goto ret0;
+
+ L187:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, SImode))
+ {
+ ro[0] = x2;
+ goto L188;
+ }
+ goto ret0;
+
+ L188:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, SImode))
+ {
+ ro[1] = x2;
+ return 32;
+ }
+ goto ret0;
+
+ L192:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, HImode))
+ {
+ ro[0] = x2;
+ goto L193;
+ }
+ goto ret0;
+
+ L193:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, HImode))
+ {
+ ro[1] = x2;
+ return 33;
+ }
+ goto ret0;
+
+ L197:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, QImode))
+ {
+ ro[0] = x2;
+ goto L198;
+ }
+ goto ret0;
+
+ L198:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, QImode))
+ {
+ ro[1] = x2;
+ return 34;
+ }
+ goto ret0;
+ ret0: return -1;
+}
+
+int
+recog_2 (x0, insn, pnum_clobbers)
+ register rtx x0;
+ rtx insn;
+ int *pnum_clobbers;
+{
+ register rtx *ro = &recog_operand[0];
+ register rtx x1, x2, x3, x4, x5, x6;
+ int tem;
+
+ x1 = XEXP (x0, 1);
+ x2 = XEXP (x1, 0);
+ switch (GET_CODE (x2))
+ {
+ case EQ:
+ goto L882;
+ case NE:
+ goto L891;
+ case GT:
+ goto L900;
+ case GTU:
+ goto L909;
+ case LT:
+ goto L918;
+ case LTU:
+ goto L927;
+ case GE:
+ goto L936;
+ case GEU:
+ goto L945;
+ case LE:
+ goto L954;
+ case LEU:
+ goto L963;
+ }
+ goto ret0;
+
+ L882:
+ x3 = XEXP (x2, 0);
+ if (GET_CODE (x3) == CC0 && 1)
+ goto L883;
+ goto ret0;
+
+ L883:
+ x3 = XEXP (x2, 1);
+ if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
+ goto L884;
+ goto ret0;
+
+ L884:
+ x2 = XEXP (x1, 1);
+ switch (GET_CODE (x2))
+ {
+ case LABEL_REF:
+ goto L885;
+ case PC:
+ goto L975;
+ }
+ goto ret0;
+
+ L885:
+ x3 = XEXP (x2, 0);
+ ro[0] = x3;
+ goto L886;
+
+ L886:
+ x2 = XEXP (x1, 2);
+ if (GET_CODE (x2) == PC && 1)
+ return 191;
+ goto ret0;
+
+ L975:
+ x2 = XEXP (x1, 2);
+ if (GET_CODE (x2) == LABEL_REF && 1)
+ goto L976;
+ goto ret0;
+
+ L976:
+ x3 = XEXP (x2, 0);
+ ro[0] = x3;
+ return 210;
+
+ L891:
+ x3 = XEXP (x2, 0);
+ if (GET_CODE (x3) == CC0 && 1)
+ goto L892;
+ goto ret0;
+
+ L892:
+ x3 = XEXP (x2, 1);
+ if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
+ goto L893;
+ goto ret0;
+
+ L893:
+ x2 = XEXP (x1, 1);
+ switch (GET_CODE (x2))
+ {
+ case LABEL_REF:
+ goto L894;
+ case PC:
+ goto L984;
+ }
+ goto ret0;
+
+ L894:
+ x3 = XEXP (x2, 0);
+ ro[0] = x3;
+ goto L895;
+
+ L895:
+ x2 = XEXP (x1, 2);
+ if (GET_CODE (x2) == PC && 1)
+ return 193;
+ goto ret0;
+
+ L984:
+ x2 = XEXP (x1, 2);
+ if (GET_CODE (x2) == LABEL_REF && 1)
+ goto L985;
+ goto ret0;
+
+ L985:
+ x3 = XEXP (x2, 0);
+ ro[0] = x3;
+ return 211;
+
+ L900:
+ x3 = XEXP (x2, 0);
+ if (GET_CODE (x3) == CC0 && 1)
+ goto L901;
+ goto ret0;
+
+ L901:
+ x3 = XEXP (x2, 1);
+ if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
+ goto L902;
+ goto ret0;
+
+ L902:
+ x2 = XEXP (x1, 1);
+ switch (GET_CODE (x2))
+ {
+ case LABEL_REF:
+ goto L903;
+ case PC:
+ goto L993;
+ }
+ goto ret0;
+
+ L903:
+ x3 = XEXP (x2, 0);
+ ro[0] = x3;
+ goto L904;
+
+ L904:
+ x2 = XEXP (x1, 2);
+ if (GET_CODE (x2) == PC && 1)
+ return 195;
+ goto ret0;
+
+ L993:
+ x2 = XEXP (x1, 2);
+ if (GET_CODE (x2) == LABEL_REF && 1)
+ goto L994;
+ goto ret0;
+
+ L994:
+ x3 = XEXP (x2, 0);
+ ro[0] = x3;
+ return 212;
+
+ L909:
+ x3 = XEXP (x2, 0);
+ if (GET_CODE (x3) == CC0 && 1)
+ goto L910;
+ goto ret0;
+
+ L910:
+ x3 = XEXP (x2, 1);
+ if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
+ goto L911;
+ goto ret0;
+
+ L911:
+ x2 = XEXP (x1, 1);
+ switch (GET_CODE (x2))
+ {
+ case LABEL_REF:
+ goto L912;
+ case PC:
+ goto L1002;
+ }
+ goto ret0;
+
+ L912:
+ x3 = XEXP (x2, 0);
+ ro[0] = x3;
+ goto L913;
+
+ L913:
+ x2 = XEXP (x1, 2);
+ if (GET_CODE (x2) == PC && 1)
+ return 197;
+ goto ret0;
+
+ L1002:
+ x2 = XEXP (x1, 2);
+ if (GET_CODE (x2) == LABEL_REF && 1)
+ goto L1003;
+ goto ret0;
+
+ L1003:
+ x3 = XEXP (x2, 0);
+ ro[0] = x3;
+ return 213;
+
+ L918:
+ x3 = XEXP (x2, 0);
+ if (GET_CODE (x3) == CC0 && 1)
+ goto L919;
+ goto ret0;
+
+ L919:
+ x3 = XEXP (x2, 1);
+ if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
+ goto L920;
+ goto ret0;
+
+ L920:
+ x2 = XEXP (x1, 1);
+ switch (GET_CODE (x2))
+ {
+ case LABEL_REF:
+ goto L921;
+ case PC:
+ goto L1011;
+ }
+ goto ret0;
+
+ L921:
+ x3 = XEXP (x2, 0);
+ ro[0] = x3;
+ goto L922;
+
+ L922:
+ x2 = XEXP (x1, 2);
+ if (GET_CODE (x2) == PC && 1)
+ return 199;
+ goto ret0;
+
+ L1011:
+ x2 = XEXP (x1, 2);
+ if (GET_CODE (x2) == LABEL_REF && 1)
+ goto L1012;
+ goto ret0;
+
+ L1012:
+ x3 = XEXP (x2, 0);
+ ro[0] = x3;
+ return 214;
+
+ L927:
+ x3 = XEXP (x2, 0);
+ if (GET_CODE (x3) == CC0 && 1)
+ goto L928;
+ goto ret0;
+
+ L928:
+ x3 = XEXP (x2, 1);
+ if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
+ goto L929;
+ goto ret0;
+
+ L929:
+ x2 = XEXP (x1, 1);
+ switch (GET_CODE (x2))
+ {
+ case LABEL_REF:
+ goto L930;
+ case PC:
+ goto L1020;
+ }
+ goto ret0;
+
+ L930:
+ x3 = XEXP (x2, 0);
+ ro[0] = x3;
+ goto L931;
+
+ L931:
+ x2 = XEXP (x1, 2);
+ if (GET_CODE (x2) == PC && 1)
+ return 201;
+ goto ret0;
+
+ L1020:
+ x2 = XEXP (x1, 2);
+ if (GET_CODE (x2) == LABEL_REF && 1)
+ goto L1021;
+ goto ret0;
+
+ L1021:
+ x3 = XEXP (x2, 0);
+ ro[0] = x3;
+ return 215;
+
+ L936:
+ x3 = XEXP (x2, 0);
+ if (GET_CODE (x3) == CC0 && 1)
+ goto L937;
+ goto ret0;
+
+ L937:
+ x3 = XEXP (x2, 1);
+ if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
+ goto L938;
+ goto ret0;
+
+ L938:
+ x2 = XEXP (x1, 1);
+ switch (GET_CODE (x2))
+ {
+ case LABEL_REF:
+ goto L939;
+ case PC:
+ goto L1029;
+ }
+ goto ret0;
+
+ L939:
+ x3 = XEXP (x2, 0);
+ ro[0] = x3;
+ goto L940;
+
+ L940:
+ x2 = XEXP (x1, 2);
+ if (GET_CODE (x2) == PC && 1)
+ return 203;
+ goto ret0;
+
+ L1029:
+ x2 = XEXP (x1, 2);
+ if (GET_CODE (x2) == LABEL_REF && 1)
+ goto L1030;
+ goto ret0;
+
+ L1030:
+ x3 = XEXP (x2, 0);
+ ro[0] = x3;
+ return 216;
+
+ L945:
+ x3 = XEXP (x2, 0);
+ if (GET_CODE (x3) == CC0 && 1)
+ goto L946;
+ goto ret0;
+
+ L946:
+ x3 = XEXP (x2, 1);
+ if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
+ goto L947;
+ goto ret0;
+
+ L947:
+ x2 = XEXP (x1, 1);
+ switch (GET_CODE (x2))
+ {
+ case LABEL_REF:
+ goto L948;
+ case PC:
+ goto L1038;
+ }
+ goto ret0;
+
+ L948:
+ x3 = XEXP (x2, 0);
+ ro[0] = x3;
+ goto L949;
+
+ L949:
+ x2 = XEXP (x1, 2);
+ if (GET_CODE (x2) == PC && 1)
+ return 205;
+ goto ret0;
+
+ L1038:
+ x2 = XEXP (x1, 2);
+ if (GET_CODE (x2) == LABEL_REF && 1)
+ goto L1039;
+ goto ret0;
+
+ L1039:
+ x3 = XEXP (x2, 0);
+ ro[0] = x3;
+ return 217;
+
+ L954:
+ x3 = XEXP (x2, 0);
+ if (GET_CODE (x3) == CC0 && 1)
+ goto L955;
+ goto ret0;
+
+ L955:
+ x3 = XEXP (x2, 1);
+ if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
+ goto L956;
+ goto ret0;
+
+ L956:
+ x2 = XEXP (x1, 1);
+ switch (GET_CODE (x2))
+ {
+ case LABEL_REF:
+ goto L957;
+ case PC:
+ goto L1047;
+ }
+ goto ret0;
+
+ L957:
+ x3 = XEXP (x2, 0);
+ ro[0] = x3;
+ goto L958;
+
+ L958:
+ x2 = XEXP (x1, 2);
+ if (GET_CODE (x2) == PC && 1)
+ return 207;
+ goto ret0;
+
+ L1047:
+ x2 = XEXP (x1, 2);
+ if (GET_CODE (x2) == LABEL_REF && 1)
+ goto L1048;
+ goto ret0;
+
+ L1048:
+ x3 = XEXP (x2, 0);
+ ro[0] = x3;
+ return 218;
+
+ L963:
+ x3 = XEXP (x2, 0);
+ if (GET_CODE (x3) == CC0 && 1)
+ goto L964;
+ goto ret0;
+
+ L964:
+ x3 = XEXP (x2, 1);
+ if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
+ goto L965;
+ goto ret0;
+
+ L965:
+ x2 = XEXP (x1, 1);
+ switch (GET_CODE (x2))
+ {
+ case LABEL_REF:
+ goto L966;
+ case PC:
+ goto L1056;
+ }
+ goto ret0;
+
+ L966:
+ x3 = XEXP (x2, 0);
+ ro[0] = x3;
+ goto L967;
+
+ L967:
+ x2 = XEXP (x1, 2);
+ if (GET_CODE (x2) == PC && 1)
+ return 209;
+ goto ret0;
+
+ L1056:
+ x2 = XEXP (x1, 2);
+ if (GET_CODE (x2) == LABEL_REF && 1)
+ goto L1057;
+ goto ret0;
+
+ L1057:
+ x3 = XEXP (x2, 0);
+ ro[0] = x3;
+ return 219;
+ ret0: return -1;
+}
+
+int
+recog_3 (x0, insn, pnum_clobbers)
+ register rtx x0;
+ rtx insn;
+ int *pnum_clobbers;
+{
+ register rtx *ro = &recog_operand[0];
+ register rtx x1, x2, x3, x4, x5, x6;
+ int tem;
+
+ x1 = XEXP (x0, 0);
+ switch (GET_MODE (x1))
+ {
+ case SImode:
+ switch (GET_CODE (x1))
+ {
+ case MEM:
+ if (push_operand (x1, SImode))
+ {
+ ro[0] = x1;
+ goto L201;
+ }
+ break;
+ case ZERO_EXTRACT:
+ goto L792;
+ }
+ L208:
+ if (general_operand (x1, SImode))
+ {
+ ro[0] = x1;
+ goto L257;
+ }
+ L431:
+ if (register_operand (x1, SImode))
+ {
+ ro[0] = x1;
+ goto L432;
+ }
+ L439:
+ if (general_operand (x1, SImode))
+ {
+ ro[0] = x1;
+ goto L440;
+ }
+ break;
+ case HImode:
+ if (GET_CODE (x1) == MEM && push_operand (x1, HImode))
+ {
+ ro[0] = x1;
+ goto L212;
+ }
+ L214:
+ if (general_operand (x1, HImode))
+ {
+ ro[0] = x1;
+ goto L261;
+ }
+ break;
+ case QImode:
+ if (GET_CODE (x1) == MEM && push_operand (x1, QImode))
+ {
+ ro[0] = x1;
+ goto L222;
+ }
+ L224:
+ if (general_operand (x1, QImode))
+ {
+ ro[0] = x1;
+ goto L427;
+ }
+ L829:
+ if (register_operand (x1, QImode))
+ {
+ ro[0] = x1;
+ goto L830;
+ }
+ break;
+ case SFmode:
+ if (GET_CODE (x1) == MEM && push_operand (x1, SFmode))
+ {
+ ro[0] = x1;
+ goto L232;
+ }
+ L234:
+ if (general_operand (x1, SFmode))
+ {
+ ro[0] = x1;
+ goto L235;
+ }
+ L399:
+ if (register_operand (x1, SFmode))
+ {
+ ro[0] = x1;
+ goto L400;
+ }
+ break;
+ case DFmode:
+ if (GET_CODE (x1) == MEM && push_operand (x1, DFmode))
+ {
+ ro[0] = x1;
+ goto L238;
+ }
+ L247:
+ if (general_operand (x1, DFmode))
+ {
+ ro[0] = x1;
+ goto L289;
+ }
+ L395:
+ if (register_operand (x1, DFmode))
+ {
+ ro[0] = x1;
+ goto L396;
+ }
+ break;
+ case DImode:
+ if (GET_CODE (x1) == MEM && push_operand (x1, DImode))
+ {
+ ro[0] = x1;
+ goto L251;
+ }
+ L253:
+ if (general_operand (x1, DImode))
+ {
+ ro[0] = x1;
+ goto L412;
+ }
+ L268:
+ if (register_operand (x1, DImode))
+ {
+ ro[0] = x1;
+ goto L269;
+ }
+ }
+ switch (GET_CODE (x1))
+ {
+ case CC0:
+ goto L2;
+ case STRICT_LOW_PART:
+ goto L218;
+ case PC:
+ goto L1081;
+ }
+ L1147:
+ ro[0] = x1;
+ goto L1148;
+ L1236:
+ switch (GET_MODE (x1))
+ {
+ case SImode:
+ if (register_operand (x1, SImode))
+ {
+ ro[0] = x1;
+ goto L1237;
+ }
+ break;
+ case HImode:
+ if (register_operand (x1, HImode))
+ {
+ ro[0] = x1;
+ goto L1252;
+ }
+ break;
+ case DFmode:
+ if (register_operand (x1, DFmode))
+ {
+ ro[0] = x1;
+ goto L1258;
+ }
+ break;
+ case SFmode:
+ if (register_operand (x1, SFmode))
+ {
+ ro[0] = x1;
+ goto L1287;
+ }
+ }
+ goto ret0;
+
+ L201:
+ x1 = XEXP (x0, 1);
+ if (general_operand (x1, SImode))
+ goto L205;
+ x1 = XEXP (x0, 0);
+ goto L208;
+
+ L205:
+ ro[1] = x1;
+ if (! TARGET_486)
+ return 35;
+ L206:
+ ro[1] = x1;
+ if (TARGET_486)
+ return 36;
+ x1 = XEXP (x0, 0);
+ goto L208;
+
+ L792:
+ x2 = XEXP (x1, 0);
+ if (GET_MODE (x2) == SImode && general_operand (x2, SImode))
+ {
+ ro[0] = x2;
+ goto L793;
+ }
+ goto L1147;
+
+ L793:
+ x2 = XEXP (x1, 1);
+ if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 1 && 1)
+ goto L794;
+ goto L1147;
+
+ L794:
+ x2 = XEXP (x1, 2);
+ if (general_operand (x2, SImode))
+ {
+ ro[2] = x2;
+ goto L795;
+ }
+ goto L1147;
+
+ L795:
+ x1 = XEXP (x0, 1);
+ if (GET_CODE (x1) == CONST_INT && 1)
+ {
+ ro[3] = x1;
+ if (! TARGET_486 && GET_CODE (operands[2]) != CONST_INT)
+ return 164;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L257:
+ x1 = XEXP (x0, 1);
+ switch (GET_MODE (x1))
+ {
+ case SImode:
+ switch (GET_CODE (x1))
+ {
+ case ZERO_EXTEND:
+ goto L258;
+ case SIGN_EXTEND:
+ goto L278;
+ case PLUS:
+ goto L418;
+ }
+ }
+ if (general_operand (x1, SImode))
+ {
+ ro[1] = x1;
+ return 38;
+ }
+ x1 = XEXP (x0, 0);
+ goto L431;
+
+ L258:
+ x2 = XEXP (x1, 0);
+ switch (GET_MODE (x2))
+ {
+ case HImode:
+ if (nonimmediate_operand (x2, HImode))
+ {
+ ro[1] = x2;
+ return 52;
+ }
+ break;
+ case QImode:
+ if (nonimmediate_operand (x2, QImode))
+ {
+ ro[1] = x2;
+ return 54;
+ }
+ }
+ x1 = XEXP (x0, 0);
+ goto L431;
+
+ L278:
+ x2 = XEXP (x1, 0);
+ switch (GET_MODE (x2))
+ {
+ case HImode:
+ if (nonimmediate_operand (x2, HImode))
+ {
+ ro[1] = x2;
+ return 57;
+ }
+ break;
+ case QImode:
+ if (nonimmediate_operand (x2, QImode))
+ {
+ ro[1] = x2;
+ return 59;
+ }
+ }
+ x1 = XEXP (x0, 0);
+ goto L431;
+
+ L418:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, SImode))
+ {
+ ro[1] = x2;
+ goto L419;
+ }
+ x1 = XEXP (x0, 0);
+ goto L431;
+
+ L419:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, SImode))
+ {
+ ro[2] = x2;
+ return 82;
+ }
+ x1 = XEXP (x0, 0);
+ goto L431;
+
+ L432:
+ x1 = XEXP (x0, 1);
+ if (address_operand (x1, QImode))
+ {
+ ro[1] = x1;
+ return 85;
+ }
+ x1 = XEXP (x0, 0);
+ goto L439;
+
+ L440:
+ x1 = XEXP (x0, 1);
+ if (GET_MODE (x1) != SImode)
+ {
+ x1 = XEXP (x0, 0);
+ goto L1147;
+ }
+ switch (GET_CODE (x1))
+ {
+ case MINUS:
+ goto L441;
+ case MULT:
+ goto L468;
+ case AND:
+ goto L541;
+ case IOR:
+ goto L556;
+ case XOR:
+ goto L799;
+ case NEG:
+ goto L590;
+ case NOT:
+ goto L667;
+ case ASHIFT:
+ goto L692;
+ case ASHIFTRT:
+ goto L720;
+ case LSHIFTRT:
+ goto L748;
+ case ROTATE:
+ goto L763;
+ case ROTATERT:
+ goto L778;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L441:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, SImode))
+ {
+ ro[1] = x2;
+ goto L442;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L442:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, SImode))
+ {
+ ro[2] = x2;
+ return 89;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L468:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, SImode))
+ {
+ ro[1] = x2;
+ goto L469;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L469:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, SImode))
+ goto L475;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L475:
+ ro[2] = x2;
+ if (GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) == 0x80)
+ return 96;
+ L476:
+ ro[2] = x2;
+ return 97;
+
+ L541:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, SImode))
+ {
+ ro[1] = x2;
+ goto L542;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L542:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, SImode))
+ {
+ ro[2] = x2;
+ return 109;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L556:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, SImode))
+ {
+ ro[1] = x2;
+ goto L557;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L557:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, SImode))
+ {
+ ro[2] = x2;
+ return 112;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L799:
+ x2 = XEXP (x1, 0);
+ if (GET_MODE (x2) == SImode && GET_CODE (x2) == ASHIFT && 1)
+ goto L800;
+ if (general_operand (x2, SImode))
+ {
+ ro[1] = x2;
+ goto L807;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L800:
+ x3 = XEXP (x2, 0);
+ if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 1 && 1)
+ goto L801;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L801:
+ x3 = XEXP (x2, 1);
+ if (general_operand (x3, SImode))
+ {
+ ro[1] = x3;
+ goto L802;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L802:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, SImode))
+ {
+ ro[2] = x2;
+ if (! TARGET_486 && GET_CODE (operands[1]) != CONST_INT)
+ return 165;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L807:
+ x2 = XEXP (x1, 1);
+ if (GET_MODE (x2) == SImode && GET_CODE (x2) == ASHIFT && 1)
+ goto L808;
+ if (general_operand (x2, SImode))
+ {
+ ro[2] = x2;
+ return 115;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L808:
+ x3 = XEXP (x2, 0);
+ if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 1 && 1)
+ goto L809;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L809:
+ x3 = XEXP (x2, 1);
+ if (general_operand (x3, SImode))
+ {
+ ro[2] = x3;
+ if (! TARGET_486 && GET_CODE (operands[2]) != CONST_INT)
+ return 166;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L590:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, SImode))
+ {
+ ro[1] = x2;
+ return 119;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L667:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, SImode))
+ {
+ ro[1] = x2;
+ return 137;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L692:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, SImode))
+ {
+ ro[1] = x2;
+ goto L693;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L693:
+ x2 = XEXP (x1, 1);
+ if (nonmemory_operand (x2, SImode))
+ {
+ ro[2] = x2;
+ return 143;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L720:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, SImode))
+ {
+ ro[1] = x2;
+ goto L721;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L721:
+ x2 = XEXP (x1, 1);
+ if (nonmemory_operand (x2, SImode))
+ {
+ ro[2] = x2;
+ return 149;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L748:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, SImode))
+ {
+ ro[1] = x2;
+ goto L749;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L749:
+ x2 = XEXP (x1, 1);
+ if (nonmemory_operand (x2, SImode))
+ {
+ ro[2] = x2;
+ return 155;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L763:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, SImode))
+ {
+ ro[1] = x2;
+ goto L764;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L764:
+ x2 = XEXP (x1, 1);
+ if (nonmemory_operand (x2, SImode))
+ {
+ ro[2] = x2;
+ return 158;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L778:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, SImode))
+ {
+ ro[1] = x2;
+ goto L779;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L779:
+ x2 = XEXP (x1, 1);
+ if (nonmemory_operand (x2, SImode))
+ {
+ ro[2] = x2;
+ return 161;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L212:
+ x1 = XEXP (x0, 1);
+ if (general_operand (x1, HImode))
+ {
+ ro[1] = x1;
+ return 39;
+ }
+ x1 = XEXP (x0, 0);
+ goto L214;
+
+ L261:
+ x1 = XEXP (x0, 1);
+ switch (GET_MODE (x1))
+ {
+ case HImode:
+ switch (GET_CODE (x1))
+ {
+ case ZERO_EXTEND:
+ goto L262;
+ case SIGN_EXTEND:
+ goto L282;
+ case PLUS:
+ goto L423;
+ case MINUS:
+ goto L446;
+ case AND:
+ goto L546;
+ case IOR:
+ goto L561;
+ case XOR:
+ goto L576;
+ case NEG:
+ goto L594;
+ case NOT:
+ goto L671;
+ case ASHIFT:
+ goto L697;
+ case ASHIFTRT:
+ goto L725;
+ case LSHIFTRT:
+ goto L753;
+ case ROTATE:
+ goto L768;
+ case ROTATERT:
+ goto L783;
+ }
+ break;
+ case SImode:
+ if (GET_CODE (x1) == MULT && 1)
+ goto L480;
+ }
+ if (general_operand (x1, HImode))
+ {
+ ro[1] = x1;
+ return 40;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L262:
+ x2 = XEXP (x1, 0);
+ if (nonimmediate_operand (x2, QImode))
+ {
+ ro[1] = x2;
+ return 53;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L282:
+ x2 = XEXP (x1, 0);
+ if (nonimmediate_operand (x2, QImode))
+ {
+ ro[1] = x2;
+ return 58;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L423:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, HImode))
+ {
+ ro[1] = x2;
+ goto L424;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L424:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, HImode))
+ {
+ ro[2] = x2;
+ return 83;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L446:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, HImode))
+ {
+ ro[1] = x2;
+ goto L447;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L447:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, HImode))
+ {
+ ro[2] = x2;
+ return 90;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L546:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, HImode))
+ {
+ ro[1] = x2;
+ goto L547;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L547:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, HImode))
+ {
+ ro[2] = x2;
+ return 110;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L561:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, HImode))
+ {
+ ro[1] = x2;
+ goto L562;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L562:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, HImode))
+ {
+ ro[2] = x2;
+ return 113;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L576:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, HImode))
+ {
+ ro[1] = x2;
+ goto L577;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L577:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, HImode))
+ {
+ ro[2] = x2;
+ return 116;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L594:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, HImode))
+ {
+ ro[1] = x2;
+ return 120;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L671:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, HImode))
+ {
+ ro[1] = x2;
+ return 138;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L697:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, HImode))
+ {
+ ro[1] = x2;
+ goto L698;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L698:
+ x2 = XEXP (x1, 1);
+ if (nonmemory_operand (x2, HImode))
+ {
+ ro[2] = x2;
+ return 144;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L725:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, HImode))
+ {
+ ro[1] = x2;
+ goto L726;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L726:
+ x2 = XEXP (x1, 1);
+ if (nonmemory_operand (x2, HImode))
+ {
+ ro[2] = x2;
+ return 150;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L753:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, HImode))
+ {
+ ro[1] = x2;
+ goto L754;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L754:
+ x2 = XEXP (x1, 1);
+ if (nonmemory_operand (x2, HImode))
+ {
+ ro[2] = x2;
+ return 156;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L768:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, HImode))
+ {
+ ro[1] = x2;
+ goto L769;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L769:
+ x2 = XEXP (x1, 1);
+ if (nonmemory_operand (x2, HImode))
+ {
+ ro[2] = x2;
+ return 159;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L783:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, HImode))
+ {
+ ro[1] = x2;
+ goto L784;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L784:
+ x2 = XEXP (x1, 1);
+ if (nonmemory_operand (x2, HImode))
+ {
+ ro[2] = x2;
+ return 162;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L480:
+ x2 = XEXP (x1, 0);
+ if (GET_MODE (x2) == HImode && GET_CODE (x2) == ZERO_EXTEND && 1)
+ goto L481;
+ if (general_operand (x2, HImode))
+ {
+ ro[1] = x2;
+ goto L457;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L481:
+ x3 = XEXP (x2, 0);
+ if (nonimmediate_operand (x3, QImode))
+ {
+ ro[1] = x3;
+ goto L482;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L482:
+ x2 = XEXP (x1, 1);
+ if (GET_MODE (x2) == HImode && GET_CODE (x2) == ZERO_EXTEND && 1)
+ goto L483;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L483:
+ x3 = XEXP (x2, 0);
+ if (nonimmediate_operand (x3, QImode))
+ {
+ ro[2] = x3;
+ return 98;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L457:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, HImode))
+ goto L463;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L463:
+ ro[2] = x2;
+ if (GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) == 0x80)
+ return 94;
+ L464:
+ ro[2] = x2;
+ return 95;
+
+ L222:
+ x1 = XEXP (x0, 1);
+ if (general_operand (x1, QImode))
+ {
+ ro[1] = x1;
+ return 42;
+ }
+ x1 = XEXP (x0, 0);
+ goto L224;
+
+ L427:
+ x1 = XEXP (x0, 1);
+ switch (GET_MODE (x1))
+ {
+ case QImode:
+ switch (GET_CODE (x1))
+ {
+ case PLUS:
+ goto L428;
+ case MINUS:
+ goto L451;
+ case DIV:
+ goto L487;
+ case UDIV:
+ goto L492;
+ case AND:
+ goto L551;
+ case IOR:
+ goto L566;
+ case XOR:
+ goto L581;
+ case NEG:
+ goto L598;
+ case NOT:
+ goto L675;
+ case ASHIFT:
+ goto L702;
+ case ASHIFTRT:
+ goto L730;
+ case LSHIFTRT:
+ goto L758;
+ case ROTATE:
+ goto L773;
+ case ROTATERT:
+ goto L788;
+ }
+ }
+ if (general_operand (x1, QImode))
+ {
+ ro[1] = x1;
+ return 43;
+ }
+ x1 = XEXP (x0, 0);
+ goto L829;
+
+ L428:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, QImode))
+ {
+ ro[1] = x2;
+ goto L429;
+ }
+ x1 = XEXP (x0, 0);
+ goto L829;
+
+ L429:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, QImode))
+ {
+ ro[2] = x2;
+ return 84;
+ }
+ x1 = XEXP (x0, 0);
+ goto L829;
+
+ L451:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, QImode))
+ {
+ ro[1] = x2;
+ goto L452;
+ }
+ x1 = XEXP (x0, 0);
+ goto L829;
+
+ L452:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, QImode))
+ {
+ ro[2] = x2;
+ return 91;
+ }
+ x1 = XEXP (x0, 0);
+ goto L829;
+
+ L487:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, HImode))
+ {
+ ro[1] = x2;
+ goto L488;
+ }
+ x1 = XEXP (x0, 0);
+ goto L829;
+
+ L488:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, QImode))
+ {
+ ro[2] = x2;
+ return 101;
+ }
+ x1 = XEXP (x0, 0);
+ goto L829;
+
+ L492:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, HImode))
+ {
+ ro[1] = x2;
+ goto L493;
+ }
+ x1 = XEXP (x0, 0);
+ goto L829;
+
+ L493:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, QImode))
+ {
+ ro[2] = x2;
+ return 102;
+ }
+ x1 = XEXP (x0, 0);
+ goto L829;
+
+ L551:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, QImode))
+ {
+ ro[1] = x2;
+ goto L552;
+ }
+ x1 = XEXP (x0, 0);
+ goto L829;
+
+ L552:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, QImode))
+ {
+ ro[2] = x2;
+ return 111;
+ }
+ x1 = XEXP (x0, 0);
+ goto L829;
+
+ L566:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, QImode))
+ {
+ ro[1] = x2;
+ goto L567;
+ }
+ x1 = XEXP (x0, 0);
+ goto L829;
+
+ L567:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, QImode))
+ {
+ ro[2] = x2;
+ return 114;
+ }
+ x1 = XEXP (x0, 0);
+ goto L829;
+
+ L581:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, QImode))
+ {
+ ro[1] = x2;
+ goto L582;
+ }
+ x1 = XEXP (x0, 0);
+ goto L829;
+
+ L582:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, QImode))
+ {
+ ro[2] = x2;
+ return 117;
+ }
+ x1 = XEXP (x0, 0);
+ goto L829;
+
+ L598:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, QImode))
+ {
+ ro[1] = x2;
+ return 121;
+ }
+ x1 = XEXP (x0, 0);
+ goto L829;
+
+ L675:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, QImode))
+ {
+ ro[1] = x2;
+ return 139;
+ }
+ x1 = XEXP (x0, 0);
+ goto L829;
+
+ L702:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, QImode))
+ {
+ ro[1] = x2;
+ goto L703;
+ }
+ x1 = XEXP (x0, 0);
+ goto L829;
+
+ L703:
+ x2 = XEXP (x1, 1);
+ if (nonmemory_operand (x2, QImode))
+ {
+ ro[2] = x2;
+ return 145;
+ }
+ x1 = XEXP (x0, 0);
+ goto L829;
+
+ L730:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, QImode))
+ {
+ ro[1] = x2;
+ goto L731;
+ }
+ x1 = XEXP (x0, 0);
+ goto L829;
+
+ L731:
+ x2 = XEXP (x1, 1);
+ if (nonmemory_operand (x2, QImode))
+ {
+ ro[2] = x2;
+ return 151;
+ }
+ x1 = XEXP (x0, 0);
+ goto L829;
+
+ L758:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, QImode))
+ {
+ ro[1] = x2;
+ goto L759;
+ }
+ x1 = XEXP (x0, 0);
+ goto L829;
+
+ L759:
+ x2 = XEXP (x1, 1);
+ if (nonmemory_operand (x2, QImode))
+ {
+ ro[2] = x2;
+ return 157;
+ }
+ x1 = XEXP (x0, 0);
+ goto L829;
+
+ L773:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, QImode))
+ {
+ ro[1] = x2;
+ goto L774;
+ }
+ x1 = XEXP (x0, 0);
+ goto L829;
+
+ L774:
+ x2 = XEXP (x1, 1);
+ if (nonmemory_operand (x2, QImode))
+ {
+ ro[2] = x2;
+ return 160;
+ }
+ x1 = XEXP (x0, 0);
+ goto L829;
+
+ L788:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, QImode))
+ {
+ ro[1] = x2;
+ goto L789;
+ }
+ x1 = XEXP (x0, 0);
+ goto L829;
+
+ L789:
+ x2 = XEXP (x1, 1);
+ if (nonmemory_operand (x2, QImode))
+ {
+ ro[2] = x2;
+ return 163;
+ }
+ x1 = XEXP (x0, 0);
+ goto L829;
+
+ L830:
+ x1 = XEXP (x0, 1);
+ if (GET_MODE (x1) != QImode)
+ {
+ x1 = XEXP (x0, 0);
+ goto L1147;
+ }
+ switch (GET_CODE (x1))
+ {
+ case EQ:
+ goto L831;
+ case NE:
+ goto L836;
+ case GT:
+ goto L841;
+ case GTU:
+ goto L846;
+ case LT:
+ goto L851;
+ case LTU:
+ goto L856;
+ case GE:
+ goto L861;
+ case GEU:
+ goto L866;
+ case LE:
+ goto L871;
+ case LEU:
+ goto L876;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L831:
+ x2 = XEXP (x1, 0);
+ if (GET_CODE (x2) == CC0 && 1)
+ goto L832;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L832:
+ x2 = XEXP (x1, 1);
+ if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
+ return 171;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L836:
+ x2 = XEXP (x1, 0);
+ if (GET_CODE (x2) == CC0 && 1)
+ goto L837;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L837:
+ x2 = XEXP (x1, 1);
+ if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
+ return 173;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L841:
+ x2 = XEXP (x1, 0);
+ if (GET_CODE (x2) == CC0 && 1)
+ goto L842;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L842:
+ x2 = XEXP (x1, 1);
+ if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
+ return 175;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L846:
+ x2 = XEXP (x1, 0);
+ if (GET_CODE (x2) == CC0 && 1)
+ goto L847;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L847:
+ x2 = XEXP (x1, 1);
+ if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
+ return 177;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L851:
+ x2 = XEXP (x1, 0);
+ if (GET_CODE (x2) == CC0 && 1)
+ goto L852;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L852:
+ x2 = XEXP (x1, 1);
+ if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
+ return 179;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L856:
+ x2 = XEXP (x1, 0);
+ if (GET_CODE (x2) == CC0 && 1)
+ goto L857;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L857:
+ x2 = XEXP (x1, 1);
+ if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
+ return 181;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L861:
+ x2 = XEXP (x1, 0);
+ if (GET_CODE (x2) == CC0 && 1)
+ goto L862;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L862:
+ x2 = XEXP (x1, 1);
+ if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
+ return 183;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L866:
+ x2 = XEXP (x1, 0);
+ if (GET_CODE (x2) == CC0 && 1)
+ goto L867;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L867:
+ x2 = XEXP (x1, 1);
+ if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
+ return 185;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L871:
+ x2 = XEXP (x1, 0);
+ if (GET_CODE (x2) == CC0 && 1)
+ goto L872;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L872:
+ x2 = XEXP (x1, 1);
+ if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
+ return 187;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L876:
+ x2 = XEXP (x1, 0);
+ if (GET_CODE (x2) == CC0 && 1)
+ goto L877;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L877:
+ x2 = XEXP (x1, 1);
+ if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
+ return 189;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L232:
+ x1 = XEXP (x0, 1);
+ if (general_operand (x1, SFmode))
+ {
+ ro[1] = x1;
+ return 45;
+ }
+ x1 = XEXP (x0, 0);
+ goto L234;
+
+ L235:
+ x1 = XEXP (x0, 1);
+ if (general_operand (x1, SFmode))
+ {
+ ro[1] = x1;
+ return 46;
+ }
+ x1 = XEXP (x0, 0);
+ goto L399;
+
+ L400:
+ x1 = XEXP (x0, 1);
+ if (GET_MODE (x1) != SFmode)
+ {
+ x1 = XEXP (x0, 0);
+ goto L1147;
+ }
+ switch (GET_CODE (x1))
+ {
+ case FLOAT:
+ goto L401;
+ case NEG:
+ goto L602;
+ case ABS:
+ goto L615;
+ case SQRT:
+ goto L628;
+ case UNSPEC:
+ if (XINT (x1, 1) == 1 && XVECLEN (x1, 0) == 1 && 1)
+ goto L645;
+ if (XINT (x1, 1) == 2 && XVECLEN (x1, 0) == 1 && 1)
+ goto L658;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L401:
+ x2 = XEXP (x1, 0);
+ switch (GET_MODE (x2))
+ {
+ case DImode:
+ if (nonimmediate_operand (x2, DImode))
+ {
+ ro[1] = x2;
+ if (TARGET_80387)
+ return 78;
+ }
+ break;
+ case SImode:
+ if (nonimmediate_operand (x2, SImode))
+ {
+ ro[1] = x2;
+ if (TARGET_80387)
+ return 80;
+ }
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L602:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, SFmode))
+ {
+ ro[1] = x2;
+ if (TARGET_80387)
+ return 122;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L615:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, SFmode))
+ {
+ ro[1] = x2;
+ if (TARGET_80387)
+ return 125;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L628:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, SFmode))
+ {
+ ro[1] = x2;
+ if (TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math))
+ return 128;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L645:
+ x2 = XVECEXP (x1, 0, 0);
+ if (register_operand (x2, SFmode))
+ {
+ ro[1] = x2;
+ if (TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math))
+ return 132;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L658:
+ x2 = XVECEXP (x1, 0, 0);
+ if (register_operand (x2, SFmode))
+ {
+ ro[1] = x2;
+ if (TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math))
+ return 135;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L238:
+ x1 = XEXP (x0, 1);
+ if (general_operand (x1, DFmode))
+ {
+ ro[1] = x1;
+ return 47;
+ }
+ x1 = XEXP (x0, 0);
+ goto L247;
+
+ L289:
+ x1 = XEXP (x0, 1);
+ if (GET_MODE (x1) == DFmode && GET_CODE (x1) == FLOAT_EXTEND && 1)
+ goto L290;
+ if (general_operand (x1, DFmode))
+ {
+ ro[1] = x1;
+ return 49;
+ }
+ x1 = XEXP (x0, 0);
+ goto L395;
+
+ L290:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, SFmode))
+ {
+ ro[1] = x2;
+ if (TARGET_80387)
+ return 60;
+ }
+ x1 = XEXP (x0, 0);
+ goto L395;
+
+ L396:
+ x1 = XEXP (x0, 1);
+ if (GET_MODE (x1) != DFmode)
+ {
+ x1 = XEXP (x0, 0);
+ goto L1147;
+ }
+ switch (GET_CODE (x1))
+ {
+ case FLOAT:
+ goto L397;
+ case NEG:
+ goto L610;
+ case ABS:
+ goto L623;
+ case SQRT:
+ goto L636;
+ case UNSPEC:
+ if (XINT (x1, 1) == 1 && XVECLEN (x1, 0) == 1 && 1)
+ goto L649;
+ if (XINT (x1, 1) == 2 && XVECLEN (x1, 0) == 1 && 1)
+ goto L662;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L397:
+ x2 = XEXP (x1, 0);
+ switch (GET_MODE (x2))
+ {
+ case DImode:
+ if (nonimmediate_operand (x2, DImode))
+ {
+ ro[1] = x2;
+ if (TARGET_80387)
+ return 77;
+ }
+ break;
+ case SImode:
+ if (nonimmediate_operand (x2, SImode))
+ {
+ ro[1] = x2;
+ if (TARGET_80387)
+ return 79;
+ }
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L610:
+ x2 = XEXP (x1, 0);
+ if (GET_MODE (x2) == DFmode && GET_CODE (x2) == FLOAT_EXTEND && 1)
+ goto L611;
+ if (general_operand (x2, DFmode))
+ {
+ ro[1] = x2;
+ if (TARGET_80387)
+ return 123;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L611:
+ x3 = XEXP (x2, 0);
+ if (general_operand (x3, SFmode))
+ {
+ ro[1] = x3;
+ if (TARGET_80387)
+ return 124;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L623:
+ x2 = XEXP (x1, 0);
+ if (GET_MODE (x2) == DFmode && GET_CODE (x2) == FLOAT_EXTEND && 1)
+ goto L624;
+ if (general_operand (x2, DFmode))
+ {
+ ro[1] = x2;
+ if (TARGET_80387)
+ return 126;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L624:
+ x3 = XEXP (x2, 0);
+ if (general_operand (x3, SFmode))
+ {
+ ro[1] = x3;
+ if (TARGET_80387)
+ return 127;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L636:
+ x2 = XEXP (x1, 0);
+ if (GET_MODE (x2) == DFmode && GET_CODE (x2) == FLOAT_EXTEND && 1)
+ goto L637;
+ if (general_operand (x2, DFmode))
+ {
+ ro[1] = x2;
+ if (TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math))
+ return 129;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L637:
+ x3 = XEXP (x2, 0);
+ if (general_operand (x3, SFmode))
+ {
+ ro[1] = x3;
+ if (TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math))
+ return 130;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L649:
+ x2 = XVECEXP (x1, 0, 0);
+ if (GET_MODE (x2) != DFmode)
+ {
+ x1 = XEXP (x0, 0);
+ goto L1147;
+ }
+ if (GET_CODE (x2) == FLOAT_EXTEND && 1)
+ goto L650;
+ if (register_operand (x2, DFmode))
+ {
+ ro[1] = x2;
+ if (TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math))
+ return 131;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L650:
+ x3 = XEXP (x2, 0);
+ if (register_operand (x3, SFmode))
+ {
+ ro[1] = x3;
+ if (TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math))
+ return 133;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L662:
+ x2 = XVECEXP (x1, 0, 0);
+ if (GET_MODE (x2) != DFmode)
+ {
+ x1 = XEXP (x0, 0);
+ goto L1147;
+ }
+ if (GET_CODE (x2) == FLOAT_EXTEND && 1)
+ goto L663;
+ if (register_operand (x2, DFmode))
+ {
+ ro[1] = x2;
+ if (TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math))
+ return 134;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L663:
+ x3 = XEXP (x2, 0);
+ if (register_operand (x3, SFmode))
+ {
+ ro[1] = x3;
+ if (TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math))
+ return 136;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L251:
+ x1 = XEXP (x0, 1);
+ if (general_operand (x1, DImode))
+ {
+ ro[1] = x1;
+ return 50;
+ }
+ x1 = XEXP (x0, 0);
+ goto L253;
+
+ L412:
+ x1 = XEXP (x0, 1);
+ switch (GET_MODE (x1))
+ {
+ case DImode:
+ switch (GET_CODE (x1))
+ {
+ case PLUS:
+ goto L413;
+ case MINUS:
+ goto L436;
+ case NEG:
+ goto L586;
+ }
+ }
+ if (general_operand (x1, DImode))
+ {
+ ro[1] = x1;
+ return 51;
+ }
+ x1 = XEXP (x0, 0);
+ goto L268;
+
+ L413:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, DImode))
+ {
+ ro[1] = x2;
+ goto L414;
+ }
+ x1 = XEXP (x0, 0);
+ goto L268;
+
+ L414:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, DImode))
+ {
+ ro[2] = x2;
+ return 81;
+ }
+ x1 = XEXP (x0, 0);
+ goto L268;
+
+ L436:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, DImode))
+ {
+ ro[1] = x2;
+ goto L437;
+ }
+ x1 = XEXP (x0, 0);
+ goto L268;
+
+ L437:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, DImode))
+ {
+ ro[2] = x2;
+ return 88;
+ }
+ x1 = XEXP (x0, 0);
+ goto L268;
+
+ L586:
+ x2 = XEXP (x1, 0);
+ if (general_operand (x2, DImode))
+ {
+ ro[1] = x2;
+ return 118;
+ }
+ x1 = XEXP (x0, 0);
+ goto L268;
+
+ L269:
+ x1 = XEXP (x0, 1);
+ if (GET_MODE (x1) != DImode)
+ {
+ x1 = XEXP (x0, 0);
+ goto L1147;
+ }
+ switch (GET_CODE (x1))
+ {
+ case ZERO_EXTEND:
+ goto L270;
+ case SIGN_EXTEND:
+ goto L274;
+ case ASHIFT:
+ goto L679;
+ case ASHIFTRT:
+ goto L707;
+ case LSHIFTRT:
+ goto L735;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L270:
+ x2 = XEXP (x1, 0);
+ if (register_operand (x2, SImode))
+ {
+ ro[1] = x2;
+ return 55;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L274:
+ x2 = XEXP (x1, 0);
+ if (register_operand (x2, SImode))
+ {
+ ro[1] = x2;
+ return 56;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L679:
+ x2 = XEXP (x1, 0);
+ if (register_operand (x2, DImode))
+ {
+ ro[1] = x2;
+ goto L680;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L680:
+ x2 = XEXP (x1, 1);
+ if (GET_CODE (x2) == CONST_INT && 1)
+ {
+ ro[2] = x2;
+ return 141;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L707:
+ x2 = XEXP (x1, 0);
+ if (register_operand (x2, DImode))
+ {
+ ro[1] = x2;
+ goto L708;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L708:
+ x2 = XEXP (x1, 1);
+ if (GET_CODE (x2) == CONST_INT && 1)
+ {
+ ro[2] = x2;
+ return 147;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L735:
+ x2 = XEXP (x1, 0);
+ if (register_operand (x2, DImode))
+ {
+ ro[1] = x2;
+ goto L736;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L736:
+ x2 = XEXP (x1, 1);
+ if (GET_CODE (x2) == CONST_INT && 1)
+ {
+ ro[2] = x2;
+ return 153;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+ L2:
+ tem = recog_1 (x0, insn, pnum_clobbers);
+ if (tem >= 0) return tem;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L218:
+ x2 = XEXP (x1, 0);
+ switch (GET_MODE (x2))
+ {
+ case HImode:
+ if (general_operand (x2, HImode))
+ {
+ ro[0] = x2;
+ goto L219;
+ }
+ break;
+ case QImode:
+ if (general_operand (x2, QImode))
+ {
+ ro[0] = x2;
+ goto L229;
+ }
+ }
+ goto L1147;
+
+ L219:
+ x1 = XEXP (x0, 1);
+ if (general_operand (x1, HImode))
+ {
+ ro[1] = x1;
+ return 41;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L229:
+ x1 = XEXP (x0, 1);
+ if (general_operand (x1, QImode))
+ {
+ ro[1] = x1;
+ return 44;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L1081:
+ x1 = XEXP (x0, 1);
+ switch (GET_CODE (x1))
+ {
+ case MINUS:
+ if (GET_MODE (x1) == SImode && 1)
+ goto L1082;
+ break;
+ case IF_THEN_ELSE:
+ goto L881;
+ case LABEL_REF:
+ goto L1061;
+ }
+ L1064:
+ if (general_operand (x1, SImode))
+ {
+ ro[0] = x1;
+ return 221;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L1082:
+ x2 = XEXP (x1, 0);
+ if (GET_MODE (x2) == SImode && GET_CODE (x2) == REG && XINT (x2, 0) == 3 && 1)
+ goto L1083;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L1083:
+ x2 = XEXP (x1, 1);
+ if (GET_MODE (x2) == SImode && GET_CODE (x2) == MEM && 1)
+ goto L1084;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L1084:
+ x3 = XEXP (x2, 0);
+ if (GET_MODE (x3) == SImode && GET_CODE (x3) == PLUS && 1)
+ goto L1085;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L1085:
+ x4 = XEXP (x3, 0);
+ if (GET_MODE (x4) == SImode && GET_CODE (x4) == MULT && 1)
+ goto L1086;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L1086:
+ x5 = XEXP (x4, 0);
+ if (register_operand (x5, SImode))
+ {
+ ro[0] = x5;
+ goto L1087;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L1087:
+ x5 = XEXP (x4, 1);
+ if (GET_CODE (x5) == CONST_INT && XWINT (x5, 0) == 4 && 1)
+ goto L1088;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L1088:
+ x4 = XEXP (x3, 1);
+ if (GET_CODE (x4) == LABEL_REF && 1)
+ goto L1089;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L1089:
+ x5 = XEXP (x4, 0);
+ if (pnum_clobbers != 0 && 1)
+ {
+ ro[1] = x5;
+ *pnum_clobbers = 1;
+ return 223;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1147;
+ L881:
+ tem = recog_2 (x0, insn, pnum_clobbers);
+ if (tem >= 0) return tem;
+ x1 = XEXP (x0, 0);
+ goto L1147;
+
+ L1061:
+ x2 = XEXP (x1, 0);
+ ro[0] = x2;
+ return 220;
+
+ L1148:
+ x1 = XEXP (x0, 1);
+ if (GET_CODE (x1) == CALL && 1)
+ goto L1149;
+ x1 = XEXP (x0, 0);
+ goto L1236;
+
+ L1149:
+ x2 = XEXP (x1, 0);
+ if (call_insn_operand (x2, QImode))
+ {
+ ro[1] = x2;
+ goto L1150;
+ }
+ L1154:
+ if (GET_MODE (x2) == QImode && GET_CODE (x2) == MEM && 1)
+ goto L1155;
+ x1 = XEXP (x0, 0);
+ goto L1236;
+
+ L1150:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, SImode))
+ {
+ ro[2] = x2;
+ return 235;
+ }
+ x2 = XEXP (x1, 0);
+ goto L1154;
+
+ L1155:
+ x3 = XEXP (x2, 0);
+ if (symbolic_operand (x3, SImode))
+ {
+ ro[1] = x3;
+ goto L1156;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1236;
+
+ L1156:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, SImode))
+ {
+ ro[2] = x2;
+ if (!HALF_PIC_P ())
+ return 236;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1236;
+
+ L1237:
+ x1 = XEXP (x0, 1);
+ if (GET_MODE (x1) == SImode && GET_CODE (x1) == PLUS && 1)
+ goto L1238;
+ goto ret0;
+
+ L1238:
+ x2 = XEXP (x1, 0);
+ if (GET_MODE (x2) == SImode && GET_CODE (x2) == FFS && 1)
+ goto L1239;
+ goto ret0;
+
+ L1239:
+ x3 = XEXP (x2, 0);
+ if (general_operand (x3, SImode))
+ {
+ ro[1] = x3;
+ goto L1240;
+ }
+ goto ret0;
+
+ L1240:
+ x2 = XEXP (x1, 1);
+ if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == -1 && pnum_clobbers != 0 && 1)
+ {
+ *pnum_clobbers = 1;
+ return 250;
+ }
+ goto ret0;
+
+ L1252:
+ x1 = XEXP (x0, 1);
+ if (GET_MODE (x1) == HImode && GET_CODE (x1) == PLUS && 1)
+ goto L1253;
+ goto ret0;
+
+ L1253:
+ x2 = XEXP (x1, 0);
+ if (GET_MODE (x2) == HImode && GET_CODE (x2) == FFS && 1)
+ goto L1254;
+ goto ret0;
+
+ L1254:
+ x3 = XEXP (x2, 0);
+ if (general_operand (x3, HImode))
+ {
+ ro[1] = x3;
+ goto L1255;
+ }
+ goto ret0;
+
+ L1255:
+ x2 = XEXP (x1, 1);
+ if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == -1 && pnum_clobbers != 0 && 1)
+ {
+ *pnum_clobbers = 1;
+ return 252;
+ }
+ goto ret0;
+
+ L1258:
+ x1 = XEXP (x0, 1);
+ if (binary_387_op (x1, DFmode))
+ {
+ ro[3] = x1;
+ goto L1264;
+ }
+ goto ret0;
+
+ L1264:
+ x2 = XEXP (x1, 0);
+ switch (GET_MODE (x2))
+ {
+ case DFmode:
+ switch (GET_CODE (x2))
+ {
+ case FLOAT:
+ goto L1265;
+ case FLOAT_EXTEND:
+ goto L1271;
+ case SUBREG:
+ case REG:
+ case MEM:
+ if (nonimmediate_operand (x2, DFmode))
+ {
+ ro[1] = x2;
+ goto L1260;
+ }
+ }
+ }
+ L1276:
+ if (general_operand (x2, DFmode))
+ {
+ ro[1] = x2;
+ goto L1277;
+ }
+ goto ret0;
+
+ L1265:
+ x3 = XEXP (x2, 0);
+ if (general_operand (x3, SImode))
+ {
+ ro[1] = x3;
+ goto L1266;
+ }
+ goto ret0;
+
+ L1266:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, DFmode))
+ {
+ ro[2] = x2;
+ if (TARGET_80387)
+ return 254;
+ }
+ goto ret0;
+
+ L1271:
+ x3 = XEXP (x2, 0);
+ if (general_operand (x3, SFmode))
+ {
+ ro[1] = x3;
+ goto L1272;
+ }
+ goto ret0;
+
+ L1272:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, DFmode))
+ {
+ ro[2] = x2;
+ if (TARGET_80387)
+ return 255;
+ }
+ goto ret0;
+
+ L1260:
+ x2 = XEXP (x1, 1);
+ if (nonimmediate_operand (x2, DFmode))
+ {
+ ro[2] = x2;
+ if (TARGET_80387)
+ return 253;
+ }
+ x2 = XEXP (x1, 0);
+ goto L1276;
+
+ L1277:
+ x2 = XEXP (x1, 1);
+ if (GET_MODE (x2) != DFmode)
+ goto ret0;
+ switch (GET_CODE (x2))
+ {
+ case FLOAT:
+ goto L1278;
+ case FLOAT_EXTEND:
+ goto L1284;
+ }
+ goto ret0;
+
+ L1278:
+ x3 = XEXP (x2, 0);
+ if (general_operand (x3, SImode))
+ {
+ ro[2] = x3;
+ if (TARGET_80387)
+ return 256;
+ }
+ goto ret0;
+
+ L1284:
+ x3 = XEXP (x2, 0);
+ if (general_operand (x3, SFmode))
+ {
+ ro[2] = x3;
+ if (TARGET_80387)
+ return 257;
+ }
+ goto ret0;
+
+ L1287:
+ x1 = XEXP (x0, 1);
+ if (binary_387_op (x1, SFmode))
+ {
+ ro[3] = x1;
+ goto L1293;
+ }
+ goto ret0;
+
+ L1293:
+ x2 = XEXP (x1, 0);
+ switch (GET_MODE (x2))
+ {
+ case SFmode:
+ if (GET_CODE (x2) == FLOAT && 1)
+ goto L1294;
+ if (nonimmediate_operand (x2, SFmode))
+ {
+ ro[1] = x2;
+ goto L1289;
+ }
+ }
+ L1299:
+ if (general_operand (x2, SFmode))
+ {
+ ro[1] = x2;
+ goto L1300;
+ }
+ goto ret0;
+
+ L1294:
+ x3 = XEXP (x2, 0);
+ if (general_operand (x3, SImode))
+ {
+ ro[1] = x3;
+ goto L1295;
+ }
+ goto ret0;
+
+ L1295:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, SFmode))
+ {
+ ro[2] = x2;
+ if (TARGET_80387)
+ return 259;
+ }
+ goto ret0;
+
+ L1289:
+ x2 = XEXP (x1, 1);
+ if (nonimmediate_operand (x2, SFmode))
+ {
+ ro[2] = x2;
+ if (TARGET_80387)
+ return 258;
+ }
+ x2 = XEXP (x1, 0);
+ goto L1299;
+
+ L1300:
+ x2 = XEXP (x1, 1);
+ if (GET_MODE (x2) == SFmode && GET_CODE (x2) == FLOAT && 1)
+ goto L1301;
+ goto ret0;
+
+ L1301:
+ x3 = XEXP (x2, 0);
+ if (general_operand (x3, SImode))
+ {
+ ro[2] = x3;
+ if (TARGET_80387)
+ return 260;
+ }
+ goto ret0;
+ ret0: return -1;
+}
+
+int
+recog_4 (x0, insn, pnum_clobbers)
+ register rtx x0;
+ rtx insn;
+ int *pnum_clobbers;
+{
+ register rtx *ro = &recog_operand[0];
+ register rtx x1, x2, x3, x4, x5, x6;
+ int tem;
+
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 1);
+ switch (GET_MODE (x2))
+ {
+ case SFmode:
+ if (register_operand (x2, SFmode))
+ {
+ ro[0] = x2;
+ goto L13;
+ }
+ break;
+ case DFmode:
+ if (register_operand (x2, DFmode))
+ {
+ ro[0] = x2;
+ goto L22;
+ }
+ }
+ L45:
+ if (VOIDmode_compare_op (x2, VOIDmode))
+ {
+ ro[2] = x2;
+ goto L74;
+ }
+ L118:
+ if (GET_MODE (x2) == CCFPEQmode && GET_CODE (x2) == COMPARE && 1)
+ goto L119;
+ goto ret0;
+
+ L13:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L14;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 1);
+ goto L45;
+
+ L14:
+ x2 = XEXP (x1, 0);
+ if (scratch_operand (x2, HImode))
+ {
+ ro[1] = x2;
+ if (TARGET_80387 && ! TARGET_IEEE_FP)
+ return 6;
+ }
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 1);
+ goto L45;
+
+ L22:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L23;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 1);
+ goto L45;
+
+ L23:
+ x2 = XEXP (x1, 0);
+ if (scratch_operand (x2, HImode))
+ {
+ ro[1] = x2;
+ if (TARGET_80387 && ! TARGET_IEEE_FP)
+ return 8;
+ }
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 1);
+ goto L45;
+
+ L74:
+ x3 = XEXP (x2, 0);
+ switch (GET_MODE (x3))
+ {
+ case DFmode:
+ switch (GET_CODE (x3))
+ {
+ case FLOAT:
+ goto L75;
+ case FLOAT_EXTEND:
+ goto L105;
+ case SUBREG:
+ case REG:
+ case MEM:
+ if (nonimmediate_operand (x3, DFmode))
+ {
+ ro[0] = x3;
+ goto L47;
+ }
+ }
+ L59:
+ if (register_operand (x3, DFmode))
+ {
+ ro[0] = x3;
+ goto L60;
+ }
+ break;
+ case SFmode:
+ if (GET_CODE (x3) == FLOAT && 1)
+ goto L161;
+ if (nonimmediate_operand (x3, SFmode))
+ {
+ ro[0] = x3;
+ goto L133;
+ }
+ L145:
+ if (register_operand (x3, SFmode))
+ {
+ ro[0] = x3;
+ goto L146;
+ }
+ }
+ goto L118;
+
+ L75:
+ x4 = XEXP (x3, 0);
+ if (nonimmediate_operand (x4, SImode))
+ {
+ ro[0] = x4;
+ goto L76;
+ }
+ goto L118;
+
+ L76:
+ x3 = XEXP (x2, 1);
+ if (register_operand (x3, DFmode))
+ {
+ ro[1] = x3;
+ goto L77;
+ }
+ goto L118;
+
+ L77:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L78;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 1);
+ goto L118;
+
+ L78:
+ x2 = XEXP (x1, 0);
+ if (scratch_operand (x2, HImode))
+ {
+ ro[3] = x2;
+ if (TARGET_80387)
+ return 18;
+ }
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 1);
+ goto L118;
+
+ L105:
+ x4 = XEXP (x3, 0);
+ if (nonimmediate_operand (x4, SFmode))
+ {
+ ro[0] = x4;
+ goto L106;
+ }
+ goto L118;
+
+ L106:
+ x3 = XEXP (x2, 1);
+ if (register_operand (x3, DFmode))
+ {
+ ro[1] = x3;
+ goto L107;
+ }
+ goto L118;
+
+ L107:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L108;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 1);
+ goto L118;
+
+ L108:
+ x2 = XEXP (x1, 0);
+ if (scratch_operand (x2, HImode))
+ {
+ ro[3] = x2;
+ if (TARGET_80387)
+ return 20;
+ }
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 1);
+ goto L118;
+
+ L47:
+ x3 = XEXP (x2, 1);
+ if (nonimmediate_operand (x3, DFmode))
+ {
+ ro[1] = x3;
+ goto L48;
+ }
+ x3 = XEXP (x2, 0);
+ goto L59;
+
+ L48:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L49;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 1);
+ x3 = XEXP (x2, 0);
+ goto L59;
+
+ L49:
+ x2 = XEXP (x1, 0);
+ if (scratch_operand (x2, HImode))
+ {
+ ro[3] = x2;
+ if (TARGET_80387
+ && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM))
+ return 16;
+ }
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 1);
+ x3 = XEXP (x2, 0);
+ goto L59;
+
+ L60:
+ x3 = XEXP (x2, 1);
+ if (GET_MODE (x3) != DFmode)
+ {
+ goto L118;
+ }
+ switch (GET_CODE (x3))
+ {
+ case FLOAT:
+ goto L61;
+ case FLOAT_EXTEND:
+ goto L91;
+ }
+ goto L118;
+
+ L61:
+ x4 = XEXP (x3, 0);
+ if (nonimmediate_operand (x4, SImode))
+ {
+ ro[1] = x4;
+ goto L62;
+ }
+ goto L118;
+
+ L62:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L63;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 1);
+ goto L118;
+
+ L63:
+ x2 = XEXP (x1, 0);
+ if (scratch_operand (x2, HImode))
+ {
+ ro[3] = x2;
+ if (TARGET_80387)
+ return 17;
+ }
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 1);
+ goto L118;
+
+ L91:
+ x4 = XEXP (x3, 0);
+ if (nonimmediate_operand (x4, SFmode))
+ {
+ ro[1] = x4;
+ goto L92;
+ }
+ goto L118;
+
+ L92:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L93;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 1);
+ goto L118;
+
+ L93:
+ x2 = XEXP (x1, 0);
+ if (scratch_operand (x2, HImode))
+ {
+ ro[3] = x2;
+ if (TARGET_80387)
+ return 19;
+ }
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 1);
+ goto L118;
+
+ L161:
+ x4 = XEXP (x3, 0);
+ if (nonimmediate_operand (x4, SImode))
+ {
+ ro[0] = x4;
+ goto L162;
+ }
+ goto L118;
+
+ L162:
+ x3 = XEXP (x2, 1);
+ if (register_operand (x3, SFmode))
+ {
+ ro[1] = x3;
+ goto L163;
+ }
+ goto L118;
+
+ L163:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L164;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 1);
+ goto L118;
+
+ L164:
+ x2 = XEXP (x1, 0);
+ if (scratch_operand (x2, HImode))
+ {
+ ro[3] = x2;
+ if (TARGET_80387)
+ return 24;
+ }
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 1);
+ goto L118;
+
+ L133:
+ x3 = XEXP (x2, 1);
+ if (nonimmediate_operand (x3, SFmode))
+ {
+ ro[1] = x3;
+ goto L134;
+ }
+ x3 = XEXP (x2, 0);
+ goto L145;
+
+ L134:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L135;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 1);
+ x3 = XEXP (x2, 0);
+ goto L145;
+
+ L135:
+ x2 = XEXP (x1, 0);
+ if (scratch_operand (x2, HImode))
+ {
+ ro[3] = x2;
+ if (TARGET_80387
+ && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM))
+ return 22;
+ }
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 1);
+ x3 = XEXP (x2, 0);
+ goto L145;
+
+ L146:
+ x3 = XEXP (x2, 1);
+ if (GET_MODE (x3) == SFmode && GET_CODE (x3) == FLOAT && 1)
+ goto L147;
+ goto L118;
+
+ L147:
+ x4 = XEXP (x3, 0);
+ if (nonimmediate_operand (x4, SImode))
+ {
+ ro[1] = x4;
+ goto L148;
+ }
+ goto L118;
+
+ L148:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L149;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 1);
+ goto L118;
+
+ L149:
+ x2 = XEXP (x1, 0);
+ if (scratch_operand (x2, HImode))
+ {
+ ro[3] = x2;
+ if (TARGET_80387)
+ return 23;
+ }
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 1);
+ goto L118;
+
+ L119:
+ x3 = XEXP (x2, 0);
+ switch (GET_MODE (x3))
+ {
+ case DFmode:
+ if (register_operand (x3, DFmode))
+ {
+ ro[0] = x3;
+ goto L120;
+ }
+ break;
+ case SFmode:
+ if (register_operand (x3, SFmode))
+ {
+ ro[0] = x3;
+ goto L176;
+ }
+ }
+ goto ret0;
+
+ L120:
+ x3 = XEXP (x2, 1);
+ if (register_operand (x3, DFmode))
+ {
+ ro[1] = x3;
+ goto L121;
+ }
+ goto ret0;
+
+ L121:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L122;
+ goto ret0;
+
+ L122:
+ x2 = XEXP (x1, 0);
+ if (scratch_operand (x2, HImode))
+ {
+ ro[2] = x2;
+ if (TARGET_80387)
+ return 21;
+ }
+ goto ret0;
+
+ L176:
+ x3 = XEXP (x2, 1);
+ if (register_operand (x3, SFmode))
+ {
+ ro[1] = x3;
+ goto L177;
+ }
+ goto ret0;
+
+ L177:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L178;
+ goto ret0;
+
+ L178:
+ x2 = XEXP (x1, 0);
+ if (scratch_operand (x2, HImode))
+ {
+ ro[2] = x2;
+ if (TARGET_80387)
+ return 25;
+ }
+ goto ret0;
+ ret0: return -1;
+}
+
+int
+recog_5 (x0, insn, pnum_clobbers)
+ register rtx x0;
+ rtx insn;
+ int *pnum_clobbers;
+{
+ register rtx *ro = &recog_operand[0];
+ register rtx x1, x2, x3, x4, x5, x6;
+ int tem;
+
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ switch (GET_MODE (x2))
+ {
+ case DFmode:
+ if (register_operand (x2, DFmode))
+ {
+ ro[0] = x2;
+ goto L242;
+ }
+ break;
+ case SFmode:
+ if (nonimmediate_operand (x2, SFmode))
+ {
+ ro[0] = x2;
+ goto L294;
+ }
+ break;
+ case SImode:
+ if (register_operand (x2, SImode))
+ {
+ ro[0] = x2;
+ goto L497;
+ }
+ break;
+ case HImode:
+ if (register_operand (x2, HImode))
+ {
+ ro[0] = x2;
+ goto L508;
+ }
+ break;
+ case DImode:
+ if (register_operand (x2, DImode))
+ {
+ ro[0] = x2;
+ goto L684;
+ }
+ }
+ switch (GET_CODE (x2))
+ {
+ case CC0:
+ goto L12;
+ case PC:
+ goto L1068;
+ }
+ L1125:
+ ro[0] = x2;
+ goto L1126;
+ L1228:
+ switch (GET_MODE (x2))
+ {
+ case SImode:
+ if (register_operand (x2, SImode))
+ {
+ ro[0] = x2;
+ goto L1229;
+ }
+ break;
+ case HImode:
+ if (register_operand (x2, HImode))
+ {
+ ro[0] = x2;
+ goto L1244;
+ }
+ }
+ goto ret0;
+
+ L242:
+ x2 = XEXP (x1, 1);
+ if (register_operand (x2, DFmode))
+ {
+ ro[1] = x2;
+ goto L243;
+ }
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L243:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == SET && 1)
+ goto L244;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L244:
+ x2 = XEXP (x1, 0);
+ if (rtx_equal_p (x2, ro[1]) && 1)
+ goto L245;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L245:
+ x2 = XEXP (x1, 1);
+ if (rtx_equal_p (x2, ro[0]) && 1)
+ return 48;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L294:
+ x2 = XEXP (x1, 1);
+ if (GET_MODE (x2) == SFmode && GET_CODE (x2) == FLOAT_TRUNCATE && 1)
+ goto L295;
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L295:
+ x3 = XEXP (x2, 0);
+ if (register_operand (x3, DFmode))
+ {
+ ro[1] = x3;
+ goto L296;
+ }
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L296:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L297;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L297:
+ x2 = XEXP (x1, 0);
+ if (memory_operand (x2, SFmode))
+ {
+ ro[2] = x2;
+ if (TARGET_80387)
+ return 62;
+ }
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L497:
+ x2 = XEXP (x1, 1);
+ if (GET_MODE (x2) != SImode)
+ {
+ x2 = XEXP (x1, 0);
+ goto L1125;
+ }
+ switch (GET_CODE (x2))
+ {
+ case DIV:
+ goto L498;
+ case UDIV:
+ goto L520;
+ }
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L498:
+ x3 = XEXP (x2, 0);
+ if (register_operand (x3, SImode))
+ {
+ ro[1] = x3;
+ goto L499;
+ }
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L499:
+ x3 = XEXP (x2, 1);
+ if (general_operand (x3, SImode))
+ {
+ ro[2] = x3;
+ goto L500;
+ }
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L500:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == SET && 1)
+ goto L501;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L501:
+ x2 = XEXP (x1, 0);
+ if (register_operand (x2, SImode))
+ {
+ ro[3] = x2;
+ goto L502;
+ }
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L502:
+ x2 = XEXP (x1, 1);
+ if (GET_MODE (x2) == SImode && GET_CODE (x2) == MOD && 1)
+ goto L503;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L503:
+ x3 = XEXP (x2, 0);
+ if (rtx_equal_p (x3, ro[1]) && 1)
+ goto L504;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L504:
+ x3 = XEXP (x2, 1);
+ if (rtx_equal_p (x3, ro[2]) && 1)
+ return 105;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L520:
+ x3 = XEXP (x2, 0);
+ if (register_operand (x3, SImode))
+ {
+ ro[1] = x3;
+ goto L521;
+ }
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L521:
+ x3 = XEXP (x2, 1);
+ if (general_operand (x3, SImode))
+ {
+ ro[2] = x3;
+ goto L522;
+ }
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L522:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == SET && 1)
+ goto L523;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L523:
+ x2 = XEXP (x1, 0);
+ if (register_operand (x2, SImode))
+ {
+ ro[3] = x2;
+ goto L524;
+ }
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L524:
+ x2 = XEXP (x1, 1);
+ if (GET_MODE (x2) == SImode && GET_CODE (x2) == UMOD && 1)
+ goto L525;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L525:
+ x3 = XEXP (x2, 0);
+ if (rtx_equal_p (x3, ro[1]) && 1)
+ goto L526;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L526:
+ x3 = XEXP (x2, 1);
+ if (rtx_equal_p (x3, ro[2]) && 1)
+ return 107;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L508:
+ x2 = XEXP (x1, 1);
+ if (GET_MODE (x2) != HImode)
+ {
+ x2 = XEXP (x1, 0);
+ goto L1125;
+ }
+ switch (GET_CODE (x2))
+ {
+ case DIV:
+ goto L509;
+ case UDIV:
+ goto L531;
+ }
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L509:
+ x3 = XEXP (x2, 0);
+ if (register_operand (x3, HImode))
+ {
+ ro[1] = x3;
+ goto L510;
+ }
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L510:
+ x3 = XEXP (x2, 1);
+ if (general_operand (x3, HImode))
+ {
+ ro[2] = x3;
+ goto L511;
+ }
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L511:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == SET && 1)
+ goto L512;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L512:
+ x2 = XEXP (x1, 0);
+ if (register_operand (x2, HImode))
+ {
+ ro[3] = x2;
+ goto L513;
+ }
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L513:
+ x2 = XEXP (x1, 1);
+ if (GET_MODE (x2) == HImode && GET_CODE (x2) == MOD && 1)
+ goto L514;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L514:
+ x3 = XEXP (x2, 0);
+ if (rtx_equal_p (x3, ro[1]) && 1)
+ goto L515;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L515:
+ x3 = XEXP (x2, 1);
+ if (rtx_equal_p (x3, ro[2]) && 1)
+ return 106;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L531:
+ x3 = XEXP (x2, 0);
+ if (register_operand (x3, HImode))
+ {
+ ro[1] = x3;
+ goto L532;
+ }
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L532:
+ x3 = XEXP (x2, 1);
+ if (general_operand (x3, HImode))
+ {
+ ro[2] = x3;
+ goto L533;
+ }
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L533:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == SET && 1)
+ goto L534;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L534:
+ x2 = XEXP (x1, 0);
+ if (register_operand (x2, HImode))
+ {
+ ro[3] = x2;
+ goto L535;
+ }
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L535:
+ x2 = XEXP (x1, 1);
+ if (GET_MODE (x2) == HImode && GET_CODE (x2) == UMOD && 1)
+ goto L536;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L536:
+ x3 = XEXP (x2, 0);
+ if (rtx_equal_p (x3, ro[1]) && 1)
+ goto L537;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L537:
+ x3 = XEXP (x2, 1);
+ if (rtx_equal_p (x3, ro[2]) && 1)
+ return 108;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L684:
+ x2 = XEXP (x1, 1);
+ if (GET_MODE (x2) != DImode)
+ {
+ x2 = XEXP (x1, 0);
+ goto L1125;
+ }
+ switch (GET_CODE (x2))
+ {
+ case ASHIFT:
+ goto L685;
+ case ASHIFTRT:
+ goto L713;
+ case LSHIFTRT:
+ goto L741;
+ }
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L685:
+ x3 = XEXP (x2, 0);
+ if (register_operand (x3, DImode))
+ {
+ ro[1] = x3;
+ goto L686;
+ }
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L686:
+ x3 = XEXP (x2, 1);
+ if (register_operand (x3, QImode))
+ {
+ ro[2] = x3;
+ goto L687;
+ }
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L687:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L688;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L688:
+ x2 = XEXP (x1, 0);
+ if (rtx_equal_p (x2, ro[2]) && 1)
+ return 142;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L713:
+ x3 = XEXP (x2, 0);
+ if (register_operand (x3, DImode))
+ {
+ ro[1] = x3;
+ goto L714;
+ }
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L714:
+ x3 = XEXP (x2, 1);
+ if (register_operand (x3, QImode))
+ {
+ ro[2] = x3;
+ goto L715;
+ }
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L715:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L716;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L716:
+ x2 = XEXP (x1, 0);
+ if (rtx_equal_p (x2, ro[2]) && 1)
+ return 148;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L741:
+ x3 = XEXP (x2, 0);
+ if (register_operand (x3, DImode))
+ {
+ ro[1] = x3;
+ goto L742;
+ }
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L742:
+ x3 = XEXP (x2, 1);
+ if (register_operand (x3, QImode))
+ {
+ ro[2] = x3;
+ goto L743;
+ }
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L743:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L744;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L744:
+ x2 = XEXP (x1, 0);
+ if (rtx_equal_p (x2, ro[2]) && 1)
+ return 154;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+ L12:
+ tem = recog_4 (x0, insn, pnum_clobbers);
+ if (tem >= 0) return tem;
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L1068:
+ x2 = XEXP (x1, 1);
+ if (GET_MODE (x2) == SImode && GET_CODE (x2) == MINUS && 1)
+ goto L1069;
+ if (general_operand (x2, SImode))
+ {
+ ro[0] = x2;
+ goto L1094;
+ }
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L1069:
+ x3 = XEXP (x2, 0);
+ if (GET_MODE (x3) == SImode && GET_CODE (x3) == REG && XINT (x3, 0) == 3 && 1)
+ goto L1070;
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L1070:
+ x3 = XEXP (x2, 1);
+ if (GET_MODE (x3) == SImode && GET_CODE (x3) == MEM && 1)
+ goto L1071;
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L1071:
+ x4 = XEXP (x3, 0);
+ if (GET_MODE (x4) == SImode && GET_CODE (x4) == PLUS && 1)
+ goto L1072;
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L1072:
+ x5 = XEXP (x4, 0);
+ if (GET_MODE (x5) == SImode && GET_CODE (x5) == MULT && 1)
+ goto L1073;
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L1073:
+ x6 = XEXP (x5, 0);
+ if (register_operand (x6, SImode))
+ {
+ ro[0] = x6;
+ goto L1074;
+ }
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L1074:
+ x6 = XEXP (x5, 1);
+ if (GET_CODE (x6) == CONST_INT && XWINT (x6, 0) == 4 && 1)
+ goto L1075;
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L1075:
+ x5 = XEXP (x4, 1);
+ if (GET_CODE (x5) == LABEL_REF && 1)
+ goto L1076;
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L1076:
+ x6 = XEXP (x5, 0);
+ ro[1] = x6;
+ goto L1077;
+
+ L1077:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L1078;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L1078:
+ x2 = XEXP (x1, 0);
+ if (scratch_operand (x2, SImode))
+ {
+ ro[2] = x2;
+ return 223;
+ }
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L1094:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == USE && 1)
+ goto L1095;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L1095:
+ x2 = XEXP (x1, 0);
+ if (GET_CODE (x2) == LABEL_REF && 1)
+ goto L1096;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1125;
+
+ L1096:
+ x3 = XEXP (x2, 0);
+ ro[1] = x3;
+ return 224;
+
+ L1126:
+ x2 = XEXP (x1, 1);
+ if (GET_CODE (x2) == CALL && 1)
+ goto L1138;
+ x2 = XEXP (x1, 0);
+ goto L1228;
+
+ L1138:
+ x3 = XEXP (x2, 0);
+ if (GET_MODE (x3) == QImode && GET_CODE (x3) == MEM && 1)
+ goto L1139;
+ L1127:
+ if (call_insn_operand (x3, QImode))
+ {
+ ro[1] = x3;
+ goto L1128;
+ }
+ x2 = XEXP (x1, 0);
+ goto L1228;
+
+ L1139:
+ x4 = XEXP (x3, 0);
+ if (symbolic_operand (x4, SImode))
+ {
+ ro[1] = x4;
+ goto L1140;
+ }
+ goto L1127;
+
+ L1140:
+ x3 = XEXP (x2, 1);
+ if (general_operand (x3, SImode))
+ {
+ ro[2] = x3;
+ goto L1141;
+ }
+ x3 = XEXP (x2, 0);
+ goto L1127;
+
+ L1141:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == SET && 1)
+ goto L1142;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 1);
+ x3 = XEXP (x2, 0);
+ goto L1127;
+
+ L1142:
+ x2 = XEXP (x1, 0);
+ if (GET_MODE (x2) == SImode && GET_CODE (x2) == REG && XINT (x2, 0) == 7 && 1)
+ goto L1143;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 1);
+ x3 = XEXP (x2, 0);
+ goto L1127;
+
+ L1143:
+ x2 = XEXP (x1, 1);
+ if (GET_MODE (x2) == SImode && GET_CODE (x2) == PLUS && 1)
+ goto L1144;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 1);
+ x3 = XEXP (x2, 0);
+ goto L1127;
+
+ L1144:
+ x3 = XEXP (x2, 0);
+ if (GET_MODE (x3) == SImode && GET_CODE (x3) == REG && XINT (x3, 0) == 7 && 1)
+ goto L1145;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 1);
+ x3 = XEXP (x2, 0);
+ goto L1127;
+
+ L1145:
+ x3 = XEXP (x2, 1);
+ if (immediate_operand (x3, SImode))
+ {
+ ro[4] = x3;
+ if (!HALF_PIC_P ())
+ return 233;
+ }
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 1);
+ x3 = XEXP (x2, 0);
+ goto L1127;
+
+ L1128:
+ x3 = XEXP (x2, 1);
+ if (general_operand (x3, SImode))
+ {
+ ro[2] = x3;
+ goto L1129;
+ }
+ x2 = XEXP (x1, 0);
+ goto L1228;
+
+ L1129:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == SET && 1)
+ goto L1130;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1228;
+
+ L1130:
+ x2 = XEXP (x1, 0);
+ if (GET_MODE (x2) == SImode && GET_CODE (x2) == REG && XINT (x2, 0) == 7 && 1)
+ goto L1131;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1228;
+
+ L1131:
+ x2 = XEXP (x1, 1);
+ if (GET_MODE (x2) == SImode && GET_CODE (x2) == PLUS && 1)
+ goto L1132;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1228;
+
+ L1132:
+ x3 = XEXP (x2, 0);
+ if (GET_MODE (x3) == SImode && GET_CODE (x3) == REG && XINT (x3, 0) == 7 && 1)
+ goto L1133;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1228;
+
+ L1133:
+ x3 = XEXP (x2, 1);
+ if (immediate_operand (x3, SImode))
+ {
+ ro[4] = x3;
+ return 232;
+ }
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1228;
+
+ L1229:
+ x2 = XEXP (x1, 1);
+ if (GET_MODE (x2) != SImode)
+ goto ret0;
+ switch (GET_CODE (x2))
+ {
+ case PLUS:
+ goto L1230;
+ case UNSPEC:
+ if (XINT (x2, 1) == 0 && XVECLEN (x2, 0) == 3 && 1)
+ goto L1306;
+ }
+ goto ret0;
+
+ L1230:
+ x3 = XEXP (x2, 0);
+ if (GET_MODE (x3) == SImode && GET_CODE (x3) == FFS && 1)
+ goto L1231;
+ goto ret0;
+
+ L1231:
+ x4 = XEXP (x3, 0);
+ if (general_operand (x4, SImode))
+ {
+ ro[1] = x4;
+ goto L1232;
+ }
+ goto ret0;
+
+ L1232:
+ x3 = XEXP (x2, 1);
+ if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == -1 && 1)
+ goto L1233;
+ goto ret0;
+
+ L1233:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L1234;
+ goto ret0;
+
+ L1234:
+ x2 = XEXP (x1, 0);
+ if (scratch_operand (x2, SImode))
+ {
+ ro[2] = x2;
+ return 250;
+ }
+ goto ret0;
+
+ L1306:
+ x3 = XVECEXP (x2, 0, 0);
+ if (GET_MODE (x3) == BLKmode && GET_CODE (x3) == MEM && 1)
+ goto L1307;
+ goto ret0;
+
+ L1307:
+ x4 = XEXP (x3, 0);
+ if (address_operand (x4, SImode))
+ {
+ ro[1] = x4;
+ goto L1308;
+ }
+ goto ret0;
+
+ L1308:
+ x3 = XVECEXP (x2, 0, 1);
+ if (register_operand (x3, QImode))
+ {
+ ro[2] = x3;
+ goto L1309;
+ }
+ goto ret0;
+
+ L1309:
+ x3 = XVECEXP (x2, 0, 2);
+ if (immediate_operand (x3, SImode))
+ {
+ ro[3] = x3;
+ goto L1310;
+ }
+ goto ret0;
+
+ L1310:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L1311;
+ goto ret0;
+
+ L1311:
+ x2 = XEXP (x1, 0);
+ if (rtx_equal_p (x2, ro[1]) && 1)
+ return 262;
+ goto ret0;
+
+ L1244:
+ x2 = XEXP (x1, 1);
+ if (GET_MODE (x2) == HImode && GET_CODE (x2) == PLUS && 1)
+ goto L1245;
+ goto ret0;
+
+ L1245:
+ x3 = XEXP (x2, 0);
+ if (GET_MODE (x3) == HImode && GET_CODE (x3) == FFS && 1)
+ goto L1246;
+ goto ret0;
+
+ L1246:
+ x4 = XEXP (x3, 0);
+ if (general_operand (x4, HImode))
+ {
+ ro[1] = x4;
+ goto L1247;
+ }
+ goto ret0;
+
+ L1247:
+ x3 = XEXP (x2, 1);
+ if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == -1 && 1)
+ goto L1248;
+ goto ret0;
+
+ L1248:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L1249;
+ goto ret0;
+
+ L1249:
+ x2 = XEXP (x1, 0);
+ if (scratch_operand (x2, HImode))
+ {
+ ro[2] = x2;
+ return 252;
+ }
+ goto ret0;
+ ret0: return -1;
+}
+
+int
+recog (x0, insn, pnum_clobbers)
+ register rtx x0;
+ rtx insn;
+ int *pnum_clobbers;
+{
+ register rtx *ro = &recog_operand[0];
+ register rtx x1, x2, x3, x4, x5, x6;
+ int tem;
+
+ L1170:
+ switch (GET_CODE (x0))
+ {
+ case UNSPEC:
+ if (GET_MODE (x0) == SImode && XINT (x0, 1) == 0 && XVECLEN (x0, 0) == 1 && 1)
+ goto L1171;
+ break;
+ case SET:
+ goto L200;
+ case PARALLEL:
+ if (XVECLEN (x0, 0) == 2 && 1)
+ goto L10;
+ if (XVECLEN (x0, 0) == 5 && 1)
+ goto L299;
+ if (XVECLEN (x0, 0) == 4 && 1)
+ goto L313;
+ if (XVECLEN (x0, 0) == 3 && 1)
+ goto L363;
+ if (XVECLEN (x0, 0) == 6 && 1)
+ goto L1175;
+ break;
+ case CALL:
+ goto L1117;
+ case RETURN:
+ if (simple_386_epilogue ())
+ return 242;
+ break;
+ case CONST_INT:
+ if (XWINT (x0, 0) == 0 && 1)
+ return 243;
+ }
+ goto ret0;
+
+ L1171:
+ x1 = XVECEXP (x0, 0, 0);
+ if (memory_operand (x1, SImode))
+ {
+ ro[0] = x1;
+ return 241;
+ }
+ goto ret0;
+ L200:
+ return recog_3 (x0, insn, pnum_clobbers);
+
+ L10:
+ x1 = XVECEXP (x0, 0, 0);
+ switch (GET_CODE (x1))
+ {
+ case SET:
+ goto L241;
+ case CALL:
+ goto L1108;
+ }
+ goto ret0;
+ L241:
+ return recog_5 (x0, insn, pnum_clobbers);
+
+ L1108:
+ x2 = XEXP (x1, 0);
+ if (GET_MODE (x2) == QImode && GET_CODE (x2) == MEM && 1)
+ goto L1109;
+ L1099:
+ if (call_insn_operand (x2, QImode))
+ {
+ ro[0] = x2;
+ goto L1100;
+ }
+ goto ret0;
+
+ L1109:
+ x3 = XEXP (x2, 0);
+ if (symbolic_operand (x3, SImode))
+ {
+ ro[0] = x3;
+ goto L1110;
+ }
+ goto L1099;
+
+ L1110:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, SImode))
+ {
+ ro[1] = x2;
+ goto L1111;
+ }
+ x2 = XEXP (x1, 0);
+ goto L1099;
+
+ L1111:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == SET && 1)
+ goto L1112;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1099;
+
+ L1112:
+ x2 = XEXP (x1, 0);
+ if (GET_MODE (x2) == SImode && GET_CODE (x2) == REG && XINT (x2, 0) == 7 && 1)
+ goto L1113;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1099;
+
+ L1113:
+ x2 = XEXP (x1, 1);
+ if (GET_MODE (x2) == SImode && GET_CODE (x2) == PLUS && 1)
+ goto L1114;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1099;
+
+ L1114:
+ x3 = XEXP (x2, 0);
+ if (GET_MODE (x3) == SImode && GET_CODE (x3) == REG && XINT (x3, 0) == 7 && 1)
+ goto L1115;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1099;
+
+ L1115:
+ x3 = XEXP (x2, 1);
+ if (immediate_operand (x3, SImode))
+ {
+ ro[3] = x3;
+ if (!HALF_PIC_P ())
+ return 227;
+ }
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1099;
+
+ L1100:
+ x2 = XEXP (x1, 1);
+ if (general_operand (x2, SImode))
+ {
+ ro[1] = x2;
+ goto L1101;
+ }
+ goto ret0;
+
+ L1101:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == SET && 1)
+ goto L1102;
+ goto ret0;
+
+ L1102:
+ x2 = XEXP (x1, 0);
+ if (GET_MODE (x2) == SImode && GET_CODE (x2) == REG && XINT (x2, 0) == 7 && 1)
+ goto L1103;
+ goto ret0;
+
+ L1103:
+ x2 = XEXP (x1, 1);
+ if (GET_MODE (x2) == SImode && GET_CODE (x2) == PLUS && 1)
+ goto L1104;
+ goto ret0;
+
+ L1104:
+ x3 = XEXP (x2, 0);
+ if (GET_MODE (x3) == SImode && GET_CODE (x3) == REG && XINT (x3, 0) == 7 && 1)
+ goto L1105;
+ goto ret0;
+
+ L1105:
+ x3 = XEXP (x2, 1);
+ if (immediate_operand (x3, SImode))
+ {
+ ro[3] = x3;
+ return 226;
+ }
+ goto ret0;
+
+ L299:
+ x1 = XVECEXP (x0, 0, 0);
+ if (GET_CODE (x1) == SET && 1)
+ goto L300;
+ goto ret0;
+
+ L300:
+ x2 = XEXP (x1, 0);
+ if (GET_MODE (x2) == DImode && general_operand (x2, DImode))
+ {
+ ro[0] = x2;
+ goto L301;
+ }
+ goto ret0;
+
+ L301:
+ x2 = XEXP (x1, 1);
+ if (GET_MODE (x2) == DImode && GET_CODE (x2) == FIX && 1)
+ goto L302;
+ goto ret0;
+
+ L302:
+ x3 = XEXP (x2, 0);
+ if (GET_CODE (x3) != FIX)
+ goto ret0;
+ switch (GET_MODE (x3))
+ {
+ case DFmode:
+ goto L303;
+ case SFmode:
+ goto L329;
+ }
+ goto ret0;
+
+ L303:
+ x4 = XEXP (x3, 0);
+ if (register_operand (x4, DFmode))
+ {
+ ro[1] = x4;
+ goto L304;
+ }
+ goto ret0;
+
+ L304:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L305;
+ goto ret0;
+
+ L305:
+ x2 = XEXP (x1, 0);
+ if (rtx_equal_p (x2, ro[1]) && 1)
+ goto L306;
+ goto ret0;
+
+ L306:
+ x1 = XVECEXP (x0, 0, 2);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L307;
+ goto ret0;
+
+ L307:
+ x2 = XEXP (x1, 0);
+ if (memory_operand (x2, SImode))
+ {
+ ro[2] = x2;
+ goto L308;
+ }
+ goto ret0;
+
+ L308:
+ x1 = XVECEXP (x0, 0, 3);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L309;
+ goto ret0;
+
+ L309:
+ x2 = XEXP (x1, 0);
+ if (memory_operand (x2, SImode))
+ {
+ ro[3] = x2;
+ goto L310;
+ }
+ goto ret0;
+
+ L310:
+ x1 = XVECEXP (x0, 0, 4);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L311;
+ goto ret0;
+
+ L311:
+ x2 = XEXP (x1, 0);
+ if (scratch_operand (x2, SImode))
+ {
+ ro[4] = x2;
+ if (TARGET_80387)
+ return 67;
+ }
+ goto ret0;
+
+ L329:
+ x4 = XEXP (x3, 0);
+ if (register_operand (x4, SFmode))
+ {
+ ro[1] = x4;
+ goto L330;
+ }
+ goto ret0;
+
+ L330:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L331;
+ goto ret0;
+
+ L331:
+ x2 = XEXP (x1, 0);
+ if (rtx_equal_p (x2, ro[1]) && 1)
+ goto L332;
+ goto ret0;
+
+ L332:
+ x1 = XVECEXP (x0, 0, 2);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L333;
+ goto ret0;
+
+ L333:
+ x2 = XEXP (x1, 0);
+ if (memory_operand (x2, SImode))
+ {
+ ro[2] = x2;
+ goto L334;
+ }
+ goto ret0;
+
+ L334:
+ x1 = XVECEXP (x0, 0, 3);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L335;
+ goto ret0;
+
+ L335:
+ x2 = XEXP (x1, 0);
+ if (memory_operand (x2, SImode))
+ {
+ ro[3] = x2;
+ goto L336;
+ }
+ goto ret0;
+
+ L336:
+ x1 = XVECEXP (x0, 0, 4);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L337;
+ goto ret0;
+
+ L337:
+ x2 = XEXP (x1, 0);
+ if (scratch_operand (x2, SImode))
+ {
+ ro[4] = x2;
+ if (TARGET_80387)
+ return 68;
+ }
+ goto ret0;
+
+ L313:
+ x1 = XVECEXP (x0, 0, 0);
+ if (GET_CODE (x1) == SET && 1)
+ goto L314;
+ goto ret0;
+
+ L314:
+ x2 = XEXP (x1, 0);
+ switch (GET_MODE (x2))
+ {
+ case DImode:
+ if (general_operand (x2, DImode))
+ {
+ ro[0] = x2;
+ goto L315;
+ }
+ break;
+ case SImode:
+ if (general_operand (x2, SImode))
+ {
+ ro[0] = x2;
+ goto L353;
+ }
+ }
+ goto ret0;
+
+ L315:
+ x2 = XEXP (x1, 1);
+ if (GET_MODE (x2) == DImode && GET_CODE (x2) == FIX && 1)
+ goto L316;
+ goto ret0;
+
+ L316:
+ x3 = XEXP (x2, 0);
+ if (GET_CODE (x3) != FIX)
+ goto ret0;
+ switch (GET_MODE (x3))
+ {
+ case DFmode:
+ goto L317;
+ case SFmode:
+ goto L343;
+ }
+ goto ret0;
+
+ L317:
+ x4 = XEXP (x3, 0);
+ if (register_operand (x4, DFmode))
+ {
+ ro[1] = x4;
+ goto L318;
+ }
+ goto ret0;
+
+ L318:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L319;
+ goto ret0;
+
+ L319:
+ x2 = XEXP (x1, 0);
+ if (rtx_equal_p (x2, ro[1]) && 1)
+ goto L320;
+ goto ret0;
+
+ L320:
+ x1 = XVECEXP (x0, 0, 2);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L321;
+ goto ret0;
+
+ L321:
+ x2 = XEXP (x1, 0);
+ if (memory_operand (x2, SImode))
+ {
+ ro[2] = x2;
+ goto L322;
+ }
+ goto ret0;
+
+ L322:
+ x1 = XVECEXP (x0, 0, 3);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L323;
+ goto ret0;
+
+ L323:
+ x2 = XEXP (x1, 0);
+ if (pnum_clobbers != 0 && memory_operand (x2, SImode))
+ {
+ ro[3] = x2;
+ if (TARGET_80387)
+ {
+ *pnum_clobbers = 1;
+ return 67;
+ }
+ }
+ goto ret0;
+
+ L343:
+ x4 = XEXP (x3, 0);
+ if (register_operand (x4, SFmode))
+ {
+ ro[1] = x4;
+ goto L344;
+ }
+ goto ret0;
+
+ L344:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L345;
+ goto ret0;
+
+ L345:
+ x2 = XEXP (x1, 0);
+ if (rtx_equal_p (x2, ro[1]) && 1)
+ goto L346;
+ goto ret0;
+
+ L346:
+ x1 = XVECEXP (x0, 0, 2);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L347;
+ goto ret0;
+
+ L347:
+ x2 = XEXP (x1, 0);
+ if (memory_operand (x2, SImode))
+ {
+ ro[2] = x2;
+ goto L348;
+ }
+ goto ret0;
+
+ L348:
+ x1 = XVECEXP (x0, 0, 3);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L349;
+ goto ret0;
+
+ L349:
+ x2 = XEXP (x1, 0);
+ if (pnum_clobbers != 0 && memory_operand (x2, SImode))
+ {
+ ro[3] = x2;
+ if (TARGET_80387)
+ {
+ *pnum_clobbers = 1;
+ return 68;
+ }
+ }
+ goto ret0;
+
+ L353:
+ x2 = XEXP (x1, 1);
+ if (GET_MODE (x2) == SImode && GET_CODE (x2) == FIX && 1)
+ goto L354;
+ goto ret0;
+
+ L354:
+ x3 = XEXP (x2, 0);
+ if (GET_CODE (x3) != FIX)
+ goto ret0;
+ switch (GET_MODE (x3))
+ {
+ case DFmode:
+ goto L355;
+ case SFmode:
+ goto L377;
+ }
+ goto ret0;
+
+ L355:
+ x4 = XEXP (x3, 0);
+ if (register_operand (x4, DFmode))
+ {
+ ro[1] = x4;
+ goto L356;
+ }
+ goto ret0;
+
+ L356:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L357;
+ goto ret0;
+
+ L357:
+ x2 = XEXP (x1, 0);
+ if (memory_operand (x2, SImode))
+ {
+ ro[2] = x2;
+ goto L358;
+ }
+ goto ret0;
+
+ L358:
+ x1 = XVECEXP (x0, 0, 2);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L359;
+ goto ret0;
+
+ L359:
+ x2 = XEXP (x1, 0);
+ if (memory_operand (x2, SImode))
+ {
+ ro[3] = x2;
+ goto L360;
+ }
+ goto ret0;
+
+ L360:
+ x1 = XVECEXP (x0, 0, 3);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L361;
+ goto ret0;
+
+ L361:
+ x2 = XEXP (x1, 0);
+ if (scratch_operand (x2, SImode))
+ {
+ ro[4] = x2;
+ if (TARGET_80387)
+ return 71;
+ }
+ goto ret0;
+
+ L377:
+ x4 = XEXP (x3, 0);
+ if (register_operand (x4, SFmode))
+ {
+ ro[1] = x4;
+ goto L378;
+ }
+ goto ret0;
+
+ L378:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L379;
+ goto ret0;
+
+ L379:
+ x2 = XEXP (x1, 0);
+ if (memory_operand (x2, SImode))
+ {
+ ro[2] = x2;
+ goto L380;
+ }
+ goto ret0;
+
+ L380:
+ x1 = XVECEXP (x0, 0, 2);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L381;
+ goto ret0;
+
+ L381:
+ x2 = XEXP (x1, 0);
+ if (memory_operand (x2, SImode))
+ {
+ ro[3] = x2;
+ goto L382;
+ }
+ goto ret0;
+
+ L382:
+ x1 = XVECEXP (x0, 0, 3);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L383;
+ goto ret0;
+
+ L383:
+ x2 = XEXP (x1, 0);
+ if (scratch_operand (x2, SImode))
+ {
+ ro[4] = x2;
+ if (TARGET_80387)
+ return 72;
+ }
+ goto ret0;
+
+ L363:
+ x1 = XVECEXP (x0, 0, 0);
+ switch (GET_CODE (x1))
+ {
+ case SET:
+ goto L364;
+ case CALL:
+ goto L1165;
+ }
+ goto ret0;
+
+ L364:
+ x2 = XEXP (x1, 0);
+ if (GET_MODE (x2) == SImode && general_operand (x2, SImode))
+ {
+ ro[0] = x2;
+ goto L365;
+ }
+ goto ret0;
+
+ L365:
+ x2 = XEXP (x1, 1);
+ if (GET_MODE (x2) == SImode && GET_CODE (x2) == FIX && 1)
+ goto L366;
+ goto ret0;
+
+ L366:
+ x3 = XEXP (x2, 0);
+ if (GET_CODE (x3) != FIX)
+ goto ret0;
+ switch (GET_MODE (x3))
+ {
+ case DFmode:
+ goto L367;
+ case SFmode:
+ goto L389;
+ }
+ goto ret0;
+
+ L367:
+ x4 = XEXP (x3, 0);
+ if (register_operand (x4, DFmode))
+ {
+ ro[1] = x4;
+ goto L368;
+ }
+ goto ret0;
+
+ L368:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L369;
+ goto ret0;
+
+ L369:
+ x2 = XEXP (x1, 0);
+ if (memory_operand (x2, SImode))
+ {
+ ro[2] = x2;
+ goto L370;
+ }
+ goto ret0;
+
+ L370:
+ x1 = XVECEXP (x0, 0, 2);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L371;
+ goto ret0;
+
+ L371:
+ x2 = XEXP (x1, 0);
+ if (pnum_clobbers != 0 && memory_operand (x2, SImode))
+ {
+ ro[3] = x2;
+ if (TARGET_80387)
+ {
+ *pnum_clobbers = 1;
+ return 71;
+ }
+ }
+ goto ret0;
+
+ L389:
+ x4 = XEXP (x3, 0);
+ if (register_operand (x4, SFmode))
+ {
+ ro[1] = x4;
+ goto L390;
+ }
+ goto ret0;
+
+ L390:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L391;
+ goto ret0;
+
+ L391:
+ x2 = XEXP (x1, 0);
+ if (memory_operand (x2, SImode))
+ {
+ ro[2] = x2;
+ goto L392;
+ }
+ goto ret0;
+
+ L392:
+ x1 = XVECEXP (x0, 0, 2);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L393;
+ goto ret0;
+
+ L393:
+ x2 = XEXP (x1, 0);
+ if (pnum_clobbers != 0 && memory_operand (x2, SImode))
+ {
+ ro[3] = x2;
+ if (TARGET_80387)
+ {
+ *pnum_clobbers = 1;
+ return 72;
+ }
+ }
+ goto ret0;
+
+ L1165:
+ x2 = XEXP (x1, 0);
+ if (GET_MODE (x2) == QImode && GET_CODE (x2) == MEM && 1)
+ goto L1166;
+ L1159:
+ if (call_insn_operand (x2, QImode))
+ {
+ ro[0] = x2;
+ goto L1160;
+ }
+ goto ret0;
+
+ L1166:
+ x3 = XEXP (x2, 0);
+ if (symbolic_operand (x3, SImode))
+ {
+ ro[0] = x3;
+ goto L1167;
+ }
+ goto L1159;
+
+ L1167:
+ x2 = XEXP (x1, 1);
+ if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
+ goto L1168;
+ x2 = XEXP (x1, 0);
+ goto L1159;
+
+ L1168:
+ x1 = XVECEXP (x0, 0, 1);
+ if (memory_operand (x1, DImode))
+ {
+ ro[1] = x1;
+ goto L1169;
+ }
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1159;
+
+ L1169:
+ x1 = XVECEXP (x0, 0, 2);
+ ro[2] = x1;
+ if (!HALF_PIC_P ())
+ return 239;
+ x1 = XVECEXP (x0, 0, 0);
+ x2 = XEXP (x1, 0);
+ goto L1159;
+
+ L1160:
+ x2 = XEXP (x1, 1);
+ if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
+ goto L1161;
+ goto ret0;
+
+ L1161:
+ x1 = XVECEXP (x0, 0, 1);
+ if (memory_operand (x1, DImode))
+ {
+ ro[1] = x1;
+ goto L1162;
+ }
+ goto ret0;
+
+ L1162:
+ x1 = XVECEXP (x0, 0, 2);
+ ro[2] = x1;
+ return 238;
+
+ L1175:
+ x1 = XVECEXP (x0, 0, 0);
+ if (GET_CODE (x1) == SET && 1)
+ goto L1176;
+ goto ret0;
+
+ L1176:
+ x2 = XEXP (x1, 0);
+ switch (GET_MODE (x2))
+ {
+ case BLKmode:
+ if (GET_CODE (x2) == MEM && 1)
+ goto L1177;
+ break;
+ case SImode:
+ if (general_operand (x2, SImode))
+ {
+ ro[0] = x2;
+ goto L1193;
+ }
+ }
+ if (GET_CODE (x2) == CC0 && 1)
+ goto L1211;
+ goto ret0;
+
+ L1177:
+ x3 = XEXP (x2, 0);
+ if (address_operand (x3, SImode))
+ {
+ ro[0] = x3;
+ goto L1178;
+ }
+ goto ret0;
+
+ L1178:
+ x2 = XEXP (x1, 1);
+ if (GET_MODE (x2) == BLKmode && GET_CODE (x2) == MEM && 1)
+ goto L1179;
+ goto ret0;
+
+ L1179:
+ x3 = XEXP (x2, 0);
+ if (address_operand (x3, SImode))
+ {
+ ro[1] = x3;
+ goto L1180;
+ }
+ goto ret0;
+
+ L1180:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == USE && 1)
+ goto L1181;
+ goto ret0;
+
+ L1181:
+ x2 = XEXP (x1, 0);
+ if (GET_CODE (x2) == CONST_INT && 1)
+ {
+ ro[2] = x2;
+ goto L1182;
+ }
+ goto ret0;
+
+ L1182:
+ x1 = XVECEXP (x0, 0, 2);
+ if (GET_CODE (x1) == USE && 1)
+ goto L1183;
+ goto ret0;
+
+ L1183:
+ x2 = XEXP (x1, 0);
+ if (immediate_operand (x2, SImode))
+ {
+ ro[3] = x2;
+ goto L1184;
+ }
+ goto ret0;
+
+ L1184:
+ x1 = XVECEXP (x0, 0, 3);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L1185;
+ goto ret0;
+
+ L1185:
+ x2 = XEXP (x1, 0);
+ if (scratch_operand (x2, SImode))
+ {
+ ro[4] = x2;
+ goto L1186;
+ }
+ goto ret0;
+
+ L1186:
+ x1 = XVECEXP (x0, 0, 4);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L1187;
+ goto ret0;
+
+ L1187:
+ x2 = XEXP (x1, 0);
+ if (rtx_equal_p (x2, ro[0]) && 1)
+ goto L1188;
+ goto ret0;
+
+ L1188:
+ x1 = XVECEXP (x0, 0, 5);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L1189;
+ goto ret0;
+
+ L1189:
+ x2 = XEXP (x1, 0);
+ if (rtx_equal_p (x2, ro[1]) && 1)
+ return 245;
+ goto ret0;
+
+ L1193:
+ x2 = XEXP (x1, 1);
+ if (GET_MODE (x2) == SImode && GET_CODE (x2) == COMPARE && 1)
+ goto L1194;
+ goto ret0;
+
+ L1194:
+ x3 = XEXP (x2, 0);
+ if (GET_MODE (x3) == BLKmode && GET_CODE (x3) == MEM && 1)
+ goto L1195;
+ goto ret0;
+
+ L1195:
+ x4 = XEXP (x3, 0);
+ if (address_operand (x4, SImode))
+ {
+ ro[1] = x4;
+ goto L1196;
+ }
+ goto ret0;
+
+ L1196:
+ x3 = XEXP (x2, 1);
+ if (GET_MODE (x3) == BLKmode && GET_CODE (x3) == MEM && 1)
+ goto L1197;
+ goto ret0;
+
+ L1197:
+ x4 = XEXP (x3, 0);
+ if (address_operand (x4, SImode))
+ {
+ ro[2] = x4;
+ goto L1198;
+ }
+ goto ret0;
+
+ L1198:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == USE && 1)
+ goto L1199;
+ goto ret0;
+
+ L1199:
+ x2 = XEXP (x1, 0);
+ if (register_operand (x2, SImode))
+ {
+ ro[3] = x2;
+ goto L1200;
+ }
+ goto ret0;
+
+ L1200:
+ x1 = XVECEXP (x0, 0, 2);
+ if (GET_CODE (x1) == USE && 1)
+ goto L1201;
+ goto ret0;
+
+ L1201:
+ x2 = XEXP (x1, 0);
+ if (immediate_operand (x2, SImode))
+ {
+ ro[4] = x2;
+ goto L1202;
+ }
+ goto ret0;
+
+ L1202:
+ x1 = XVECEXP (x0, 0, 3);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L1203;
+ goto ret0;
+
+ L1203:
+ x2 = XEXP (x1, 0);
+ if (rtx_equal_p (x2, ro[1]) && 1)
+ goto L1204;
+ goto ret0;
+
+ L1204:
+ x1 = XVECEXP (x0, 0, 4);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L1205;
+ goto ret0;
+
+ L1205:
+ x2 = XEXP (x1, 0);
+ if (rtx_equal_p (x2, ro[2]) && 1)
+ goto L1206;
+ goto ret0;
+
+ L1206:
+ x1 = XVECEXP (x0, 0, 5);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L1207;
+ goto ret0;
+
+ L1207:
+ x2 = XEXP (x1, 0);
+ if (rtx_equal_p (x2, ro[3]) && 1)
+ return 247;
+ goto ret0;
+
+ L1211:
+ x2 = XEXP (x1, 1);
+ if (GET_MODE (x2) == SImode && GET_CODE (x2) == COMPARE && 1)
+ goto L1212;
+ goto ret0;
+
+ L1212:
+ x3 = XEXP (x2, 0);
+ if (GET_MODE (x3) == BLKmode && GET_CODE (x3) == MEM && 1)
+ goto L1213;
+ goto ret0;
+
+ L1213:
+ x4 = XEXP (x3, 0);
+ if (address_operand (x4, SImode))
+ {
+ ro[0] = x4;
+ goto L1214;
+ }
+ goto ret0;
+
+ L1214:
+ x3 = XEXP (x2, 1);
+ if (GET_MODE (x3) == BLKmode && GET_CODE (x3) == MEM && 1)
+ goto L1215;
+ goto ret0;
+
+ L1215:
+ x4 = XEXP (x3, 0);
+ if (address_operand (x4, SImode))
+ {
+ ro[1] = x4;
+ goto L1216;
+ }
+ goto ret0;
+
+ L1216:
+ x1 = XVECEXP (x0, 0, 1);
+ if (GET_CODE (x1) == USE && 1)
+ goto L1217;
+ goto ret0;
+
+ L1217:
+ x2 = XEXP (x1, 0);
+ if (register_operand (x2, SImode))
+ {
+ ro[2] = x2;
+ goto L1218;
+ }
+ goto ret0;
+
+ L1218:
+ x1 = XVECEXP (x0, 0, 2);
+ if (GET_CODE (x1) == USE && 1)
+ goto L1219;
+ goto ret0;
+
+ L1219:
+ x2 = XEXP (x1, 0);
+ if (immediate_operand (x2, SImode))
+ {
+ ro[3] = x2;
+ goto L1220;
+ }
+ goto ret0;
+
+ L1220:
+ x1 = XVECEXP (x0, 0, 3);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L1221;
+ goto ret0;
+
+ L1221:
+ x2 = XEXP (x1, 0);
+ if (rtx_equal_p (x2, ro[0]) && 1)
+ goto L1222;
+ goto ret0;
+
+ L1222:
+ x1 = XVECEXP (x0, 0, 4);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L1223;
+ goto ret0;
+
+ L1223:
+ x2 = XEXP (x1, 0);
+ if (rtx_equal_p (x2, ro[1]) && 1)
+ goto L1224;
+ goto ret0;
+
+ L1224:
+ x1 = XVECEXP (x0, 0, 5);
+ if (GET_CODE (x1) == CLOBBER && 1)
+ goto L1225;
+ goto ret0;
+
+ L1225:
+ x2 = XEXP (x1, 0);
+ if (rtx_equal_p (x2, ro[2]) && 1)
+ return 248;
+ goto ret0;
+
+ L1117:
+ x1 = XEXP (x0, 0);
+ if (call_insn_operand (x1, QImode))
+ {
+ ro[0] = x1;
+ goto L1118;
+ }
+ L1120:
+ if (GET_MODE (x1) == QImode && GET_CODE (x1) == MEM && 1)
+ goto L1121;
+ goto ret0;
+
+ L1118:
+ x1 = XEXP (x0, 1);
+ if (general_operand (x1, SImode))
+ {
+ ro[1] = x1;
+ return 229;
+ }
+ x1 = XEXP (x0, 0);
+ goto L1120;
+
+ L1121:
+ x2 = XEXP (x1, 0);
+ if (symbolic_operand (x2, SImode))
+ {
+ ro[0] = x2;
+ goto L1122;
+ }
+ goto ret0;
+
+ L1122:
+ x1 = XEXP (x0, 1);
+ if (general_operand (x1, SImode))
+ {
+ ro[1] = x1;
+ if (!HALF_PIC_P ())
+ return 230;
+ }
+ goto ret0;
+ ret0: return -1;
+}
+
+rtx
+split_insns (x0, insn)
+ register rtx x0;
+ rtx insn;
+{
+ register rtx *ro = &recog_operand[0];
+ register rtx x1, x2, x3, x4, x5, x6;
+ rtx tem;
+
+ goto ret0;
+ ret0: return 0;
+}
+