diff options
Diffstat (limited to 'gnu/usr.bin/cc/cc_int/insn-recog.c')
-rw-r--r-- | gnu/usr.bin/cc/cc_int/insn-recog.c | 4774 |
1 files changed, 2807 insertions, 1967 deletions
diff --git a/gnu/usr.bin/cc/cc_int/insn-recog.c b/gnu/usr.bin/cc/cc_int/insn-recog.c index 293dd7e..c3406b7 100644 --- a/gnu/usr.bin/cc/cc_int/insn-recog.c +++ b/gnu/usr.bin/cc/cc_int/insn-recog.c @@ -58,99 +58,100 @@ recog_1 (x0, insn, pnum_clobbers) switch (GET_CODE (x1)) { case ZERO_EXTEND: - goto L370; + goto L474; case SIGN_EXTEND: - goto L390; + goto L494; case PLUS: - goto L603; + goto L715; case MINUS: - goto L626; + goto L746; case MULT: - goto L660; + goto L780; case AND: - goto L747; + goto L913; case IOR: - goto L762; + goto L928; case XOR: - goto L777; + goto L943; case NEG: - goto L795; + goto L961; case NOT: - goto L904; + goto L1070; case ASHIFT: - goto L930; + goto L1096; case ASHIFTRT: - goto L958; + goto L1124; case LSHIFTRT: - goto L986; + goto L1152; case ROTATE: - goto L1001; + goto L1167; case ROTATERT: - goto L1016; + goto L1182; } } if (general_operand (x1, HImode)) { ro[1] = x1; - return 51; - } + if ((!TARGET_MOVE || GET_CODE (operands[0]) != MEM) || (GET_CODE (operands[1]) != MEM)) + return 55; + } goto ret0; - L370: + L474: x2 = XEXP (x1, 0); if (nonimmediate_operand (x2, QImode)) { ro[1] = x2; - return 67; + return 86; } goto ret0; - L390: + L494: x2 = XEXP (x1, 0); if (nonimmediate_operand (x2, QImode)) { ro[1] = x2; - return 72; + return 91; } goto ret0; - L603: + L715: x2 = XEXP (x1, 0); if (general_operand (x2, HImode)) { ro[1] = x2; - goto L604; + goto L716; } goto ret0; - L604: + L716: x2 = XEXP (x1, 1); if (general_operand (x2, HImode)) { ro[2] = x2; - return 110; + return 129; } goto ret0; - L626: + L746: x2 = XEXP (x1, 0); if (general_operand (x2, HImode)) { ro[1] = x2; - goto L627; + goto L747; } goto ret0; - L627: + L747: x2 = XEXP (x1, 1); if (general_operand (x2, HImode)) { ro[2] = x2; - return 118; + return 137; } goto ret0; - L660: + L780: x2 = XEXP (x1, 0); switch (GET_MODE (x2)) { @@ -158,239 +159,239 @@ recog_1 (x0, insn, pnum_clobbers) switch (GET_CODE (x2)) { case ZERO_EXTEND: - goto L661; + goto L781; case SIGN_EXTEND: - goto L668; + goto L788; } } if (general_operand (x2, HImode)) { ro[1] = x2; - goto L637; + goto L757; } goto ret0; - L661: + L781: x3 = XEXP (x2, 0); if (nonimmediate_operand (x3, QImode)) { ro[1] = x3; - goto L662; + goto L782; } goto ret0; - L662: + L782: x2 = XEXP (x1, 1); if (GET_MODE (x2) == HImode && GET_CODE (x2) == ZERO_EXTEND && 1) - goto L663; + goto L783; goto ret0; - L663: + L783: x3 = XEXP (x2, 0); if (nonimmediate_operand (x3, QImode)) { ro[2] = x3; - return 127; + return 146; } goto ret0; - L668: + L788: x3 = XEXP (x2, 0); if (nonimmediate_operand (x3, QImode)) { ro[1] = x3; - goto L669; + goto L789; } goto ret0; - L669: + L789: x2 = XEXP (x1, 1); if (GET_MODE (x2) == HImode && GET_CODE (x2) == SIGN_EXTEND && 1) - goto L670; + goto L790; goto ret0; - L670: + L790: x3 = XEXP (x2, 0); if (nonimmediate_operand (x3, QImode)) { ro[2] = x3; - return 128; + return 147; } goto ret0; - L637: + L757: x2 = XEXP (x1, 1); if (general_operand (x2, HImode)) - goto L643; + goto L763; goto ret0; - L643: + L763: ro[2] = x2; if (GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) == 0x80) - return 123; - L644: + return 142; + L764: ro[2] = x2; - return 124; + return 143; - L747: + L913: x2 = XEXP (x1, 0); if (general_operand (x2, HImode)) { ro[1] = x2; - goto L748; + goto L914; } goto ret0; - L748: + L914: x2 = XEXP (x1, 1); if (general_operand (x2, HImode)) { ro[2] = x2; - return 144; + return 165; } goto ret0; - L762: + L928: x2 = XEXP (x1, 0); if (general_operand (x2, HImode)) { ro[1] = x2; - goto L763; + goto L929; } goto ret0; - L763: + L929: x2 = XEXP (x1, 1); if (general_operand (x2, HImode)) { ro[2] = x2; - return 147; + return 168; } goto ret0; - L777: + L943: x2 = XEXP (x1, 0); if (general_operand (x2, HImode)) { ro[1] = x2; - goto L778; + goto L944; } goto ret0; - L778: + L944: x2 = XEXP (x1, 1); if (general_operand (x2, HImode)) { ro[2] = x2; - return 150; + return 171; } goto ret0; - L795: + L961: x2 = XEXP (x1, 0); if (general_operand (x2, HImode)) { ro[1] = x2; - return 154; + return 175; } goto ret0; - L904: + L1070: x2 = XEXP (x1, 0); if (general_operand (x2, HImode)) { ro[1] = x2; - return 179; + return 200; } goto ret0; - L930: + L1096: x2 = XEXP (x1, 0); if (general_operand (x2, HImode)) { ro[1] = x2; - goto L931; + goto L1097; } goto ret0; - L931: + L1097: x2 = XEXP (x1, 1); if (nonmemory_operand (x2, HImode)) { ro[2] = x2; - return 185; + return 206; } goto ret0; - L958: + L1124: x2 = XEXP (x1, 0); if (general_operand (x2, HImode)) { ro[1] = x2; - goto L959; + goto L1125; } goto ret0; - L959: + L1125: x2 = XEXP (x1, 1); if (nonmemory_operand (x2, HImode)) { ro[2] = x2; - return 191; + return 212; } goto ret0; - L986: + L1152: x2 = XEXP (x1, 0); if (general_operand (x2, HImode)) { ro[1] = x2; - goto L987; + goto L1153; } goto ret0; - L987: + L1153: x2 = XEXP (x1, 1); if (nonmemory_operand (x2, HImode)) { ro[2] = x2; - return 197; + return 218; } goto ret0; - L1001: + L1167: x2 = XEXP (x1, 0); if (general_operand (x2, HImode)) { ro[1] = x2; - goto L1002; + goto L1168; } goto ret0; - L1002: + L1168: x2 = XEXP (x1, 1); if (nonmemory_operand (x2, HImode)) { ro[2] = x2; - return 200; + return 221; } goto ret0; - L1016: + L1182: x2 = XEXP (x1, 0); if (general_operand (x2, HImode)) { ro[1] = x2; - goto L1017; + goto L1183; } goto ret0; - L1017: + L1183: x2 = XEXP (x1, 1); if (nonmemory_operand (x2, HImode)) { ro[2] = x2; - return 203; + return 224; } goto ret0; ret0: return -1; @@ -468,7 +469,7 @@ recog_2 (x0, insn, pnum_clobbers) case COMPARE: goto L39; case ZERO_EXTRACT: - goto L1046; + goto L1212; } L61: if (VOIDmode_compare_op (x1, VOIDmode)) @@ -563,7 +564,7 @@ recog_2 (x0, insn, pnum_clobbers) } goto L61; - L1046: + L1212: x2 = XEXP (x1, 0); switch (GET_MODE (x2)) { @@ -571,66 +572,66 @@ recog_2 (x0, insn, pnum_clobbers) if (register_operand (x2, SImode)) { ro[0] = x2; - goto L1047; + goto L1213; } break; case QImode: if (general_operand (x2, QImode)) { ro[0] = x2; - goto L1059; + goto L1225; } } goto L61; - L1047: + L1213: x2 = XEXP (x1, 1); if (GET_CODE (x2) != CONST_INT) { goto L61; } if (XWINT (x2, 0) == 1 && 1) - goto L1048; - L1053: + goto L1214; + L1219: ro[1] = x2; - goto L1054; + goto L1220; - L1048: + L1214: x2 = XEXP (x1, 2); if (general_operand (x2, SImode)) { ro[1] = x2; if (GET_CODE (operands[1]) != CONST_INT) - return 208; + return 229; } x2 = XEXP (x1, 1); - goto L1053; + goto L1219; - L1054: + L1220: x2 = XEXP (x1, 2); if (GET_CODE (x2) == CONST_INT && 1) { ro[2] = x2; - return 209; + return 230; } goto L61; - L1059: + L1225: x2 = XEXP (x1, 1); if (GET_CODE (x2) == CONST_INT && 1) { ro[1] = x2; - goto L1060; + goto L1226; } goto L61; - L1060: + L1226: 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 210; + return 231; } goto L61; @@ -1079,477 +1080,477 @@ recog_3 (x0, insn, pnum_clobbers) switch (GET_CODE (x2)) { case EQ: - goto L1115; + goto L1281; case NE: - goto L1124; + goto L1290; case GT: - goto L1133; + goto L1299; case GTU: - goto L1142; + goto L1308; case LT: - goto L1151; + goto L1317; case LTU: - goto L1160; + goto L1326; case GE: - goto L1169; + goto L1335; case GEU: - goto L1178; + goto L1344; case LE: - goto L1187; + goto L1353; case LEU: - goto L1196; + goto L1362; } goto ret0; - L1115: + L1281: x3 = XEXP (x2, 0); if (GET_CODE (x3) == CC0 && 1) - goto L1116; + goto L1282; goto ret0; - L1116: + L1282: x3 = XEXP (x2, 1); if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1) - goto L1117; + goto L1283; goto ret0; - L1117: + L1283: x2 = XEXP (x1, 1); switch (GET_CODE (x2)) { case LABEL_REF: - goto L1118; + goto L1284; case PC: - goto L1208; + goto L1374; } goto ret0; - L1118: + L1284: x3 = XEXP (x2, 0); ro[0] = x3; - goto L1119; + goto L1285; - L1119: + L1285: x2 = XEXP (x1, 2); if (GET_CODE (x2) == PC && 1) - return 232; + return 253; goto ret0; - L1208: + L1374: x2 = XEXP (x1, 2); if (GET_CODE (x2) == LABEL_REF && 1) - goto L1209; + goto L1375; goto ret0; - L1209: + L1375: x3 = XEXP (x2, 0); ro[0] = x3; - return 251; + return 272; - L1124: + L1290: x3 = XEXP (x2, 0); if (GET_CODE (x3) == CC0 && 1) - goto L1125; + goto L1291; goto ret0; - L1125: + L1291: x3 = XEXP (x2, 1); if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1) - goto L1126; + goto L1292; goto ret0; - L1126: + L1292: x2 = XEXP (x1, 1); switch (GET_CODE (x2)) { case LABEL_REF: - goto L1127; + goto L1293; case PC: - goto L1217; + goto L1383; } goto ret0; - L1127: + L1293: x3 = XEXP (x2, 0); ro[0] = x3; - goto L1128; + goto L1294; - L1128: + L1294: x2 = XEXP (x1, 2); if (GET_CODE (x2) == PC && 1) - return 234; + return 255; goto ret0; - L1217: + L1383: x2 = XEXP (x1, 2); if (GET_CODE (x2) == LABEL_REF && 1) - goto L1218; + goto L1384; goto ret0; - L1218: + L1384: x3 = XEXP (x2, 0); ro[0] = x3; - return 252; + return 273; - L1133: + L1299: x3 = XEXP (x2, 0); if (GET_CODE (x3) == CC0 && 1) - goto L1134; + goto L1300; goto ret0; - L1134: + L1300: x3 = XEXP (x2, 1); if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1) - goto L1135; + goto L1301; goto ret0; - L1135: + L1301: x2 = XEXP (x1, 1); switch (GET_CODE (x2)) { case LABEL_REF: - goto L1136; + goto L1302; case PC: - goto L1226; + goto L1392; } goto ret0; - L1136: + L1302: x3 = XEXP (x2, 0); ro[0] = x3; - goto L1137; + goto L1303; - L1137: + L1303: x2 = XEXP (x1, 2); if (GET_CODE (x2) == PC && 1) - return 236; + return 257; goto ret0; - L1226: + L1392: x2 = XEXP (x1, 2); if (GET_CODE (x2) == LABEL_REF && 1) - goto L1227; + goto L1393; goto ret0; - L1227: + L1393: x3 = XEXP (x2, 0); ro[0] = x3; - return 253; + return 274; - L1142: + L1308: x3 = XEXP (x2, 0); if (GET_CODE (x3) == CC0 && 1) - goto L1143; + goto L1309; goto ret0; - L1143: + L1309: x3 = XEXP (x2, 1); if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1) - goto L1144; + goto L1310; goto ret0; - L1144: + L1310: x2 = XEXP (x1, 1); switch (GET_CODE (x2)) { case LABEL_REF: - goto L1145; + goto L1311; case PC: - goto L1235; + goto L1401; } goto ret0; - L1145: + L1311: x3 = XEXP (x2, 0); ro[0] = x3; - goto L1146; + goto L1312; - L1146: + L1312: x2 = XEXP (x1, 2); if (GET_CODE (x2) == PC && 1) - return 238; + return 259; goto ret0; - L1235: + L1401: x2 = XEXP (x1, 2); if (GET_CODE (x2) == LABEL_REF && 1) - goto L1236; + goto L1402; goto ret0; - L1236: + L1402: x3 = XEXP (x2, 0); ro[0] = x3; - return 254; + return 275; - L1151: + L1317: x3 = XEXP (x2, 0); if (GET_CODE (x3) == CC0 && 1) - goto L1152; + goto L1318; goto ret0; - L1152: + L1318: x3 = XEXP (x2, 1); if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1) - goto L1153; + goto L1319; goto ret0; - L1153: + L1319: x2 = XEXP (x1, 1); switch (GET_CODE (x2)) { case LABEL_REF: - goto L1154; + goto L1320; case PC: - goto L1244; + goto L1410; } goto ret0; - L1154: + L1320: x3 = XEXP (x2, 0); ro[0] = x3; - goto L1155; + goto L1321; - L1155: + L1321: x2 = XEXP (x1, 2); if (GET_CODE (x2) == PC && 1) - return 240; + return 261; goto ret0; - L1244: + L1410: x2 = XEXP (x1, 2); if (GET_CODE (x2) == LABEL_REF && 1) - goto L1245; + goto L1411; goto ret0; - L1245: + L1411: x3 = XEXP (x2, 0); ro[0] = x3; - return 255; + return 276; - L1160: + L1326: x3 = XEXP (x2, 0); if (GET_CODE (x3) == CC0 && 1) - goto L1161; + goto L1327; goto ret0; - L1161: + L1327: x3 = XEXP (x2, 1); if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1) - goto L1162; + goto L1328; goto ret0; - L1162: + L1328: x2 = XEXP (x1, 1); switch (GET_CODE (x2)) { case LABEL_REF: - goto L1163; + goto L1329; case PC: - goto L1253; + goto L1419; } goto ret0; - L1163: + L1329: x3 = XEXP (x2, 0); ro[0] = x3; - goto L1164; + goto L1330; - L1164: + L1330: x2 = XEXP (x1, 2); if (GET_CODE (x2) == PC && 1) - return 242; + return 263; goto ret0; - L1253: + L1419: x2 = XEXP (x1, 2); if (GET_CODE (x2) == LABEL_REF && 1) - goto L1254; + goto L1420; goto ret0; - L1254: + L1420: x3 = XEXP (x2, 0); ro[0] = x3; - return 256; + return 277; - L1169: + L1335: x3 = XEXP (x2, 0); if (GET_CODE (x3) == CC0 && 1) - goto L1170; + goto L1336; goto ret0; - L1170: + L1336: x3 = XEXP (x2, 1); if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1) - goto L1171; + goto L1337; goto ret0; - L1171: + L1337: x2 = XEXP (x1, 1); switch (GET_CODE (x2)) { case LABEL_REF: - goto L1172; + goto L1338; case PC: - goto L1262; + goto L1428; } goto ret0; - L1172: + L1338: x3 = XEXP (x2, 0); ro[0] = x3; - goto L1173; + goto L1339; - L1173: + L1339: x2 = XEXP (x1, 2); if (GET_CODE (x2) == PC && 1) - return 244; + return 265; goto ret0; - L1262: + L1428: x2 = XEXP (x1, 2); if (GET_CODE (x2) == LABEL_REF && 1) - goto L1263; + goto L1429; goto ret0; - L1263: + L1429: x3 = XEXP (x2, 0); ro[0] = x3; - return 257; + return 278; - L1178: + L1344: x3 = XEXP (x2, 0); if (GET_CODE (x3) == CC0 && 1) - goto L1179; + goto L1345; goto ret0; - L1179: + L1345: x3 = XEXP (x2, 1); if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1) - goto L1180; + goto L1346; goto ret0; - L1180: + L1346: x2 = XEXP (x1, 1); switch (GET_CODE (x2)) { case LABEL_REF: - goto L1181; + goto L1347; case PC: - goto L1271; + goto L1437; } goto ret0; - L1181: + L1347: x3 = XEXP (x2, 0); ro[0] = x3; - goto L1182; + goto L1348; - L1182: + L1348: x2 = XEXP (x1, 2); if (GET_CODE (x2) == PC && 1) - return 246; + return 267; goto ret0; - L1271: + L1437: x2 = XEXP (x1, 2); if (GET_CODE (x2) == LABEL_REF && 1) - goto L1272; + goto L1438; goto ret0; - L1272: + L1438: x3 = XEXP (x2, 0); ro[0] = x3; - return 258; + return 279; - L1187: + L1353: x3 = XEXP (x2, 0); if (GET_CODE (x3) == CC0 && 1) - goto L1188; + goto L1354; goto ret0; - L1188: + L1354: x3 = XEXP (x2, 1); if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1) - goto L1189; + goto L1355; goto ret0; - L1189: + L1355: x2 = XEXP (x1, 1); switch (GET_CODE (x2)) { case LABEL_REF: - goto L1190; + goto L1356; case PC: - goto L1280; + goto L1446; } goto ret0; - L1190: + L1356: x3 = XEXP (x2, 0); ro[0] = x3; - goto L1191; + goto L1357; - L1191: + L1357: x2 = XEXP (x1, 2); if (GET_CODE (x2) == PC && 1) - return 248; + return 269; goto ret0; - L1280: + L1446: x2 = XEXP (x1, 2); if (GET_CODE (x2) == LABEL_REF && 1) - goto L1281; + goto L1447; goto ret0; - L1281: + L1447: x3 = XEXP (x2, 0); ro[0] = x3; - return 259; + return 280; - L1196: + L1362: x3 = XEXP (x2, 0); if (GET_CODE (x3) == CC0 && 1) - goto L1197; + goto L1363; goto ret0; - L1197: + L1363: x3 = XEXP (x2, 1); if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1) - goto L1198; + goto L1364; goto ret0; - L1198: + L1364: x2 = XEXP (x1, 1); switch (GET_CODE (x2)) { case LABEL_REF: - goto L1199; + goto L1365; case PC: - goto L1289; + goto L1455; } goto ret0; - L1199: + L1365: x3 = XEXP (x2, 0); ro[0] = x3; - goto L1200; + goto L1366; - L1200: + L1366: x2 = XEXP (x1, 2); if (GET_CODE (x2) == PC && 1) - return 250; + return 271; goto ret0; - L1289: + L1455: x2 = XEXP (x1, 2); if (GET_CODE (x2) == LABEL_REF && 1) - goto L1290; + goto L1456; goto ret0; - L1290: + L1456: x3 = XEXP (x2, 0); ro[0] = x3; - return 260; + return 281; ret0: return -1; } @@ -1577,133 +1578,151 @@ recog_4 (x0, insn, pnum_clobbers) } break; case ZERO_EXTRACT: - goto L1025; + goto L1191; } - L303: + L304: if (general_operand (x1, SImode)) { ro[0] = x1; - goto L365; + goto L469; } - L611: + L723: if (register_operand (x1, SImode)) { ro[0] = x1; - goto L612; + goto L820; } - L619: + L739: if (general_operand (x1, SImode)) { ro[0] = x1; - goto L620; + goto L740; } break; case HImode: if (GET_CODE (x1) == MEM && push_operand (x1, HImode)) { ro[0] = x1; - goto L307; + goto L308; } - L309: + L316: if (general_operand (x1, HImode)) { ro[0] = x1; - goto L369; + goto L473; } break; case QImode: if (GET_CODE (x1) == MEM && push_operand (x1, QImode)) { ro[0] = x1; - goto L317; + goto L327; } - L319: + L332: if (general_operand (x1, QImode)) { ro[0] = x1; - goto L607; + goto L719; } - L1062: + L1228: if (register_operand (x1, QImode)) { ro[0] = x1; - goto L1063; + goto L1229; } break; case SFmode: if (GET_CODE (x1) == MEM && push_operand (x1, SFmode)) { ro[0] = x1; - goto L327; + goto L340; } - L329: + L359: + if (memory_operand (x1, SFmode)) + { + ro[0] = x1; + goto L360; + } + L362: if (general_operand (x1, SFmode)) { ro[0] = x1; - goto L416; + goto L520; } - L575: + L679: if (register_operand (x1, SFmode)) { ro[0] = x1; - goto L576; + goto L680; } break; case DFmode: if (GET_CODE (x1) == MEM && push_operand (x1, DFmode)) { ro[0] = x1; - goto L333; + goto L373; } - L342: - if (general_operand (x1, DFmode)) + L396: + if (memory_operand (x1, DFmode)) { ro[0] = x1; goto L397; } - L571: + L399: + if (general_operand (x1, DFmode)) + { + ro[0] = x1; + goto L501; + } + L675: if (register_operand (x1, DFmode)) { ro[0] = x1; - goto L572; + goto L676; } break; case XFmode: if (GET_CODE (x1) == MEM && push_operand (x1, XFmode)) { ro[0] = x1; - goto L346; + goto L410; + } + L433: + if (memory_operand (x1, XFmode)) + { + ro[0] = x1; + goto L434; } - L355: + L436: if (general_operand (x1, XFmode)) { ro[0] = x1; - goto L401; + goto L505; } - L567: + L671: if (register_operand (x1, XFmode)) { ro[0] = x1; - goto L568; + goto L672; } break; case DImode: if (GET_CODE (x1) == MEM && push_operand (x1, DImode)) { ro[0] = x1; - goto L359; + goto L455; } - L361: + L465: if (general_operand (x1, DImode)) { ro[0] = x1; - goto L592; + goto L704; } - L376: + L480: if (register_operand (x1, DImode)) { ro[0] = x1; - goto L377; + goto L481; } } switch (GET_CODE (x1)) @@ -1711,49 +1730,49 @@ recog_4 (x0, insn, pnum_clobbers) case CC0: goto L2; case STRICT_LOW_PART: - goto L313; + goto L320; case PC: - goto L1314; + goto L1480; } - L1380: + L1546: ro[0] = x1; - goto L1381; - L1460: + goto L1547; + L1613: switch (GET_MODE (x1)) { case SImode: if (general_operand (x1, SImode)) { ro[0] = x1; - goto L1461; + goto L1614; } break; case HImode: if (general_operand (x1, HImode)) { ro[0] = x1; - goto L1467; + goto L1620; } break; case DFmode: if (register_operand (x1, DFmode)) { ro[0] = x1; - goto L1473; + goto L1626; } break; case XFmode: if (register_operand (x1, XFmode)) { ro[0] = x1; - goto L1484; + goto L1637; } break; case SFmode: if (register_operand (x1, SFmode)) { ro[0] = x1; - goto L1531; + goto L1684; } } goto ret0; @@ -1761,57 +1780,64 @@ recog_4 (x0, insn, pnum_clobbers) L296: x1 = XEXP (x0, 1); if (general_operand (x1, SImode)) - goto L300; - x1 = XEXP (x0, 0); - goto L303; - - L300: - ro[1] = x1; - if (! TARGET_486) - return 46; - L301: - ro[1] = x1; - if (TARGET_486) - return 47; + { + ro[1] = x1; + if (TARGET_386) + return 46; + } + L299: + if (nonmemory_operand (x1, SImode)) + { + ro[1] = x1; + if (!TARGET_386 && TARGET_MOVE) + return 47; + } + L302: + if (general_operand (x1, SImode)) + { + ro[1] = x1; + if (!TARGET_386 && !TARGET_MOVE) + return 48; + } x1 = XEXP (x0, 0); - goto L303; + goto L304; - L1025: + L1191: x2 = XEXP (x1, 0); if (GET_MODE (x2) == SImode && general_operand (x2, SImode)) { ro[0] = x2; - goto L1026; + goto L1192; } - goto L1380; + goto L1546; - L1026: + L1192: x2 = XEXP (x1, 1); if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 1 && 1) - goto L1027; - goto L1380; + goto L1193; + goto L1546; - L1027: + L1193: x2 = XEXP (x1, 2); if (general_operand (x2, SImode)) { ro[2] = x2; - goto L1028; + goto L1194; } - goto L1380; + goto L1546; - L1028: + L1194: x1 = XEXP (x0, 1); if (GET_CODE (x1) == CONST_INT && 1) { ro[3] = x1; - if (! TARGET_486 && GET_CODE (operands[2]) != CONST_INT) - return 205; + if (TARGET_386 && GET_CODE (operands[2]) != CONST_INT) + return 226; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L365: + L469: x1 = XEXP (x0, 1); switch (GET_MODE (x1)) { @@ -1819,22 +1845,23 @@ recog_4 (x0, insn, pnum_clobbers) switch (GET_CODE (x1)) { case ZERO_EXTEND: - goto L366; + goto L470; case SIGN_EXTEND: - goto L386; + goto L490; case PLUS: - goto L598; + goto L710; } } if (general_operand (x1, SImode)) { ro[1] = x1; - return 49; - } + if ((!TARGET_MOVE || GET_CODE (operands[0]) != MEM) || (GET_CODE (operands[1]) != MEM)) + return 50; + } x1 = XEXP (x0, 0); - goto L611; + goto L723; - L366: + L470: x2 = XEXP (x1, 0); switch (GET_MODE (x2)) { @@ -1842,20 +1869,20 @@ recog_4 (x0, insn, pnum_clobbers) if (nonimmediate_operand (x2, HImode)) { ro[1] = x2; - return 66; + return 85; } break; case QImode: if (nonimmediate_operand (x2, QImode)) { ro[1] = x2; - return 68; + return 87; } } x1 = XEXP (x0, 0); - goto L611; + goto L723; - L386: + L490: x2 = XEXP (x1, 0); switch (GET_MODE (x2)) { @@ -1863,387 +1890,528 @@ recog_4 (x0, insn, pnum_clobbers) if (nonimmediate_operand (x2, HImode)) { ro[1] = x2; - return 71; + return 90; } break; case QImode: if (nonimmediate_operand (x2, QImode)) { ro[1] = x2; - return 73; + return 92; } } x1 = XEXP (x0, 0); - goto L611; + goto L723; - L598: + L710: x2 = XEXP (x1, 0); if (general_operand (x2, SImode)) { ro[1] = x2; - goto L599; + goto L711; } x1 = XEXP (x0, 0); - goto L611; + goto L723; - L599: + L711: x2 = XEXP (x1, 1); if (general_operand (x2, SImode)) { ro[2] = x2; - return 109; + return 128; } x1 = XEXP (x0, 0); - goto L611; + goto L723; - L612: + L820: x1 = XEXP (x0, 1); + if (GET_MODE (x1) == SImode && GET_CODE (x1) == TRUNCATE && 1) + goto L821; if (address_operand (x1, QImode)) { ro[1] = x1; - return 112; + return 131; } x1 = XEXP (x0, 0); - goto L619; + goto L739; - L620: + L821: + x2 = XEXP (x1, 0); + if (GET_MODE (x2) == DImode && GET_CODE (x2) == LSHIFTRT && 1) + goto L822; + x1 = XEXP (x0, 0); + goto L739; + + L822: + x3 = XEXP (x2, 0); + if (GET_MODE (x3) == DImode && GET_CODE (x3) == MULT && 1) + goto L823; + x1 = XEXP (x0, 0); + goto L739; + + L823: + x4 = XEXP (x3, 0); + if (GET_MODE (x4) != DImode) + { + x1 = XEXP (x0, 0); + goto L739; + } + switch (GET_CODE (x4)) + { + case ZERO_EXTEND: + goto L824; + case SIGN_EXTEND: + goto L847; + } + x1 = XEXP (x0, 0); + goto L739; + + L824: + x5 = XEXP (x4, 0); + if (register_operand (x5, SImode)) + { + ro[1] = x5; + goto L825; + } + x1 = XEXP (x0, 0); + goto L739; + + L825: + x4 = XEXP (x3, 1); + if (GET_MODE (x4) == DImode && GET_CODE (x4) == ZERO_EXTEND && 1) + goto L826; + x1 = XEXP (x0, 0); + goto L739; + + L826: + x5 = XEXP (x4, 0); + if (nonimmediate_operand (x5, SImode)) + { + ro[2] = x5; + goto L827; + } + x1 = XEXP (x0, 0); + goto L739; + + L827: + x3 = XEXP (x2, 1); + if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 32 && pnum_clobbers != 0 && 1) + if (TARGET_WIDE_MULTIPLY) + { + *pnum_clobbers = 1; + return 150; + } + x1 = XEXP (x0, 0); + goto L739; + + L847: + x5 = XEXP (x4, 0); + if (register_operand (x5, SImode)) + { + ro[1] = x5; + goto L848; + } + x1 = XEXP (x0, 0); + goto L739; + + L848: + x4 = XEXP (x3, 1); + if (GET_MODE (x4) == DImode && GET_CODE (x4) == SIGN_EXTEND && 1) + goto L849; + x1 = XEXP (x0, 0); + goto L739; + + L849: + x5 = XEXP (x4, 0); + if (nonimmediate_operand (x5, SImode)) + { + ro[2] = x5; + goto L850; + } + x1 = XEXP (x0, 0); + goto L739; + + L850: + x3 = XEXP (x2, 1); + if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 32 && pnum_clobbers != 0 && 1) + if (TARGET_WIDE_MULTIPLY) + { + *pnum_clobbers = 1; + return 151; + } + x1 = XEXP (x0, 0); + goto L739; + + L740: x1 = XEXP (x0, 1); if (GET_MODE (x1) != SImode) { x1 = XEXP (x0, 0); - goto L1380; + goto L1546; } switch (GET_CODE (x1)) { case MINUS: - goto L621; + goto L741; case MULT: - goto L648; + goto L768; case AND: - goto L742; + goto L908; case IOR: - goto L757; + goto L923; case XOR: - goto L1032; + goto L1198; case NEG: - goto L791; + goto L957; case NOT: - goto L900; + goto L1066; case ASHIFT: - goto L925; + goto L1091; case ASHIFTRT: - goto L953; + goto L1119; case LSHIFTRT: - goto L981; + goto L1147; case ROTATE: - goto L996; + goto L1162; case ROTATERT: - goto L1011; + goto L1177; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L621: + L741: x2 = XEXP (x1, 0); if (general_operand (x2, SImode)) { ro[1] = x2; - goto L622; + goto L742; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L622: + L742: x2 = XEXP (x1, 1); if (general_operand (x2, SImode)) { ro[2] = x2; - return 117; + return 136; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L648: + L768: x2 = XEXP (x1, 0); if (general_operand (x2, SImode)) { ro[1] = x2; - goto L649; + goto L769; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L649: + L769: x2 = XEXP (x1, 1); if (general_operand (x2, SImode)) - goto L655; + goto L775; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L655: + L775: ro[2] = x2; if (GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) == 0x80) - return 125; - L656: + return 144; + L776: ro[2] = x2; - return 126; + return 145; - L742: + L908: x2 = XEXP (x1, 0); if (general_operand (x2, SImode)) { ro[1] = x2; - goto L743; + goto L909; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L743: + L909: x2 = XEXP (x1, 1); if (general_operand (x2, SImode)) { ro[2] = x2; - return 143; + return 164; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L757: + L923: x2 = XEXP (x1, 0); if (general_operand (x2, SImode)) { ro[1] = x2; - goto L758; + goto L924; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L758: + L924: x2 = XEXP (x1, 1); if (general_operand (x2, SImode)) { ro[2] = x2; - return 146; + return 167; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1032: + L1198: x2 = XEXP (x1, 0); if (GET_MODE (x2) == SImode && GET_CODE (x2) == ASHIFT && 1) - goto L1033; + goto L1199; if (general_operand (x2, SImode)) { ro[1] = x2; - goto L1040; + goto L1206; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1033: + L1199: x3 = XEXP (x2, 0); if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 1 && 1) - goto L1034; + goto L1200; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1034: + L1200: x3 = XEXP (x2, 1); if (general_operand (x3, SImode)) { ro[1] = x3; - goto L1035; + goto L1201; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1035: + L1201: x2 = XEXP (x1, 1); if (general_operand (x2, SImode)) { ro[2] = x2; - if (! TARGET_486 && GET_CODE (operands[1]) != CONST_INT) - return 206; + if (TARGET_386 && GET_CODE (operands[1]) != CONST_INT) + return 227; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1040: + L1206: x2 = XEXP (x1, 1); if (GET_MODE (x2) == SImode && GET_CODE (x2) == ASHIFT && 1) - goto L1041; + goto L1207; if (general_operand (x2, SImode)) { ro[2] = x2; - return 149; + return 170; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1041: + L1207: x3 = XEXP (x2, 0); if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 1 && 1) - goto L1042; + goto L1208; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1042: + L1208: x3 = XEXP (x2, 1); if (general_operand (x3, SImode)) { ro[2] = x3; - if (! TARGET_486 && GET_CODE (operands[2]) != CONST_INT) - return 207; + if (TARGET_386 && GET_CODE (operands[2]) != CONST_INT) + return 228; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L791: + L957: x2 = XEXP (x1, 0); if (general_operand (x2, SImode)) { ro[1] = x2; - return 153; + return 174; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L900: + L1066: x2 = XEXP (x1, 0); if (general_operand (x2, SImode)) { ro[1] = x2; - return 178; + return 199; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L925: + L1091: x2 = XEXP (x1, 0); if (general_operand (x2, SImode)) { ro[1] = x2; - goto L926; + goto L1092; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L926: + L1092: x2 = XEXP (x1, 1); if (nonmemory_operand (x2, SImode)) { ro[2] = x2; - return 184; + return 205; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L953: + L1119: x2 = XEXP (x1, 0); if (general_operand (x2, SImode)) { ro[1] = x2; - goto L954; + goto L1120; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L954: + L1120: x2 = XEXP (x1, 1); if (nonmemory_operand (x2, SImode)) { ro[2] = x2; - return 190; + return 211; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L981: + L1147: x2 = XEXP (x1, 0); if (general_operand (x2, SImode)) { ro[1] = x2; - goto L982; + goto L1148; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L982: + L1148: x2 = XEXP (x1, 1); if (nonmemory_operand (x2, SImode)) { ro[2] = x2; - return 196; + return 217; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L996: + L1162: x2 = XEXP (x1, 0); if (general_operand (x2, SImode)) { ro[1] = x2; - goto L997; + goto L1163; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L997: + L1163: x2 = XEXP (x1, 1); if (nonmemory_operand (x2, SImode)) { ro[2] = x2; - return 199; + return 220; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1011: + L1177: x2 = XEXP (x1, 0); if (general_operand (x2, SImode)) { ro[1] = x2; - goto L1012; + goto L1178; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1012: + L1178: x2 = XEXP (x1, 1); if (nonmemory_operand (x2, SImode)) { ro[2] = x2; - return 202; + return 223; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L307: + L308: x1 = XEXP (x0, 1); if (general_operand (x1, HImode)) { ro[1] = x1; - return 50; - } + if (TARGET_386) + return 51; + } + L311: + if (nonmemory_operand (x1, HImode)) + { + ro[1] = x1; + if (!TARGET_386 && TARGET_MOVE) + return 52; + } + L314: + if (general_operand (x1, HImode)) + { + ro[1] = x1; + if (!TARGET_386 && !TARGET_MOVE) + return 53; + } x1 = XEXP (x0, 0); - goto L309; - L369: + goto L316; + L473: tem = recog_1 (x0, insn, pnum_clobbers); if (tem >= 0) return tem; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L317: + L327: x1 = XEXP (x0, 1); - if (general_operand (x1, QImode)) + switch (GET_MODE (x1)) + { + case QImode: + if (nonimmediate_operand (x1, QImode)) + { + ro[1] = x1; + if (!TARGET_MOVE) + return 59; + } + L330: + if (register_operand (x1, QImode)) + { + ro[1] = x1; + if (TARGET_MOVE) + return 60; + } + } + if (immediate_operand (x1, QImode)) { ro[1] = x1; - return 53; + return 58; } x1 = XEXP (x0, 0); - goto L319; + goto L332; - L607: + L719: x1 = XEXP (x0, 1); switch (GET_MODE (x1)) { @@ -2251,536 +2419,560 @@ recog_4 (x0, insn, pnum_clobbers) switch (GET_CODE (x1)) { case PLUS: - goto L608; + goto L720; case MINUS: - goto L631; + goto L751; case DIV: - goto L688; + goto L854; case UDIV: - goto L693; + goto L859; case AND: - goto L752; + goto L918; case IOR: - goto L767; + goto L933; case XOR: - goto L782; + goto L948; case NEG: - goto L799; + goto L965; case NOT: - goto L908; + goto L1074; case ASHIFT: - goto L935; + goto L1101; case ASHIFTRT: - goto L963; + goto L1129; case LSHIFTRT: - goto L991; + goto L1157; case ROTATE: - goto L1006; + goto L1172; case ROTATERT: - goto L1021; + goto L1187; } } if (general_operand (x1, QImode)) { ro[1] = x1; - return 54; - } + if ((!TARGET_MOVE || GET_CODE (operands[0]) != MEM) || (GET_CODE (operands[1]) != MEM)) + return 62; + } x1 = XEXP (x0, 0); - goto L1062; + goto L1228; - L608: + L720: x2 = XEXP (x1, 0); if (general_operand (x2, QImode)) { ro[1] = x2; - goto L609; + goto L721; } x1 = XEXP (x0, 0); - goto L1062; + goto L1228; - L609: + L721: x2 = XEXP (x1, 1); if (general_operand (x2, QImode)) { ro[2] = x2; - return 111; + return 130; } x1 = XEXP (x0, 0); - goto L1062; + goto L1228; - L631: + L751: x2 = XEXP (x1, 0); if (general_operand (x2, QImode)) { ro[1] = x2; - goto L632; + goto L752; } x1 = XEXP (x0, 0); - goto L1062; + goto L1228; - L632: + L752: x2 = XEXP (x1, 1); if (general_operand (x2, QImode)) { ro[2] = x2; - return 119; + return 138; } x1 = XEXP (x0, 0); - goto L1062; + goto L1228; - L688: + L854: x2 = XEXP (x1, 0); if (general_operand (x2, HImode)) { ro[1] = x2; - goto L689; + goto L855; } x1 = XEXP (x0, 0); - goto L1062; + goto L1228; - L689: + L855: x2 = XEXP (x1, 1); if (general_operand (x2, QImode)) { ro[2] = x2; - return 134; + return 155; } x1 = XEXP (x0, 0); - goto L1062; + goto L1228; - L693: + L859: x2 = XEXP (x1, 0); if (general_operand (x2, HImode)) { ro[1] = x2; - goto L694; + goto L860; } x1 = XEXP (x0, 0); - goto L1062; + goto L1228; - L694: + L860: x2 = XEXP (x1, 1); if (general_operand (x2, QImode)) { ro[2] = x2; - return 135; + return 156; } x1 = XEXP (x0, 0); - goto L1062; + goto L1228; - L752: + L918: x2 = XEXP (x1, 0); if (general_operand (x2, QImode)) { ro[1] = x2; - goto L753; + goto L919; } x1 = XEXP (x0, 0); - goto L1062; + goto L1228; - L753: + L919: x2 = XEXP (x1, 1); if (general_operand (x2, QImode)) { ro[2] = x2; - return 145; + return 166; } x1 = XEXP (x0, 0); - goto L1062; + goto L1228; - L767: + L933: x2 = XEXP (x1, 0); if (general_operand (x2, QImode)) { ro[1] = x2; - goto L768; + goto L934; } x1 = XEXP (x0, 0); - goto L1062; + goto L1228; - L768: + L934: x2 = XEXP (x1, 1); if (general_operand (x2, QImode)) { ro[2] = x2; - return 148; + return 169; } x1 = XEXP (x0, 0); - goto L1062; + goto L1228; - L782: + L948: x2 = XEXP (x1, 0); if (general_operand (x2, QImode)) { ro[1] = x2; - goto L783; + goto L949; } x1 = XEXP (x0, 0); - goto L1062; + goto L1228; - L783: + L949: x2 = XEXP (x1, 1); if (general_operand (x2, QImode)) { ro[2] = x2; - return 151; + return 172; } x1 = XEXP (x0, 0); - goto L1062; + goto L1228; - L799: + L965: x2 = XEXP (x1, 0); if (general_operand (x2, QImode)) { ro[1] = x2; - return 155; + return 176; } x1 = XEXP (x0, 0); - goto L1062; + goto L1228; - L908: + L1074: x2 = XEXP (x1, 0); if (general_operand (x2, QImode)) { ro[1] = x2; - return 180; + return 201; } x1 = XEXP (x0, 0); - goto L1062; + goto L1228; - L935: + L1101: x2 = XEXP (x1, 0); if (general_operand (x2, QImode)) { ro[1] = x2; - goto L936; + goto L1102; } x1 = XEXP (x0, 0); - goto L1062; + goto L1228; - L936: + L1102: x2 = XEXP (x1, 1); if (nonmemory_operand (x2, QImode)) { ro[2] = x2; - return 186; + return 207; } x1 = XEXP (x0, 0); - goto L1062; + goto L1228; - L963: + L1129: x2 = XEXP (x1, 0); if (general_operand (x2, QImode)) { ro[1] = x2; - goto L964; + goto L1130; } x1 = XEXP (x0, 0); - goto L1062; + goto L1228; - L964: + L1130: x2 = XEXP (x1, 1); if (nonmemory_operand (x2, QImode)) { ro[2] = x2; - return 192; + return 213; } x1 = XEXP (x0, 0); - goto L1062; + goto L1228; - L991: + L1157: x2 = XEXP (x1, 0); if (general_operand (x2, QImode)) { ro[1] = x2; - goto L992; + goto L1158; } x1 = XEXP (x0, 0); - goto L1062; + goto L1228; - L992: + L1158: x2 = XEXP (x1, 1); if (nonmemory_operand (x2, QImode)) { ro[2] = x2; - return 198; + return 219; } x1 = XEXP (x0, 0); - goto L1062; + goto L1228; - L1006: + L1172: x2 = XEXP (x1, 0); if (general_operand (x2, QImode)) { ro[1] = x2; - goto L1007; + goto L1173; } x1 = XEXP (x0, 0); - goto L1062; + goto L1228; - L1007: + L1173: x2 = XEXP (x1, 1); if (nonmemory_operand (x2, QImode)) { ro[2] = x2; - return 201; + return 222; } x1 = XEXP (x0, 0); - goto L1062; + goto L1228; - L1021: + L1187: x2 = XEXP (x1, 0); if (general_operand (x2, QImode)) { ro[1] = x2; - goto L1022; + goto L1188; } x1 = XEXP (x0, 0); - goto L1062; + goto L1228; - L1022: + L1188: x2 = XEXP (x1, 1); if (nonmemory_operand (x2, QImode)) { ro[2] = x2; - return 204; + return 225; } x1 = XEXP (x0, 0); - goto L1062; + goto L1228; - L1063: + L1229: x1 = XEXP (x0, 1); if (GET_MODE (x1) != QImode) { x1 = XEXP (x0, 0); - goto L1380; + goto L1546; } switch (GET_CODE (x1)) { case EQ: - goto L1064; + goto L1230; case NE: - goto L1069; + goto L1235; case GT: - goto L1074; + goto L1240; case GTU: - goto L1079; + goto L1245; case LT: - goto L1084; + goto L1250; case LTU: - goto L1089; + goto L1255; case GE: - goto L1094; + goto L1260; case GEU: - goto L1099; + goto L1265; case LE: - goto L1104; + goto L1270; case LEU: - goto L1109; + goto L1275; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1064: + L1230: x2 = XEXP (x1, 0); if (GET_CODE (x2) == CC0 && 1) - goto L1065; + goto L1231; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1065: + L1231: x2 = XEXP (x1, 1); if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1) - return 212; + return 233; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1069: + L1235: x2 = XEXP (x1, 0); if (GET_CODE (x2) == CC0 && 1) - goto L1070; + goto L1236; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1070: + L1236: x2 = XEXP (x1, 1); if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1) - return 214; + return 235; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1074: + L1240: x2 = XEXP (x1, 0); if (GET_CODE (x2) == CC0 && 1) - goto L1075; + goto L1241; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1075: + L1241: x2 = XEXP (x1, 1); if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1) - return 216; + return 237; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1079: + L1245: x2 = XEXP (x1, 0); if (GET_CODE (x2) == CC0 && 1) - goto L1080; + goto L1246; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1080: + L1246: x2 = XEXP (x1, 1); if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1) - return 218; + return 239; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1084: + L1250: x2 = XEXP (x1, 0); if (GET_CODE (x2) == CC0 && 1) - goto L1085; + goto L1251; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1085: + L1251: x2 = XEXP (x1, 1); if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1) - return 220; + return 241; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1089: + L1255: x2 = XEXP (x1, 0); if (GET_CODE (x2) == CC0 && 1) - goto L1090; + goto L1256; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1090: + L1256: x2 = XEXP (x1, 1); if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1) - return 222; + return 243; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1094: + L1260: x2 = XEXP (x1, 0); if (GET_CODE (x2) == CC0 && 1) - goto L1095; + goto L1261; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1095: + L1261: x2 = XEXP (x1, 1); if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1) - return 224; + return 245; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1099: + L1265: x2 = XEXP (x1, 0); if (GET_CODE (x2) == CC0 && 1) - goto L1100; + goto L1266; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1100: + L1266: x2 = XEXP (x1, 1); if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1) - return 226; + return 247; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1104: + L1270: x2 = XEXP (x1, 0); if (GET_CODE (x2) == CC0 && 1) - goto L1105; + goto L1271; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1105: + L1271: x2 = XEXP (x1, 1); if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1) - return 228; + return 249; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1109: + L1275: x2 = XEXP (x1, 0); if (GET_CODE (x2) == CC0 && 1) - goto L1110; + goto L1276; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1110: + L1276: x2 = XEXP (x1, 1); if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1) - return 230; + return 251; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L327: + L340: x1 = XEXP (x0, 1); if (general_operand (x1, SFmode)) + goto L350; + x1 = XEXP (x0, 0); + goto L359; + + L350: + ro[1] = x1; + if (!TARGET_MOVE) + return 66; + L351: + if (pnum_clobbers != 0 && 1) { ro[1] = x1; - return 56; + *pnum_clobbers = 1; + return 67; } x1 = XEXP (x0, 0); - goto L329; + goto L359; - L416: + L360: + x1 = XEXP (x0, 1); + if (pnum_clobbers != 0 && memory_operand (x1, SFmode)) + { + ro[1] = x1; + *pnum_clobbers = 1; + return 68; + } + x1 = XEXP (x0, 0); + goto L362; + + L520: x1 = XEXP (x0, 1); if (GET_MODE (x1) == SFmode && GET_CODE (x1) == FLOAT_TRUNCATE && 1) - goto L417; + goto L521; if (general_operand (x1, SFmode)) { ro[1] = x1; - return 57; - } + if ((!TARGET_MOVE || GET_CODE (operands[0]) != MEM) || (GET_CODE (operands[1]) != MEM)) + return 69; + } x1 = XEXP (x0, 0); - goto L575; + goto L679; - L417: + L521: x2 = XEXP (x1, 0); if (register_operand (x2, XFmode)) { ro[1] = x2; if (TARGET_80387) - return 79; + return 98; } x1 = XEXP (x0, 0); - goto L575; + goto L679; - L576: + L680: x1 = XEXP (x0, 1); if (GET_MODE (x1) != SFmode) { x1 = XEXP (x0, 0); - goto L1380; + goto L1546; } switch (GET_CODE (x1)) { case FLOAT: - goto L577; + goto L681; case NEG: - goto L803; + goto L969; case ABS: - goto L825; + goto L991; case SQRT: - goto L847; + goto L1013; case UNSPEC: if (XINT (x1, 1) == 1 && XVECLEN (x1, 0) == 1 && 1) - goto L878; + goto L1044; if (XINT (x1, 1) == 2 && XVECLEN (x1, 0) == 1 && 1) - goto L891; + goto L1057; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L577: + L681: x2 = XEXP (x1, 0); switch (GET_MODE (x2)) { @@ -2789,7 +2981,7 @@ recog_4 (x0, insn, pnum_clobbers) { ro[1] = x2; if (TARGET_80387) - return 104; + return 123; } break; case SImode: @@ -2797,150 +2989,173 @@ recog_4 (x0, insn, pnum_clobbers) { ro[1] = x2; if (TARGET_80387) - return 107; + return 126; } } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L803: + L969: x2 = XEXP (x1, 0); if (general_operand (x2, SFmode)) { ro[1] = x2; if (TARGET_80387) - return 156; + return 177; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L825: + L991: x2 = XEXP (x1, 0); if (general_operand (x2, SFmode)) { ro[1] = x2; if (TARGET_80387) - return 161; + return 182; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L847: + L1013: x2 = XEXP (x1, 0); if (general_operand (x2, SFmode)) { ro[1] = x2; if (! TARGET_NO_FANCY_MATH_387 && TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math) ) - return 166; + return 187; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L878: + L1044: x2 = XVECEXP (x1, 0, 0); if (register_operand (x2, SFmode)) { ro[1] = x2; if (! TARGET_NO_FANCY_MATH_387 && TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math) ) - return 173; + return 194; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L891: + L1057: x2 = XVECEXP (x1, 0, 0); if (register_operand (x2, SFmode)) { ro[1] = x2; if (! TARGET_NO_FANCY_MATH_387 && TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math) ) - return 176; + return 197; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L333: + L373: x1 = XEXP (x0, 1); if (general_operand (x1, DFmode)) + goto L385; + x1 = XEXP (x0, 0); + goto L396; + + L385: + ro[1] = x1; + if (!TARGET_MOVE) + return 72; + L386: + if (pnum_clobbers != 0 && 1) { ro[1] = x1; - return 58; + *pnum_clobbers = 2; + return 73; } x1 = XEXP (x0, 0); - goto L342; + goto L396; L397: x1 = XEXP (x0, 1); + if (pnum_clobbers != 0 && memory_operand (x1, DFmode)) + { + ro[1] = x1; + *pnum_clobbers = 2; + return 74; + } + x1 = XEXP (x0, 0); + goto L399; + + L501: + x1 = XEXP (x0, 1); switch (GET_MODE (x1)) { case DFmode: switch (GET_CODE (x1)) { case FLOAT_EXTEND: - goto L398; + goto L502; case FLOAT_TRUNCATE: - goto L421; + goto L525; } } if (general_operand (x1, DFmode)) { ro[1] = x1; - return 60; - } + if ((!TARGET_MOVE || GET_CODE (operands[0]) != MEM) || (GET_CODE (operands[1]) != MEM)) + return 75; + } x1 = XEXP (x0, 0); - goto L571; + goto L675; - L398: + L502: x2 = XEXP (x1, 0); if (general_operand (x2, SFmode)) { ro[1] = x2; if (TARGET_80387) - return 74; + return 93; } x1 = XEXP (x0, 0); - goto L571; + goto L675; - L421: + L525: x2 = XEXP (x1, 0); if (register_operand (x2, XFmode)) { ro[1] = x2; if (TARGET_80387) - return 80; + return 99; } x1 = XEXP (x0, 0); - goto L571; + goto L675; - L572: + L676: x1 = XEXP (x0, 1); if (GET_MODE (x1) != DFmode) { x1 = XEXP (x0, 0); - goto L1380; + goto L1546; } switch (GET_CODE (x1)) { case FLOAT: - goto L573; + goto L677; case NEG: - goto L811; + goto L977; case ABS: - goto L833; + goto L999; case SQRT: - goto L855; + goto L1021; case UNSPEC: if (XINT (x1, 1) == 1 && XVECLEN (x1, 0) == 1 && 1) - goto L882; + goto L1048; if (XINT (x1, 1) == 2 && XVECLEN (x1, 0) == 1 && 1) - goto L895; + goto L1061; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L573: + L677: x2 = XEXP (x1, 0); switch (GET_MODE (x2)) { @@ -2949,7 +3164,7 @@ recog_4 (x0, insn, pnum_clobbers) { ro[1] = x2; if (TARGET_80387) - return 103; + return 122; } break; case SImode: @@ -2957,320 +3172,344 @@ recog_4 (x0, insn, pnum_clobbers) { ro[1] = x2; if (TARGET_80387) - return 105; + return 124; } } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L811: + L977: x2 = XEXP (x1, 0); if (GET_MODE (x2) == DFmode && GET_CODE (x2) == FLOAT_EXTEND && 1) - goto L812; + goto L978; if (general_operand (x2, DFmode)) { ro[1] = x2; if (TARGET_80387) - return 157; + return 178; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L812: + L978: x3 = XEXP (x2, 0); if (general_operand (x3, SFmode)) { ro[1] = x3; if (TARGET_80387) - return 158; + return 179; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L833: + L999: x2 = XEXP (x1, 0); if (GET_MODE (x2) == DFmode && GET_CODE (x2) == FLOAT_EXTEND && 1) - goto L834; + goto L1000; if (general_operand (x2, DFmode)) { ro[1] = x2; if (TARGET_80387) - return 162; + return 183; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L834: + L1000: x3 = XEXP (x2, 0); if (general_operand (x3, SFmode)) { ro[1] = x3; if (TARGET_80387) - return 163; + return 184; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L855: + L1021: x2 = XEXP (x1, 0); if (GET_MODE (x2) == DFmode && GET_CODE (x2) == FLOAT_EXTEND && 1) - goto L856; + goto L1022; if (general_operand (x2, DFmode)) { ro[1] = x2; if (! TARGET_NO_FANCY_MATH_387 && TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math) ) - return 167; + return 188; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L856: + L1022: x3 = XEXP (x2, 0); if (general_operand (x3, SFmode)) { ro[1] = x3; if (! TARGET_NO_FANCY_MATH_387 && TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math) ) - return 168; + return 189; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L882: + L1048: x2 = XVECEXP (x1, 0, 0); if (GET_MODE (x2) != DFmode) { x1 = XEXP (x0, 0); - goto L1380; + goto L1546; } if (GET_CODE (x2) == FLOAT_EXTEND && 1) - goto L883; + goto L1049; if (register_operand (x2, DFmode)) { ro[1] = x2; if (! TARGET_NO_FANCY_MATH_387 && TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math) ) - return 172; + return 193; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L883: + L1049: x3 = XEXP (x2, 0); if (register_operand (x3, SFmode)) { ro[1] = x3; if (! TARGET_NO_FANCY_MATH_387 && TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math) ) - return 174; + return 195; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L895: + L1061: x2 = XVECEXP (x1, 0, 0); if (GET_MODE (x2) != DFmode) { x1 = XEXP (x0, 0); - goto L1380; + goto L1546; } if (GET_CODE (x2) == FLOAT_EXTEND && 1) - goto L896; + goto L1062; if (register_operand (x2, DFmode)) { ro[1] = x2; if (! TARGET_NO_FANCY_MATH_387 && TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math) ) - return 175; + return 196; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L896: + L1062: x3 = XEXP (x2, 0); if (register_operand (x3, SFmode)) { ro[1] = x3; if (! TARGET_NO_FANCY_MATH_387 && TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math) ) - return 177; + return 198; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L346: + L410: x1 = XEXP (x0, 1); if (general_operand (x1, XFmode)) + goto L422; + x1 = XEXP (x0, 0); + goto L433; + + L422: + ro[1] = x1; + if (!TARGET_MOVE) + return 78; + L423: + if (pnum_clobbers != 0 && 1) { ro[1] = x1; - return 61; + *pnum_clobbers = 2; + return 79; } x1 = XEXP (x0, 0); - goto L355; + goto L433; - L401: + L434: + x1 = XEXP (x0, 1); + if (pnum_clobbers != 0 && memory_operand (x1, XFmode)) + { + ro[1] = x1; + *pnum_clobbers = 2; + return 80; + } + x1 = XEXP (x0, 0); + goto L436; + + L505: x1 = XEXP (x0, 1); if (GET_MODE (x1) == XFmode && GET_CODE (x1) == FLOAT_EXTEND && 1) - goto L402; + goto L506; if (general_operand (x1, XFmode)) { ro[1] = x1; - return 63; - } + if ((!TARGET_MOVE || GET_CODE (operands[0]) != MEM) || (GET_CODE (operands[1]) != MEM)) + return 81; + } x1 = XEXP (x0, 0); - goto L567; + goto L671; - L402: + L506: x2 = XEXP (x1, 0); if (general_operand (x2, DFmode)) { ro[1] = x2; if (TARGET_80387) - return 75; + return 94; } - L406: + L510: if (general_operand (x2, SFmode)) { ro[1] = x2; if (TARGET_80387) - return 76; + return 95; } x1 = XEXP (x0, 0); - goto L567; + goto L671; - L568: + L672: x1 = XEXP (x0, 1); if (GET_MODE (x1) != XFmode) { x1 = XEXP (x0, 0); - goto L1380; + goto L1546; } switch (GET_CODE (x1)) { case FLOAT: - goto L569; + goto L673; case NEG: - goto L820; + goto L986; case ABS: - goto L842; + goto L1008; case SQRT: - goto L864; + goto L1030; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L569: + L673: x2 = XEXP (x1, 0); if (general_operand (x2, DImode)) { ro[1] = x2; if (TARGET_80387) - return 102; + return 121; } - L585: + L689: if (general_operand (x2, SImode)) { ro[1] = x2; if (TARGET_80387) - return 106; + return 125; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L820: + L986: x2 = XEXP (x1, 0); if (GET_MODE (x2) == XFmode && GET_CODE (x2) == FLOAT_EXTEND && 1) - goto L821; + goto L987; if (general_operand (x2, XFmode)) { ro[1] = x2; if (TARGET_80387) - return 159; + return 180; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L821: + L987: x3 = XEXP (x2, 0); if (general_operand (x3, DFmode)) { ro[1] = x3; if (TARGET_80387) - return 160; + return 181; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L842: + L1008: x2 = XEXP (x1, 0); if (GET_MODE (x2) == XFmode && GET_CODE (x2) == FLOAT_EXTEND && 1) - goto L843; + goto L1009; if (general_operand (x2, XFmode)) { ro[1] = x2; if (TARGET_80387) - return 164; + return 185; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L843: + L1009: x3 = XEXP (x2, 0); if (general_operand (x3, DFmode)) { ro[1] = x3; if (TARGET_80387) - return 165; + return 186; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L864: + L1030: x2 = XEXP (x1, 0); if (GET_MODE (x2) == XFmode && GET_CODE (x2) == FLOAT_EXTEND && 1) - goto L865; + goto L1031; if (general_operand (x2, XFmode)) { ro[1] = x2; if (! TARGET_NO_FANCY_MATH_387 && TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math) ) - return 169; + return 190; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L865: + L1031: x3 = XEXP (x2, 0); if (general_operand (x3, DFmode)) { ro[1] = x3; if (! TARGET_NO_FANCY_MATH_387 && TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math) ) - return 170; + return 191; } - L870: + L1036: if (general_operand (x3, SFmode)) { ro[1] = x3; if (! TARGET_NO_FANCY_MATH_387 && TARGET_80387 && (TARGET_IEEE_FP || flag_fast_math) ) - return 171; + return 192; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L359: + L455: x1 = XEXP (x0, 1); - if (general_operand (x1, DImode)) + if (pnum_clobbers != 0 && general_operand (x1, DImode)) { ro[1] = x1; - return 64; + *pnum_clobbers = 2; + return 83; } x1 = XEXP (x0, 0); - goto L361; + goto L465; - L592: + L704: x1 = XEXP (x0, 1); switch (GET_MODE (x1)) { @@ -3278,253 +3517,258 @@ recog_4 (x0, insn, pnum_clobbers) switch (GET_CODE (x1)) { case PLUS: - goto L593; + goto L705; case MINUS: - goto L616; + goto L736; case NEG: - goto L787; + goto L953; } } - if (general_operand (x1, DImode)) + if (pnum_clobbers != 0 && general_operand (x1, DImode)) { ro[1] = x1; - return 65; + *pnum_clobbers = 2; + return 84; } x1 = XEXP (x0, 0); - goto L376; + goto L480; - L593: + L705: x2 = XEXP (x1, 0); if (general_operand (x2, DImode)) { ro[1] = x2; - goto L594; + goto L706; } x1 = XEXP (x0, 0); - goto L376; + goto L480; - L594: + L706: x2 = XEXP (x1, 1); - if (general_operand (x2, DImode)) + if (pnum_clobbers != 0 && general_operand (x2, DImode)) { ro[2] = x2; - return 108; + *pnum_clobbers = 1; + return 127; } x1 = XEXP (x0, 0); - goto L376; + goto L480; - L616: + L736: x2 = XEXP (x1, 0); if (general_operand (x2, DImode)) { ro[1] = x2; - goto L617; + goto L737; } x1 = XEXP (x0, 0); - goto L376; + goto L480; - L617: + L737: x2 = XEXP (x1, 1); - if (general_operand (x2, DImode)) + if (pnum_clobbers != 0 && general_operand (x2, DImode)) { ro[2] = x2; - return 116; + *pnum_clobbers = 1; + return 135; } x1 = XEXP (x0, 0); - goto L376; + goto L480; - L787: + L953: x2 = XEXP (x1, 0); if (general_operand (x2, DImode)) { ro[1] = x2; - return 152; + return 173; } x1 = XEXP (x0, 0); - goto L376; + goto L480; - L377: + L481: x1 = XEXP (x0, 1); if (GET_MODE (x1) != DImode) { x1 = XEXP (x0, 0); - goto L1380; + goto L1546; } switch (GET_CODE (x1)) { case ZERO_EXTEND: - goto L378; + goto L482; case SIGN_EXTEND: - goto L382; + goto L486; case MULT: - goto L674; + goto L794; case ASHIFT: - goto L912; + goto L1078; case ASHIFTRT: - goto L940; + goto L1106; case LSHIFTRT: - goto L968; + goto L1134; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L378: + L482: x2 = XEXP (x1, 0); if (register_operand (x2, SImode)) { ro[1] = x2; - return 69; + return 88; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L382: + L486: x2 = XEXP (x1, 0); if (register_operand (x2, SImode)) { ro[1] = x2; - return 70; + return 89; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L674: + L794: x2 = XEXP (x1, 0); if (GET_MODE (x2) != DImode) { x1 = XEXP (x0, 0); - goto L1380; + goto L1546; } switch (GET_CODE (x2)) { case ZERO_EXTEND: - goto L675; + goto L795; case SIGN_EXTEND: - goto L682; + goto L802; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L675: + L795: x3 = XEXP (x2, 0); if (register_operand (x3, SImode)) { ro[1] = x3; - goto L676; + goto L796; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L676: + L796: x2 = XEXP (x1, 1); if (GET_MODE (x2) == DImode && GET_CODE (x2) == ZERO_EXTEND && 1) - goto L677; + goto L797; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L677: + L797: x3 = XEXP (x2, 0); if (nonimmediate_operand (x3, SImode)) { ro[2] = x3; - return 129; - } + if (TARGET_WIDE_MULTIPLY) + return 148; + } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L682: + L802: x3 = XEXP (x2, 0); if (register_operand (x3, SImode)) { ro[1] = x3; - goto L683; + goto L803; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L683: + L803: x2 = XEXP (x1, 1); if (GET_MODE (x2) == DImode && GET_CODE (x2) == SIGN_EXTEND && 1) - goto L684; + goto L804; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L684: + L804: x3 = XEXP (x2, 0); if (nonimmediate_operand (x3, SImode)) { ro[2] = x3; - return 130; - } + if (TARGET_WIDE_MULTIPLY) + return 149; + } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L912: + L1078: x2 = XEXP (x1, 0); if (register_operand (x2, DImode)) { ro[1] = x2; - goto L913; + goto L1079; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L913: + L1079: x2 = XEXP (x1, 1); if (GET_CODE (x2) == CONST_INT && 1) { ro[2] = x2; - return 182; + return 203; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L940: + L1106: x2 = XEXP (x1, 0); if (register_operand (x2, DImode)) { ro[1] = x2; - goto L941; + goto L1107; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L941: + L1107: x2 = XEXP (x1, 1); if (GET_CODE (x2) == CONST_INT && 1) { ro[2] = x2; - return 188; + return 209; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L968: + L1134: x2 = XEXP (x1, 0); if (register_operand (x2, DImode)) { ro[1] = x2; - goto L969; + goto L1135; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L969: + L1135: x2 = XEXP (x1, 1); if (GET_CODE (x2) == CONST_INT && 1) { ro[2] = x2; - return 194; + return 215; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; L2: tem = recog_2 (x0, insn, pnum_clobbers); if (tem >= 0) return tem; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L313: + L320: x2 = XEXP (x1, 0); switch (GET_MODE (x2)) { @@ -3532,248 +3776,250 @@ recog_4 (x0, insn, pnum_clobbers) if (general_operand (x2, HImode)) { ro[0] = x2; - goto L314; + goto L321; } break; case QImode: if (general_operand (x2, QImode)) { ro[0] = x2; - goto L324; + goto L337; } } - goto L1380; + goto L1546; - L314: + L321: x1 = XEXP (x0, 1); if (general_operand (x1, HImode)) { ro[1] = x1; - return 52; - } + if ((!TARGET_MOVE || GET_CODE (operands[0]) != MEM) || (GET_CODE (operands[1]) != MEM)) + return 57; + } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L324: + L337: x1 = XEXP (x0, 1); if (general_operand (x1, QImode)) { ro[1] = x1; - return 55; - } + if ((!TARGET_MOVE || GET_CODE (operands[0]) != MEM) || (GET_CODE (operands[1]) != MEM)) + return 64; + } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1314: + L1480: x1 = XEXP (x0, 1); switch (GET_CODE (x1)) { case MINUS: if (GET_MODE (x1) == SImode && 1) - goto L1315; + goto L1481; break; case IF_THEN_ELSE: - goto L1114; + goto L1280; case LABEL_REF: - goto L1294; + goto L1460; } - L1297: + L1463: if (general_operand (x1, SImode)) { ro[0] = x1; - return 262; + return 283; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1315: + L1481: x2 = XEXP (x1, 0); if (GET_MODE (x2) == SImode && GET_CODE (x2) == REG && XINT (x2, 0) == 3 && 1) - goto L1316; + goto L1482; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1316: + L1482: x2 = XEXP (x1, 1); if (GET_MODE (x2) == SImode && GET_CODE (x2) == MEM && 1) - goto L1317; + goto L1483; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1317: + L1483: x3 = XEXP (x2, 0); if (GET_MODE (x3) == SImode && GET_CODE (x3) == PLUS && 1) - goto L1318; + goto L1484; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1318: + L1484: x4 = XEXP (x3, 0); if (GET_MODE (x4) == SImode && GET_CODE (x4) == MULT && 1) - goto L1319; + goto L1485; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1319: + L1485: x5 = XEXP (x4, 0); if (register_operand (x5, SImode)) { ro[0] = x5; - goto L1320; + goto L1486; } x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1320: + L1486: x5 = XEXP (x4, 1); if (GET_CODE (x5) == CONST_INT && XWINT (x5, 0) == 4 && 1) - goto L1321; + goto L1487; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1321: + L1487: x4 = XEXP (x3, 1); if (GET_CODE (x4) == LABEL_REF && 1) - goto L1322; + goto L1488; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1322: + L1488: x5 = XEXP (x4, 0); if (pnum_clobbers != 0 && 1) { ro[1] = x5; *pnum_clobbers = 1; - return 264; + return 285; } x1 = XEXP (x0, 0); - goto L1380; - L1114: + goto L1546; + L1280: tem = recog_3 (x0, insn, pnum_clobbers); if (tem >= 0) return tem; x1 = XEXP (x0, 0); - goto L1380; + goto L1546; - L1294: + L1460: x2 = XEXP (x1, 0); ro[0] = x2; - return 261; + return 282; - L1381: + L1547: x1 = XEXP (x0, 1); if (GET_CODE (x1) == CALL && 1) - goto L1382; + goto L1548; x1 = XEXP (x0, 0); - goto L1460; + goto L1613; - L1382: + L1548: x2 = XEXP (x1, 0); if (call_insn_operand (x2, QImode)) { ro[1] = x2; - goto L1383; + goto L1549; } - L1387: + L1553: if (GET_MODE (x2) == QImode && GET_CODE (x2) == MEM && 1) - goto L1388; + goto L1554; x1 = XEXP (x0, 0); - goto L1460; + goto L1613; - L1383: + L1549: x2 = XEXP (x1, 1); if (general_operand (x2, SImode)) { ro[2] = x2; - return 276; + return 297; } x2 = XEXP (x1, 0); - goto L1387; + goto L1553; - L1388: + L1554: x3 = XEXP (x2, 0); if (symbolic_operand (x3, SImode)) { ro[1] = x3; - goto L1389; + goto L1555; } x1 = XEXP (x0, 0); - goto L1460; + goto L1613; - L1389: + L1555: x2 = XEXP (x1, 1); if (general_operand (x2, SImode)) { ro[2] = x2; if (!HALF_PIC_P ()) - return 277; + return 298; } x1 = XEXP (x0, 0); - goto L1460; + goto L1613; - L1461: + L1614: x1 = XEXP (x0, 1); if (GET_MODE (x1) == SImode && GET_CODE (x1) == PLUS && 1) - goto L1462; + goto L1615; goto ret0; - L1462: + L1615: x2 = XEXP (x1, 0); if (GET_MODE (x2) == SImode && GET_CODE (x2) == FFS && 1) - goto L1463; + goto L1616; goto ret0; - L1463: + L1616: x3 = XEXP (x2, 0); if (general_operand (x3, SImode)) { ro[1] = x3; - goto L1464; + goto L1617; } goto ret0; - L1464: + L1617: x2 = XEXP (x1, 1); if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == -1 && 1) - return 291; + return 309; goto ret0; - L1467: + L1620: x1 = XEXP (x0, 1); if (GET_MODE (x1) == HImode && GET_CODE (x1) == PLUS && 1) - goto L1468; + goto L1621; goto ret0; - L1468: + L1621: x2 = XEXP (x1, 0); if (GET_MODE (x2) == HImode && GET_CODE (x2) == FFS && 1) - goto L1469; + goto L1622; goto ret0; - L1469: + L1622: x3 = XEXP (x2, 0); if (general_operand (x3, SImode)) { ro[1] = x3; - goto L1470; + goto L1623; } goto ret0; - L1470: + L1623: x2 = XEXP (x1, 1); if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == -1 && 1) - return 293; + return 311; goto ret0; - L1473: + L1626: x1 = XEXP (x0, 1); if (binary_387_op (x1, DFmode)) { ro[3] = x1; - goto L1479; + goto L1632; } goto ret0; - L1479: + L1632: x2 = XEXP (x1, 0); switch (GET_MODE (x2)) { @@ -3781,119 +4027,119 @@ recog_4 (x0, insn, pnum_clobbers) switch (GET_CODE (x2)) { case FLOAT: - goto L1480; + goto L1633; case FLOAT_EXTEND: - goto L1515; + goto L1668; case SUBREG: case REG: case MEM: if (nonimmediate_operand (x2, DFmode)) { ro[1] = x2; - goto L1475; + goto L1628; } } } - L1520: + L1673: if (general_operand (x2, DFmode)) { ro[1] = x2; - goto L1521; + goto L1674; } goto ret0; - L1480: + L1633: x3 = XEXP (x2, 0); if (general_operand (x3, SImode)) { ro[1] = x3; - goto L1481; + goto L1634; } goto ret0; - L1481: + L1634: x2 = XEXP (x1, 1); if (general_operand (x2, DFmode)) { ro[2] = x2; if (TARGET_80387) - return 295; + return 313; } goto ret0; - L1515: + L1668: x3 = XEXP (x2, 0); if (general_operand (x3, SFmode)) { ro[1] = x3; - goto L1516; + goto L1669; } goto ret0; - L1516: + L1669: x2 = XEXP (x1, 1); if (general_operand (x2, DFmode)) { ro[2] = x2; if (TARGET_80387) - return 301; + return 319; } goto ret0; - L1475: + L1628: x2 = XEXP (x1, 1); if (nonimmediate_operand (x2, DFmode)) { ro[2] = x2; if (TARGET_80387) - return 294; + return 312; } x2 = XEXP (x1, 0); - goto L1520; + goto L1673; - L1521: + L1674: x2 = XEXP (x1, 1); if (GET_MODE (x2) != DFmode) goto ret0; switch (GET_CODE (x2)) { case FLOAT: - goto L1522; + goto L1675; case FLOAT_EXTEND: - goto L1528; + goto L1681; } goto ret0; - L1522: + L1675: x3 = XEXP (x2, 0); if (general_operand (x3, SImode)) { ro[2] = x3; if (TARGET_80387) - return 302; + return 320; } goto ret0; - L1528: + L1681: x3 = XEXP (x2, 0); if (general_operand (x3, SFmode)) { ro[2] = x3; if (TARGET_80387) - return 303; + return 321; } goto ret0; - L1484: + L1637: x1 = XEXP (x0, 1); if (binary_387_op (x1, XFmode)) { ro[3] = x1; - goto L1490; + goto L1643; } goto ret0; - L1490: + L1643: x2 = XEXP (x1, 0); switch (GET_MODE (x2)) { @@ -3901,182 +4147,182 @@ recog_4 (x0, insn, pnum_clobbers) switch (GET_CODE (x2)) { case FLOAT: - goto L1491; + goto L1644; case FLOAT_EXTEND: - goto L1497; + goto L1650; case SUBREG: case REG: case MEM: if (nonimmediate_operand (x2, XFmode)) { ro[1] = x2; - goto L1486; + goto L1639; } } } - L1502: + L1655: if (general_operand (x2, XFmode)) { ro[1] = x2; - goto L1503; + goto L1656; } goto ret0; - L1491: + L1644: x3 = XEXP (x2, 0); if (general_operand (x3, SImode)) { ro[1] = x3; - goto L1492; + goto L1645; } goto ret0; - L1492: + L1645: x2 = XEXP (x1, 1); if (general_operand (x2, XFmode)) { ro[2] = x2; if (TARGET_80387) - return 297; + return 315; } goto ret0; - L1497: + L1650: x3 = XEXP (x2, 0); if (general_operand (x3, SFmode)) { ro[1] = x3; - goto L1498; + goto L1651; } goto ret0; - L1498: + L1651: x2 = XEXP (x1, 1); if (general_operand (x2, XFmode)) { ro[2] = x2; if (TARGET_80387) - return 298; + return 316; } goto ret0; - L1486: + L1639: x2 = XEXP (x1, 1); if (nonimmediate_operand (x2, XFmode)) { ro[2] = x2; if (TARGET_80387) - return 296; + return 314; } x2 = XEXP (x1, 0); - goto L1502; + goto L1655; - L1503: + L1656: x2 = XEXP (x1, 1); if (GET_MODE (x2) != XFmode) goto ret0; switch (GET_CODE (x2)) { case FLOAT: - goto L1504; + goto L1657; case FLOAT_EXTEND: - goto L1510; + goto L1663; } goto ret0; - L1504: + L1657: x3 = XEXP (x2, 0); if (general_operand (x3, SImode)) { ro[2] = x3; if (TARGET_80387) - return 299; + return 317; } goto ret0; - L1510: + L1663: x3 = XEXP (x2, 0); if (general_operand (x3, SFmode)) { ro[2] = x3; if (TARGET_80387) - return 300; + return 318; } goto ret0; - L1531: + L1684: x1 = XEXP (x0, 1); if (binary_387_op (x1, SFmode)) { ro[3] = x1; - goto L1537; + goto L1690; } goto ret0; - L1537: + L1690: x2 = XEXP (x1, 0); switch (GET_MODE (x2)) { case SFmode: if (GET_CODE (x2) == FLOAT && 1) - goto L1538; + goto L1691; if (nonimmediate_operand (x2, SFmode)) { ro[1] = x2; - goto L1533; + goto L1686; } } - L1543: + L1696: if (general_operand (x2, SFmode)) { ro[1] = x2; - goto L1544; + goto L1697; } goto ret0; - L1538: + L1691: x3 = XEXP (x2, 0); if (general_operand (x3, SImode)) { ro[1] = x3; - goto L1539; + goto L1692; } goto ret0; - L1539: + L1692: x2 = XEXP (x1, 1); if (general_operand (x2, SFmode)) { ro[2] = x2; if (TARGET_80387) - return 305; + return 323; } goto ret0; - L1533: + L1686: x2 = XEXP (x1, 1); if (nonimmediate_operand (x2, SFmode)) { ro[2] = x2; if (TARGET_80387) - return 304; + return 322; } x2 = XEXP (x1, 0); - goto L1543; + goto L1696; - L1544: + L1697: x2 = XEXP (x1, 1); if (GET_MODE (x2) == SFmode && GET_CODE (x2) == FLOAT && 1) - goto L1545; + goto L1698; goto ret0; - L1545: + L1698: x3 = XEXP (x2, 0); if (general_operand (x3, SImode)) { ro[2] = x3; if (TARGET_80387) - return 306; + return 324; } goto ret0; ret0: return -1; @@ -4587,46 +4833,70 @@ recog_6 (x0, insn, pnum_clobbers) x2 = XEXP (x1, 0); switch (GET_MODE (x2)) { + case SFmode: + if (GET_CODE (x2) == MEM && push_operand (x2, SFmode)) + { + ro[0] = x2; + goto L344; + } + L354: + if (memory_operand (x2, SFmode)) + { + ro[0] = x2; + goto L355; + } + L366: + if (register_operand (x2, SFmode)) + { + ro[0] = x2; + goto L367; + } + L513: + if (nonimmediate_operand (x2, SFmode)) + { + ro[0] = x2; + goto L514; + } + break; case DFmode: if (register_operand (x2, DFmode)) { ro[0] = x2; - goto L337; + goto L404; } break; case XFmode: if (register_operand (x2, XFmode)) { ro[0] = x2; - goto L350; + goto L441; } break; - case SFmode: - if (nonimmediate_operand (x2, SFmode)) + case DImode: + if (general_operand (x2, DImode)) { ro[0] = x2; - goto L410; + goto L697; + } + L1082: + if (register_operand (x2, DImode)) + { + ro[0] = x2; + goto L1083; } break; case SImode: if (register_operand (x2, SImode)) { ro[0] = x2; - goto L698; + goto L808; } break; case HImode: if (register_operand (x2, HImode)) { ro[0] = x2; - goto L709; - } - break; - case DImode: - if (register_operand (x2, DImode)) - { - ro[0] = x2; - goto L917; + goto L875; } } switch (GET_CODE (x2)) @@ -4634,536 +4904,864 @@ recog_6 (x0, insn, pnum_clobbers) case CC0: goto L12; case PC: - goto L1301; + goto L1467; } - L1358: + L1524: ro[0] = x2; - goto L1359; - L1548: + goto L1525; + L1701: if (register_operand (x2, SImode)) { ro[0] = x2; - goto L1549; + goto L1702; } goto ret0; - L337: + L344: x2 = XEXP (x1, 1); - if (register_operand (x2, DFmode)) + if (general_operand (x2, SFmode)) { ro[1] = x2; - goto L338; + goto L345; } x2 = XEXP (x1, 0); - goto L1358; + goto L354; - L338: + L345: x1 = XVECEXP (x0, 0, 1); - if (GET_CODE (x1) == SET && 1) - goto L339; + if (GET_CODE (x1) == CLOBBER && 1) + goto L346; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L354; - L339: + L346: x2 = XEXP (x1, 0); - if (rtx_equal_p (x2, ro[1]) && 1) - goto L340; + if (scratch_operand (x2, SImode)) + { + ro[2] = x2; + return 67; + } x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L354; - L340: + L355: x2 = XEXP (x1, 1); - if (rtx_equal_p (x2, ro[0]) && 1) - return 59; + if (memory_operand (x2, SFmode)) + { + ro[1] = x2; + goto L356; + } + x2 = XEXP (x1, 0); + goto L366; + + L356: + x1 = XVECEXP (x0, 0, 1); + if (GET_CODE (x1) == CLOBBER && 1) + goto L357; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L366; - L350: + L357: + x2 = XEXP (x1, 0); + if (scratch_operand (x2, SImode)) + { + ro[2] = x2; + return 68; + } + x1 = XVECEXP (x0, 0, 0); + x2 = XEXP (x1, 0); + goto L366; + + L367: x2 = XEXP (x1, 1); - if (register_operand (x2, XFmode)) + if (register_operand (x2, SFmode)) { ro[1] = x2; - goto L351; + goto L368; } x2 = XEXP (x1, 0); - goto L1358; + goto L513; - L351: + L368: x1 = XVECEXP (x0, 0, 1); if (GET_CODE (x1) == SET && 1) - goto L352; + goto L369; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L513; - L352: + L369: x2 = XEXP (x1, 0); if (rtx_equal_p (x2, ro[1]) && 1) - goto L353; + goto L370; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L513; - L353: + L370: x2 = XEXP (x1, 1); if (rtx_equal_p (x2, ro[0]) && 1) - return 62; + return 70; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L513; - L410: + L514: x2 = XEXP (x1, 1); if (GET_MODE (x2) == SFmode && GET_CODE (x2) == FLOAT_TRUNCATE && 1) - goto L411; + goto L515; x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L411: + L515: x3 = XEXP (x2, 0); if (register_operand (x3, DFmode)) { ro[1] = x3; - goto L412; + goto L516; } x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L412: + L516: x1 = XVECEXP (x0, 0, 1); if (GET_CODE (x1) == CLOBBER && 1) - goto L413; + goto L517; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L413: + L517: x2 = XEXP (x1, 0); if (memory_operand (x2, SFmode)) { ro[2] = x2; if (TARGET_80387) - return 78; + return 97; } x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L698: + L404: x2 = XEXP (x1, 1); - if (GET_MODE (x2) != SImode) + if (register_operand (x2, DFmode)) + { + ro[1] = x2; + goto L405; + } + x2 = XEXP (x1, 0); + goto L1524; + + L405: + x1 = XVECEXP (x0, 0, 1); + if (GET_CODE (x1) == SET && 1) + goto L406; + x1 = XVECEXP (x0, 0, 0); + x2 = XEXP (x1, 0); + goto L1524; + + L406: + x2 = XEXP (x1, 0); + if (rtx_equal_p (x2, ro[1]) && 1) + goto L407; + x1 = XVECEXP (x0, 0, 0); + x2 = XEXP (x1, 0); + goto L1524; + + L407: + x2 = XEXP (x1, 1); + if (rtx_equal_p (x2, ro[0]) && 1) + return 76; + x1 = XVECEXP (x0, 0, 0); + x2 = XEXP (x1, 0); + goto L1524; + + L441: + x2 = XEXP (x1, 1); + if (register_operand (x2, XFmode)) + { + ro[1] = x2; + goto L442; + } + x2 = XEXP (x1, 0); + goto L1524; + + L442: + x1 = XVECEXP (x0, 0, 1); + if (GET_CODE (x1) == SET && 1) + goto L443; + x1 = XVECEXP (x0, 0, 0); + x2 = XEXP (x1, 0); + goto L1524; + + L443: + x2 = XEXP (x1, 0); + if (rtx_equal_p (x2, ro[1]) && 1) + goto L444; + x1 = XVECEXP (x0, 0, 0); + x2 = XEXP (x1, 0); + goto L1524; + + L444: + x2 = XEXP (x1, 1); + if (rtx_equal_p (x2, ro[0]) && 1) + return 82; + x1 = XVECEXP (x0, 0, 0); + x2 = XEXP (x1, 0); + goto L1524; + + L697: + x2 = XEXP (x1, 1); + if (GET_MODE (x2) != DImode) { x2 = XEXP (x1, 0); - goto L1358; + goto L1082; } switch (GET_CODE (x2)) { - case DIV: - goto L699; - case UDIV: - goto L721; + case PLUS: + goto L698; + case MINUS: + goto L729; } x2 = XEXP (x1, 0); - goto L1358; + goto L1082; - L699: + L698: x3 = XEXP (x2, 0); - if (register_operand (x3, SImode)) + if (general_operand (x3, DImode)) { ro[1] = x3; + goto L699; + } + x2 = XEXP (x1, 0); + goto L1082; + + L699: + x3 = XEXP (x2, 1); + if (general_operand (x3, DImode)) + { + ro[2] = x3; goto L700; } x2 = XEXP (x1, 0); - goto L1358; + goto L1082; L700: + x1 = XVECEXP (x0, 0, 1); + if (GET_CODE (x1) == CLOBBER && 1) + goto L701; + x1 = XVECEXP (x0, 0, 0); + x2 = XEXP (x1, 0); + goto L1082; + + L701: + x2 = XEXP (x1, 0); + if (scratch_operand (x2, SImode)) + { + ro[3] = x2; + return 127; + } + x1 = XVECEXP (x0, 0, 0); + x2 = XEXP (x1, 0); + goto L1082; + + L729: + x3 = XEXP (x2, 0); + if (general_operand (x3, DImode)) + { + ro[1] = x3; + goto L730; + } + x2 = XEXP (x1, 0); + goto L1082; + + L730: x3 = XEXP (x2, 1); - if (general_operand (x3, SImode)) + if (general_operand (x3, DImode)) { ro[2] = x3; - goto L701; + goto L731; } x2 = XEXP (x1, 0); - goto L1358; + goto L1082; - L701: + L731: x1 = XVECEXP (x0, 0, 1); - if (GET_CODE (x1) == SET && 1) - goto L702; + if (GET_CODE (x1) == CLOBBER && 1) + goto L732; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1082; - L702: + L732: x2 = XEXP (x1, 0); - if (register_operand (x2, SImode)) + if (scratch_operand (x2, SImode)) { ro[3] = x2; - goto L703; + return 135; } x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1082; - L703: + L1083: x2 = XEXP (x1, 1); - if (GET_MODE (x2) == SImode && GET_CODE (x2) == MOD && 1) - goto L704; - x1 = XVECEXP (x0, 0, 0); + if (GET_MODE (x2) != DImode) + { + x2 = XEXP (x1, 0); + goto L1524; + } + switch (GET_CODE (x2)) + { + case ASHIFT: + goto L1084; + case ASHIFTRT: + goto L1112; + case LSHIFTRT: + goto L1140; + } x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L704: + L1084: x3 = XEXP (x2, 0); - if (rtx_equal_p (x3, ro[1]) && 1) - goto L705; - x1 = XVECEXP (x0, 0, 0); + if (register_operand (x3, DImode)) + { + ro[1] = x3; + goto L1085; + } x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L705: + L1085: x3 = XEXP (x2, 1); - if (rtx_equal_p (x3, ro[2]) && 1) - return 139; + if (register_operand (x3, QImode)) + { + ro[2] = x3; + goto L1086; + } + x2 = XEXP (x1, 0); + goto L1524; + + L1086: + x1 = XVECEXP (x0, 0, 1); + if (GET_CODE (x1) == CLOBBER && 1) + goto L1087; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L721: + L1087: + x2 = XEXP (x1, 0); + if (rtx_equal_p (x2, ro[2]) && 1) + return 204; + x1 = XVECEXP (x0, 0, 0); + x2 = XEXP (x1, 0); + goto L1524; + + L1112: x3 = XEXP (x2, 0); - if (register_operand (x3, SImode)) + if (register_operand (x3, DImode)) { ro[1] = x3; - goto L722; + goto L1113; } x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L722: + L1113: x3 = XEXP (x2, 1); - if (general_operand (x3, SImode)) + if (register_operand (x3, QImode)) { ro[2] = x3; - goto L723; + goto L1114; } x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L723: + L1114: x1 = XVECEXP (x0, 0, 1); - if (GET_CODE (x1) == SET && 1) - goto L724; + if (GET_CODE (x1) == CLOBBER && 1) + goto L1115; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L724: + L1115: x2 = XEXP (x1, 0); - if (register_operand (x2, SImode)) + if (rtx_equal_p (x2, ro[2]) && 1) + return 210; + x1 = XVECEXP (x0, 0, 0); + x2 = XEXP (x1, 0); + goto L1524; + + L1140: + x3 = XEXP (x2, 0); + if (register_operand (x3, DImode)) { - ro[3] = x2; - goto L725; + ro[1] = x3; + goto L1141; } - x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L725: - x2 = XEXP (x1, 1); - if (GET_MODE (x2) == SImode && GET_CODE (x2) == UMOD && 1) - goto L726; - x1 = XVECEXP (x0, 0, 0); + L1141: + x3 = XEXP (x2, 1); + if (register_operand (x3, QImode)) + { + ro[2] = x3; + goto L1142; + } x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L726: - x3 = XEXP (x2, 0); - if (rtx_equal_p (x3, ro[1]) && 1) - goto L727; + L1142: + x1 = XVECEXP (x0, 0, 1); + if (GET_CODE (x1) == CLOBBER && 1) + goto L1143; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L727: - x3 = XEXP (x2, 1); - if (rtx_equal_p (x3, ro[2]) && 1) - return 141; + L1143: + x2 = XEXP (x1, 0); + if (rtx_equal_p (x2, ro[2]) && 1) + return 216; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L709: + L808: x2 = XEXP (x1, 1); - if (GET_MODE (x2) != HImode) + if (GET_MODE (x2) != SImode) { x2 = XEXP (x1, 0); - goto L1358; + goto L1524; } switch (GET_CODE (x2)) { + case TRUNCATE: + goto L809; case DIV: - goto L710; + goto L865; case UDIV: - goto L732; + goto L887; } x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L710: + L809: x3 = XEXP (x2, 0); - if (register_operand (x3, HImode)) + if (GET_MODE (x3) == DImode && GET_CODE (x3) == LSHIFTRT && 1) + goto L810; + x2 = XEXP (x1, 0); + goto L1524; + + L810: + x4 = XEXP (x3, 0); + if (GET_MODE (x4) == DImode && GET_CODE (x4) == MULT && 1) + goto L811; + x2 = XEXP (x1, 0); + goto L1524; + + L811: + x5 = XEXP (x4, 0); + if (GET_MODE (x5) != DImode) + { + x2 = XEXP (x1, 0); + goto L1524; + } + switch (GET_CODE (x5)) + { + case ZERO_EXTEND: + goto L812; + case SIGN_EXTEND: + goto L835; + } + x2 = XEXP (x1, 0); + goto L1524; + + L812: + x6 = XEXP (x5, 0); + if (register_operand (x6, SImode)) + { + ro[1] = x6; + goto L813; + } + x2 = XEXP (x1, 0); + goto L1524; + + L813: + x5 = XEXP (x4, 1); + if (GET_MODE (x5) == DImode && GET_CODE (x5) == ZERO_EXTEND && 1) + goto L814; + x2 = XEXP (x1, 0); + goto L1524; + + L814: + x6 = XEXP (x5, 0); + if (nonimmediate_operand (x6, SImode)) + { + ro[2] = x6; + goto L815; + } + x2 = XEXP (x1, 0); + goto L1524; + + L815: + x4 = XEXP (x3, 1); + if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 32 && 1) + goto L816; + x2 = XEXP (x1, 0); + goto L1524; + + L816: + x1 = XVECEXP (x0, 0, 1); + if (GET_CODE (x1) == CLOBBER && 1) + goto L817; + x1 = XVECEXP (x0, 0, 0); + x2 = XEXP (x1, 0); + goto L1524; + + L817: + x2 = XEXP (x1, 0); + if (scratch_operand (x2, SImode)) + { + ro[3] = x2; + if (TARGET_WIDE_MULTIPLY) + return 150; + } + x1 = XVECEXP (x0, 0, 0); + x2 = XEXP (x1, 0); + goto L1524; + + L835: + x6 = XEXP (x5, 0); + if (register_operand (x6, SImode)) + { + ro[1] = x6; + goto L836; + } + x2 = XEXP (x1, 0); + goto L1524; + + L836: + x5 = XEXP (x4, 1); + if (GET_MODE (x5) == DImode && GET_CODE (x5) == SIGN_EXTEND && 1) + goto L837; + x2 = XEXP (x1, 0); + goto L1524; + + L837: + x6 = XEXP (x5, 0); + if (nonimmediate_operand (x6, SImode)) + { + ro[2] = x6; + goto L838; + } + x2 = XEXP (x1, 0); + goto L1524; + + L838: + x4 = XEXP (x3, 1); + if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 32 && 1) + goto L839; + x2 = XEXP (x1, 0); + goto L1524; + + L839: + x1 = XVECEXP (x0, 0, 1); + if (GET_CODE (x1) == CLOBBER && 1) + goto L840; + x1 = XVECEXP (x0, 0, 0); + x2 = XEXP (x1, 0); + goto L1524; + + L840: + x2 = XEXP (x1, 0); + if (scratch_operand (x2, SImode)) + { + ro[3] = x2; + if (TARGET_WIDE_MULTIPLY) + return 151; + } + x1 = XVECEXP (x0, 0, 0); + x2 = XEXP (x1, 0); + goto L1524; + + L865: + x3 = XEXP (x2, 0); + if (register_operand (x3, SImode)) { ro[1] = x3; - goto L711; + goto L866; } x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L711: + L866: x3 = XEXP (x2, 1); - if (general_operand (x3, HImode)) + if (general_operand (x3, SImode)) { ro[2] = x3; - goto L712; + goto L867; } x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L712: + L867: x1 = XVECEXP (x0, 0, 1); if (GET_CODE (x1) == SET && 1) - goto L713; + goto L868; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L713: + L868: x2 = XEXP (x1, 0); - if (register_operand (x2, HImode)) + if (register_operand (x2, SImode)) { ro[3] = x2; - goto L714; + goto L869; } x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L714: + L869: x2 = XEXP (x1, 1); - if (GET_MODE (x2) == HImode && GET_CODE (x2) == MOD && 1) - goto L715; + if (GET_MODE (x2) == SImode && GET_CODE (x2) == MOD && 1) + goto L870; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L715: + L870: x3 = XEXP (x2, 0); if (rtx_equal_p (x3, ro[1]) && 1) - goto L716; + goto L871; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L716: + L871: x3 = XEXP (x2, 1); if (rtx_equal_p (x3, ro[2]) && 1) - return 140; + return 160; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L732: + L887: x3 = XEXP (x2, 0); - if (register_operand (x3, HImode)) + if (register_operand (x3, SImode)) { ro[1] = x3; - goto L733; + goto L888; } x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L733: + L888: x3 = XEXP (x2, 1); - if (general_operand (x3, HImode)) + if (general_operand (x3, SImode)) { ro[2] = x3; - goto L734; + goto L889; } x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L734: + L889: x1 = XVECEXP (x0, 0, 1); if (GET_CODE (x1) == SET && 1) - goto L735; + goto L890; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L735: + L890: x2 = XEXP (x1, 0); - if (register_operand (x2, HImode)) + if (register_operand (x2, SImode)) { ro[3] = x2; - goto L736; + goto L891; } x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L736: + L891: x2 = XEXP (x1, 1); - if (GET_MODE (x2) == HImode && GET_CODE (x2) == UMOD && 1) - goto L737; + if (GET_MODE (x2) == SImode && GET_CODE (x2) == UMOD && 1) + goto L892; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L737: + L892: x3 = XEXP (x2, 0); if (rtx_equal_p (x3, ro[1]) && 1) - goto L738; + goto L893; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L738: + L893: x3 = XEXP (x2, 1); if (rtx_equal_p (x3, ro[2]) && 1) - return 142; + return 162; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L917: + L875: x2 = XEXP (x1, 1); - if (GET_MODE (x2) != DImode) + if (GET_MODE (x2) != HImode) { x2 = XEXP (x1, 0); - goto L1358; + goto L1524; } switch (GET_CODE (x2)) { - case ASHIFT: - goto L918; - case ASHIFTRT: - goto L946; - case LSHIFTRT: - goto L974; + case DIV: + goto L876; + case UDIV: + goto L898; } x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L918: + L876: x3 = XEXP (x2, 0); - if (register_operand (x3, DImode)) + if (register_operand (x3, HImode)) { ro[1] = x3; - goto L919; + goto L877; } x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L919: + L877: x3 = XEXP (x2, 1); - if (register_operand (x3, QImode)) + if (general_operand (x3, HImode)) { ro[2] = x3; - goto L920; + goto L878; } x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L920: + L878: x1 = XVECEXP (x0, 0, 1); - if (GET_CODE (x1) == CLOBBER && 1) - goto L921; + if (GET_CODE (x1) == SET && 1) + goto L879; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L921: - x2 = XEXP (x1, 0); - if (rtx_equal_p (x2, ro[2]) && 1) - return 183; - x1 = XVECEXP (x0, 0, 0); + L879: x2 = XEXP (x1, 0); - goto L1358; - - L946: - x3 = XEXP (x2, 0); - if (register_operand (x3, DImode)) + if (register_operand (x2, HImode)) { - ro[1] = x3; - goto L947; + ro[3] = x2; + goto L880; } + x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L947: - x3 = XEXP (x2, 1); - if (register_operand (x3, QImode)) - { - ro[2] = x3; - goto L948; - } + L880: + x2 = XEXP (x1, 1); + if (GET_MODE (x2) == HImode && GET_CODE (x2) == MOD && 1) + goto L881; + x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L948: - x1 = XVECEXP (x0, 0, 1); - if (GET_CODE (x1) == CLOBBER && 1) - goto L949; + L881: + x3 = XEXP (x2, 0); + if (rtx_equal_p (x3, ro[1]) && 1) + goto L882; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L949: - x2 = XEXP (x1, 0); - if (rtx_equal_p (x2, ro[2]) && 1) - return 189; + L882: + x3 = XEXP (x2, 1); + if (rtx_equal_p (x3, ro[2]) && 1) + return 161; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L974: + L898: x3 = XEXP (x2, 0); - if (register_operand (x3, DImode)) + if (register_operand (x3, HImode)) { ro[1] = x3; - goto L975; + goto L899; } x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L975: + L899: x3 = XEXP (x2, 1); - if (register_operand (x3, QImode)) + if (general_operand (x3, HImode)) { ro[2] = x3; - goto L976; + goto L900; } x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L976: + L900: x1 = XVECEXP (x0, 0, 1); - if (GET_CODE (x1) == CLOBBER && 1) - goto L977; + if (GET_CODE (x1) == SET && 1) + goto L901; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L977: + L901: x2 = XEXP (x1, 0); - if (rtx_equal_p (x2, ro[2]) && 1) - return 195; + if (register_operand (x2, HImode)) + { + ro[3] = x2; + goto L902; + } + x1 = XVECEXP (x0, 0, 0); + x2 = XEXP (x1, 0); + goto L1524; + + L902: + x2 = XEXP (x1, 1); + if (GET_MODE (x2) == HImode && GET_CODE (x2) == UMOD && 1) + goto L903; + x1 = XVECEXP (x0, 0, 0); + x2 = XEXP (x1, 0); + goto L1524; + + L903: + x3 = XEXP (x2, 0); + if (rtx_equal_p (x3, ro[1]) && 1) + goto L904; + x1 = XVECEXP (x0, 0, 0); + x2 = XEXP (x1, 0); + goto L1524; + + L904: + x3 = XEXP (x2, 1); + if (rtx_equal_p (x3, ro[2]) && 1) + return 163; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; L12: x2 = XEXP (x1, 1); @@ -5200,7 +5798,7 @@ recog_6 (x0, insn, pnum_clobbers) if (GET_MODE (x2) == CCFPEQmode && GET_CODE (x2) == COMPARE && 1) goto L128; x2 = XEXP (x1, 0); - goto L1358; + goto L1524; L13: x1 = XVECEXP (x0, 0, 1); @@ -5292,7 +5890,7 @@ recog_6 (x0, insn, pnum_clobbers) } } x2 = XEXP (x1, 0); - goto L1358; + goto L1524; L129: x3 = XEXP (x2, 1); @@ -5302,7 +5900,7 @@ recog_6 (x0, insn, pnum_clobbers) goto L130; } x2 = XEXP (x1, 0); - goto L1358; + goto L1524; L130: x1 = XVECEXP (x0, 0, 1); @@ -5310,7 +5908,7 @@ recog_6 (x0, insn, pnum_clobbers) goto L131; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; L131: x2 = XEXP (x1, 0); @@ -5322,7 +5920,7 @@ recog_6 (x0, insn, pnum_clobbers) } x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; L215: x3 = XEXP (x2, 1); @@ -5332,7 +5930,7 @@ recog_6 (x0, insn, pnum_clobbers) goto L216; } x2 = XEXP (x1, 0); - goto L1358; + goto L1524; L216: x1 = XVECEXP (x0, 0, 1); @@ -5340,7 +5938,7 @@ recog_6 (x0, insn, pnum_clobbers) goto L217; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; L217: x2 = XEXP (x1, 0); @@ -5352,7 +5950,7 @@ recog_6 (x0, insn, pnum_clobbers) } x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; L271: x3 = XEXP (x2, 1); @@ -5362,7 +5960,7 @@ recog_6 (x0, insn, pnum_clobbers) goto L272; } x2 = XEXP (x1, 0); - goto L1358; + goto L1524; L272: x1 = XVECEXP (x0, 0, 1); @@ -5370,7 +5968,7 @@ recog_6 (x0, insn, pnum_clobbers) goto L273; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; L273: x2 = XEXP (x1, 0); @@ -5382,307 +5980,307 @@ recog_6 (x0, insn, pnum_clobbers) } x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L1301: + L1467: x2 = XEXP (x1, 1); if (GET_MODE (x2) == SImode && GET_CODE (x2) == MINUS && 1) - goto L1302; + goto L1468; if (general_operand (x2, SImode)) { ro[0] = x2; - goto L1327; + goto L1493; } x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L1302: + L1468: x3 = XEXP (x2, 0); if (GET_MODE (x3) == SImode && GET_CODE (x3) == REG && XINT (x3, 0) == 3 && 1) - goto L1303; + goto L1469; x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L1303: + L1469: x3 = XEXP (x2, 1); if (GET_MODE (x3) == SImode && GET_CODE (x3) == MEM && 1) - goto L1304; + goto L1470; x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L1304: + L1470: x4 = XEXP (x3, 0); if (GET_MODE (x4) == SImode && GET_CODE (x4) == PLUS && 1) - goto L1305; + goto L1471; x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L1305: + L1471: x5 = XEXP (x4, 0); if (GET_MODE (x5) == SImode && GET_CODE (x5) == MULT && 1) - goto L1306; + goto L1472; x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L1306: + L1472: x6 = XEXP (x5, 0); if (register_operand (x6, SImode)) { ro[0] = x6; - goto L1307; + goto L1473; } x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L1307: + L1473: x6 = XEXP (x5, 1); if (GET_CODE (x6) == CONST_INT && XWINT (x6, 0) == 4 && 1) - goto L1308; + goto L1474; x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L1308: + L1474: x5 = XEXP (x4, 1); if (GET_CODE (x5) == LABEL_REF && 1) - goto L1309; + goto L1475; x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L1309: + L1475: x6 = XEXP (x5, 0); ro[1] = x6; - goto L1310; + goto L1476; - L1310: + L1476: x1 = XVECEXP (x0, 0, 1); if (GET_CODE (x1) == CLOBBER && 1) - goto L1311; + goto L1477; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L1311: + L1477: x2 = XEXP (x1, 0); if (scratch_operand (x2, SImode)) { ro[2] = x2; - return 264; + return 285; } x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L1327: + L1493: x1 = XVECEXP (x0, 0, 1); if (GET_CODE (x1) == USE && 1) - goto L1328; + goto L1494; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L1328: + L1494: x2 = XEXP (x1, 0); if (GET_CODE (x2) == LABEL_REF && 1) - goto L1329; + goto L1495; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1358; + goto L1524; - L1329: + L1495: x3 = XEXP (x2, 0); ro[1] = x3; - return 265; + return 286; - L1359: + L1525: x2 = XEXP (x1, 1); if (GET_CODE (x2) == CALL && 1) - goto L1371; + goto L1537; x2 = XEXP (x1, 0); - goto L1548; + goto L1701; - L1371: + L1537: x3 = XEXP (x2, 0); if (GET_MODE (x3) == QImode && GET_CODE (x3) == MEM && 1) - goto L1372; - L1360: + goto L1538; + L1526: if (call_insn_operand (x3, QImode)) { ro[1] = x3; - goto L1361; + goto L1527; } x2 = XEXP (x1, 0); - goto L1548; + goto L1701; - L1372: + L1538: x4 = XEXP (x3, 0); if (symbolic_operand (x4, SImode)) { ro[1] = x4; - goto L1373; + goto L1539; } - goto L1360; + goto L1526; - L1373: + L1539: x3 = XEXP (x2, 1); if (general_operand (x3, SImode)) { ro[2] = x3; - goto L1374; + goto L1540; } x3 = XEXP (x2, 0); - goto L1360; + goto L1526; - L1374: + L1540: x1 = XVECEXP (x0, 0, 1); if (GET_CODE (x1) == SET && 1) - goto L1375; + goto L1541; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); - goto L1360; + goto L1526; - L1375: + L1541: x2 = XEXP (x1, 0); if (GET_MODE (x2) == SImode && GET_CODE (x2) == REG && XINT (x2, 0) == 7 && 1) - goto L1376; + goto L1542; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); - goto L1360; + goto L1526; - L1376: + L1542: x2 = XEXP (x1, 1); if (GET_MODE (x2) == SImode && GET_CODE (x2) == PLUS && 1) - goto L1377; + goto L1543; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); - goto L1360; + goto L1526; - L1377: + L1543: x3 = XEXP (x2, 0); if (GET_MODE (x3) == SImode && GET_CODE (x3) == REG && XINT (x3, 0) == 7 && 1) - goto L1378; + goto L1544; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); - goto L1360; + goto L1526; - L1378: + L1544: x3 = XEXP (x2, 1); if (immediate_operand (x3, SImode)) { ro[4] = x3; if (!HALF_PIC_P ()) - return 274; + return 295; } x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 1); x3 = XEXP (x2, 0); - goto L1360; + goto L1526; - L1361: + L1527: x3 = XEXP (x2, 1); if (general_operand (x3, SImode)) { ro[2] = x3; - goto L1362; + goto L1528; } x2 = XEXP (x1, 0); - goto L1548; + goto L1701; - L1362: + L1528: x1 = XVECEXP (x0, 0, 1); if (GET_CODE (x1) == SET && 1) - goto L1363; + goto L1529; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1548; + goto L1701; - L1363: + L1529: x2 = XEXP (x1, 0); if (GET_MODE (x2) == SImode && GET_CODE (x2) == REG && XINT (x2, 0) == 7 && 1) - goto L1364; + goto L1530; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1548; + goto L1701; - L1364: + L1530: x2 = XEXP (x1, 1); if (GET_MODE (x2) == SImode && GET_CODE (x2) == PLUS && 1) - goto L1365; + goto L1531; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1548; + goto L1701; - L1365: + L1531: x3 = XEXP (x2, 0); if (GET_MODE (x3) == SImode && GET_CODE (x3) == REG && XINT (x3, 0) == 7 && 1) - goto L1366; + goto L1532; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1548; + goto L1701; - L1366: + L1532: x3 = XEXP (x2, 1); if (immediate_operand (x3, SImode)) { ro[4] = x3; - return 273; + return 294; } x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1548; + goto L1701; - L1549: + L1702: x2 = XEXP (x1, 1); if (GET_MODE (x2) == SImode && GET_CODE (x2) == UNSPEC && XINT (x2, 1) == 0 && XVECLEN (x2, 0) == 3 && 1) - goto L1550; + goto L1703; goto ret0; - L1550: + L1703: x3 = XVECEXP (x2, 0, 0); if (GET_MODE (x3) == BLKmode && GET_CODE (x3) == MEM && 1) - goto L1551; + goto L1704; goto ret0; - L1551: + L1704: x4 = XEXP (x3, 0); if (address_operand (x4, SImode)) { ro[1] = x4; - goto L1552; + goto L1705; } goto ret0; - L1552: + L1705: x3 = XVECEXP (x2, 0, 1); if (register_operand (x3, QImode)) { ro[2] = x3; - goto L1553; + goto L1706; } goto ret0; - L1553: + L1706: x3 = XVECEXP (x2, 0, 2); if (immediate_operand (x3, SImode)) { ro[3] = x3; - goto L1554; + goto L1707; } goto ret0; - L1554: + L1707: x1 = XVECEXP (x0, 0, 1); if (GET_CODE (x1) == CLOBBER && 1) - goto L1555; + goto L1708; goto ret0; - L1555: + L1708: x2 = XEXP (x1, 0); if (rtx_equal_p (x2, ro[1]) && 1) - return 308; + return 326; goto ret0; ret0: return -1; } @@ -5701,86 +6299,561 @@ recog_7 (x0, insn, pnum_clobbers) x2 = XEXP (x1, 0); switch (GET_MODE (x2)) { + case DFmode: + if (GET_CODE (x2) == MEM && push_operand (x2, DFmode)) + { + ro[0] = x2; + goto L377; + } + L389: + if (memory_operand (x2, DFmode)) + { + ro[0] = x2; + goto L390; + } + break; + case XFmode: + if (GET_CODE (x2) == MEM && push_operand (x2, XFmode)) + { + ro[0] = x2; + goto L414; + } + L426: + if (memory_operand (x2, XFmode)) + { + ro[0] = x2; + goto L427; + } + break; + case DImode: + if (GET_CODE (x2) == MEM && push_operand (x2, DImode)) + { + ro[0] = x2; + goto L448; + } + L458: + if (general_operand (x2, DImode)) + { + ro[0] = x2; + goto L459; + } + break; + case SImode: + if (general_operand (x2, SImode)) + { + ro[0] = x2; + goto L619; + } + } + goto ret0; + + L377: + x2 = XEXP (x1, 1); + if (general_operand (x2, DFmode)) + { + ro[1] = x2; + goto L378; + } + x2 = XEXP (x1, 0); + goto L389; + + L378: + x1 = XVECEXP (x0, 0, 1); + if (GET_CODE (x1) == CLOBBER && 1) + goto L379; + x1 = XVECEXP (x0, 0, 0); + x2 = XEXP (x1, 0); + goto L389; + + L379: + x2 = XEXP (x1, 0); + if (scratch_operand (x2, SImode)) + { + ro[2] = x2; + goto L380; + } + x1 = XVECEXP (x0, 0, 0); + x2 = XEXP (x1, 0); + goto L389; + + L380: + x1 = XVECEXP (x0, 0, 2); + if (GET_CODE (x1) == CLOBBER && 1) + goto L381; + x1 = XVECEXP (x0, 0, 0); + x2 = XEXP (x1, 0); + goto L389; + + L381: + x2 = XEXP (x1, 0); + if (scratch_operand (x2, SImode)) + { + ro[3] = x2; + return 73; + } + x1 = XVECEXP (x0, 0, 0); + x2 = XEXP (x1, 0); + goto L389; + + L390: + x2 = XEXP (x1, 1); + if (memory_operand (x2, DFmode)) + { + ro[1] = x2; + goto L391; + } + goto ret0; + + L391: + x1 = XVECEXP (x0, 0, 1); + if (GET_CODE (x1) == CLOBBER && 1) + goto L392; + goto ret0; + + L392: + x2 = XEXP (x1, 0); + if (scratch_operand (x2, SImode)) + { + ro[2] = x2; + goto L393; + } + goto ret0; + + L393: + x1 = XVECEXP (x0, 0, 2); + if (GET_CODE (x1) == CLOBBER && 1) + goto L394; + goto ret0; + + L394: + x2 = XEXP (x1, 0); + if (scratch_operand (x2, SImode)) + { + ro[3] = x2; + return 74; + } + goto ret0; + + L414: + x2 = XEXP (x1, 1); + if (general_operand (x2, XFmode)) + { + ro[1] = x2; + goto L415; + } + x2 = XEXP (x1, 0); + goto L426; + + L415: + x1 = XVECEXP (x0, 0, 1); + if (GET_CODE (x1) == CLOBBER && 1) + goto L416; + x1 = XVECEXP (x0, 0, 0); + x2 = XEXP (x1, 0); + goto L426; + + L416: + x2 = XEXP (x1, 0); + if (scratch_operand (x2, SImode)) + { + ro[2] = x2; + goto L417; + } + x1 = XVECEXP (x0, 0, 0); + x2 = XEXP (x1, 0); + goto L426; + + L417: + x1 = XVECEXP (x0, 0, 2); + if (GET_CODE (x1) == CLOBBER && 1) + goto L418; + x1 = XVECEXP (x0, 0, 0); + x2 = XEXP (x1, 0); + goto L426; + + L418: + x2 = XEXP (x1, 0); + if (scratch_operand (x2, SImode)) + { + ro[3] = x2; + return 79; + } + x1 = XVECEXP (x0, 0, 0); + x2 = XEXP (x1, 0); + goto L426; + + L427: + x2 = XEXP (x1, 1); + if (memory_operand (x2, XFmode)) + { + ro[1] = x2; + goto L428; + } + goto ret0; + + L428: + x1 = XVECEXP (x0, 0, 1); + if (GET_CODE (x1) == CLOBBER && 1) + goto L429; + goto ret0; + + L429: + x2 = XEXP (x1, 0); + if (scratch_operand (x2, SImode)) + { + ro[2] = x2; + goto L430; + } + goto ret0; + + L430: + x1 = XVECEXP (x0, 0, 2); + if (GET_CODE (x1) == CLOBBER && 1) + goto L431; + goto ret0; + + L431: + x2 = XEXP (x1, 0); + if (scratch_operand (x2, SImode)) + { + ro[3] = x2; + return 80; + } + goto ret0; + + L448: + x2 = XEXP (x1, 1); + if (general_operand (x2, DImode)) + { + ro[1] = x2; + goto L449; + } + x2 = XEXP (x1, 0); + goto L458; + + L449: + x1 = XVECEXP (x0, 0, 1); + if (GET_CODE (x1) == CLOBBER && 1) + goto L450; + x1 = XVECEXP (x0, 0, 0); + x2 = XEXP (x1, 0); + goto L458; + + L450: + x2 = XEXP (x1, 0); + if (scratch_operand (x2, SImode)) + { + ro[2] = x2; + goto L451; + } + x1 = XVECEXP (x0, 0, 0); + x2 = XEXP (x1, 0); + goto L458; + + L451: + x1 = XVECEXP (x0, 0, 2); + if (GET_CODE (x1) == CLOBBER && 1) + goto L452; + x1 = XVECEXP (x0, 0, 0); + x2 = XEXP (x1, 0); + goto L458; + + L452: + x2 = XEXP (x1, 0); + if (scratch_operand (x2, SImode)) + { + ro[3] = x2; + return 83; + } + x1 = XVECEXP (x0, 0, 0); + x2 = XEXP (x1, 0); + goto L458; + + L459: + x2 = XEXP (x1, 1); + if (general_operand (x2, DImode)) + { + ro[1] = x2; + goto L460; + } + goto ret0; + + L460: + x1 = XVECEXP (x0, 0, 1); + if (GET_CODE (x1) == CLOBBER && 1) + goto L461; + goto ret0; + + L461: + x2 = XEXP (x1, 0); + if (scratch_operand (x2, SImode)) + { + ro[2] = x2; + goto L462; + } + goto ret0; + + L462: + x1 = XVECEXP (x0, 0, 2); + if (GET_CODE (x1) == CLOBBER && 1) + goto L463; + goto ret0; + + L463: + x2 = XEXP (x1, 0); + if (scratch_operand (x2, SImode)) + { + ro[3] = x2; + return 84; + } + goto ret0; + + L619: + x2 = XEXP (x1, 1); + if (GET_MODE (x2) == SImode && GET_CODE (x2) == FIX && 1) + goto L620; + goto ret0; + + L620: + x3 = XEXP (x2, 0); + if (GET_CODE (x3) != FIX) + goto ret0; + switch (GET_MODE (x3)) + { + case XFmode: + goto L621; + case DFmode: + goto L643; + case SFmode: + goto L665; + } + goto ret0; + + L621: + x4 = XEXP (x3, 0); + if (register_operand (x4, XFmode)) + { + ro[1] = x4; + goto L622; + } + goto ret0; + + L622: + x1 = XVECEXP (x0, 0, 1); + if (GET_CODE (x1) == CLOBBER && 1) + goto L623; + goto ret0; + + L623: + x2 = XEXP (x1, 0); + if (memory_operand (x2, SImode)) + { + ro[2] = x2; + goto L624; + } + goto ret0; + + L624: + x1 = XVECEXP (x0, 0, 2); + if (GET_CODE (x1) == CLOBBER && 1) + goto L625; + goto ret0; + + L625: + x2 = XEXP (x1, 0); + if (pnum_clobbers != 0 && memory_operand (x2, SImode)) + { + ro[3] = x2; + if (TARGET_80387) + { + *pnum_clobbers = 1; + return 112; + } + } + goto ret0; + + L643: + x4 = XEXP (x3, 0); + if (register_operand (x4, DFmode)) + { + ro[1] = x4; + goto L644; + } + goto ret0; + + L644: + x1 = XVECEXP (x0, 0, 1); + if (GET_CODE (x1) == CLOBBER && 1) + goto L645; + goto ret0; + + L645: + x2 = XEXP (x1, 0); + if (memory_operand (x2, SImode)) + { + ro[2] = x2; + goto L646; + } + goto ret0; + + L646: + x1 = XVECEXP (x0, 0, 2); + if (GET_CODE (x1) == CLOBBER && 1) + goto L647; + goto ret0; + + L647: + x2 = XEXP (x1, 0); + if (pnum_clobbers != 0 && memory_operand (x2, SImode)) + { + ro[3] = x2; + if (TARGET_80387) + { + *pnum_clobbers = 1; + return 113; + } + } + goto ret0; + + L665: + x4 = XEXP (x3, 0); + if (register_operand (x4, SFmode)) + { + ro[1] = x4; + goto L666; + } + goto ret0; + + L666: + x1 = XVECEXP (x0, 0, 1); + if (GET_CODE (x1) == CLOBBER && 1) + goto L667; + goto ret0; + + L667: + x2 = XEXP (x1, 0); + if (memory_operand (x2, SImode)) + { + ro[2] = x2; + goto L668; + } + goto ret0; + + L668: + x1 = XVECEXP (x0, 0, 2); + if (GET_CODE (x1) == CLOBBER && 1) + goto L669; + goto ret0; + + L669: + x2 = XEXP (x1, 0); + if (pnum_clobbers != 0 && memory_operand (x2, SImode)) + { + ro[3] = x2; + if (TARGET_80387) + { + *pnum_clobbers = 1; + return 114; + } + } + 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 DImode: if (general_operand (x2, DImode)) { ro[0] = x2; - goto L439; + goto L543; } break; case SImode: if (general_operand (x2, SImode)) { ro[0] = x2; - goto L503; + goto L607; } } goto ret0; - L439: + L543: x2 = XEXP (x1, 1); if (GET_MODE (x2) == DImode && GET_CODE (x2) == FIX && 1) - goto L440; + goto L544; goto ret0; - L440: + L544: x3 = XEXP (x2, 0); if (GET_CODE (x3) != FIX) goto ret0; switch (GET_MODE (x3)) { case XFmode: - goto L441; + goto L545; case DFmode: - goto L467; + goto L571; case SFmode: - goto L493; + goto L597; } goto ret0; - L441: + L545: x4 = XEXP (x3, 0); if (register_operand (x4, XFmode)) { ro[1] = x4; - goto L442; + goto L546; } goto ret0; - L442: + L546: x1 = XVECEXP (x0, 0, 1); if (GET_CODE (x1) == CLOBBER && 1) - goto L443; + goto L547; goto ret0; - L443: + L547: x2 = XEXP (x1, 0); if (rtx_equal_p (x2, ro[1]) && 1) - goto L444; + goto L548; goto ret0; - L444: + L548: x1 = XVECEXP (x0, 0, 2); if (GET_CODE (x1) == CLOBBER && 1) - goto L445; + goto L549; goto ret0; - L445: + L549: x2 = XEXP (x1, 0); if (memory_operand (x2, SImode)) { ro[2] = x2; - goto L446; + goto L550; } goto ret0; - L446: + L550: x1 = XVECEXP (x0, 0, 3); if (GET_CODE (x1) == CLOBBER && 1) - goto L447; + goto L551; goto ret0; - L447: + L551: x2 = XEXP (x1, 0); if (pnum_clobbers != 0 && memory_operand (x2, SImode)) { @@ -5788,54 +6861,54 @@ recog_7 (x0, insn, pnum_clobbers) if (TARGET_80387) { *pnum_clobbers = 1; - return 87; + return 106; } } goto ret0; - L467: + L571: x4 = XEXP (x3, 0); if (register_operand (x4, DFmode)) { ro[1] = x4; - goto L468; + goto L572; } goto ret0; - L468: + L572: x1 = XVECEXP (x0, 0, 1); if (GET_CODE (x1) == CLOBBER && 1) - goto L469; + goto L573; goto ret0; - L469: + L573: x2 = XEXP (x1, 0); if (rtx_equal_p (x2, ro[1]) && 1) - goto L470; + goto L574; goto ret0; - L470: + L574: x1 = XVECEXP (x0, 0, 2); if (GET_CODE (x1) == CLOBBER && 1) - goto L471; + goto L575; goto ret0; - L471: + L575: x2 = XEXP (x1, 0); if (memory_operand (x2, SImode)) { ro[2] = x2; - goto L472; + goto L576; } goto ret0; - L472: + L576: x1 = XVECEXP (x0, 0, 3); if (GET_CODE (x1) == CLOBBER && 1) - goto L473; + goto L577; goto ret0; - L473: + L577: x2 = XEXP (x1, 0); if (pnum_clobbers != 0 && memory_operand (x2, SImode)) { @@ -5843,54 +6916,54 @@ recog_7 (x0, insn, pnum_clobbers) if (TARGET_80387) { *pnum_clobbers = 1; - return 88; + return 107; } } goto ret0; - L493: + L597: x4 = XEXP (x3, 0); if (register_operand (x4, SFmode)) { ro[1] = x4; - goto L494; + goto L598; } goto ret0; - L494: + L598: x1 = XVECEXP (x0, 0, 1); if (GET_CODE (x1) == CLOBBER && 1) - goto L495; + goto L599; goto ret0; - L495: + L599: x2 = XEXP (x1, 0); if (rtx_equal_p (x2, ro[1]) && 1) - goto L496; + goto L600; goto ret0; - L496: + L600: x1 = XVECEXP (x0, 0, 2); if (GET_CODE (x1) == CLOBBER && 1) - goto L497; + goto L601; goto ret0; - L497: + L601: x2 = XEXP (x1, 0); if (memory_operand (x2, SImode)) { ro[2] = x2; - goto L498; + goto L602; } goto ret0; - L498: + L602: x1 = XVECEXP (x0, 0, 3); if (GET_CODE (x1) == CLOBBER && 1) - goto L499; + goto L603; goto ret0; - L499: + L603: x2 = XEXP (x1, 0); if (pnum_clobbers != 0 && memory_operand (x2, SImode)) { @@ -5898,194 +6971,194 @@ recog_7 (x0, insn, pnum_clobbers) if (TARGET_80387) { *pnum_clobbers = 1; - return 89; + return 108; } } goto ret0; - L503: + L607: x2 = XEXP (x1, 1); if (GET_MODE (x2) == SImode && GET_CODE (x2) == FIX && 1) - goto L504; + goto L608; goto ret0; - L504: + L608: x3 = XEXP (x2, 0); if (GET_CODE (x3) != FIX) goto ret0; switch (GET_MODE (x3)) { case XFmode: - goto L505; + goto L609; case DFmode: - goto L527; + goto L631; case SFmode: - goto L549; + goto L653; } goto ret0; - L505: + L609: x4 = XEXP (x3, 0); if (register_operand (x4, XFmode)) { ro[1] = x4; - goto L506; + goto L610; } goto ret0; - L506: + L610: x1 = XVECEXP (x0, 0, 1); if (GET_CODE (x1) == CLOBBER && 1) - goto L507; + goto L611; goto ret0; - L507: + L611: x2 = XEXP (x1, 0); if (memory_operand (x2, SImode)) { ro[2] = x2; - goto L508; + goto L612; } goto ret0; - L508: + L612: x1 = XVECEXP (x0, 0, 2); if (GET_CODE (x1) == CLOBBER && 1) - goto L509; + goto L613; goto ret0; - L509: + L613: x2 = XEXP (x1, 0); if (memory_operand (x2, SImode)) { ro[3] = x2; - goto L510; + goto L614; } goto ret0; - L510: + L614: x1 = XVECEXP (x0, 0, 3); if (GET_CODE (x1) == CLOBBER && 1) - goto L511; + goto L615; goto ret0; - L511: + L615: x2 = XEXP (x1, 0); if (scratch_operand (x2, SImode)) { ro[4] = x2; if (TARGET_80387) - return 93; + return 112; } goto ret0; - L527: + L631: x4 = XEXP (x3, 0); if (register_operand (x4, DFmode)) { ro[1] = x4; - goto L528; + goto L632; } goto ret0; - L528: + L632: x1 = XVECEXP (x0, 0, 1); if (GET_CODE (x1) == CLOBBER && 1) - goto L529; + goto L633; goto ret0; - L529: + L633: x2 = XEXP (x1, 0); if (memory_operand (x2, SImode)) { ro[2] = x2; - goto L530; + goto L634; } goto ret0; - L530: + L634: x1 = XVECEXP (x0, 0, 2); if (GET_CODE (x1) == CLOBBER && 1) - goto L531; + goto L635; goto ret0; - L531: + L635: x2 = XEXP (x1, 0); if (memory_operand (x2, SImode)) { ro[3] = x2; - goto L532; + goto L636; } goto ret0; - L532: + L636: x1 = XVECEXP (x0, 0, 3); if (GET_CODE (x1) == CLOBBER && 1) - goto L533; + goto L637; goto ret0; - L533: + L637: x2 = XEXP (x1, 0); if (scratch_operand (x2, SImode)) { ro[4] = x2; if (TARGET_80387) - return 94; + return 113; } goto ret0; - L549: + L653: x4 = XEXP (x3, 0); if (register_operand (x4, SFmode)) { ro[1] = x4; - goto L550; + goto L654; } goto ret0; - L550: + L654: x1 = XVECEXP (x0, 0, 1); if (GET_CODE (x1) == CLOBBER && 1) - goto L551; + goto L655; goto ret0; - L551: + L655: x2 = XEXP (x1, 0); if (memory_operand (x2, SImode)) { ro[2] = x2; - goto L552; + goto L656; } goto ret0; - L552: + L656: x1 = XVECEXP (x0, 0, 2); if (GET_CODE (x1) == CLOBBER && 1) - goto L553; + goto L657; goto ret0; - L553: + L657: x2 = XEXP (x1, 0); if (memory_operand (x2, SImode)) { ro[3] = x2; - goto L554; + goto L658; } goto ret0; - L554: + L658: x1 = XVECEXP (x0, 0, 3); if (GET_CODE (x1) == CLOBBER && 1) - goto L555; + goto L659; goto ret0; - L555: + L659: x2 = XEXP (x1, 0); if (scratch_operand (x2, SImode)) { ro[4] = x2; if (TARGET_80387) - return 95; + return 114; } goto ret0; ret0: return -1; @@ -6101,45 +7174,36 @@ recog (x0, insn, pnum_clobbers) register rtx x1, x2, x3, x4, x5, x6; int tem; - L1403: + L0: switch (GET_CODE (x0)) { - case UNSPEC: - if (GET_MODE (x0) == SImode && XINT (x0, 1) == 0 && XVECLEN (x0, 0) == 1 && 1) - goto L1404; - break; case SET: goto L295; case PARALLEL: if (XVECLEN (x0, 0) == 2 && 1) goto L10; + if (XVECLEN (x0, 0) == 3 && 1) + goto L375; if (XVECLEN (x0, 0) == 5 && 1) - goto L423; + goto L527; if (XVECLEN (x0, 0) == 4 && 1) - goto L437; - if (XVECLEN (x0, 0) == 3 && 1) - goto L513; + goto L541; if (XVECLEN (x0, 0) == 6 && 1) - goto L1408; + goto L1561; break; case CALL: - goto L1350; + goto L1516; + case UNSPEC_VOLATILE: + if (XINT (x0, 1) == 0 && XVECLEN (x0, 0) == 1 && 1) + goto L1557; + break; case RETURN: if (simple_386_epilogue ()) - return 283; + return 301; break; case CONST_INT: if (XWINT (x0, 0) == 0 && 1) - return 284; - } - goto ret0; - - L1404: - x1 = XVECEXP (x0, 0, 0); - if (memory_operand (x1, SImode)) - { - ro[0] = x1; - return 282; + return 302; } goto ret0; L295: @@ -6150,976 +7214,752 @@ recog (x0, insn, pnum_clobbers) switch (GET_CODE (x1)) { case SET: - goto L336; + goto L343; case CALL: - goto L1341; + goto L1507; } goto ret0; - L336: + L343: return recog_6 (x0, insn, pnum_clobbers); - L1341: + L1507: x2 = XEXP (x1, 0); if (GET_MODE (x2) == QImode && GET_CODE (x2) == MEM && 1) - goto L1342; - L1332: + goto L1508; + L1498: if (call_insn_operand (x2, QImode)) { ro[0] = x2; - goto L1333; + goto L1499; } goto ret0; - L1342: + L1508: x3 = XEXP (x2, 0); if (symbolic_operand (x3, SImode)) { ro[0] = x3; - goto L1343; + goto L1509; } - goto L1332; + goto L1498; - L1343: + L1509: x2 = XEXP (x1, 1); if (general_operand (x2, SImode)) { ro[1] = x2; - goto L1344; + goto L1510; } x2 = XEXP (x1, 0); - goto L1332; + goto L1498; - L1344: + L1510: x1 = XVECEXP (x0, 0, 1); if (GET_CODE (x1) == SET && 1) - goto L1345; + goto L1511; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1332; + goto L1498; - L1345: + L1511: x2 = XEXP (x1, 0); if (GET_MODE (x2) == SImode && GET_CODE (x2) == REG && XINT (x2, 0) == 7 && 1) - goto L1346; + goto L1512; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1332; + goto L1498; - L1346: + L1512: x2 = XEXP (x1, 1); if (GET_MODE (x2) == SImode && GET_CODE (x2) == PLUS && 1) - goto L1347; + goto L1513; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1332; + goto L1498; - L1347: + L1513: x3 = XEXP (x2, 0); if (GET_MODE (x3) == SImode && GET_CODE (x3) == REG && XINT (x3, 0) == 7 && 1) - goto L1348; + goto L1514; x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1332; + goto L1498; - L1348: + L1514: x3 = XEXP (x2, 1); if (immediate_operand (x3, SImode)) { ro[3] = x3; if (!HALF_PIC_P ()) - return 268; + return 289; } x1 = XVECEXP (x0, 0, 0); x2 = XEXP (x1, 0); - goto L1332; + goto L1498; - L1333: + L1499: x2 = XEXP (x1, 1); if (general_operand (x2, SImode)) { ro[1] = x2; - goto L1334; + goto L1500; } goto ret0; - L1334: + L1500: x1 = XVECEXP (x0, 0, 1); if (GET_CODE (x1) == SET && 1) - goto L1335; + goto L1501; goto ret0; - L1335: + L1501: x2 = XEXP (x1, 0); if (GET_MODE (x2) == SImode && GET_CODE (x2) == REG && XINT (x2, 0) == 7 && 1) - goto L1336; + goto L1502; goto ret0; - L1336: + L1502: x2 = XEXP (x1, 1); if (GET_MODE (x2) == SImode && GET_CODE (x2) == PLUS && 1) - goto L1337; + goto L1503; goto ret0; - L1337: + L1503: x3 = XEXP (x2, 0); if (GET_MODE (x3) == SImode && GET_CODE (x3) == REG && XINT (x3, 0) == 7 && 1) - goto L1338; + goto L1504; goto ret0; - L1338: + L1504: x3 = XEXP (x2, 1); if (immediate_operand (x3, SImode)) { ro[3] = x3; - return 267; + return 288; } goto ret0; - L423: + L375: + x1 = XVECEXP (x0, 0, 0); + if (GET_CODE (x1) == SET && 1) + goto L376; + goto ret0; + L376: + return recog_7 (x0, insn, pnum_clobbers); + + L527: x1 = XVECEXP (x0, 0, 0); if (GET_CODE (x1) == SET && 1) - goto L424; + goto L528; goto ret0; - L424: + L528: x2 = XEXP (x1, 0); if (GET_MODE (x2) == DImode && general_operand (x2, DImode)) { ro[0] = x2; - goto L425; + goto L529; } goto ret0; - L425: + L529: x2 = XEXP (x1, 1); if (GET_MODE (x2) == DImode && GET_CODE (x2) == FIX && 1) - goto L426; + goto L530; goto ret0; - L426: + L530: x3 = XEXP (x2, 0); if (GET_CODE (x3) != FIX) goto ret0; switch (GET_MODE (x3)) { case XFmode: - goto L427; + goto L531; case DFmode: - goto L453; + goto L557; case SFmode: - goto L479; + goto L583; } goto ret0; - L427: + L531: x4 = XEXP (x3, 0); if (register_operand (x4, XFmode)) { ro[1] = x4; - goto L428; + goto L532; } goto ret0; - L428: + L532: x1 = XVECEXP (x0, 0, 1); if (GET_CODE (x1) == CLOBBER && 1) - goto L429; + goto L533; goto ret0; - L429: + L533: x2 = XEXP (x1, 0); if (rtx_equal_p (x2, ro[1]) && 1) - goto L430; + goto L534; goto ret0; - L430: + L534: x1 = XVECEXP (x0, 0, 2); if (GET_CODE (x1) == CLOBBER && 1) - goto L431; + goto L535; goto ret0; - L431: + L535: x2 = XEXP (x1, 0); if (memory_operand (x2, SImode)) { ro[2] = x2; - goto L432; + goto L536; } goto ret0; - L432: + L536: x1 = XVECEXP (x0, 0, 3); if (GET_CODE (x1) == CLOBBER && 1) - goto L433; + goto L537; goto ret0; - L433: + L537: x2 = XEXP (x1, 0); if (memory_operand (x2, SImode)) { ro[3] = x2; - goto L434; + goto L538; } goto ret0; - L434: + L538: x1 = XVECEXP (x0, 0, 4); if (GET_CODE (x1) == CLOBBER && 1) - goto L435; + goto L539; goto ret0; - L435: + L539: x2 = XEXP (x1, 0); if (scratch_operand (x2, SImode)) { ro[4] = x2; if (TARGET_80387) - return 87; + return 106; } goto ret0; - L453: + L557: x4 = XEXP (x3, 0); if (register_operand (x4, DFmode)) { ro[1] = x4; - goto L454; + goto L558; } goto ret0; - L454: + L558: x1 = XVECEXP (x0, 0, 1); if (GET_CODE (x1) == CLOBBER && 1) - goto L455; + goto L559; goto ret0; - L455: + L559: x2 = XEXP (x1, 0); if (rtx_equal_p (x2, ro[1]) && 1) - goto L456; + goto L560; goto ret0; - L456: + L560: x1 = XVECEXP (x0, 0, 2); if (GET_CODE (x1) == CLOBBER && 1) - goto L457; + goto L561; goto ret0; - L457: + L561: x2 = XEXP (x1, 0); if (memory_operand (x2, SImode)) { ro[2] = x2; - goto L458; + goto L562; } goto ret0; - L458: + L562: x1 = XVECEXP (x0, 0, 3); if (GET_CODE (x1) == CLOBBER && 1) - goto L459; + goto L563; goto ret0; - L459: + L563: x2 = XEXP (x1, 0); if (memory_operand (x2, SImode)) { ro[3] = x2; - goto L460; + goto L564; } goto ret0; - L460: + L564: x1 = XVECEXP (x0, 0, 4); if (GET_CODE (x1) == CLOBBER && 1) - goto L461; + goto L565; goto ret0; - L461: + L565: x2 = XEXP (x1, 0); if (scratch_operand (x2, SImode)) { ro[4] = x2; if (TARGET_80387) - return 88; + return 107; } goto ret0; - L479: + L583: x4 = XEXP (x3, 0); if (register_operand (x4, SFmode)) { ro[1] = x4; - goto L480; + goto L584; } goto ret0; - L480: + L584: x1 = XVECEXP (x0, 0, 1); if (GET_CODE (x1) == CLOBBER && 1) - goto L481; + goto L585; goto ret0; - L481: + L585: x2 = XEXP (x1, 0); if (rtx_equal_p (x2, ro[1]) && 1) - goto L482; + goto L586; goto ret0; - L482: + L586: x1 = XVECEXP (x0, 0, 2); if (GET_CODE (x1) == CLOBBER && 1) - goto L483; + goto L587; goto ret0; - L483: + L587: x2 = XEXP (x1, 0); if (memory_operand (x2, SImode)) { ro[2] = x2; - goto L484; + goto L588; } goto ret0; - L484: + L588: x1 = XVECEXP (x0, 0, 3); if (GET_CODE (x1) == CLOBBER && 1) - goto L485; + goto L589; goto ret0; - L485: + L589: x2 = XEXP (x1, 0); if (memory_operand (x2, SImode)) { ro[3] = x2; - goto L486; + goto L590; } goto ret0; - L486: + L590: x1 = XVECEXP (x0, 0, 4); if (GET_CODE (x1) == CLOBBER && 1) - goto L487; + goto L591; goto ret0; - L487: + L591: x2 = XEXP (x1, 0); if (scratch_operand (x2, SImode)) { ro[4] = x2; if (TARGET_80387) - return 89; + return 108; } goto ret0; - L437: - x1 = XVECEXP (x0, 0, 0); - if (GET_CODE (x1) == SET && 1) - goto L438; - goto ret0; - L438: - return recog_7 (x0, insn, pnum_clobbers); - - L513: - x1 = XVECEXP (x0, 0, 0); - switch (GET_CODE (x1)) - { - case SET: - goto L514; - case CALL: - goto L1398; - } - goto ret0; - - L514: - x2 = XEXP (x1, 0); - if (GET_MODE (x2) == SImode && general_operand (x2, SImode)) - { - ro[0] = x2; - goto L515; - } - goto ret0; - - L515: - x2 = XEXP (x1, 1); - if (GET_MODE (x2) == SImode && GET_CODE (x2) == FIX && 1) - goto L516; - goto ret0; - - L516: - x3 = XEXP (x2, 0); - if (GET_CODE (x3) != FIX) - goto ret0; - switch (GET_MODE (x3)) - { - case XFmode: - goto L517; - case DFmode: - goto L539; - case SFmode: - goto L561; - } - goto ret0; - - L517: - x4 = XEXP (x3, 0); - if (register_operand (x4, XFmode)) - { - ro[1] = x4; - goto L518; - } - goto ret0; - - L518: - x1 = XVECEXP (x0, 0, 1); - if (GET_CODE (x1) == CLOBBER && 1) - goto L519; - goto ret0; - - L519: - x2 = XEXP (x1, 0); - if (memory_operand (x2, SImode)) - { - ro[2] = x2; - goto L520; - } - goto ret0; - - L520: - x1 = XVECEXP (x0, 0, 2); - if (GET_CODE (x1) == CLOBBER && 1) - goto L521; - goto ret0; - - L521: - x2 = XEXP (x1, 0); - if (pnum_clobbers != 0 && memory_operand (x2, SImode)) - { - ro[3] = x2; - if (TARGET_80387) - { - *pnum_clobbers = 1; - return 93; - } - } - goto ret0; - - L539: - x4 = XEXP (x3, 0); - if (register_operand (x4, DFmode)) - { - ro[1] = x4; - goto L540; - } - goto ret0; - - L540: - x1 = XVECEXP (x0, 0, 1); - if (GET_CODE (x1) == CLOBBER && 1) - goto L541; - goto ret0; - L541: - x2 = XEXP (x1, 0); - if (memory_operand (x2, SImode)) - { - ro[2] = x2; - goto L542; - } - goto ret0; - - L542: - x1 = XVECEXP (x0, 0, 2); - if (GET_CODE (x1) == CLOBBER && 1) - goto L543; - goto ret0; - - L543: - x2 = XEXP (x1, 0); - if (pnum_clobbers != 0 && memory_operand (x2, SImode)) - { - ro[3] = x2; - if (TARGET_80387) - { - *pnum_clobbers = 1; - return 94; - } - } - goto ret0; - - L561: - x4 = XEXP (x3, 0); - if (register_operand (x4, SFmode)) - { - ro[1] = x4; - goto L562; - } - goto ret0; - - L562: - x1 = XVECEXP (x0, 0, 1); - if (GET_CODE (x1) == CLOBBER && 1) - goto L563; - goto ret0; - - L563: - x2 = XEXP (x1, 0); - if (memory_operand (x2, SImode)) - { - ro[2] = x2; - goto L564; - } - goto ret0; - - L564: - x1 = XVECEXP (x0, 0, 2); - if (GET_CODE (x1) == CLOBBER && 1) - goto L565; - goto ret0; - - L565: - x2 = XEXP (x1, 0); - if (pnum_clobbers != 0 && memory_operand (x2, SImode)) - { - ro[3] = x2; - if (TARGET_80387) - { - *pnum_clobbers = 1; - return 95; - } - } - goto ret0; - - L1398: - x2 = XEXP (x1, 0); - if (GET_MODE (x2) == QImode && GET_CODE (x2) == MEM && 1) - goto L1399; - L1392: - if (call_insn_operand (x2, QImode)) - { - ro[0] = x2; - goto L1393; - } - goto ret0; - - L1399: - x3 = XEXP (x2, 0); - if (symbolic_operand (x3, SImode)) - { - ro[0] = x3; - goto L1400; - } - goto L1392; - - L1400: - x2 = XEXP (x1, 1); - if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1) - goto L1401; - x2 = XEXP (x1, 0); - goto L1392; - - L1401: - x1 = XVECEXP (x0, 0, 1); - if (memory_operand (x1, DImode)) - { - ro[1] = x1; - goto L1402; - } - x1 = XVECEXP (x0, 0, 0); - x2 = XEXP (x1, 0); - goto L1392; - - L1402: - x1 = XVECEXP (x0, 0, 2); - ro[2] = x1; - if (!HALF_PIC_P ()) - return 280; x1 = XVECEXP (x0, 0, 0); - x2 = XEXP (x1, 0); - goto L1392; - - L1393: - x2 = XEXP (x1, 1); - if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1) - goto L1394; - goto ret0; - - L1394: - x1 = XVECEXP (x0, 0, 1); - if (memory_operand (x1, DImode)) - { - ro[1] = x1; - goto L1395; - } + if (GET_CODE (x1) == SET && 1) + goto L542; goto ret0; + L542: + return recog_8 (x0, insn, pnum_clobbers); - L1395: - x1 = XVECEXP (x0, 0, 2); - ro[2] = x1; - return 279; - - L1408: + L1561: x1 = XVECEXP (x0, 0, 0); if (GET_CODE (x1) == SET && 1) - goto L1409; + goto L1562; goto ret0; - L1409: + L1562: x2 = XEXP (x1, 0); switch (GET_MODE (x2)) { case BLKmode: if (GET_CODE (x2) == MEM && 1) - goto L1410; + goto L1563; break; case SImode: if (general_operand (x2, SImode)) { ro[0] = x2; - goto L1426; + goto L1579; } } if (GET_CODE (x2) == CC0 && 1) - goto L1444; + goto L1597; goto ret0; - L1410: + L1563: x3 = XEXP (x2, 0); if (address_operand (x3, SImode)) { ro[0] = x3; - goto L1411; + goto L1564; } goto ret0; - L1411: + L1564: x2 = XEXP (x1, 1); if (GET_MODE (x2) == BLKmode && GET_CODE (x2) == MEM && 1) - goto L1412; + goto L1565; goto ret0; - L1412: + L1565: x3 = XEXP (x2, 0); if (address_operand (x3, SImode)) { ro[1] = x3; - goto L1413; + goto L1566; } goto ret0; - L1413: + L1566: x1 = XVECEXP (x0, 0, 1); if (GET_CODE (x1) == USE && 1) - goto L1414; + goto L1567; goto ret0; - L1414: + L1567: x2 = XEXP (x1, 0); if (GET_CODE (x2) == CONST_INT && 1) { ro[2] = x2; - goto L1415; + goto L1568; } goto ret0; - L1415: + L1568: x1 = XVECEXP (x0, 0, 2); if (GET_CODE (x1) == USE && 1) - goto L1416; + goto L1569; goto ret0; - L1416: + L1569: x2 = XEXP (x1, 0); if (immediate_operand (x2, SImode)) { ro[3] = x2; - goto L1417; + goto L1570; } goto ret0; - L1417: + L1570: x1 = XVECEXP (x0, 0, 3); if (GET_CODE (x1) == CLOBBER && 1) - goto L1418; + goto L1571; goto ret0; - L1418: + L1571: x2 = XEXP (x1, 0); if (scratch_operand (x2, SImode)) { ro[4] = x2; - goto L1419; + goto L1572; } goto ret0; - L1419: + L1572: x1 = XVECEXP (x0, 0, 4); if (GET_CODE (x1) == CLOBBER && 1) - goto L1420; + goto L1573; goto ret0; - L1420: + L1573: x2 = XEXP (x1, 0); if (rtx_equal_p (x2, ro[0]) && 1) - goto L1421; + goto L1574; goto ret0; - L1421: + L1574: x1 = XVECEXP (x0, 0, 5); if (GET_CODE (x1) == CLOBBER && 1) - goto L1422; + goto L1575; goto ret0; - L1422: + L1575: x2 = XEXP (x1, 0); if (rtx_equal_p (x2, ro[1]) && 1) - return 286; + return 304; goto ret0; - L1426: + L1579: x2 = XEXP (x1, 1); if (GET_MODE (x2) == SImode && GET_CODE (x2) == COMPARE && 1) - goto L1427; + goto L1580; goto ret0; - L1427: + L1580: x3 = XEXP (x2, 0); if (GET_MODE (x3) == BLKmode && GET_CODE (x3) == MEM && 1) - goto L1428; + goto L1581; goto ret0; - L1428: + L1581: x4 = XEXP (x3, 0); if (address_operand (x4, SImode)) { ro[1] = x4; - goto L1429; + goto L1582; } goto ret0; - L1429: + L1582: x3 = XEXP (x2, 1); if (GET_MODE (x3) == BLKmode && GET_CODE (x3) == MEM && 1) - goto L1430; + goto L1583; goto ret0; - L1430: + L1583: x4 = XEXP (x3, 0); if (address_operand (x4, SImode)) { ro[2] = x4; - goto L1431; + goto L1584; } goto ret0; - L1431: + L1584: x1 = XVECEXP (x0, 0, 1); if (GET_CODE (x1) == USE && 1) - goto L1432; + goto L1585; goto ret0; - L1432: + L1585: x2 = XEXP (x1, 0); if (register_operand (x2, SImode)) { ro[3] = x2; - goto L1433; + goto L1586; } goto ret0; - L1433: + L1586: x1 = XVECEXP (x0, 0, 2); if (GET_CODE (x1) == USE && 1) - goto L1434; + goto L1587; goto ret0; - L1434: + L1587: x2 = XEXP (x1, 0); if (immediate_operand (x2, SImode)) { ro[4] = x2; - goto L1435; + goto L1588; } goto ret0; - L1435: + L1588: x1 = XVECEXP (x0, 0, 3); if (GET_CODE (x1) == CLOBBER && 1) - goto L1436; + goto L1589; goto ret0; - L1436: + L1589: x2 = XEXP (x1, 0); if (rtx_equal_p (x2, ro[1]) && 1) - goto L1437; + goto L1590; goto ret0; - L1437: + L1590: x1 = XVECEXP (x0, 0, 4); if (GET_CODE (x1) == CLOBBER && 1) - goto L1438; + goto L1591; goto ret0; - L1438: + L1591: x2 = XEXP (x1, 0); if (rtx_equal_p (x2, ro[2]) && 1) - goto L1439; + goto L1592; goto ret0; - L1439: + L1592: x1 = XVECEXP (x0, 0, 5); if (GET_CODE (x1) == CLOBBER && 1) - goto L1440; + goto L1593; goto ret0; - L1440: + L1593: x2 = XEXP (x1, 0); if (rtx_equal_p (x2, ro[3]) && 1) - return 288; + return 306; goto ret0; - L1444: + L1597: x2 = XEXP (x1, 1); if (GET_MODE (x2) == SImode && GET_CODE (x2) == COMPARE && 1) - goto L1445; + goto L1598; goto ret0; - L1445: + L1598: x3 = XEXP (x2, 0); if (GET_MODE (x3) == BLKmode && GET_CODE (x3) == MEM && 1) - goto L1446; + goto L1599; goto ret0; - L1446: + L1599: x4 = XEXP (x3, 0); if (address_operand (x4, SImode)) { ro[0] = x4; - goto L1447; + goto L1600; } goto ret0; - L1447: + L1600: x3 = XEXP (x2, 1); if (GET_MODE (x3) == BLKmode && GET_CODE (x3) == MEM && 1) - goto L1448; + goto L1601; goto ret0; - L1448: + L1601: x4 = XEXP (x3, 0); if (address_operand (x4, SImode)) { ro[1] = x4; - goto L1449; + goto L1602; } goto ret0; - L1449: + L1602: x1 = XVECEXP (x0, 0, 1); if (GET_CODE (x1) == USE && 1) - goto L1450; + goto L1603; goto ret0; - L1450: + L1603: x2 = XEXP (x1, 0); if (register_operand (x2, SImode)) { ro[2] = x2; - goto L1451; + goto L1604; } goto ret0; - L1451: + L1604: x1 = XVECEXP (x0, 0, 2); if (GET_CODE (x1) == USE && 1) - goto L1452; + goto L1605; goto ret0; - L1452: + L1605: x2 = XEXP (x1, 0); if (immediate_operand (x2, SImode)) { ro[3] = x2; - goto L1453; + goto L1606; } goto ret0; - L1453: + L1606: x1 = XVECEXP (x0, 0, 3); if (GET_CODE (x1) == CLOBBER && 1) - goto L1454; + goto L1607; goto ret0; - L1454: + L1607: x2 = XEXP (x1, 0); if (rtx_equal_p (x2, ro[0]) && 1) - goto L1455; + goto L1608; goto ret0; - L1455: + L1608: x1 = XVECEXP (x0, 0, 4); if (GET_CODE (x1) == CLOBBER && 1) - goto L1456; + goto L1609; goto ret0; - L1456: + L1609: x2 = XEXP (x1, 0); if (rtx_equal_p (x2, ro[1]) && 1) - goto L1457; + goto L1610; goto ret0; - L1457: + L1610: x1 = XVECEXP (x0, 0, 5); if (GET_CODE (x1) == CLOBBER && 1) - goto L1458; + goto L1611; goto ret0; - L1458: + L1611: x2 = XEXP (x1, 0); if (rtx_equal_p (x2, ro[2]) && 1) - return 289; + return 307; goto ret0; - L1350: + L1516: x1 = XEXP (x0, 0); if (call_insn_operand (x1, QImode)) { ro[0] = x1; - goto L1351; + goto L1517; } - L1353: + L1519: if (GET_MODE (x1) == QImode && GET_CODE (x1) == MEM && 1) - goto L1354; + goto L1520; goto ret0; - L1351: + L1517: x1 = XEXP (x0, 1); if (general_operand (x1, SImode)) { ro[1] = x1; - return 270; + return 291; } x1 = XEXP (x0, 0); - goto L1353; + goto L1519; - L1354: + L1520: x2 = XEXP (x1, 0); if (symbolic_operand (x2, SImode)) { ro[0] = x2; - goto L1355; + goto L1521; } goto ret0; - L1355: + L1521: x1 = XEXP (x0, 1); if (general_operand (x1, SImode)) { ro[1] = x1; if (!HALF_PIC_P ()) - return 271; + return 292; } goto ret0; + + L1557: + x1 = XVECEXP (x0, 0, 0); + if (GET_CODE (x1) == CONST_INT && XWINT (x1, 0) == 0 && 1) + return 300; + goto ret0; ret0: return -1; } |