NetBSD/gnu/usr.bin/gcc2/arch/hp300/insn-recog.c

6590 lines
104 KiB
C

/* 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 HImode:
switch (GET_CODE (x1))
{
case TRUNCATE:
goto L628;
case ZERO_EXTEND:
goto L208;
case SIGN_EXTEND:
goto L220;
case FIX:
goto L313;
case PLUS:
goto L386;
case MINUS:
goto L455;
case MULT:
goto L501;
case DIV:
goto L623;
case UDIV:
goto L641;
case MOD:
goto L683;
case UMOD:
goto L701;
case AND:
goto L746;
case IOR:
goto L785;
case XOR:
goto L824;
case NEG:
goto L862;
case NOT:
goto L928;
}
}
if (general_operand (x1, HImode))
{
ro[1] = x1;
return 30;
}
goto ret0;
L628:
x2 = XEXP (x1, 0);
switch (GET_MODE (x2))
{
case SImode:
switch (GET_CODE (x2))
{
case DIV:
goto L629;
case UDIV:
goto L647;
case MOD:
goto L689;
case UMOD:
goto L707;
}
}
if (general_operand (x2, SImode))
{
ro[1] = x2;
return 43;
}
goto ret0;
L629:
x3 = XEXP (x2, 0);
if (general_operand (x3, SImode))
{
ro[1] = x3;
goto L630;
}
goto ret0;
L630:
x3 = XEXP (x2, 1);
switch (GET_CODE (x3))
{
case SIGN_EXTEND:
if (GET_MODE (x3) == SImode && 1)
goto L631;
break;
case CONST_INT:
ro[2] = x3;
return 129;
}
goto ret0;
L631:
x4 = XEXP (x3, 0);
if (nonimmediate_operand (x4, HImode))
{
ro[2] = x4;
return 128;
}
goto ret0;
L647:
x3 = XEXP (x2, 0);
if (general_operand (x3, SImode))
{
ro[1] = x3;
goto L648;
}
goto ret0;
L648:
x3 = XEXP (x2, 1);
switch (GET_CODE (x3))
{
case ZERO_EXTEND:
if (GET_MODE (x3) == SImode && 1)
goto L649;
break;
case CONST_INT:
ro[2] = x3;
return 132;
}
goto ret0;
L649:
x4 = XEXP (x3, 0);
if (nonimmediate_operand (x4, HImode))
{
ro[2] = x4;
return 131;
}
goto ret0;
L689:
x3 = XEXP (x2, 0);
if (general_operand (x3, SImode))
{
ro[1] = x3;
goto L690;
}
goto ret0;
L690:
x3 = XEXP (x2, 1);
switch (GET_CODE (x3))
{
case SIGN_EXTEND:
if (GET_MODE (x3) == SImode && 1)
goto L691;
break;
case CONST_INT:
ro[2] = x3;
return 141;
}
goto ret0;
L691:
x4 = XEXP (x3, 0);
if (nonimmediate_operand (x4, HImode))
{
ro[2] = x4;
return 140;
}
goto ret0;
L707:
x3 = XEXP (x2, 0);
if (general_operand (x3, SImode))
{
ro[1] = x3;
goto L708;
}
goto ret0;
L708:
x3 = XEXP (x2, 1);
switch (GET_CODE (x3))
{
case ZERO_EXTEND:
if (GET_MODE (x3) == SImode && 1)
goto L709;
break;
case CONST_INT:
ro[2] = x3;
return 144;
}
goto ret0;
L709:
x4 = XEXP (x3, 0);
if (nonimmediate_operand (x4, HImode))
{
ro[2] = x4;
return 143;
}
goto ret0;
L208:
x2 = XEXP (x1, 0);
if (nonimmediate_operand (x2, QImode))
{
ro[1] = x2;
if (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
return 48;
}
goto ret0;
L220:
x2 = XEXP (x1, 0);
if (nonimmediate_operand (x2, QImode))
{
ro[1] = x2;
return 51;
}
goto ret0;
L313:
x2 = XEXP (x1, 0);
if (GET_MODE (x2) == DFmode && GET_CODE (x2) == FIX && 1)
goto L314;
if (general_operand (x2, SFmode))
{
ro[1] = x2;
if (TARGET_68881)
return 76;
}
L357:
if (general_operand (x2, DFmode))
{
ro[1] = x2;
if (TARGET_68881)
return 79;
}
goto ret0;
L314:
x3 = XEXP (x2, 0);
if (pnum_clobbers != 0 && register_operand (x3, DFmode))
{
ro[1] = x3;
if (TARGET_68040)
{
*pnum_clobbers = 2;
return 71;
}
}
goto ret0;
L386:
x2 = XEXP (x1, 0);
if (general_operand (x2, HImode))
{
ro[1] = x2;
goto L387;
}
goto ret0;
L387:
x2 = XEXP (x1, 1);
if (general_operand (x2, HImode))
{
ro[2] = x2;
return 85;
}
goto ret0;
L455:
x2 = XEXP (x1, 0);
if (general_operand (x2, HImode))
{
ro[1] = x2;
goto L456;
}
goto ret0;
L456:
x2 = XEXP (x1, 1);
if (general_operand (x2, HImode))
{
ro[2] = x2;
return 99;
}
goto ret0;
L501:
x2 = XEXP (x1, 0);
if (general_operand (x2, HImode))
{
ro[1] = x2;
goto L502;
}
goto ret0;
L502:
x2 = XEXP (x1, 1);
if (general_operand (x2, HImode))
{
ro[2] = x2;
return 109;
}
goto ret0;
L623:
x2 = XEXP (x1, 0);
if (general_operand (x2, HImode))
{
ro[1] = x2;
goto L624;
}
goto ret0;
L624:
x2 = XEXP (x1, 1);
if (general_operand (x2, HImode))
{
ro[2] = x2;
return 127;
}
goto ret0;
L641:
x2 = XEXP (x1, 0);
if (general_operand (x2, HImode))
{
ro[1] = x2;
goto L642;
}
goto ret0;
L642:
x2 = XEXP (x1, 1);
if (general_operand (x2, HImode))
{
ro[2] = x2;
return 130;
}
goto ret0;
L683:
x2 = XEXP (x1, 0);
if (general_operand (x2, HImode))
{
ro[1] = x2;
goto L684;
}
goto ret0;
L684:
x2 = XEXP (x1, 1);
if (general_operand (x2, HImode))
{
ro[2] = x2;
return 139;
}
goto ret0;
L701:
x2 = XEXP (x1, 0);
if (general_operand (x2, HImode))
{
ro[1] = x2;
goto L702;
}
goto ret0;
L702:
x2 = XEXP (x1, 1);
if (general_operand (x2, HImode))
{
ro[2] = x2;
return 142;
}
goto ret0;
L746:
x2 = XEXP (x1, 0);
if (general_operand (x2, HImode))
{
ro[1] = x2;
goto L747;
}
goto ret0;
L747:
x2 = XEXP (x1, 1);
if (general_operand (x2, HImode))
{
ro[2] = x2;
return 148;
}
goto ret0;
L785:
x2 = XEXP (x1, 0);
if (general_operand (x2, HImode))
{
ro[1] = x2;
goto L786;
}
goto ret0;
L786:
x2 = XEXP (x1, 1);
if (general_operand (x2, HImode))
{
ro[2] = x2;
return 155;
}
goto ret0;
L824:
x2 = XEXP (x1, 0);
if (general_operand (x2, HImode))
{
ro[1] = x2;
goto L825;
}
goto ret0;
L825:
x2 = XEXP (x1, 1);
if (general_operand (x2, HImode))
{
ro[2] = x2;
return 162;
}
goto ret0;
L862:
x2 = XEXP (x1, 0);
if (general_operand (x2, HImode))
{
ro[1] = x2;
return 169;
}
goto ret0;
L928:
x2 = XEXP (x1, 0);
if (general_operand (x2, HImode))
{
ro[1] = x2;
return 187;
}
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);
switch (GET_MODE (x1))
{
case QImode:
switch (GET_CODE (x1))
{
case TRUNCATE:
goto L192;
case FIX:
goto L328;
case PLUS:
goto L403;
case MINUS:
goto L466;
case AND:
goto L763;
case IOR:
goto L802;
case XOR:
goto L841;
case NEG:
goto L871;
case NOT:
goto L937;
case EQ:
goto L1275;
case NE:
goto L1280;
case GT:
goto L1285;
case GTU:
goto L1290;
case LT:
goto L1295;
case LTU:
goto L1300;
case GE:
goto L1305;
case GEU:
goto L1310;
case LE:
goto L1315;
case LEU:
goto L1320;
}
}
if (general_operand (x1, QImode))
{
ro[1] = x1;
return 32;
}
goto ret0;
L192:
x2 = XEXP (x1, 0);
if (general_operand (x2, SImode))
{
ro[1] = x2;
return 41;
}
L196:
if (general_operand (x2, HImode))
{
ro[1] = x2;
return 42;
}
goto ret0;
L328:
x2 = XEXP (x1, 0);
if (GET_MODE (x2) == DFmode && GET_CODE (x2) == FIX && 1)
goto L329;
if (general_operand (x2, SFmode))
{
ro[1] = x2;
if (TARGET_68881)
return 75;
}
L353:
if (general_operand (x2, DFmode))
{
ro[1] = x2;
if (TARGET_68881)
return 78;
}
goto ret0;
L329:
x3 = XEXP (x2, 0);
if (pnum_clobbers != 0 && register_operand (x3, DFmode))
{
ro[1] = x3;
if (TARGET_68040)
{
*pnum_clobbers = 2;
return 72;
}
}
goto ret0;
L403:
x2 = XEXP (x1, 0);
if (general_operand (x2, QImode))
{
ro[1] = x2;
goto L404;
}
goto ret0;
L404:
x2 = XEXP (x1, 1);
if (general_operand (x2, QImode))
{
ro[2] = x2;
return 88;
}
goto ret0;
L466:
x2 = XEXP (x1, 0);
if (general_operand (x2, QImode))
{
ro[1] = x2;
goto L467;
}
goto ret0;
L467:
x2 = XEXP (x1, 1);
if (general_operand (x2, QImode))
{
ro[2] = x2;
return 101;
}
goto ret0;
L763:
x2 = XEXP (x1, 0);
if (general_operand (x2, QImode))
{
ro[1] = x2;
goto L764;
}
goto ret0;
L764:
x2 = XEXP (x1, 1);
if (general_operand (x2, QImode))
{
ro[2] = x2;
return 151;
}
goto ret0;
L802:
x2 = XEXP (x1, 0);
if (general_operand (x2, QImode))
{
ro[1] = x2;
goto L803;
}
goto ret0;
L803:
x2 = XEXP (x1, 1);
if (general_operand (x2, QImode))
{
ro[2] = x2;
return 158;
}
goto ret0;
L841:
x2 = XEXP (x1, 0);
if (general_operand (x2, QImode))
{
ro[1] = x2;
goto L842;
}
goto ret0;
L842:
x2 = XEXP (x1, 1);
if (general_operand (x2, QImode))
{
ro[2] = x2;
return 165;
}
goto ret0;
L871:
x2 = XEXP (x1, 0);
if (general_operand (x2, QImode))
{
ro[1] = x2;
return 171;
}
goto ret0;
L937:
x2 = XEXP (x1, 0);
if (general_operand (x2, QImode))
{
ro[1] = x2;
return 189;
}
goto ret0;
L1275:
x2 = XEXP (x1, 0);
if (GET_CODE (x2) == CC0 && 1)
goto L1276;
goto ret0;
L1276:
x2 = XEXP (x1, 1);
if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
return 248;
goto ret0;
L1280:
x2 = XEXP (x1, 0);
if (GET_CODE (x2) == CC0 && 1)
goto L1281;
goto ret0;
L1281:
x2 = XEXP (x1, 1);
if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
return 249;
goto ret0;
L1285:
x2 = XEXP (x1, 0);
if (GET_CODE (x2) == CC0 && 1)
goto L1286;
goto ret0;
L1286:
x2 = XEXP (x1, 1);
if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
return 250;
goto ret0;
L1290:
x2 = XEXP (x1, 0);
if (GET_CODE (x2) == CC0 && 1)
goto L1291;
goto ret0;
L1291:
x2 = XEXP (x1, 1);
if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
return 251;
goto ret0;
L1295:
x2 = XEXP (x1, 0);
if (GET_CODE (x2) == CC0 && 1)
goto L1296;
goto ret0;
L1296:
x2 = XEXP (x1, 1);
if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
return 252;
goto ret0;
L1300:
x2 = XEXP (x1, 0);
if (GET_CODE (x2) == CC0 && 1)
goto L1301;
goto ret0;
L1301:
x2 = XEXP (x1, 1);
if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
return 253;
goto ret0;
L1305:
x2 = XEXP (x1, 0);
if (GET_CODE (x2) == CC0 && 1)
goto L1306;
goto ret0;
L1306:
x2 = XEXP (x1, 1);
if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
return 254;
goto ret0;
L1310:
x2 = XEXP (x1, 0);
if (GET_CODE (x2) == CC0 && 1)
goto L1311;
goto ret0;
L1311:
x2 = XEXP (x1, 1);
if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
return 255;
goto ret0;
L1315:
x2 = XEXP (x1, 0);
if (GET_CODE (x2) == CC0 && 1)
goto L1316;
goto ret0;
L1316:
x2 = XEXP (x1, 1);
if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
return 256;
goto ret0;
L1320:
x2 = XEXP (x1, 0);
if (GET_CODE (x2) == CC0 && 1)
goto L1321;
goto ret0;
L1321:
x2 = XEXP (x1, 1);
if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
return 257;
goto ret0;
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, 1);
if (GET_MODE (x1) != SImode)
goto ret0;
switch (GET_CODE (x1))
{
case PLUS:
goto L375;
case MINUS:
goto L444;
case MULT:
goto L506;
case IOR:
goto L780;
case XOR:
goto L819;
case NEG:
goto L858;
case NOT:
goto L924;
case ZERO_EXTRACT:
goto L1168;
case SIGN_EXTRACT:
goto L1180;
}
goto ret0;
L375:
x2 = XEXP (x1, 0);
if (general_operand (x2, SImode))
{
ro[1] = x2;
goto L381;
}
goto ret0;
L381:
x2 = XEXP (x1, 1);
if (GET_MODE (x2) == SImode && GET_CODE (x2) == SIGN_EXTEND && 1)
goto L382;
if (general_operand (x2, SImode))
{
ro[2] = x2;
return 83;
}
goto ret0;
L382:
x3 = XEXP (x2, 0);
if (nonimmediate_operand (x3, HImode))
{
ro[2] = x3;
return 84;
}
goto ret0;
L444:
x2 = XEXP (x1, 0);
if (general_operand (x2, SImode))
{
ro[1] = x2;
goto L450;
}
goto ret0;
L450:
x2 = XEXP (x1, 1);
if (GET_MODE (x2) == SImode && GET_CODE (x2) == SIGN_EXTEND && 1)
goto L451;
if (general_operand (x2, SImode))
{
ro[2] = x2;
return 97;
}
goto ret0;
L451:
x3 = XEXP (x2, 0);
if (nonimmediate_operand (x3, HImode))
{
ro[2] = x3;
return 98;
}
goto ret0;
L506:
x2 = XEXP (x1, 0);
switch (GET_MODE (x2))
{
case SImode:
switch (GET_CODE (x2))
{
case SIGN_EXTEND:
goto L507;
case ZERO_EXTEND:
goto L525;
}
}
if (general_operand (x2, SImode))
{
ro[1] = x2;
goto L520;
}
goto ret0;
L507:
x3 = XEXP (x2, 0);
if (nonimmediate_operand (x3, HImode))
{
ro[1] = x3;
goto L508;
}
goto ret0;
L508:
x2 = XEXP (x1, 1);
switch (GET_CODE (x2))
{
case SIGN_EXTEND:
if (GET_MODE (x2) == SImode && 1)
goto L509;
break;
case CONST_INT:
ro[2] = x2;
if (INTVAL (operands[2]) >= -0x8000 && INTVAL (operands[2]) <= 0x7fff)
return 111;
}
goto ret0;
L509:
x3 = XEXP (x2, 0);
if (nonimmediate_operand (x3, HImode))
{
ro[2] = x3;
return 110;
}
goto ret0;
L525:
x3 = XEXP (x2, 0);
if (nonimmediate_operand (x3, HImode))
{
ro[1] = x3;
goto L526;
}
goto ret0;
L526:
x2 = XEXP (x1, 1);
switch (GET_CODE (x2))
{
case ZERO_EXTEND:
if (GET_MODE (x2) == SImode && 1)
goto L527;
break;
case CONST_INT:
ro[2] = x2;
if (INTVAL (operands[2]) >= 0 && INTVAL (operands[2]) <= 0xffff)
return 114;
}
goto ret0;
L527:
x3 = XEXP (x2, 0);
if (nonimmediate_operand (x3, HImode))
{
ro[2] = x3;
return 113;
}
goto ret0;
L520:
x2 = XEXP (x1, 1);
if (general_operand (x2, SImode))
{
ro[2] = x2;
if (TARGET_68020)
return 112;
}
goto ret0;
L780:
x2 = XEXP (x1, 0);
if (general_operand (x2, SImode))
{
ro[1] = x2;
goto L781;
}
goto ret0;
L781:
x2 = XEXP (x1, 1);
if (general_operand (x2, SImode))
{
ro[2] = x2;
return 154;
}
goto ret0;
L819:
x2 = XEXP (x1, 0);
if (general_operand (x2, SImode))
{
ro[1] = x2;
goto L820;
}
goto ret0;
L820:
x2 = XEXP (x1, 1);
if (general_operand (x2, SImode))
{
ro[2] = x2;
return 161;
}
goto ret0;
L858:
x2 = XEXP (x1, 0);
if (general_operand (x2, SImode))
{
ro[1] = x2;
return 168;
}
goto ret0;
L924:
x2 = XEXP (x1, 0);
if (general_operand (x2, SImode))
{
ro[1] = x2;
return 186;
}
goto ret0;
L1168:
x2 = XEXP (x1, 0);
switch (GET_MODE (x2))
{
case QImode:
if (nonimmediate_operand (x2, QImode))
{
ro[1] = x2;
goto L1169;
}
break;
case SImode:
if (nonimmediate_operand (x2, SImode))
{
ro[1] = x2;
goto L1175;
}
}
goto ret0;
L1169:
x2 = XEXP (x1, 1);
if (immediate_operand (x2, SImode))
{
ro[2] = x2;
goto L1170;
}
L1199:
if (general_operand (x2, SImode))
{
ro[2] = x2;
goto L1200;
}
goto ret0;
L1170:
x2 = XEXP (x1, 2);
if (immediate_operand (x2, SImode))
{
ro[3] = x2;
if (TARGET_68020 && TARGET_BITFIELD
&& GET_CODE (operands[2]) == CONST_INT
&& (INTVAL (operands[2]) == 32)
&& GET_CODE (operands[3]) == CONST_INT
&& (INTVAL (operands[3]) % 8) == 0
&& ! mode_dependent_address_p (XEXP (operands[1], 0)))
return 231;
}
x2 = XEXP (x1, 1);
goto L1199;
L1200:
x2 = XEXP (x1, 2);
if (general_operand (x2, SImode))
{
ro[3] = x2;
if (TARGET_68020 && TARGET_BITFIELD)
return 236;
}
goto ret0;
L1175:
x2 = XEXP (x1, 1);
if (immediate_operand (x2, SImode))
{
ro[2] = x2;
goto L1176;
}
L1240:
if (general_operand (x2, SImode))
{
ro[2] = x2;
goto L1241;
}
goto ret0;
L1176:
x2 = XEXP (x1, 2);
if (immediate_operand (x2, SImode))
{
ro[3] = x2;
if (TARGET_68020 && TARGET_BITFIELD
&& GET_CODE (operands[2]) == CONST_INT
&& (INTVAL (operands[2]) == 8 || INTVAL (operands[2]) == 16)
&& GET_CODE (operands[3]) == CONST_INT
&& INTVAL (operands[3]) % INTVAL (operands[2]) == 0
&& (GET_CODE (operands[1]) == REG
|| ! mode_dependent_address_p (XEXP (operands[1], 0))))
return 232;
}
x2 = XEXP (x1, 1);
goto L1240;
L1241:
x2 = XEXP (x1, 2);
if (general_operand (x2, SImode))
{
ro[3] = x2;
if (TARGET_68020 && TARGET_BITFIELD)
return 242;
}
goto ret0;
L1180:
x2 = XEXP (x1, 0);
switch (GET_MODE (x2))
{
case QImode:
if (nonimmediate_operand (x2, QImode))
{
ro[1] = x2;
goto L1181;
}
break;
case SImode:
if (nonimmediate_operand (x2, SImode))
{
ro[1] = x2;
goto L1187;
}
}
goto ret0;
L1181:
x2 = XEXP (x1, 1);
if (immediate_operand (x2, SImode))
{
ro[2] = x2;
goto L1182;
}
L1193:
if (general_operand (x2, SImode))
{
ro[2] = x2;
goto L1194;
}
goto ret0;
L1182:
x2 = XEXP (x1, 2);
if (immediate_operand (x2, SImode))
{
ro[3] = x2;
if (TARGET_68020 && TARGET_BITFIELD
&& GET_CODE (operands[2]) == CONST_INT
&& (INTVAL (operands[2]) == 32)
&& GET_CODE (operands[3]) == CONST_INT
&& (INTVAL (operands[3]) % 8) == 0
&& ! mode_dependent_address_p (XEXP (operands[1], 0)))
return 233;
}
x2 = XEXP (x1, 1);
goto L1193;
L1194:
x2 = XEXP (x1, 2);
if (general_operand (x2, SImode))
{
ro[3] = x2;
if (TARGET_68020 && TARGET_BITFIELD)
return 235;
}
goto ret0;
L1187:
x2 = XEXP (x1, 1);
if (immediate_operand (x2, SImode))
{
ro[2] = x2;
goto L1188;
}
L1234:
if (general_operand (x2, SImode))
{
ro[2] = x2;
goto L1235;
}
goto ret0;
L1188:
x2 = XEXP (x1, 2);
if (immediate_operand (x2, SImode))
{
ro[3] = x2;
if (TARGET_68020 && TARGET_BITFIELD
&& GET_CODE (operands[2]) == CONST_INT
&& (INTVAL (operands[2]) == 8 || INTVAL (operands[2]) == 16)
&& GET_CODE (operands[3]) == CONST_INT
&& INTVAL (operands[3]) % INTVAL (operands[2]) == 0
&& (GET_CODE (operands[1]) == REG
|| ! mode_dependent_address_p (XEXP (operands[1], 0))))
return 234;
}
x2 = XEXP (x1, 1);
goto L1234;
L1235:
x2 = XEXP (x1, 2);
if (general_operand (x2, SImode))
{
ro[3] = x2;
if (TARGET_68020 && TARGET_BITFIELD)
return 241;
}
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 = XEXP (x0, 0);
x2 = XEXP (x1, 0);
switch (GET_MODE (x2))
{
case HImode:
if (general_operand (x2, HImode))
{
ro[0] = x2;
goto L391;
}
L967:
if (register_operand (x2, HImode))
{
ro[0] = x2;
goto L968;
}
break;
case QImode:
if (general_operand (x2, QImode))
{
ro[0] = x2;
goto L408;
}
L978:
if (register_operand (x2, QImode))
{
ro[0] = x2;
goto L979;
}
}
goto ret0;
L391:
x1 = XEXP (x0, 1);
switch (GET_MODE (x1))
{
case HImode:
switch (GET_CODE (x1))
{
case PLUS:
goto L392;
case MINUS:
goto L461;
case AND:
goto L752;
case IOR:
goto L791;
case XOR:
goto L830;
case NEG:
goto L867;
case NOT:
goto L933;
}
}
if (general_operand (x1, HImode))
{
ro[1] = x1;
return 31;
}
x1 = XEXP (x0, 0);
x2 = XEXP (x1, 0);
goto L967;
L392:
x2 = XEXP (x1, 0);
if (rtx_equal_p (x2, ro[0]) && 1)
goto L393;
L398:
if (general_operand (x2, HImode))
{
ro[1] = x2;
goto L399;
}
x1 = XEXP (x0, 0);
x2 = XEXP (x1, 0);
goto L967;
L393:
x2 = XEXP (x1, 1);
if (general_operand (x2, HImode))
{
ro[1] = x2;
return 86;
}
x2 = XEXP (x1, 0);
goto L398;
L399:
x2 = XEXP (x1, 1);
if (rtx_equal_p (x2, ro[0]) && 1)
return 87;
x1 = XEXP (x0, 0);
x2 = XEXP (x1, 0);
goto L967;
L461:
x2 = XEXP (x1, 0);
if (rtx_equal_p (x2, ro[0]) && 1)
goto L462;
x1 = XEXP (x0, 0);
x2 = XEXP (x1, 0);
goto L967;
L462:
x2 = XEXP (x1, 1);
if (general_operand (x2, HImode))
{
ro[1] = x2;
return 100;
}
x1 = XEXP (x0, 0);
x2 = XEXP (x1, 0);
goto L967;
L752:
x2 = XEXP (x1, 0);
if (rtx_equal_p (x2, ro[0]) && 1)
goto L753;
L758:
if (general_operand (x2, HImode))
{
ro[1] = x2;
goto L759;
}
x1 = XEXP (x0, 0);
x2 = XEXP (x1, 0);
goto L967;
L753:
x2 = XEXP (x1, 1);
if (general_operand (x2, HImode))
{
ro[1] = x2;
return 149;
}
x2 = XEXP (x1, 0);
goto L758;
L759:
x2 = XEXP (x1, 1);
if (rtx_equal_p (x2, ro[0]) && 1)
return 150;
x1 = XEXP (x0, 0);
x2 = XEXP (x1, 0);
goto L967;
L791:
x2 = XEXP (x1, 0);
if (rtx_equal_p (x2, ro[0]) && 1)
goto L792;
L797:
if (general_operand (x2, HImode))
{
ro[1] = x2;
goto L798;
}
x1 = XEXP (x0, 0);
x2 = XEXP (x1, 0);
goto L967;
L792:
x2 = XEXP (x1, 1);
if (general_operand (x2, HImode))
{
ro[1] = x2;
return 156;
}
x2 = XEXP (x1, 0);
goto L797;
L798:
x2 = XEXP (x1, 1);
if (rtx_equal_p (x2, ro[0]) && 1)
return 157;
x1 = XEXP (x0, 0);
x2 = XEXP (x1, 0);
goto L967;
L830:
x2 = XEXP (x1, 0);
if (rtx_equal_p (x2, ro[0]) && 1)
goto L831;
L836:
if (general_operand (x2, HImode))
{
ro[1] = x2;
goto L837;
}
x1 = XEXP (x0, 0);
x2 = XEXP (x1, 0);
goto L967;
L831:
x2 = XEXP (x1, 1);
if (general_operand (x2, HImode))
{
ro[1] = x2;
return 163;
}
x2 = XEXP (x1, 0);
goto L836;
L837:
x2 = XEXP (x1, 1);
if (rtx_equal_p (x2, ro[0]) && 1)
return 164;
x1 = XEXP (x0, 0);
x2 = XEXP (x1, 0);
goto L967;
L867:
x2 = XEXP (x1, 0);
if (rtx_equal_p (x2, ro[0]) && 1)
return 170;
x1 = XEXP (x0, 0);
x2 = XEXP (x1, 0);
goto L967;
L933:
x2 = XEXP (x1, 0);
if (rtx_equal_p (x2, ro[0]) && 1)
return 188;
x1 = XEXP (x0, 0);
x2 = XEXP (x1, 0);
goto L967;
L968:
x1 = XEXP (x0, 1);
if (GET_MODE (x1) != HImode)
goto ret0;
switch (GET_CODE (x1))
{
case ASHIFT:
goto L969;
case ASHIFTRT:
goto L1008;
case LSHIFT:
goto L1047;
case LSHIFTRT:
goto L1086;
case ROTATE:
goto L1113;
case ROTATERT:
goto L1140;
}
goto ret0;
L969:
x2 = XEXP (x1, 0);
if (rtx_equal_p (x2, ro[0]) && 1)
goto L970;
goto ret0;
L970:
x2 = XEXP (x1, 1);
if (general_operand (x2, HImode))
{
ro[1] = x2;
return 195;
}
goto ret0;
L1008:
x2 = XEXP (x1, 0);
if (rtx_equal_p (x2, ro[0]) && 1)
goto L1009;
goto ret0;
L1009:
x2 = XEXP (x1, 1);
if (general_operand (x2, HImode))
{
ro[1] = x2;
return 202;
}
goto ret0;
L1047:
x2 = XEXP (x1, 0);
if (rtx_equal_p (x2, ro[0]) && 1)
goto L1048;
goto ret0;
L1048:
x2 = XEXP (x1, 1);
if (general_operand (x2, HImode))
{
ro[1] = x2;
return 209;
}
goto ret0;
L1086:
x2 = XEXP (x1, 0);
if (rtx_equal_p (x2, ro[0]) && 1)
goto L1087;
goto ret0;
L1087:
x2 = XEXP (x1, 1);
if (general_operand (x2, HImode))
{
ro[1] = x2;
return 216;
}
goto ret0;
L1113:
x2 = XEXP (x1, 0);
if (rtx_equal_p (x2, ro[0]) && 1)
goto L1114;
goto ret0;
L1114:
x2 = XEXP (x1, 1);
if (general_operand (x2, HImode))
{
ro[1] = x2;
return 221;
}
goto ret0;
L1140:
x2 = XEXP (x1, 0);
if (rtx_equal_p (x2, ro[0]) && 1)
goto L1141;
goto ret0;
L1141:
x2 = XEXP (x1, 1);
if (general_operand (x2, HImode))
{
ro[1] = x2;
return 226;
}
goto ret0;
L408:
x1 = XEXP (x0, 1);
switch (GET_MODE (x1))
{
case QImode:
switch (GET_CODE (x1))
{
case PLUS:
goto L409;
case MINUS:
goto L472;
case AND:
goto L769;
case IOR:
goto L808;
case XOR:
goto L847;
case NEG:
goto L876;
case NOT:
goto L942;
}
}
if (general_operand (x1, QImode))
{
ro[1] = x1;
return 33;
}
x1 = XEXP (x0, 0);
x2 = XEXP (x1, 0);
goto L978;
L409:
x2 = XEXP (x1, 0);
if (rtx_equal_p (x2, ro[0]) && 1)
goto L410;
L415:
if (general_operand (x2, QImode))
{
ro[1] = x2;
goto L416;
}
x1 = XEXP (x0, 0);
x2 = XEXP (x1, 0);
goto L978;
L410:
x2 = XEXP (x1, 1);
if (general_operand (x2, QImode))
{
ro[1] = x2;
return 89;
}
x2 = XEXP (x1, 0);
goto L415;
L416:
x2 = XEXP (x1, 1);
if (rtx_equal_p (x2, ro[0]) && 1)
return 90;
x1 = XEXP (x0, 0);
x2 = XEXP (x1, 0);
goto L978;
L472:
x2 = XEXP (x1, 0);
if (rtx_equal_p (x2, ro[0]) && 1)
goto L473;
x1 = XEXP (x0, 0);
x2 = XEXP (x1, 0);
goto L978;
L473:
x2 = XEXP (x1, 1);
if (general_operand (x2, QImode))
{
ro[1] = x2;
return 102;
}
x1 = XEXP (x0, 0);
x2 = XEXP (x1, 0);
goto L978;
L769:
x2 = XEXP (x1, 0);
if (rtx_equal_p (x2, ro[0]) && 1)
goto L770;
L775:
if (general_operand (x2, QImode))
{
ro[1] = x2;
goto L776;
}
x1 = XEXP (x0, 0);
x2 = XEXP (x1, 0);
goto L978;
L770:
x2 = XEXP (x1, 1);
if (general_operand (x2, QImode))
{
ro[1] = x2;
return 152;
}
x2 = XEXP (x1, 0);
goto L775;
L776:
x2 = XEXP (x1, 1);
if (rtx_equal_p (x2, ro[0]) && 1)
return 153;
x1 = XEXP (x0, 0);
x2 = XEXP (x1, 0);
goto L978;
L808:
x2 = XEXP (x1, 0);
if (rtx_equal_p (x2, ro[0]) && 1)
goto L809;
L814:
if (general_operand (x2, QImode))
{
ro[1] = x2;
goto L815;
}
x1 = XEXP (x0, 0);
x2 = XEXP (x1, 0);
goto L978;
L809:
x2 = XEXP (x1, 1);
if (general_operand (x2, QImode))
{
ro[1] = x2;
return 159;
}
x2 = XEXP (x1, 0);
goto L814;
L815:
x2 = XEXP (x1, 1);
if (rtx_equal_p (x2, ro[0]) && 1)
return 160;
x1 = XEXP (x0, 0);
x2 = XEXP (x1, 0);
goto L978;
L847:
x2 = XEXP (x1, 0);
if (rtx_equal_p (x2, ro[0]) && 1)
goto L848;
L853:
if (general_operand (x2, QImode))
{
ro[1] = x2;
goto L854;
}
x1 = XEXP (x0, 0);
x2 = XEXP (x1, 0);
goto L978;
L848:
x2 = XEXP (x1, 1);
if (general_operand (x2, QImode))
{
ro[1] = x2;
return 166;
}
x2 = XEXP (x1, 0);
goto L853;
L854:
x2 = XEXP (x1, 1);
if (rtx_equal_p (x2, ro[0]) && 1)
return 167;
x1 = XEXP (x0, 0);
x2 = XEXP (x1, 0);
goto L978;
L876:
x2 = XEXP (x1, 0);
if (rtx_equal_p (x2, ro[0]) && 1)
return 172;
x1 = XEXP (x0, 0);
x2 = XEXP (x1, 0);
goto L978;
L942:
x2 = XEXP (x1, 0);
if (rtx_equal_p (x2, ro[0]) && 1)
return 190;
x1 = XEXP (x0, 0);
x2 = XEXP (x1, 0);
goto L978;
L979:
x1 = XEXP (x0, 1);
if (GET_MODE (x1) != QImode)
goto ret0;
switch (GET_CODE (x1))
{
case ASHIFT:
goto L980;
case ASHIFTRT:
goto L1019;
case LSHIFT:
goto L1058;
case LSHIFTRT:
goto L1097;
case ROTATE:
goto L1124;
case ROTATERT:
goto L1151;
}
goto ret0;
L980:
x2 = XEXP (x1, 0);
if (rtx_equal_p (x2, ro[0]) && 1)
goto L981;
goto ret0;
L981:
x2 = XEXP (x1, 1);
if (general_operand (x2, QImode))
{
ro[1] = x2;
return 197;
}
goto ret0;
L1019:
x2 = XEXP (x1, 0);
if (rtx_equal_p (x2, ro[0]) && 1)
goto L1020;
goto ret0;
L1020:
x2 = XEXP (x1, 1);
if (general_operand (x2, QImode))
{
ro[1] = x2;
return 204;
}
goto ret0;
L1058:
x2 = XEXP (x1, 0);
if (rtx_equal_p (x2, ro[0]) && 1)
goto L1059;
goto ret0;
L1059:
x2 = XEXP (x1, 1);
if (general_operand (x2, QImode))
{
ro[1] = x2;
return 211;
}
goto ret0;
L1097:
x2 = XEXP (x1, 0);
if (rtx_equal_p (x2, ro[0]) && 1)
goto L1098;
goto ret0;
L1098:
x2 = XEXP (x1, 1);
if (general_operand (x2, QImode))
{
ro[1] = x2;
return 218;
}
goto ret0;
L1124:
x2 = XEXP (x1, 0);
if (rtx_equal_p (x2, ro[0]) && 1)
goto L1125;
goto ret0;
L1125:
x2 = XEXP (x1, 1);
if (general_operand (x2, QImode))
{
ro[1] = x2;
return 223;
}
goto ret0;
L1151:
x2 = XEXP (x1, 0);
if (rtx_equal_p (x2, ro[0]) && 1)
goto L1152;
goto ret0;
L1152:
x2 = XEXP (x1, 1);
if (general_operand (x2, QImode))
{
ro[1] = x2;
return 228;
}
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 = XEXP (x0, 1);
x2 = XEXP (x1, 0);
switch (GET_CODE (x2))
{
case EQ:
goto L1326;
case NE:
goto L1335;
case GT:
goto L1344;
case GTU:
goto L1353;
case LT:
goto L1362;
case LTU:
goto L1371;
case GE:
goto L1380;
case GEU:
goto L1389;
case LE:
goto L1398;
case LEU:
goto L1407;
}
goto ret0;
L1326:
x3 = XEXP (x2, 0);
if (GET_CODE (x3) == CC0 && 1)
goto L1327;
goto ret0;
L1327:
x3 = XEXP (x2, 1);
if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
goto L1328;
goto ret0;
L1328:
x2 = XEXP (x1, 1);
switch (GET_CODE (x2))
{
case LABEL_REF:
goto L1329;
case PC:
goto L1419;
}
goto ret0;
L1329:
x3 = XEXP (x2, 0);
ro[0] = x3;
goto L1330;
L1330:
x2 = XEXP (x1, 2);
if (GET_CODE (x2) == PC && 1)
return 258;
goto ret0;
L1419:
x2 = XEXP (x1, 2);
if (GET_CODE (x2) == LABEL_REF && 1)
goto L1420;
goto ret0;
L1420:
x3 = XEXP (x2, 0);
ro[0] = x3;
return 268;
L1335:
x3 = XEXP (x2, 0);
if (GET_CODE (x3) == CC0 && 1)
goto L1336;
goto ret0;
L1336:
x3 = XEXP (x2, 1);
if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
goto L1337;
goto ret0;
L1337:
x2 = XEXP (x1, 1);
switch (GET_CODE (x2))
{
case LABEL_REF:
goto L1338;
case PC:
goto L1428;
}
goto ret0;
L1338:
x3 = XEXP (x2, 0);
ro[0] = x3;
goto L1339;
L1339:
x2 = XEXP (x1, 2);
if (GET_CODE (x2) == PC && 1)
return 259;
goto ret0;
L1428:
x2 = XEXP (x1, 2);
if (GET_CODE (x2) == LABEL_REF && 1)
goto L1429;
goto ret0;
L1429:
x3 = XEXP (x2, 0);
ro[0] = x3;
return 269;
L1344:
x3 = XEXP (x2, 0);
if (GET_CODE (x3) == CC0 && 1)
goto L1345;
goto ret0;
L1345:
x3 = XEXP (x2, 1);
if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
goto L1346;
goto ret0;
L1346:
x2 = XEXP (x1, 1);
switch (GET_CODE (x2))
{
case LABEL_REF:
goto L1347;
case PC:
goto L1437;
}
goto ret0;
L1347:
x3 = XEXP (x2, 0);
ro[0] = x3;
goto L1348;
L1348:
x2 = XEXP (x1, 2);
if (GET_CODE (x2) == PC && 1)
return 260;
goto ret0;
L1437:
x2 = XEXP (x1, 2);
if (GET_CODE (x2) == LABEL_REF && 1)
goto L1438;
goto ret0;
L1438:
x3 = XEXP (x2, 0);
ro[0] = x3;
return 270;
L1353:
x3 = XEXP (x2, 0);
if (GET_CODE (x3) == CC0 && 1)
goto L1354;
goto ret0;
L1354:
x3 = XEXP (x2, 1);
if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
goto L1355;
goto ret0;
L1355:
x2 = XEXP (x1, 1);
switch (GET_CODE (x2))
{
case LABEL_REF:
goto L1356;
case PC:
goto L1446;
}
goto ret0;
L1356:
x3 = XEXP (x2, 0);
ro[0] = x3;
goto L1357;
L1357:
x2 = XEXP (x1, 2);
if (GET_CODE (x2) == PC && 1)
return 261;
goto ret0;
L1446:
x2 = XEXP (x1, 2);
if (GET_CODE (x2) == LABEL_REF && 1)
goto L1447;
goto ret0;
L1447:
x3 = XEXP (x2, 0);
ro[0] = x3;
return 271;
L1362:
x3 = XEXP (x2, 0);
if (GET_CODE (x3) == CC0 && 1)
goto L1363;
goto ret0;
L1363:
x3 = XEXP (x2, 1);
if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
goto L1364;
goto ret0;
L1364:
x2 = XEXP (x1, 1);
switch (GET_CODE (x2))
{
case LABEL_REF:
goto L1365;
case PC:
goto L1455;
}
goto ret0;
L1365:
x3 = XEXP (x2, 0);
ro[0] = x3;
goto L1366;
L1366:
x2 = XEXP (x1, 2);
if (GET_CODE (x2) == PC && 1)
return 262;
goto ret0;
L1455:
x2 = XEXP (x1, 2);
if (GET_CODE (x2) == LABEL_REF && 1)
goto L1456;
goto ret0;
L1456:
x3 = XEXP (x2, 0);
ro[0] = x3;
return 272;
L1371:
x3 = XEXP (x2, 0);
if (GET_CODE (x3) == CC0 && 1)
goto L1372;
goto ret0;
L1372:
x3 = XEXP (x2, 1);
if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
goto L1373;
goto ret0;
L1373:
x2 = XEXP (x1, 1);
switch (GET_CODE (x2))
{
case LABEL_REF:
goto L1374;
case PC:
goto L1464;
}
goto ret0;
L1374:
x3 = XEXP (x2, 0);
ro[0] = x3;
goto L1375;
L1375:
x2 = XEXP (x1, 2);
if (GET_CODE (x2) == PC && 1)
return 263;
goto ret0;
L1464:
x2 = XEXP (x1, 2);
if (GET_CODE (x2) == LABEL_REF && 1)
goto L1465;
goto ret0;
L1465:
x3 = XEXP (x2, 0);
ro[0] = x3;
return 273;
L1380:
x3 = XEXP (x2, 0);
if (GET_CODE (x3) == CC0 && 1)
goto L1381;
goto ret0;
L1381:
x3 = XEXP (x2, 1);
if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
goto L1382;
goto ret0;
L1382:
x2 = XEXP (x1, 1);
switch (GET_CODE (x2))
{
case LABEL_REF:
goto L1383;
case PC:
goto L1473;
}
goto ret0;
L1383:
x3 = XEXP (x2, 0);
ro[0] = x3;
goto L1384;
L1384:
x2 = XEXP (x1, 2);
if (GET_CODE (x2) == PC && 1)
return 264;
goto ret0;
L1473:
x2 = XEXP (x1, 2);
if (GET_CODE (x2) == LABEL_REF && 1)
goto L1474;
goto ret0;
L1474:
x3 = XEXP (x2, 0);
ro[0] = x3;
return 274;
L1389:
x3 = XEXP (x2, 0);
if (GET_CODE (x3) == CC0 && 1)
goto L1390;
goto ret0;
L1390:
x3 = XEXP (x2, 1);
if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
goto L1391;
goto ret0;
L1391:
x2 = XEXP (x1, 1);
switch (GET_CODE (x2))
{
case LABEL_REF:
goto L1392;
case PC:
goto L1482;
}
goto ret0;
L1392:
x3 = XEXP (x2, 0);
ro[0] = x3;
goto L1393;
L1393:
x2 = XEXP (x1, 2);
if (GET_CODE (x2) == PC && 1)
return 265;
goto ret0;
L1482:
x2 = XEXP (x1, 2);
if (GET_CODE (x2) == LABEL_REF && 1)
goto L1483;
goto ret0;
L1483:
x3 = XEXP (x2, 0);
ro[0] = x3;
return 275;
L1398:
x3 = XEXP (x2, 0);
if (GET_CODE (x3) == CC0 && 1)
goto L1399;
goto ret0;
L1399:
x3 = XEXP (x2, 1);
if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
goto L1400;
goto ret0;
L1400:
x2 = XEXP (x1, 1);
switch (GET_CODE (x2))
{
case LABEL_REF:
goto L1401;
case PC:
goto L1491;
}
goto ret0;
L1401:
x3 = XEXP (x2, 0);
ro[0] = x3;
goto L1402;
L1402:
x2 = XEXP (x1, 2);
if (GET_CODE (x2) == PC && 1)
return 266;
goto ret0;
L1491:
x2 = XEXP (x1, 2);
if (GET_CODE (x2) == LABEL_REF && 1)
goto L1492;
goto ret0;
L1492:
x3 = XEXP (x2, 0);
ro[0] = x3;
return 276;
L1407:
x3 = XEXP (x2, 0);
if (GET_CODE (x3) == CC0 && 1)
goto L1408;
goto ret0;
L1408:
x3 = XEXP (x2, 1);
if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
goto L1409;
goto ret0;
L1409:
x2 = XEXP (x1, 1);
switch (GET_CODE (x2))
{
case LABEL_REF:
goto L1410;
case PC:
goto L1500;
}
goto ret0;
L1410:
x3 = XEXP (x2, 0);
ro[0] = x3;
goto L1411;
L1411:
x2 = XEXP (x1, 2);
if (GET_CODE (x2) == PC && 1)
return 267;
goto ret0;
L1500:
x2 = XEXP (x1, 2);
if (GET_CODE (x2) == LABEL_REF && 1)
goto L1501;
goto ret0;
L1501:
x3 = XEXP (x2, 0);
ro[0] = x3;
return 277;
ret0: return -1;
}
int
recog_6 (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 DFmode:
if (GET_CODE (x1) == MEM && push_operand (x1, DFmode))
{
ro[0] = x1;
goto L2;
}
L173:
if (general_operand (x1, DFmode))
{
ro[0] = x1;
goto L227;
}
break;
case DImode:
if (GET_CODE (x1) == MEM && push_operand (x1, DImode))
{
ro[0] = x1;
goto L5;
}
L184:
if (general_operand (x1, DImode))
{
ro[0] = x1;
goto L185;
}
break;
case SImode:
if (GET_CODE (x1) == MEM && push_operand (x1, SImode))
{
ro[0] = x1;
goto L148;
}
L150:
if (general_operand (x1, SImode))
{
ro[0] = x1;
goto L203;
}
break;
case HImode:
if (general_operand (x1, HImode))
{
ro[0] = x1;
goto L199;
}
L961:
if (register_operand (x1, HImode))
{
ro[0] = x1;
goto L962;
}
break;
case QImode:
if (general_operand (x1, QImode))
{
ro[0] = x1;
goto L191;
}
L972:
if (register_operand (x1, QImode))
{
ro[0] = x1;
goto L973;
}
break;
case SFmode:
if (general_operand (x1, SFmode))
{
ro[0] = x1;
goto L237;
}
break;
case XFmode:
if (nonimmediate_operand (x1, XFmode))
{
ro[0] = x1;
goto L177;
}
}
L187:
switch (GET_MODE (x1))
{
case SImode:
switch (GET_CODE (x1))
{
case MEM:
if (push_operand (x1, SImode))
{
ro[0] = x1;
goto L188;
}
break;
case ZERO_EXTRACT:
goto L1155;
}
L373:
if (general_operand (x1, SImode))
{
ro[0] = x1;
goto L374;
}
L739:
if (not_sp_operand (x1, SImode))
{
ro[0] = x1;
goto L740;
}
L944:
if (register_operand (x1, SImode))
{
ro[0] = x1;
goto L945;
}
}
switch (GET_CODE (x1))
{
case CC0:
goto L8;
case STRICT_LOW_PART:
goto L160;
case PC:
goto L1324;
}
L1595:
ro[0] = x1;
goto L1596;
L1612:
switch (GET_CODE (x1))
{
case PC:
goto L1613;
case CC0:
goto L1703;
}
switch (GET_MODE (x1))
{
case SImode:
if (general_operand (x1, SImode))
{
ro[0] = x1;
goto L1751;
}
break;
case DFmode:
if (register_operand (x1, DFmode))
{
ro[0] = x1;
goto L1619;
}
L1718:
if (general_operand (x1, DFmode))
{
ro[0] = x1;
goto L1719;
}
break;
case SFmode:
if (register_operand (x1, SFmode))
{
ro[0] = x1;
goto L1626;
}
L1722:
if (general_operand (x1, SFmode))
{
ro[0] = x1;
goto L1723;
}
break;
case XFmode:
if (general_operand (x1, XFmode))
{
ro[0] = x1;
goto L1711;
}
break;
case QImode:
if (general_operand (x1, QImode))
{
ro[0] = x1;
goto L1743;
}
break;
case HImode:
if (general_operand (x1, HImode))
{
ro[0] = x1;
goto L1747;
}
}
goto ret0;
L2:
x1 = XEXP (x0, 1);
if (general_operand (x1, DFmode))
{
ro[1] = x1;
return 0;
}
x1 = XEXP (x0, 0);
goto L173;
L227:
x1 = XEXP (x0, 1);
switch (GET_MODE (x1))
{
case DFmode:
switch (GET_CODE (x1))
{
case FLOAT_EXTEND:
goto L228;
case FLOAT:
goto L262;
case FIX:
goto L333;
case PLUS:
goto L420;
case MINUS:
goto L477;
case MULT:
goto L599;
case DIV:
goto L659;
case NEG:
goto L890;
case SQRT:
goto L900;
case ABS:
goto L914;
}
}
if (general_operand (x1, DFmode))
{
ro[1] = x1;
return 35;
}
x1 = XEXP (x0, 0);
goto L1595;
L228:
x2 = XEXP (x1, 0);
if (general_operand (x2, SFmode))
goto L233;
x1 = XEXP (x0, 0);
goto L1595;
L233:
ro[1] = x2;
if (TARGET_FPA)
return 54;
L234:
ro[1] = x2;
if (TARGET_68881)
return 55;
x1 = XEXP (x0, 0);
goto L1595;
L262:
x2 = XEXP (x1, 0);
if (general_operand (x2, SImode))
goto L267;
L276:
if (general_operand (x2, HImode))
{
ro[1] = x2;
if (TARGET_68881)
return 67;
}
L284:
if (general_operand (x2, QImode))
{
ro[1] = x2;
if (TARGET_68881)
return 69;
}
x1 = XEXP (x0, 0);
goto L1595;
L267:
ro[1] = x2;
if (TARGET_FPA)
return 64;
L268:
ro[1] = x2;
if (TARGET_68881)
return 65;
goto L276;
L333:
x2 = XEXP (x1, 0);
if (general_operand (x2, DFmode))
{
ro[1] = x2;
if (TARGET_68881 && !TARGET_68040)
return 73;
}
x1 = XEXP (x0, 0);
goto L1595;
L420:
x2 = XEXP (x1, 0);
if (general_operand (x2, DFmode))
{
ro[1] = x2;
goto L421;
}
x1 = XEXP (x0, 0);
goto L1595;
L421:
x2 = XEXP (x1, 1);
if (general_operand (x2, DFmode))
goto L427;
x1 = XEXP (x0, 0);
goto L1595;
L427:
ro[2] = x2;
if (TARGET_FPA)
return 92;
L428:
ro[2] = x2;
if (TARGET_68881)
return 93;
x1 = XEXP (x0, 0);
goto L1595;
L477:
x2 = XEXP (x1, 0);
if (general_operand (x2, DFmode))
{
ro[1] = x2;
goto L478;
}
x1 = XEXP (x0, 0);
goto L1595;
L478:
x2 = XEXP (x1, 1);
if (general_operand (x2, DFmode))
goto L484;
x1 = XEXP (x0, 0);
goto L1595;
L484:
ro[2] = x2;
if (TARGET_FPA)
return 104;
L485:
ro[2] = x2;
if (TARGET_68881)
return 105;
x1 = XEXP (x0, 0);
goto L1595;
L599:
x2 = XEXP (x1, 0);
if (general_operand (x2, DFmode))
{
ro[1] = x2;
goto L600;
}
x1 = XEXP (x0, 0);
goto L1595;
L600:
x2 = XEXP (x1, 1);
if (general_operand (x2, DFmode))
goto L606;
x1 = XEXP (x0, 0);
goto L1595;
L606:
ro[2] = x2;
if (TARGET_FPA)
return 122;
L607:
ro[2] = x2;
if (TARGET_68881)
return 123;
x1 = XEXP (x0, 0);
goto L1595;
L659:
x2 = XEXP (x1, 0);
if (general_operand (x2, DFmode))
{
ro[1] = x2;
goto L660;
}
x1 = XEXP (x0, 0);
goto L1595;
L660:
x2 = XEXP (x1, 1);
if (general_operand (x2, DFmode))
goto L666;
x1 = XEXP (x0, 0);
goto L1595;
L666:
ro[2] = x2;
if (TARGET_FPA)
return 134;
L667:
ro[2] = x2;
if (TARGET_68881)
return 135;
x1 = XEXP (x0, 0);
goto L1595;
L890:
x2 = XEXP (x1, 0);
if (general_operand (x2, DFmode))
goto L895;
x1 = XEXP (x0, 0);
goto L1595;
L895:
ro[1] = x2;
if (TARGET_FPA)
return 177;
L896:
ro[1] = x2;
if (TARGET_68881)
return 178;
x1 = XEXP (x0, 0);
goto L1595;
L900:
x2 = XEXP (x1, 0);
if (general_operand (x2, DFmode))
{
ro[1] = x2;
if (TARGET_68881)
return 179;
}
x1 = XEXP (x0, 0);
goto L1595;
L914:
x2 = XEXP (x1, 0);
if (general_operand (x2, DFmode))
goto L919;
x1 = XEXP (x0, 0);
goto L1595;
L919:
ro[1] = x2;
if (TARGET_FPA)
return 184;
L920:
ro[1] = x2;
if (TARGET_68881)
return 185;
x1 = XEXP (x0, 0);
goto L1595;
L5:
x1 = XEXP (x0, 1);
if (general_operand (x1, DImode))
{
ro[1] = x1;
return 1;
}
x1 = XEXP (x0, 0);
goto L184;
L185:
x1 = XEXP (x0, 1);
if (general_operand (x1, DImode))
{
ro[1] = x1;
return 39;
}
x1 = XEXP (x0, 0);
goto L1595;
L148:
x1 = XEXP (x0, 1);
if (general_operand (x1, SImode))
{
ro[1] = x1;
if (GET_CODE (operands[1]) == CONST_INT
&& INTVAL (operands[1]) >= -0x8000
&& INTVAL (operands[1]) < 0x8000)
return 26;
}
x1 = XEXP (x0, 0);
goto L150;
L203:
x1 = XEXP (x0, 1);
switch (GET_MODE (x1))
{
case SImode:
switch (GET_CODE (x1))
{
case ZERO_EXTEND:
goto L204;
case SIGN_EXTEND:
goto L216;
case FIX:
goto L298;
}
}
if (GET_CODE (x1) == CONST_INT && XWINT (x1, 0) == 0 && 1)
if ((TARGET_68020
|| !(GET_CODE (operands[0]) == MEM && MEM_VOLATILE_P (operands[0]))))
return 27;
L154:
if (general_operand (x1, SImode))
{
ro[1] = x1;
return 29;
}
x1 = XEXP (x0, 0);
goto L187;
L204:
x2 = XEXP (x1, 0);
switch (GET_MODE (x2))
{
case HImode:
if (nonimmediate_operand (x2, HImode))
{
ro[1] = x2;
if (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
return 47;
}
break;
case QImode:
if (nonimmediate_operand (x2, QImode))
{
ro[1] = x2;
if (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
return 49;
}
}
x1 = XEXP (x0, 0);
goto L187;
L216:
x2 = XEXP (x1, 0);
switch (GET_MODE (x2))
{
case HImode:
if (nonimmediate_operand (x2, HImode))
{
ro[1] = x2;
return 50;
}
break;
case QImode:
if (nonimmediate_operand (x2, QImode))
{
ro[1] = x2;
if (TARGET_68020)
return 52;
}
}
x1 = XEXP (x0, 0);
goto L187;
L298:
x2 = XEXP (x1, 0);
switch (GET_MODE (x2))
{
case DFmode:
switch (GET_CODE (x2))
{
case FIX:
goto L299;
}
break;
case SFmode:
if (GET_CODE (x2) == FIX && 1)
goto L366;
}
if (general_operand (x2, SFmode))
{
ro[1] = x2;
if (TARGET_68881)
return 77;
}
L361:
if (general_operand (x2, DFmode))
{
ro[1] = x2;
if (TARGET_68881)
return 80;
}
x1 = XEXP (x0, 0);
goto L187;
L299:
x3 = XEXP (x2, 0);
if (pnum_clobbers != 0 && register_operand (x3, DFmode))
{
ro[1] = x3;
if (TARGET_68040)
{
*pnum_clobbers = 2;
return 70;
}
}
L371:
if (general_operand (x3, DFmode))
{
ro[1] = x3;
if (TARGET_FPA)
return 82;
}
x1 = XEXP (x0, 0);
goto L187;
L366:
x3 = XEXP (x2, 0);
if (general_operand (x3, SFmode))
{
ro[1] = x3;
if (TARGET_FPA)
return 81;
}
x1 = XEXP (x0, 0);
goto L187;
L199:
tem = recog_1 (x0, insn, pnum_clobbers);
if (tem >= 0) return tem;
x1 = XEXP (x0, 0);
goto L961;
L962:
x1 = XEXP (x0, 1);
if (GET_MODE (x1) != HImode)
{
x1 = XEXP (x0, 0);
goto L1595;
}
switch (GET_CODE (x1))
{
case ASHIFT:
goto L963;
case ASHIFTRT:
goto L1002;
case LSHIFT:
goto L1041;
case LSHIFTRT:
goto L1080;
case ROTATE:
goto L1107;
case ROTATERT:
goto L1134;
}
x1 = XEXP (x0, 0);
goto L1595;
L963:
x2 = XEXP (x1, 0);
if (register_operand (x2, HImode))
{
ro[1] = x2;
goto L964;
}
x1 = XEXP (x0, 0);
goto L1595;
L964:
x2 = XEXP (x1, 1);
if (general_operand (x2, HImode))
{
ro[2] = x2;
return 194;
}
x1 = XEXP (x0, 0);
goto L1595;
L1002:
x2 = XEXP (x1, 0);
if (register_operand (x2, HImode))
{
ro[1] = x2;
goto L1003;
}
x1 = XEXP (x0, 0);
goto L1595;
L1003:
x2 = XEXP (x1, 1);
if (general_operand (x2, HImode))
{
ro[2] = x2;
return 201;
}
x1 = XEXP (x0, 0);
goto L1595;
L1041:
x2 = XEXP (x1, 0);
if (register_operand (x2, HImode))
{
ro[1] = x2;
goto L1042;
}
x1 = XEXP (x0, 0);
goto L1595;
L1042:
x2 = XEXP (x1, 1);
if (general_operand (x2, HImode))
{
ro[2] = x2;
return 208;
}
x1 = XEXP (x0, 0);
goto L1595;
L1080:
x2 = XEXP (x1, 0);
if (register_operand (x2, HImode))
{
ro[1] = x2;
goto L1081;
}
x1 = XEXP (x0, 0);
goto L1595;
L1081:
x2 = XEXP (x1, 1);
if (general_operand (x2, HImode))
{
ro[2] = x2;
return 215;
}
x1 = XEXP (x0, 0);
goto L1595;
L1107:
x2 = XEXP (x1, 0);
if (register_operand (x2, HImode))
{
ro[1] = x2;
goto L1108;
}
x1 = XEXP (x0, 0);
goto L1595;
L1108:
x2 = XEXP (x1, 1);
if (general_operand (x2, HImode))
{
ro[2] = x2;
return 220;
}
x1 = XEXP (x0, 0);
goto L1595;
L1134:
x2 = XEXP (x1, 0);
if (register_operand (x2, HImode))
{
ro[1] = x2;
goto L1135;
}
x1 = XEXP (x0, 0);
goto L1595;
L1135:
x2 = XEXP (x1, 1);
if (general_operand (x2, HImode))
{
ro[2] = x2;
return 225;
}
x1 = XEXP (x0, 0);
goto L1595;
L191:
tem = recog_2 (x0, insn, pnum_clobbers);
if (tem >= 0) return tem;
x1 = XEXP (x0, 0);
goto L972;
L973:
x1 = XEXP (x0, 1);
if (GET_MODE (x1) != QImode)
{
x1 = XEXP (x0, 0);
goto L1595;
}
switch (GET_CODE (x1))
{
case ASHIFT:
goto L974;
case ASHIFTRT:
goto L1013;
case LSHIFT:
goto L1052;
case LSHIFTRT:
goto L1091;
case ROTATE:
goto L1118;
case ROTATERT:
goto L1145;
}
x1 = XEXP (x0, 0);
goto L1595;
L974:
x2 = XEXP (x1, 0);
if (register_operand (x2, QImode))
{
ro[1] = x2;
goto L975;
}
x1 = XEXP (x0, 0);
goto L1595;
L975:
x2 = XEXP (x1, 1);
if (general_operand (x2, QImode))
{
ro[2] = x2;
return 196;
}
x1 = XEXP (x0, 0);
goto L1595;
L1013:
x2 = XEXP (x1, 0);
if (register_operand (x2, QImode))
{
ro[1] = x2;
goto L1014;
}
x1 = XEXP (x0, 0);
goto L1595;
L1014:
x2 = XEXP (x1, 1);
if (general_operand (x2, QImode))
{
ro[2] = x2;
return 203;
}
x1 = XEXP (x0, 0);
goto L1595;
L1052:
x2 = XEXP (x1, 0);
if (register_operand (x2, QImode))
{
ro[1] = x2;
goto L1053;
}
x1 = XEXP (x0, 0);
goto L1595;
L1053:
x2 = XEXP (x1, 1);
if (general_operand (x2, QImode))
{
ro[2] = x2;
return 210;
}
x1 = XEXP (x0, 0);
goto L1595;
L1091:
x2 = XEXP (x1, 0);
if (register_operand (x2, QImode))
{
ro[1] = x2;
goto L1092;
}
x1 = XEXP (x0, 0);
goto L1595;
L1092:
x2 = XEXP (x1, 1);
if (general_operand (x2, QImode))
{
ro[2] = x2;
return 217;
}
x1 = XEXP (x0, 0);
goto L1595;
L1118:
x2 = XEXP (x1, 0);
if (register_operand (x2, QImode))
{
ro[1] = x2;
goto L1119;
}
x1 = XEXP (x0, 0);
goto L1595;
L1119:
x2 = XEXP (x1, 1);
if (general_operand (x2, QImode))
{
ro[2] = x2;
return 222;
}
x1 = XEXP (x0, 0);
goto L1595;
L1145:
x2 = XEXP (x1, 0);
if (register_operand (x2, QImode))
{
ro[1] = x2;
goto L1146;
}
x1 = XEXP (x0, 0);
goto L1595;
L1146:
x2 = XEXP (x1, 1);
if (general_operand (x2, QImode))
{
ro[2] = x2;
return 227;
}
x1 = XEXP (x0, 0);
goto L1595;
L237:
x1 = XEXP (x0, 1);
switch (GET_MODE (x1))
{
case SFmode:
switch (GET_CODE (x1))
{
case FLOAT_TRUNCATE:
goto L238;
case FLOAT:
goto L252;
case FIX:
goto L337;
case PLUS:
goto L432;
case MINUS:
goto L489;
case MULT:
goto L611;
case DIV:
goto L671;
case NEG:
goto L880;
case ABS:
goto L904;
}
}
if (general_operand (x1, SFmode))
{
ro[1] = x1;
return 34;
}
x1 = XEXP (x0, 0);
goto L1595;
L238:
x2 = XEXP (x1, 0);
if (general_operand (x2, DFmode))
goto L243;
L248:
if (general_operand (x2, DFmode))
{
ro[1] = x2;
if (TARGET_68881)
return 59;
}
x1 = XEXP (x0, 0);
goto L1595;
L243:
ro[1] = x2;
if (TARGET_FPA)
return 57;
L244:
ro[1] = x2;
if (TARGET_68040_ONLY)
return 58;
goto L248;
L252:
x2 = XEXP (x1, 0);
if (general_operand (x2, SImode))
goto L257;
L272:
if (general_operand (x2, HImode))
{
ro[1] = x2;
if (TARGET_68881)
return 66;
}
L280:
if (general_operand (x2, QImode))
{
ro[1] = x2;
if (TARGET_68881)
return 68;
}
x1 = XEXP (x0, 0);
goto L1595;
L257:
ro[1] = x2;
if (TARGET_FPA)
return 61;
L258:
ro[1] = x2;
if (TARGET_68881)
return 62;
goto L272;
L337:
x2 = XEXP (x1, 0);
if (general_operand (x2, SFmode))
{
ro[1] = x2;
if (TARGET_68881 && !TARGET_68040)
return 74;
}
x1 = XEXP (x0, 0);
goto L1595;
L432:
x2 = XEXP (x1, 0);
if (general_operand (x2, SFmode))
{
ro[1] = x2;
goto L433;
}
x1 = XEXP (x0, 0);
goto L1595;
L433:
x2 = XEXP (x1, 1);
if (general_operand (x2, SFmode))
goto L439;
x1 = XEXP (x0, 0);
goto L1595;
L439:
ro[2] = x2;
if (TARGET_FPA)
return 95;
L440:
ro[2] = x2;
if (TARGET_68881)
return 96;
x1 = XEXP (x0, 0);
goto L1595;
L489:
x2 = XEXP (x1, 0);
if (general_operand (x2, SFmode))
{
ro[1] = x2;
goto L490;
}
x1 = XEXP (x0, 0);
goto L1595;
L490:
x2 = XEXP (x1, 1);
if (general_operand (x2, SFmode))
goto L496;
x1 = XEXP (x0, 0);
goto L1595;
L496:
ro[2] = x2;
if (TARGET_FPA)
return 107;
L497:
ro[2] = x2;
if (TARGET_68881)
return 108;
x1 = XEXP (x0, 0);
goto L1595;
L611:
x2 = XEXP (x1, 0);
if (general_operand (x2, SFmode))
{
ro[1] = x2;
goto L612;
}
x1 = XEXP (x0, 0);
goto L1595;
L612:
x2 = XEXP (x1, 1);
if (general_operand (x2, SFmode))
goto L618;
x1 = XEXP (x0, 0);
goto L1595;
L618:
ro[2] = x2;
if (TARGET_FPA)
return 125;
L619:
ro[2] = x2;
if (TARGET_68881)
return 126;
x1 = XEXP (x0, 0);
goto L1595;
L671:
x2 = XEXP (x1, 0);
if (general_operand (x2, SFmode))
{
ro[1] = x2;
goto L672;
}
x1 = XEXP (x0, 0);
goto L1595;
L672:
x2 = XEXP (x1, 1);
if (general_operand (x2, SFmode))
goto L678;
x1 = XEXP (x0, 0);
goto L1595;
L678:
ro[2] = x2;
if (TARGET_FPA)
return 137;
L679:
ro[2] = x2;
if (TARGET_68881)
return 138;
x1 = XEXP (x0, 0);
goto L1595;
L880:
x2 = XEXP (x1, 0);
if (general_operand (x2, SFmode))
goto L885;
x1 = XEXP (x0, 0);
goto L1595;
L885:
ro[1] = x2;
if (TARGET_FPA)
return 174;
L886:
ro[1] = x2;
if (TARGET_68881)
return 175;
x1 = XEXP (x0, 0);
goto L1595;
L904:
x2 = XEXP (x1, 0);
if (general_operand (x2, SFmode))
goto L909;
x1 = XEXP (x0, 0);
goto L1595;
L909:
ro[1] = x2;
if (TARGET_FPA)
return 181;
L910:
ro[1] = x2;
if (TARGET_68881)
return 182;
x1 = XEXP (x0, 0);
goto L1595;
L177:
x1 = XEXP (x0, 1);
if (nonimmediate_operand (x1, XFmode))
goto L181;
x1 = XEXP (x0, 0);
goto L1595;
L181:
ro[1] = x1;
if (TARGET_68881)
return 37;
L182:
ro[1] = x1;
if (! TARGET_68881)
return 38;
x1 = XEXP (x0, 0);
goto L1595;
L188:
x1 = XEXP (x0, 1);
if (address_operand (x1, SImode))
{
ro[1] = x1;
return 40;
}
x1 = XEXP (x0, 0);
goto L373;
L1155:
x2 = XEXP (x1, 0);
switch (GET_MODE (x2))
{
case QImode:
if (nonimmediate_operand (x2, QImode))
{
ro[0] = x2;
goto L1156;
}
break;
case SImode:
if (nonimmediate_operand (x2, SImode))
{
ro[0] = x2;
goto L1162;
}
}
goto L739;
L1156:
x2 = XEXP (x1, 1);
if (immediate_operand (x2, SImode))
{
ro[1] = x2;
goto L1157;
}
L1204:
if (general_operand (x2, SImode))
{
ro[1] = x2;
goto L1205;
}
goto L739;
L1157:
x2 = XEXP (x1, 2);
if (immediate_operand (x2, SImode))
{
ro[2] = x2;
goto L1158;
}
x2 = XEXP (x1, 1);
goto L1204;
L1158:
x1 = XEXP (x0, 1);
if (general_operand (x1, SImode))
{
ro[3] = x1;
if (TARGET_68020 && TARGET_BITFIELD
&& GET_CODE (operands[1]) == CONST_INT
&& (INTVAL (operands[1]) == 32)
&& GET_CODE (operands[2]) == CONST_INT
&& (INTVAL (operands[2]) % 8) == 0
&& ! mode_dependent_address_p (XEXP (operands[0], 0)))
return 229;
}
x1 = XEXP (x0, 0);
x2 = XEXP (x1, 1);
goto L1204;
L1205:
x2 = XEXP (x1, 2);
if (general_operand (x2, SImode))
{
ro[2] = x2;
goto L1206;
}
goto L739;
L1206:
x1 = XEXP (x0, 1);
switch (GET_CODE (x1))
{
case XOR:
if (GET_MODE (x1) == SImode && 1)
goto L1207;
break;
case CONST_INT:
if (XWINT (x1, 0) == 0 && 1)
if (TARGET_68020 && TARGET_BITFIELD)
return 238;
if (XWINT (x1, 0) == -1 && 1)
if (TARGET_68020 && TARGET_BITFIELD)
return 239;
}
L1229:
if (general_operand (x1, SImode))
{
ro[3] = x1;
if (TARGET_68020 && TARGET_BITFIELD)
return 240;
}
x1 = XEXP (x0, 0);
goto L739;
L1207:
x2 = XEXP (x1, 0);
if (GET_MODE (x2) == SImode && GET_CODE (x2) == ZERO_EXTRACT && 1)
goto L1208;
x1 = XEXP (x0, 0);
goto L739;
L1208:
x3 = XEXP (x2, 0);
if (rtx_equal_p (x3, ro[0]) && 1)
goto L1209;
x1 = XEXP (x0, 0);
goto L739;
L1209:
x3 = XEXP (x2, 1);
if (rtx_equal_p (x3, ro[1]) && 1)
goto L1210;
x1 = XEXP (x0, 0);
goto L739;
L1210:
x3 = XEXP (x2, 2);
if (rtx_equal_p (x3, ro[2]) && 1)
goto L1211;
x1 = XEXP (x0, 0);
goto L739;
L1211:
x2 = XEXP (x1, 1);
if (immediate_operand (x2, VOIDmode))
{
ro[3] = x2;
if (TARGET_68020 && TARGET_BITFIELD
&& GET_CODE (operands[3]) == CONST_INT
&& (INTVAL (operands[3]) == -1
|| (GET_CODE (operands[1]) == CONST_INT
&& (~ INTVAL (operands[3]) & ((1 << INTVAL (operands[1]))- 1)) == 0)))
return 237;
}
x1 = XEXP (x0, 0);
goto L739;
L1162:
x2 = XEXP (x1, 1);
if (immediate_operand (x2, SImode))
{
ro[1] = x2;
goto L1163;
}
L1245:
if (general_operand (x2, SImode))
{
ro[1] = x2;
goto L1246;
}
goto L739;
L1163:
x2 = XEXP (x1, 2);
if (immediate_operand (x2, SImode))
{
ro[2] = x2;
goto L1164;
}
x2 = XEXP (x1, 1);
goto L1245;
L1164:
x1 = XEXP (x0, 1);
if (general_operand (x1, SImode))
{
ro[3] = x1;
if (TARGET_68020 && TARGET_BITFIELD
&& GET_CODE (operands[1]) == CONST_INT
&& (INTVAL (operands[1]) == 8 || INTVAL (operands[1]) == 16)
&& GET_CODE (operands[2]) == CONST_INT
&& INTVAL (operands[2]) % INTVAL (operands[1]) == 0
&& (GET_CODE (operands[0]) == REG
|| ! mode_dependent_address_p (XEXP (operands[0], 0))))
return 230;
}
x1 = XEXP (x0, 0);
x2 = XEXP (x1, 1);
goto L1245;
L1246:
x2 = XEXP (x1, 2);
if (general_operand (x2, SImode))
{
ro[2] = x2;
goto L1247;
}
goto L739;
L1247:
x1 = XEXP (x0, 1);
switch (GET_CODE (x1))
{
case CONST_INT:
if (XWINT (x1, 0) == 0 && 1)
if (TARGET_68020 && TARGET_BITFIELD)
return 243;
if (XWINT (x1, 0) == -1 && 1)
if (TARGET_68020 && TARGET_BITFIELD)
return 244;
}
L1259:
if (general_operand (x1, SImode))
{
ro[3] = x1;
if (TARGET_68020 && TARGET_BITFIELD)
return 245;
}
x1 = XEXP (x0, 0);
goto L739;
L374:
tem = recog_3 (x0, insn, pnum_clobbers);
if (tem >= 0) return tem;
x1 = XEXP (x0, 0);
goto L739;
L740:
x1 = XEXP (x0, 1);
if (GET_MODE (x1) == SImode && GET_CODE (x1) == AND && 1)
goto L741;
x1 = XEXP (x0, 0);
goto L944;
L741:
x2 = XEXP (x1, 0);
if (general_operand (x2, SImode))
{
ro[1] = x2;
goto L742;
}
x1 = XEXP (x0, 0);
goto L944;
L742:
x2 = XEXP (x1, 1);
if (general_operand (x2, SImode))
{
ro[2] = x2;
return 147;
}
x1 = XEXP (x0, 0);
goto L944;
L945:
x1 = XEXP (x0, 1);
if (GET_MODE (x1) != SImode)
{
x1 = XEXP (x0, 0);
goto L1595;
}
switch (GET_CODE (x1))
{
case ASHIFT:
goto L946;
case ASHIFTRT:
goto L985;
case LSHIFT:
goto L1024;
case LSHIFTRT:
goto L1063;
case ROTATE:
goto L1102;
case ROTATERT:
goto L1129;
}
x1 = XEXP (x0, 0);
goto L1595;
L946:
x2 = XEXP (x1, 0);
if (register_operand (x2, SImode))
{
ro[1] = x2;
goto L947;
}
x1 = XEXP (x0, 0);
goto L1595;
L947:
x2 = XEXP (x1, 1);
if (immediate_operand (x2, SImode))
goto L953;
L959:
if (general_operand (x2, SImode))
{
ro[2] = x2;
return 193;
}
x1 = XEXP (x0, 0);
goto L1595;
L953:
ro[2] = x2;
if ((GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) == 16))
return 191;
L954:
ro[2] = x2;
if ((! TARGET_68020 && GET_CODE (operands[2]) == CONST_INT
&& INTVAL (operands[2]) > 16 && INTVAL (operands[2]) <= 24))
return 192;
goto L959;
L985:
x2 = XEXP (x1, 0);
if (register_operand (x2, SImode))
{
ro[1] = x2;
goto L986;
}
x1 = XEXP (x0, 0);
goto L1595;
L986:
x2 = XEXP (x1, 1);
if (immediate_operand (x2, SImode))
goto L992;
L998:
if (general_operand (x2, SImode))
{
ro[2] = x2;
return 200;
}
x1 = XEXP (x0, 0);
goto L1595;
L992:
ro[2] = x2;
if ((GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) == 16))
return 198;
L993:
ro[2] = x2;
if ((! TARGET_68020 && GET_CODE (operands[2]) == CONST_INT
&& INTVAL (operands[2]) > 16 && INTVAL (operands[2]) <= 24))
return 199;
goto L998;
L1024:
x2 = XEXP (x1, 0);
if (register_operand (x2, SImode))
{
ro[1] = x2;
goto L1025;
}
x1 = XEXP (x0, 0);
goto L1595;
L1025:
x2 = XEXP (x1, 1);
if (immediate_operand (x2, SImode))
goto L1031;
L1037:
if (general_operand (x2, SImode))
{
ro[2] = x2;
return 207;
}
x1 = XEXP (x0, 0);
goto L1595;
L1031:
ro[2] = x2;
if ((GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) == 16))
return 205;
L1032:
ro[2] = x2;
if ((! TARGET_68020 && GET_CODE (operands[2]) == CONST_INT
&& INTVAL (operands[2]) > 16 && INTVAL (operands[2]) <= 24))
return 206;
goto L1037;
L1063:
x2 = XEXP (x1, 0);
if (register_operand (x2, SImode))
{
ro[1] = x2;
goto L1064;
}
x1 = XEXP (x0, 0);
goto L1595;
L1064:
x2 = XEXP (x1, 1);
if (immediate_operand (x2, SImode))
goto L1070;
L1076:
if (general_operand (x2, SImode))
{
ro[2] = x2;
return 214;
}
x1 = XEXP (x0, 0);
goto L1595;
L1070:
ro[2] = x2;
if ((GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) == 16))
return 212;
L1071:
ro[2] = x2;
if ((! TARGET_68020 && GET_CODE (operands[2]) == CONST_INT
&& INTVAL (operands[2]) > 16 && INTVAL (operands[2]) <= 24))
return 213;
goto L1076;
L1102:
x2 = XEXP (x1, 0);
if (register_operand (x2, SImode))
{
ro[1] = x2;
goto L1103;
}
x1 = XEXP (x0, 0);
goto L1595;
L1103:
x2 = XEXP (x1, 1);
if (general_operand (x2, SImode))
{
ro[2] = x2;
return 219;
}
x1 = XEXP (x0, 0);
goto L1595;
L1129:
x2 = XEXP (x1, 0);
if (register_operand (x2, SImode))
{
ro[1] = x2;
goto L1130;
}
x1 = XEXP (x0, 0);
goto L1595;
L1130:
x2 = XEXP (x1, 1);
if (general_operand (x2, SImode))
{
ro[2] = x2;
return 224;
}
x1 = XEXP (x0, 0);
goto L1595;
L8:
x1 = XEXP (x0, 1);
switch (GET_MODE (x1))
{
case SImode:
if (nonimmediate_operand (x1, SImode))
{
ro[0] = x1;
return 2;
}
break;
case HImode:
if (nonimmediate_operand (x1, HImode))
{
ro[0] = x1;
return 3;
}
break;
case QImode:
if (nonimmediate_operand (x1, QImode))
{
ro[0] = x1;
return 4;
}
}
switch (GET_CODE (x1))
{
case COMPARE:
goto L46;
case ZERO_EXTRACT:
goto L101;
case CONST_INT:
case CONST_DOUBLE:
case CONST:
case SYMBOL_REF:
case LABEL_REF:
case SUBREG:
case REG:
case MEM:
L23:
if (general_operand (x1, SFmode))
goto L27;
}
L37:
if (general_operand (x1, DFmode))
goto L41;
L1262:
if (GET_MODE (x1) == SImode && GET_CODE (x1) == ZERO_EXTRACT && 1)
goto L1263;
x1 = XEXP (x0, 0);
goto L1595;
L46:
x2 = XEXP (x1, 0);
switch (GET_MODE (x2))
{
case SImode:
if (nonimmediate_operand (x2, SImode))
{
ro[0] = x2;
goto L47;
}
break;
case HImode:
if (nonimmediate_operand (x2, HImode))
{
ro[0] = x2;
goto L52;
}
break;
case QImode:
if (nonimmediate_operand (x2, QImode))
{
ro[0] = x2;
goto L57;
}
break;
case DFmode:
if (general_operand (x2, DFmode))
{
ro[0] = x2;
goto L70;
}
break;
case SFmode:
if (general_operand (x2, SFmode))
{
ro[0] = x2;
goto L90;
}
}
x1 = XEXP (x0, 0);
goto L1595;
L47:
x2 = XEXP (x1, 1);
if (general_operand (x2, SImode))
{
ro[1] = x2;
return 11;
}
x1 = XEXP (x0, 0);
goto L1595;
L52:
x2 = XEXP (x1, 1);
if (general_operand (x2, HImode))
{
ro[1] = x2;
return 12;
}
x1 = XEXP (x0, 0);
goto L1595;
L57:
x2 = XEXP (x1, 1);
if (general_operand (x2, QImode))
{
ro[1] = x2;
return 13;
}
x1 = XEXP (x0, 0);
goto L1595;
L70:
x2 = XEXP (x1, 1);
if (general_operand (x2, DFmode))
goto L76;
x1 = XEXP (x0, 0);
goto L1595;
L76:
if (pnum_clobbers != 0 && 1)
{
ro[1] = x2;
if (TARGET_FPA)
{
*pnum_clobbers = 1;
return 15;
}
}
L77:
ro[1] = x2;
if (TARGET_68881)
return 16;
x1 = XEXP (x0, 0);
goto L1595;
L90:
x2 = XEXP (x1, 1);
if (general_operand (x2, SFmode))
goto L96;
x1 = XEXP (x0, 0);
goto L1595;
L96:
if (pnum_clobbers != 0 && 1)
{
ro[1] = x2;
if (TARGET_FPA)
{
*pnum_clobbers = 1;
return 18;
}
}
L97:
ro[1] = x2;
if (TARGET_68881)
return 19;
x1 = XEXP (x0, 0);
goto L1595;
L101:
x2 = XEXP (x1, 0);
switch (GET_MODE (x2))
{
case QImode:
if (nonimmediate_operand (x2, QImode))
{
ro[0] = x2;
goto L102;
}
break;
case SImode:
if (nonimmediate_operand (x2, SImode))
{
ro[0] = x2;
goto L110;
}
}
goto L1262;
L102:
x2 = XEXP (x1, 1);
if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 1 && 1)
goto L103;
goto L1262;
L103:
x2 = XEXP (x1, 2);
if (GET_MODE (x2) == SImode && GET_CODE (x2) == MINUS && 1)
goto L104;
if (general_operand (x2, SImode))
{
ro[1] = x2;
if (GET_CODE (operands[1]) == CONST_INT
&& (unsigned) INTVAL (operands[1]) < 8)
return 24;
}
goto L1262;
L104:
x3 = XEXP (x2, 0);
if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 7 && 1)
goto L121;
goto L1262;
L121:
x3 = XEXP (x2, 1);
if (GET_MODE (x3) == SImode && GET_CODE (x3) == AND && 1)
goto L122;
if (general_operand (x3, SImode))
{
ro[1] = x3;
return 20;
}
goto L1262;
L122:
x4 = XEXP (x3, 0);
if (general_operand (x4, SImode))
{
ro[1] = x4;
goto L123;
}
goto L1262;
L123:
x4 = XEXP (x3, 1);
if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 7 && 1)
return 22;
goto L1262;
L110:
x2 = XEXP (x1, 1);
if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 1 && 1)
goto L111;
goto L1262;
L111:
x2 = XEXP (x1, 2);
if (GET_MODE (x2) == SImode && GET_CODE (x2) == MINUS && 1)
goto L112;
if (general_operand (x2, SImode))
{
ro[1] = x2;
if (GET_CODE (operands[1]) == CONST_INT)
return 25;
}
goto L1262;
L112:
x3 = XEXP (x2, 0);
if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 31 && 1)
goto L131;
goto L1262;
L131:
x3 = XEXP (x2, 1);
if (GET_MODE (x3) == SImode && GET_CODE (x3) == AND && 1)
goto L132;
if (general_operand (x3, SImode))
{
ro[1] = x3;
return 21;
}
goto L1262;
L132:
x4 = XEXP (x3, 0);
if (general_operand (x4, SImode))
{
ro[1] = x4;
goto L133;
}
goto L1262;
L133:
x4 = XEXP (x3, 1);
if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 31 && 1)
return 23;
goto L1262;
L27:
if (pnum_clobbers != 0 && 1)
{
ro[0] = x1;
if (TARGET_FPA)
{
*pnum_clobbers = 1;
return 6;
}
}
L28:
ro[0] = x1;
if (TARGET_68881)
return 7;
goto L37;
L41:
if (pnum_clobbers != 0 && 1)
{
ro[0] = x1;
if (TARGET_FPA)
{
*pnum_clobbers = 1;
return 9;
}
}
L42:
ro[0] = x1;
if (TARGET_68881)
return 10;
x1 = XEXP (x0, 0);
goto L1595;
L1263:
x2 = XEXP (x1, 0);
switch (GET_MODE (x2))
{
case QImode:
if (memory_operand (x2, QImode))
{
ro[0] = x2;
goto L1264;
}
break;
case SImode:
if (nonimmediate_operand (x2, SImode))
{
ro[0] = x2;
goto L1270;
}
}
x1 = XEXP (x0, 0);
goto L1595;
L1264:
x2 = XEXP (x1, 1);
if (general_operand (x2, SImode))
{
ro[1] = x2;
goto L1265;
}
x1 = XEXP (x0, 0);
goto L1595;
L1265:
x2 = XEXP (x1, 2);
if (general_operand (x2, SImode))
{
ro[2] = x2;
if (TARGET_68020 && TARGET_BITFIELD
&& GET_CODE (operands[1]) == CONST_INT)
return 246;
}
x1 = XEXP (x0, 0);
goto L1595;
L1270:
x2 = XEXP (x1, 1);
if (general_operand (x2, SImode))
{
ro[1] = x2;
goto L1271;
}
x1 = XEXP (x0, 0);
goto L1595;
L1271:
x2 = XEXP (x1, 2);
if (general_operand (x2, SImode))
{
ro[2] = x2;
if (TARGET_68020 && TARGET_BITFIELD
&& GET_CODE (operands[1]) == CONST_INT)
return 247;
}
x1 = XEXP (x0, 0);
goto L1595;
L160:
tem = recog_4 (x0, insn, pnum_clobbers);
if (tem >= 0) return tem;
goto L1595;
L1324:
x1 = XEXP (x0, 1);
switch (GET_CODE (x1))
{
case IF_THEN_ELSE:
goto L1325;
case LABEL_REF:
goto L1505;
}
x1 = XEXP (x0, 0);
goto L1595;
L1325:
tem = recog_5 (x0, insn, pnum_clobbers);
if (tem >= 0) return tem;
x1 = XEXP (x0, 0);
goto L1595;
L1505:
x2 = XEXP (x1, 0);
ro[0] = x2;
return 278;
L1596:
x1 = XEXP (x0, 1);
if (GET_CODE (x1) == CALL && 1)
goto L1597;
x1 = XEXP (x0, 0);
goto L1612;
L1597:
x2 = XEXP (x1, 0);
if (memory_operand (x2, QImode))
{
ro[1] = x2;
goto L1598;
}
x1 = XEXP (x0, 0);
goto L1612;
L1598:
x2 = XEXP (x1, 1);
if (general_operand (x2, SImode))
goto L1604;
x1 = XEXP (x0, 0);
goto L1612;
L1604:
ro[2] = x2;
if (! flag_pic)
return 290;
L1605:
ro[2] = x2;
if (flag_pic)
return 291;
x1 = XEXP (x0, 0);
goto L1612;
L1613:
x1 = XEXP (x0, 1);
if (address_operand (x1, SImode))
{
ro[0] = x1;
return 297;
}
goto ret0;
L1703:
x1 = XEXP (x0, 1);
if (nonimmediate_operand (x1, XFmode))
{
ro[0] = x1;
if (TARGET_68881)
return 318;
}
if (GET_CODE (x1) == COMPARE && 1)
goto L1707;
goto ret0;
L1707:
x2 = XEXP (x1, 0);
if (nonimmediate_operand (x2, XFmode))
{
ro[0] = x2;
goto L1708;
}
goto ret0;
L1708:
x2 = XEXP (x1, 1);
if (nonimmediate_operand (x2, XFmode))
{
ro[1] = x2;
if (TARGET_68881)
return 320;
}
goto ret0;
L1751:
x1 = XEXP (x0, 1);
if (GET_MODE (x1) == SImode && GET_CODE (x1) == FIX && 1)
goto L1752;
if (address_operand (x1, QImode))
{
ro[1] = x1;
return 298;
}
goto ret0;
L1752:
x2 = XEXP (x1, 0);
if (general_operand (x2, XFmode))
{
ro[1] = x2;
if (TARGET_68881)
return 331;
}
goto ret0;
L1619:
x1 = XEXP (x0, 1);
if (GET_MODE (x1) != DFmode)
{
x1 = XEXP (x0, 0);
goto L1718;
}
switch (GET_CODE (x1))
{
case PLUS:
goto L1620;
case MINUS:
goto L1648;
case MULT:
goto L1662;
}
x1 = XEXP (x0, 0);
goto L1718;
L1620:
x2 = XEXP (x1, 0);
if (GET_MODE (x2) == DFmode && GET_CODE (x2) == MULT && 1)
goto L1621;
x1 = XEXP (x0, 0);
goto L1718;
L1621:
x3 = XEXP (x2, 0);
if (general_operand (x3, DFmode))
{
ro[1] = x3;
goto L1622;
}
x1 = XEXP (x0, 0);
goto L1718;
L1622:
x3 = XEXP (x2, 1);
if (general_operand (x3, DFmode))
{
ro[2] = x3;
goto L1623;
}
x1 = XEXP (x0, 0);
goto L1718;
L1623:
x2 = XEXP (x1, 1);
if (general_operand (x2, DFmode))
{
ro[3] = x2;
if (TARGET_FPA)
return 306;
}
x1 = XEXP (x0, 0);
goto L1718;
L1648:
x2 = XEXP (x1, 0);
if (GET_MODE (x2) == DFmode && GET_CODE (x2) == MULT && 1)
goto L1649;
if (general_operand (x2, DFmode))
{
ro[1] = x2;
goto L1635;
}
x1 = XEXP (x0, 0);
goto L1718;
L1649:
x3 = XEXP (x2, 0);
if (general_operand (x3, DFmode))
{
ro[1] = x3;
goto L1650;
}
x1 = XEXP (x0, 0);
goto L1718;
L1650:
x3 = XEXP (x2, 1);
if (general_operand (x3, DFmode))
{
ro[2] = x3;
goto L1651;
}
x1 = XEXP (x0, 0);
goto L1718;
L1651:
x2 = XEXP (x1, 1);
if (general_operand (x2, DFmode))
{
ro[3] = x2;
if (TARGET_FPA)
return 310;
}
x1 = XEXP (x0, 0);
goto L1718;
L1635:
x2 = XEXP (x1, 1);
if (GET_MODE (x2) == DFmode && GET_CODE (x2) == MULT && 1)
goto L1636;
x1 = XEXP (x0, 0);
goto L1718;
L1636:
x3 = XEXP (x2, 0);
if (general_operand (x3, DFmode))
{
ro[2] = x3;
goto L1637;
}
x1 = XEXP (x0, 0);
goto L1718;
L1637:
x3 = XEXP (x2, 1);
if (general_operand (x3, DFmode))
{
ro[3] = x3;
if (TARGET_FPA)
return 308;
}
x1 = XEXP (x0, 0);
goto L1718;
L1662:
x2 = XEXP (x1, 0);
switch (GET_MODE (x2))
{
case DFmode:
switch (GET_CODE (x2))
{
case PLUS:
goto L1663;
case MINUS:
goto L1677;
}
}
if (general_operand (x2, DFmode))
{
ro[1] = x2;
goto L1684;
}
x1 = XEXP (x0, 0);
goto L1718;
L1663:
x3 = XEXP (x2, 0);
if (general_operand (x3, DFmode))
{
ro[1] = x3;
goto L1664;
}
x1 = XEXP (x0, 0);
goto L1718;
L1664:
x3 = XEXP (x2, 1);
if (general_operand (x3, DFmode))
{
ro[2] = x3;
goto L1665;
}
x1 = XEXP (x0, 0);
goto L1718;
L1665:
x2 = XEXP (x1, 1);
if (general_operand (x2, DFmode))
{
ro[3] = x2;
if (TARGET_FPA)
return 312;
}
x1 = XEXP (x0, 0);
goto L1718;
L1677:
x3 = XEXP (x2, 0);
if (general_operand (x3, DFmode))
{
ro[1] = x3;
goto L1678;
}
x1 = XEXP (x0, 0);
goto L1718;
L1678:
x3 = XEXP (x2, 1);
if (general_operand (x3, DFmode))
{
ro[2] = x3;
goto L1679;
}
x1 = XEXP (x0, 0);
goto L1718;
L1679:
x2 = XEXP (x1, 1);
if (general_operand (x2, DFmode))
{
ro[3] = x2;
if (TARGET_FPA)
return 314;
}
x1 = XEXP (x0, 0);
goto L1718;
L1684:
x2 = XEXP (x1, 1);
if (GET_MODE (x2) == DFmode && GET_CODE (x2) == MINUS && 1)
goto L1685;
x1 = XEXP (x0, 0);
goto L1718;
L1685:
x3 = XEXP (x2, 0);
if (general_operand (x3, DFmode))
{
ro[2] = x3;
goto L1686;
}
x1 = XEXP (x0, 0);
goto L1718;
L1686:
x3 = XEXP (x2, 1);
if (general_operand (x3, DFmode))
{
ro[3] = x3;
if (TARGET_FPA)
return 315;
}
x1 = XEXP (x0, 0);
goto L1718;
L1719:
x1 = XEXP (x0, 1);
if (GET_MODE (x1) == DFmode && GET_CODE (x1) == FLOAT_TRUNCATE && 1)
goto L1720;
goto ret0;
L1720:
x2 = XEXP (x1, 0);
if (general_operand (x2, XFmode))
{
ro[1] = x2;
if (TARGET_68881)
return 323;
}
goto ret0;
L1626:
x1 = XEXP (x0, 1);
if (GET_MODE (x1) != SFmode)
{
x1 = XEXP (x0, 0);
goto L1722;
}
switch (GET_CODE (x1))
{
case PLUS:
goto L1627;
case MINUS:
goto L1655;
case MULT:
goto L1669;
}
x1 = XEXP (x0, 0);
goto L1722;
L1627:
x2 = XEXP (x1, 0);
if (GET_MODE (x2) == SFmode && GET_CODE (x2) == MULT && 1)
goto L1628;
x1 = XEXP (x0, 0);
goto L1722;
L1628:
x3 = XEXP (x2, 0);
if (general_operand (x3, SFmode))
{
ro[1] = x3;
goto L1629;
}
x1 = XEXP (x0, 0);
goto L1722;
L1629:
x3 = XEXP (x2, 1);
if (general_operand (x3, SFmode))
{
ro[2] = x3;
goto L1630;
}
x1 = XEXP (x0, 0);
goto L1722;
L1630:
x2 = XEXP (x1, 1);
if (general_operand (x2, SFmode))
{
ro[3] = x2;
if (TARGET_FPA)
return 307;
}
x1 = XEXP (x0, 0);
goto L1722;
L1655:
x2 = XEXP (x1, 0);
if (GET_MODE (x2) == SFmode && GET_CODE (x2) == MULT && 1)
goto L1656;
if (general_operand (x2, SFmode))
{
ro[1] = x2;
goto L1642;
}
x1 = XEXP (x0, 0);
goto L1722;
L1656:
x3 = XEXP (x2, 0);
if (general_operand (x3, SFmode))
{
ro[1] = x3;
goto L1657;
}
x1 = XEXP (x0, 0);
goto L1722;
L1657:
x3 = XEXP (x2, 1);
if (general_operand (x3, SFmode))
{
ro[2] = x3;
goto L1658;
}
x1 = XEXP (x0, 0);
goto L1722;
L1658:
x2 = XEXP (x1, 1);
if (general_operand (x2, SFmode))
{
ro[3] = x2;
if (TARGET_FPA)
return 311;
}
x1 = XEXP (x0, 0);
goto L1722;
L1642:
x2 = XEXP (x1, 1);
if (GET_MODE (x2) == SFmode && GET_CODE (x2) == MULT && 1)
goto L1643;
x1 = XEXP (x0, 0);
goto L1722;
L1643:
x3 = XEXP (x2, 0);
if (general_operand (x3, SFmode))
{
ro[2] = x3;
goto L1644;
}
x1 = XEXP (x0, 0);
goto L1722;
L1644:
x3 = XEXP (x2, 1);
if (general_operand (x3, SFmode))
{
ro[3] = x3;
if (TARGET_FPA)
return 309;
}
x1 = XEXP (x0, 0);
goto L1722;
L1669:
x2 = XEXP (x1, 0);
switch (GET_MODE (x2))
{
case SFmode:
switch (GET_CODE (x2))
{
case PLUS:
goto L1670;
case MINUS:
goto L1691;
}
}
if (general_operand (x2, SFmode))
{
ro[1] = x2;
goto L1698;
}
x1 = XEXP (x0, 0);
goto L1722;
L1670:
x3 = XEXP (x2, 0);
if (general_operand (x3, SFmode))
{
ro[1] = x3;
goto L1671;
}
x1 = XEXP (x0, 0);
goto L1722;
L1671:
x3 = XEXP (x2, 1);
if (general_operand (x3, SFmode))
{
ro[2] = x3;
goto L1672;
}
x1 = XEXP (x0, 0);
goto L1722;
L1672:
x2 = XEXP (x1, 1);
if (general_operand (x2, SFmode))
{
ro[3] = x2;
if (TARGET_FPA)
return 313;
}
x1 = XEXP (x0, 0);
goto L1722;
L1691:
x3 = XEXP (x2, 0);
if (general_operand (x3, SFmode))
{
ro[1] = x3;
goto L1692;
}
x1 = XEXP (x0, 0);
goto L1722;
L1692:
x3 = XEXP (x2, 1);
if (general_operand (x3, SFmode))
{
ro[2] = x3;
goto L1693;
}
x1 = XEXP (x0, 0);
goto L1722;
L1693:
x2 = XEXP (x1, 1);
if (general_operand (x2, SFmode))
{
ro[3] = x2;
if (TARGET_FPA)
return 316;
}
x1 = XEXP (x0, 0);
goto L1722;
L1698:
x2 = XEXP (x1, 1);
if (GET_MODE (x2) == SFmode && GET_CODE (x2) == MINUS && 1)
goto L1699;
x1 = XEXP (x0, 0);
goto L1722;
L1699:
x3 = XEXP (x2, 0);
if (general_operand (x3, SFmode))
{
ro[2] = x3;
goto L1700;
}
x1 = XEXP (x0, 0);
goto L1722;
L1700:
x3 = XEXP (x2, 1);
if (general_operand (x3, SFmode))
{
ro[3] = x3;
if (TARGET_FPA)
return 317;
}
x1 = XEXP (x0, 0);
goto L1722;
L1723:
x1 = XEXP (x0, 1);
if (GET_MODE (x1) == SFmode && GET_CODE (x1) == FLOAT_TRUNCATE && 1)
goto L1724;
goto ret0;
L1724:
x2 = XEXP (x1, 0);
if (general_operand (x2, XFmode))
{
ro[1] = x2;
if (TARGET_68881)
return 324;
}
goto ret0;
L1711:
x1 = XEXP (x0, 1);
if (GET_MODE (x1) != XFmode)
goto ret0;
switch (GET_CODE (x1))
{
case FLOAT_EXTEND:
goto L1712;
case FLOAT:
goto L1728;
case FIX:
goto L1740;
case PLUS:
goto L1756;
case MINUS:
goto L1761;
case MULT:
goto L1766;
case DIV:
goto L1771;
case NEG:
goto L1776;
case ABS:
goto L1780;
case SQRT:
goto L1784;
}
goto ret0;
L1712:
x2 = XEXP (x1, 0);
if (general_operand (x2, SFmode))
{
ro[1] = x2;
if (TARGET_68881)
return 321;
}
L1716:
if (general_operand (x2, DFmode))
{
ro[1] = x2;
if (TARGET_68881)
return 322;
}
goto ret0;
L1728:
x2 = XEXP (x1, 0);
if (general_operand (x2, SImode))
{
ro[1] = x2;
if (TARGET_68881)
return 325;
}
L1732:
if (general_operand (x2, HImode))
{
ro[1] = x2;
if (TARGET_68881)
return 326;
}
L1736:
if (general_operand (x2, QImode))
{
ro[1] = x2;
if (TARGET_68881)
return 327;
}
goto ret0;
L1740:
x2 = XEXP (x1, 0);
if (general_operand (x2, XFmode))
{
ro[1] = x2;
if (TARGET_68881)
return 328;
}
goto ret0;
L1756:
x2 = XEXP (x1, 0);
if (nonimmediate_operand (x2, XFmode))
{
ro[1] = x2;
goto L1757;
}
goto ret0;
L1757:
x2 = XEXP (x1, 1);
if (nonimmediate_operand (x2, XFmode))
{
ro[2] = x2;
if (TARGET_68881)
return 333;
}
goto ret0;
L1761:
x2 = XEXP (x1, 0);
if (nonimmediate_operand (x2, XFmode))
{
ro[1] = x2;
goto L1762;
}
goto ret0;
L1762:
x2 = XEXP (x1, 1);
if (nonimmediate_operand (x2, XFmode))
{
ro[2] = x2;
if (TARGET_68881)
return 335;
}
goto ret0;
L1766:
x2 = XEXP (x1, 0);
if (nonimmediate_operand (x2, XFmode))
{
ro[1] = x2;
goto L1767;
}
goto ret0;
L1767:
x2 = XEXP (x1, 1);
if (nonimmediate_operand (x2, XFmode))
{
ro[2] = x2;
if (TARGET_68881)
return 337;
}
goto ret0;
L1771:
x2 = XEXP (x1, 0);
if (nonimmediate_operand (x2, XFmode))
{
ro[1] = x2;
goto L1772;
}
goto ret0;
L1772:
x2 = XEXP (x1, 1);
if (nonimmediate_operand (x2, XFmode))
{
ro[2] = x2;
if (TARGET_68881)
return 339;
}
goto ret0;
L1776:
x2 = XEXP (x1, 0);
if (nonimmediate_operand (x2, XFmode))
{
ro[1] = x2;
if (TARGET_68881)
return 340;
}
goto ret0;
L1780:
x2 = XEXP (x1, 0);
if (nonimmediate_operand (x2, XFmode))
{
ro[1] = x2;
if (TARGET_68881)
return 341;
}
goto ret0;
L1784:
x2 = XEXP (x1, 0);
if (nonimmediate_operand (x2, DFmode))
{
ro[1] = x2;
if (TARGET_68881)
return 342;
}
goto ret0;
L1743:
x1 = XEXP (x0, 1);
if (GET_MODE (x1) == QImode && GET_CODE (x1) == FIX && 1)
goto L1744;
goto ret0;
L1744:
x2 = XEXP (x1, 0);
if (general_operand (x2, XFmode))
{
ro[1] = x2;
if (TARGET_68881)
return 329;
}
goto ret0;
L1747:
x1 = XEXP (x0, 1);
if (GET_MODE (x1) == HImode && GET_CODE (x1) == FIX && 1)
goto L1748;
goto ret0;
L1748:
x2 = XEXP (x1, 0);
if (general_operand (x2, XFmode))
{
ro[1] = x2;
if (TARGET_68881)
return 330;
}
goto ret0;
ret0: return -1;
}
int
recog_7 (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 SImode:
if (GET_CODE (x2) == PLUS && 1)
goto L1517;
if (register_operand (x2, SImode))
{
ro[0] = x2;
goto L1510;
}
}
if (GET_CODE (x2) == IF_THEN_ELSE && 1)
goto L1526;
goto ret0;
L1517:
x3 = XEXP (x2, 0);
if (GET_CODE (x3) == PC && 1)
goto L1518;
goto ret0;
L1518:
x3 = XEXP (x2, 1);
if (register_operand (x3, HImode))
{
ro[0] = x3;
goto L1519;
}
goto ret0;
L1519:
x1 = XVECEXP (x0, 0, 1);
if (GET_CODE (x1) == USE && 1)
goto L1520;
goto ret0;
L1520:
x2 = XEXP (x1, 0);
if (GET_CODE (x2) == LABEL_REF && 1)
goto L1521;
goto ret0;
L1521:
x3 = XEXP (x2, 0);
ro[1] = x3;
return 281;
L1510:
x1 = XVECEXP (x0, 0, 1);
if (GET_CODE (x1) == USE && 1)
goto L1511;
goto ret0;
L1511:
x2 = XEXP (x1, 0);
if (GET_CODE (x2) == LABEL_REF && 1)
goto L1512;
goto ret0;
L1512:
x3 = XEXP (x2, 0);
ro[1] = x3;
return 280;
L1526:
x3 = XEXP (x2, 0);
switch (GET_CODE (x3))
{
case NE:
goto L1527;
case GE:
goto L1557;
}
goto ret0;
L1527:
x4 = XEXP (x3, 0);
switch (GET_MODE (x4))
{
case HImode:
if (general_operand (x4, HImode))
{
ro[0] = x4;
goto L1528;
}
break;
case SImode:
if (general_operand (x4, SImode))
{
ro[0] = x4;
goto L1543;
}
}
goto ret0;
L1528:
x4 = XEXP (x3, 1);
if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 0 && 1)
goto L1529;
goto ret0;
L1529:
x3 = XEXP (x2, 1);
if (GET_CODE (x3) == LABEL_REF && 1)
goto L1530;
goto ret0;
L1530:
x4 = XEXP (x3, 0);
ro[1] = x4;
goto L1531;
L1531:
x3 = XEXP (x2, 2);
if (GET_CODE (x3) == PC && 1)
goto L1532;
goto ret0;
L1532:
x1 = XVECEXP (x0, 0, 1);
if (GET_CODE (x1) == SET && 1)
goto L1533;
goto ret0;
L1533:
x2 = XEXP (x1, 0);
if (rtx_equal_p (x2, ro[0]) && 1)
goto L1534;
goto ret0;
L1534:
x2 = XEXP (x1, 1);
if (GET_MODE (x2) == HImode && GET_CODE (x2) == PLUS && 1)
goto L1535;
goto ret0;
L1535:
x3 = XEXP (x2, 0);
if (rtx_equal_p (x3, ro[0]) && 1)
goto L1536;
goto ret0;
L1536:
x3 = XEXP (x2, 1);
if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == -1 && 1)
return 282;
goto ret0;
L1543:
x4 = XEXP (x3, 1);
if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 0 && 1)
goto L1544;
goto ret0;
L1544:
x3 = XEXP (x2, 1);
if (GET_CODE (x3) == LABEL_REF && 1)
goto L1545;
goto ret0;
L1545:
x4 = XEXP (x3, 0);
ro[1] = x4;
goto L1546;
L1546:
x3 = XEXP (x2, 2);
if (GET_CODE (x3) == PC && 1)
goto L1547;
goto ret0;
L1547:
x1 = XVECEXP (x0, 0, 1);
if (GET_CODE (x1) == SET && 1)
goto L1548;
goto ret0;
L1548:
x2 = XEXP (x1, 0);
if (rtx_equal_p (x2, ro[0]) && 1)
goto L1549;
goto ret0;
L1549:
x2 = XEXP (x1, 1);
if (GET_MODE (x2) == SImode && GET_CODE (x2) == PLUS && 1)
goto L1550;
goto ret0;
L1550:
x3 = XEXP (x2, 0);
if (rtx_equal_p (x3, ro[0]) && 1)
goto L1551;
goto ret0;
L1551:
x3 = XEXP (x2, 1);
if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == -1 && 1)
return 283;
goto ret0;
L1557:
x4 = XEXP (x3, 0);
if (GET_CODE (x4) != PLUS)
goto ret0;
switch (GET_MODE (x4))
{
case HImode:
goto L1558;
case SImode:
goto L1575;
}
goto ret0;
L1558:
x5 = XEXP (x4, 0);
if (general_operand (x5, HImode))
{
ro[0] = x5;
goto L1559;
}
goto ret0;
L1559:
x5 = XEXP (x4, 1);
if (GET_CODE (x5) == CONST_INT && XWINT (x5, 0) == -1 && 1)
goto L1560;
goto ret0;
L1560:
x4 = XEXP (x3, 1);
if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 0 && 1)
goto L1561;
goto ret0;
L1561:
x3 = XEXP (x2, 1);
if (GET_CODE (x3) == LABEL_REF && 1)
goto L1562;
goto ret0;
L1562:
x4 = XEXP (x3, 0);
ro[1] = x4;
goto L1563;
L1563:
x3 = XEXP (x2, 2);
if (GET_CODE (x3) == PC && 1)
goto L1564;
goto ret0;
L1564:
x1 = XVECEXP (x0, 0, 1);
if (GET_CODE (x1) == SET && 1)
goto L1565;
goto ret0;
L1565:
x2 = XEXP (x1, 0);
if (rtx_equal_p (x2, ro[0]) && 1)
goto L1566;
goto ret0;
L1566:
x2 = XEXP (x1, 1);
if (GET_MODE (x2) == HImode && GET_CODE (x2) == PLUS && 1)
goto L1567;
goto ret0;
L1567:
x3 = XEXP (x2, 0);
if (rtx_equal_p (x3, ro[0]) && 1)
goto L1568;
goto ret0;
L1568:
x3 = XEXP (x2, 1);
if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == -1 && 1)
if (find_reg_note (insn, REG_NONNEG, 0))
return 284;
goto ret0;
L1575:
x5 = XEXP (x4, 0);
if (general_operand (x5, SImode))
{
ro[0] = x5;
goto L1576;
}
goto ret0;
L1576:
x5 = XEXP (x4, 1);
if (GET_CODE (x5) == CONST_INT && XWINT (x5, 0) == -1 && 1)
goto L1577;
goto ret0;
L1577:
x4 = XEXP (x3, 1);
if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 0 && 1)
goto L1578;
goto ret0;
L1578:
x3 = XEXP (x2, 1);
if (GET_CODE (x3) == LABEL_REF && 1)
goto L1579;
goto ret0;
L1579:
x4 = XEXP (x3, 0);
ro[1] = x4;
goto L1580;
L1580:
x3 = XEXP (x2, 2);
if (GET_CODE (x3) == PC && 1)
goto L1581;
goto ret0;
L1581:
x1 = XVECEXP (x0, 0, 1);
if (GET_CODE (x1) == SET && 1)
goto L1582;
goto ret0;
L1582:
x2 = XEXP (x1, 0);
if (rtx_equal_p (x2, ro[0]) && 1)
goto L1583;
goto ret0;
L1583:
x2 = XEXP (x1, 1);
if (GET_MODE (x2) == SImode && GET_CODE (x2) == PLUS && 1)
goto L1584;
goto ret0;
L1584:
x3 = XEXP (x2, 0);
if (rtx_equal_p (x3, ro[0]) && 1)
goto L1585;
goto ret0;
L1585:
x3 = XEXP (x2, 1);
if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == -1 && 1)
if (find_reg_note (insn, REG_NONNEG, 0))
return 285;
goto ret0;
ret0: return -1;
}
int
recog_8 (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 SImode:
if (register_operand (x2, SImode))
{
ro[0] = x2;
goto L537;
}
L718:
if (general_operand (x2, SImode))
{
ro[0] = x2;
goto L719;
}
}
switch (GET_CODE (x2))
{
case CC0:
goto L18;
case PC:
goto L1516;
}
goto ret0;
L537:
x2 = XEXP (x1, 1);
if (GET_MODE (x2) == SImode && GET_CODE (x2) == MULT && 1)
goto L538;
x2 = XEXP (x1, 0);
goto L718;
L538:
x3 = XEXP (x2, 0);
if (register_operand (x3, SImode))
{
ro[1] = x3;
goto L539;
}
x2 = XEXP (x1, 0);
goto L718;
L539:
x3 = XEXP (x2, 1);
if (nonimmediate_operand (x3, SImode))
{
ro[2] = x3;
goto L540;
}
if (GET_CODE (x3) == CONST_INT && 1)
{
ro[2] = x3;
goto L556;
}
x2 = XEXP (x1, 0);
goto L718;
L540:
x1 = XVECEXP (x0, 0, 1);
if (GET_CODE (x1) == SET && 1)
goto L541;
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
L541:
x2 = XEXP (x1, 0);
if (register_operand (x2, SImode))
{
ro[3] = x2;
goto L542;
}
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
L542:
x2 = XEXP (x1, 1);
if (GET_MODE (x2) == SImode && GET_CODE (x2) == TRUNCATE && 1)
goto L543;
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
L543:
x3 = XEXP (x2, 0);
if (GET_MODE (x3) != DImode)
{
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
}
switch (GET_CODE (x3))
{
case LSHIFTRT:
goto L544;
case ASHIFT:
goto L575;
}
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
L544:
x4 = XEXP (x3, 0);
if (GET_MODE (x4) == DImode && GET_CODE (x4) == MULT && 1)
goto L545;
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
L545:
x5 = XEXP (x4, 0);
if (GET_MODE (x5) == DImode && GET_CODE (x5) == ZERO_EXTEND && 1)
goto L546;
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
L546:
x6 = XEXP (x5, 0);
if (rtx_equal_p (x6, ro[1]) && 1)
goto L547;
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
L547:
x5 = XEXP (x4, 1);
if (GET_MODE (x5) == DImode && GET_CODE (x5) == ZERO_EXTEND && 1)
goto L548;
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
L548:
x6 = XEXP (x5, 0);
if (rtx_equal_p (x6, ro[2]) && 1)
goto L549;
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
L549:
x4 = XEXP (x3, 1);
if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 32 && 1)
if (TARGET_68020)
return 116;
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
L575:
x4 = XEXP (x3, 0);
if (GET_MODE (x4) == DImode && GET_CODE (x4) == MULT && 1)
goto L576;
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
L576:
x5 = XEXP (x4, 0);
if (GET_MODE (x5) == DImode && GET_CODE (x5) == SIGN_EXTEND && 1)
goto L577;
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
L577:
x6 = XEXP (x5, 0);
if (rtx_equal_p (x6, ro[1]) && 1)
goto L578;
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
L578:
x5 = XEXP (x4, 1);
if (GET_MODE (x5) == DImode && GET_CODE (x5) == SIGN_EXTEND && 1)
goto L579;
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
L579:
x6 = XEXP (x5, 0);
if (rtx_equal_p (x6, ro[2]) && 1)
goto L580;
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
L580:
x4 = XEXP (x3, 1);
if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 32 && 1)
if (TARGET_68020)
return 119;
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
L556:
x1 = XVECEXP (x0, 0, 1);
if (GET_CODE (x1) == SET && 1)
goto L557;
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
L557:
x2 = XEXP (x1, 0);
if (register_operand (x2, SImode))
{
ro[3] = x2;
goto L558;
}
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
L558:
x2 = XEXP (x1, 1);
if (GET_MODE (x2) == SImode && GET_CODE (x2) == TRUNCATE && 1)
goto L559;
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
L559:
x3 = XEXP (x2, 0);
if (GET_MODE (x3) != DImode)
{
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
}
switch (GET_CODE (x3))
{
case LSHIFTRT:
goto L560;
case ASHIFT:
goto L591;
}
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
L560:
x4 = XEXP (x3, 0);
if (GET_MODE (x4) == DImode && GET_CODE (x4) == MULT && 1)
goto L561;
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
L561:
x5 = XEXP (x4, 0);
if (GET_MODE (x5) == DImode && GET_CODE (x5) == ZERO_EXTEND && 1)
goto L562;
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
L562:
x6 = XEXP (x5, 0);
if (rtx_equal_p (x6, ro[1]) && 1)
goto L563;
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
L563:
x5 = XEXP (x4, 1);
if (rtx_equal_p (x5, ro[2]) && 1)
goto L564;
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
L564:
x4 = XEXP (x3, 1);
if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 32 && 1)
if (TARGET_68020
&& (unsigned) INTVAL (operands[2]) <= 0x7fffffff)
return 117;
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
L591:
x4 = XEXP (x3, 0);
if (GET_MODE (x4) == DImode && GET_CODE (x4) == MULT && 1)
goto L592;
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
L592:
x5 = XEXP (x4, 0);
if (GET_MODE (x5) == DImode && GET_CODE (x5) == SIGN_EXTEND && 1)
goto L593;
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
L593:
x6 = XEXP (x5, 0);
if (rtx_equal_p (x6, ro[1]) && 1)
goto L594;
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
L594:
x5 = XEXP (x4, 1);
if (rtx_equal_p (x5, ro[2]) && 1)
goto L595;
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
L595:
x4 = XEXP (x3, 1);
if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 32 && 1)
if (TARGET_68020
/* This test is a noop on 32 bit machines,
but important for a cross-compiler hosted on 64-bit machines. */
&& INTVAL (operands[2]) <= 0x7fffffff
&& INTVAL (operands[2]) >= -0x80000000)
return 120;
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 0);
goto L718;
L719:
x2 = XEXP (x1, 1);
if (GET_MODE (x2) != SImode)
goto ret0;
switch (GET_CODE (x2))
{
case DIV:
goto L720;
case UDIV:
goto L731;
}
goto ret0;
L720:
x3 = XEXP (x2, 0);
if (general_operand (x3, SImode))
{
ro[1] = x3;
goto L721;
}
goto ret0;
L721:
x3 = XEXP (x2, 1);
if (general_operand (x3, SImode))
{
ro[2] = x3;
goto L722;
}
goto ret0;
L722:
x1 = XVECEXP (x0, 0, 1);
if (GET_CODE (x1) == SET && 1)
goto L723;
goto ret0;
L723:
x2 = XEXP (x1, 0);
if (GET_MODE (x2) == SImode && general_operand (x2, SImode))
{
ro[3] = x2;
goto L724;
}
goto ret0;
L724:
x2 = XEXP (x1, 1);
if (GET_MODE (x2) == SImode && GET_CODE (x2) == MOD && 1)
goto L725;
goto ret0;
L725:
x3 = XEXP (x2, 0);
if (rtx_equal_p (x3, ro[1]) && 1)
goto L726;
goto ret0;
L726:
x3 = XEXP (x2, 1);
if (rtx_equal_p (x3, ro[2]) && 1)
if (TARGET_68020)
return 145;
goto ret0;
L731:
x3 = XEXP (x2, 0);
if (general_operand (x3, SImode))
{
ro[1] = x3;
goto L732;
}
goto ret0;
L732:
x3 = XEXP (x2, 1);
if (general_operand (x3, SImode))
{
ro[2] = x3;
goto L733;
}
goto ret0;
L733:
x1 = XVECEXP (x0, 0, 1);
if (GET_CODE (x1) == SET && 1)
goto L734;
goto ret0;
L734:
x2 = XEXP (x1, 0);
if (GET_MODE (x2) == SImode && general_operand (x2, SImode))
{
ro[3] = x2;
goto L735;
}
goto ret0;
L735:
x2 = XEXP (x1, 1);
if (GET_MODE (x2) == SImode && GET_CODE (x2) == UMOD && 1)
goto L736;
goto ret0;
L736:
x3 = XEXP (x2, 0);
if (rtx_equal_p (x3, ro[1]) && 1)
goto L737;
goto ret0;
L737:
x3 = XEXP (x2, 1);
if (rtx_equal_p (x3, ro[2]) && 1)
if (TARGET_68020)
return 146;
goto ret0;
L18:
x2 = XEXP (x1, 1);
if (general_operand (x2, SFmode))
{
ro[0] = x2;
goto L19;
}
L32:
if (general_operand (x2, DFmode))
{
ro[0] = x2;
goto L33;
}
if (GET_CODE (x2) == COMPARE && 1)
goto L62;
goto ret0;
L19:
x1 = XVECEXP (x0, 0, 1);
if (GET_CODE (x1) == CLOBBER && 1)
goto L20;
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 1);
goto L32;
L20:
x2 = XEXP (x1, 0);
if (scratch_operand (x2, SImode))
{
ro[1] = x2;
if (TARGET_FPA)
return 6;
}
x1 = XVECEXP (x0, 0, 0);
x2 = XEXP (x1, 1);
goto L32;
L33:
x1 = XVECEXP (x0, 0, 1);
if (GET_CODE (x1) == CLOBBER && 1)
goto L34;
goto ret0;
L34:
x2 = XEXP (x1, 0);
if (scratch_operand (x2, SImode))
{
ro[1] = x2;
if (TARGET_FPA)
return 9;
}
goto ret0;
L62:
x3 = XEXP (x2, 0);
switch (GET_MODE (x3))
{
case DFmode:
if (general_operand (x3, DFmode))
{
ro[0] = x3;
goto L63;
}
break;
case SFmode:
if (general_operand (x3, SFmode))
{
ro[0] = x3;
goto L83;
}
}
goto ret0;
L63:
x3 = XEXP (x2, 1);
if (general_operand (x3, DFmode))
{
ro[1] = x3;
goto L64;
}
goto ret0;
L64:
x1 = XVECEXP (x0, 0, 1);
if (GET_CODE (x1) == CLOBBER && 1)
goto L65;
goto ret0;
L65:
x2 = XEXP (x1, 0);
if (scratch_operand (x2, SImode))
{
ro[2] = x2;
if (TARGET_FPA)
return 15;
}
goto ret0;
L83:
x3 = XEXP (x2, 1);
if (general_operand (x3, SFmode))
{
ro[1] = x3;
goto L84;
}
goto ret0;
L84:
x1 = XVECEXP (x0, 0, 1);
if (GET_CODE (x1) == CLOBBER && 1)
goto L85;
goto ret0;
L85:
x2 = XEXP (x1, 0);
if (scratch_operand (x2, SImode))
{
ro[2] = x2;
if (TARGET_FPA)
return 18;
}
goto ret0;
L1516:
return recog_7 (x0, insn, pnum_clobbers);
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;
L1609:
switch (GET_CODE (x0))
{
case REG:
if (GET_MODE (x0) == SImode && XINT (x0, 0) == 15 && 1)
if (NEED_PROBE)
return 295;
break;
case SET:
goto L1;
case PARALLEL:
if (XVECLEN (x0, 0) == 2 && 1)
goto L16;
if (XVECLEN (x0, 0) == 3 && 1)
goto L286;
break;
case CALL:
goto L1587;
case UNSPEC_VOLATILE:
if (XINT (x0, 1) == 0 && XVECLEN (x0, 0) == 1 && 1)
goto L1607;
break;
case CONST_INT:
if (XWINT (x0, 0) == 0 && 1)
return 294;
break;
case RETURN:
if (USE_RETURN_INSN)
return 296;
}
goto ret0;
L1:
return recog_6 (x0, insn, pnum_clobbers);
L16:
x1 = XVECEXP (x0, 0, 0);
if (GET_CODE (x1) == SET && 1)
goto L536;
goto ret0;
L536:
return recog_8 (x0, insn, pnum_clobbers);
L286:
x1 = XVECEXP (x0, 0, 0);
if (GET_CODE (x1) == SET && 1)
goto L287;
goto ret0;
L287:
x2 = XEXP (x1, 0);
switch (GET_MODE (x2))
{
case SImode:
if (general_operand (x2, SImode))
{
ro[0] = x2;
goto L288;
}
break;
case HImode:
if (general_operand (x2, HImode))
{
ro[0] = x2;
goto L303;
}
break;
case QImode:
if (general_operand (x2, QImode))
{
ro[0] = x2;
goto L318;
}
}
goto ret0;
L288:
x2 = XEXP (x1, 1);
if (GET_MODE (x2) == SImode && GET_CODE (x2) == FIX && 1)
goto L289;
goto ret0;
L289:
x3 = XEXP (x2, 0);
if (GET_MODE (x3) == DFmode && GET_CODE (x3) == FIX && 1)
goto L290;
goto ret0;
L290:
x4 = XEXP (x3, 0);
if (register_operand (x4, DFmode))
{
ro[1] = x4;
goto L291;
}
goto ret0;
L291:
x1 = XVECEXP (x0, 0, 1);
if (GET_CODE (x1) == CLOBBER && 1)
goto L292;
goto ret0;
L292:
x2 = XEXP (x1, 0);
if (scratch_operand (x2, SImode))
{
ro[2] = x2;
goto L293;
}
goto ret0;
L293:
x1 = XVECEXP (x0, 0, 2);
if (GET_CODE (x1) == CLOBBER && 1)
goto L294;
goto ret0;
L294:
x2 = XEXP (x1, 0);
if (scratch_operand (x2, SImode))
{
ro[3] = x2;
if (TARGET_68040)
return 70;
}
goto ret0;
L303:
x2 = XEXP (x1, 1);
if (GET_MODE (x2) == HImode && GET_CODE (x2) == FIX && 1)
goto L304;
goto ret0;
L304:
x3 = XEXP (x2, 0);
if (GET_MODE (x3) == DFmode && GET_CODE (x3) == FIX && 1)
goto L305;
goto ret0;
L305:
x4 = XEXP (x3, 0);
if (register_operand (x4, DFmode))
{
ro[1] = x4;
goto L306;
}
goto ret0;
L306:
x1 = XVECEXP (x0, 0, 1);
if (GET_CODE (x1) == CLOBBER && 1)
goto L307;
goto ret0;
L307:
x2 = XEXP (x1, 0);
if (scratch_operand (x2, SImode))
{
ro[2] = x2;
goto L308;
}
goto ret0;
L308:
x1 = XVECEXP (x0, 0, 2);
if (GET_CODE (x1) == CLOBBER && 1)
goto L309;
goto ret0;
L309:
x2 = XEXP (x1, 0);
if (scratch_operand (x2, SImode))
{
ro[3] = x2;
if (TARGET_68040)
return 71;
}
goto ret0;
L318:
x2 = XEXP (x1, 1);
if (GET_MODE (x2) == QImode && GET_CODE (x2) == FIX && 1)
goto L319;
goto ret0;
L319:
x3 = XEXP (x2, 0);
if (GET_MODE (x3) == DFmode && GET_CODE (x3) == FIX && 1)
goto L320;
goto ret0;
L320:
x4 = XEXP (x3, 0);
if (register_operand (x4, DFmode))
{
ro[1] = x4;
goto L321;
}
goto ret0;
L321:
x1 = XVECEXP (x0, 0, 1);
if (GET_CODE (x1) == CLOBBER && 1)
goto L322;
goto ret0;
L322:
x2 = XEXP (x1, 0);
if (scratch_operand (x2, SImode))
{
ro[2] = x2;
goto L323;
}
goto ret0;
L323:
x1 = XVECEXP (x0, 0, 2);
if (GET_CODE (x1) == CLOBBER && 1)
goto L324;
goto ret0;
L324:
x2 = XEXP (x1, 0);
if (scratch_operand (x2, SImode))
{
ro[3] = x2;
if (TARGET_68040)
return 72;
}
goto ret0;
L1587:
x1 = XEXP (x0, 0);
if (memory_operand (x1, QImode))
{
ro[0] = x1;
goto L1588;
}
goto ret0;
L1588:
x1 = XEXP (x0, 1);
if (general_operand (x1, SImode))
goto L1592;
goto ret0;
L1592:
ro[1] = x1;
if (! flag_pic)
return 287;
L1593:
ro[1] = x1;
if (flag_pic)
return 288;
goto ret0;
L1607:
x1 = XVECEXP (x0, 0, 0);
if (GET_CODE (x1) == CONST_INT && XWINT (x1, 0) == 0 && 1)
return 293;
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;
}