diff options
Diffstat (limited to 'gnu/usr.bin/cc/lib/insn-recog.c')
| -rw-r--r-- | gnu/usr.bin/cc/lib/insn-recog.c | 6158 |
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; +} + |
