/* Generated automatically by the program `genoutput'
from the machine description file `md'. */
#include "config.h"
#include "system.h"
#include "flags.h"
#include "rtl.h"
#include "regs.h"
#include "hard-reg-set.h"
#include "real.h"
#include "insn-config.h"
#include "conditions.h"
#include "insn-flags.h"
#include "insn-attr.h"
#include "insn-codes.h"
#include "recog.h"
#include "output.h"
static const char *
output_5 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_5[] = {
"add%?\t%0, %1, %2",
"sub%?\t%0, %1, #%n2",
"#",
};
return strings_5[which_alternative];
}
static const char *
output_6 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_6[] = {
"add%?s\t%0, %1, %2",
"sub%?s\t%0, %1, #%n2",
};
return strings_6[which_alternative];
}
static const char *
output_7 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_7[] = {
"cmn%?\t%0, %1",
"cmp%?\t%0, #%n1",
};
return strings_7[which_alternative];
}
static const char *
output_8 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_8[] = {
"add%?s\t%0, %1, %2",
"sub%?s\t%0, %1, #%n2",
};
return strings_8[which_alternative];
}
static const char *
output_9 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_9[] = {
"add%?s\t%0, %1, %2",
"sub%?s\t%0, %1, #%n2",
};
return strings_9[which_alternative];
}
static const char *
output_10 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_10[] = {
"cmn%?\t%0, %1",
"cmp%?\t%0, #%n1",
};
return strings_10[which_alternative];
}
static const char *
output_11 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_11[] = {
"cmn%?\t%0, %1",
"cmp%?\t%0, #%n1",
};
return strings_11[which_alternative];
}
static const char *
output_16 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_16[] = {
"add%d2\t%0, %1, #1",
"mov%D2\t%0, %1\n\tadd%d2\t%0, %1, #1",
};
return strings_16[which_alternative];
}
static const char *
output_18 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_18[] = {
"adf%?s\t%0, %1, %2",
"suf%?s\t%0, %1, #%N2",
};
return strings_18[which_alternative];
}
static const char *
output_19 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_19[] = {
"adf%?d\t%0, %1, %2",
"suf%?d\t%0, %1, #%N2",
};
return strings_19[which_alternative];
}
static const char *
output_20 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_20[] = {
"adf%?d\t%0, %1, %2",
"suf%?d\t%0, %1, #%N2",
};
return strings_20[which_alternative];
}
static const char *
output_23 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_23[] = {
"adf%?e\t%0, %1, %2",
"suf%?e\t%0, %1, #%N2",
};
return strings_23[which_alternative];
}
static const char *
output_31 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_31[] = {
"rsb%?\t%0, %2, %1",
"#",
};
return strings_31[which_alternative];
}
static const char *
output_33 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_33[] = {
"sub%?s\t%0, %1, %2",
"rsb%?s\t%0, %2, %1",
};
return strings_33[which_alternative];
}
static const char *
output_34 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_34[] = {
"sub%d2\t%0, %1, #1",
"mov%D2\t%0, %1\n\tsub%d2\t%0, %1, #1",
};
return strings_34[which_alternative];
}
static const char *
output_35 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_35[] = {
"suf%?s\t%0, %1, %2",
"rsf%?s\t%0, %2, %1",
};
return strings_35[which_alternative];
}
static const char *
output_36 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_36[] = {
"suf%?d\t%0, %1, %2",
"rsf%?d\t%0, %2, %1",
};
return strings_36[which_alternative];
}
static const char *
output_38 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_38[] = {
"suf%?d\t%0, %1, %2",
"rsf%?d\t%0, %2, %1",
};
return strings_38[which_alternative];
}
static const char *
output_40 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_40[] = {
"suf%?e\t%0, %1, %2",
"rsf%?e\t%0, %2, %1",
};
return strings_40[which_alternative];
}
static const char *
output_57 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_57[] = {
"fdv%?s\t%0, %1, %2",
"frd%?s\t%0, %2, %1",
};
return strings_57[which_alternative];
}
static const char *
output_58 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_58[] = {
"dvf%?d\t%0, %1, %2",
"rdf%?d\t%0, %2, %1",
};
return strings_58[which_alternative];
}
static const char *
output_62 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_62[] = {
"dvf%?e\t%0, %1, %2",
"rdf%?e\t%0, %2, %1",
};
return strings_62[which_alternative];
}
static const char *
output_73 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_73[] = {
"and%?\t%0, %1, %2",
"bic%?\t%0, %1, #%B2",
"#",
};
return strings_73[which_alternative];
}
static const char *
output_75 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_75[] = {
"and%?s\t%0, %1, %2",
"bic%?s\t%0, %1, #%B2",
};
return strings_75[which_alternative];
}
static const char *
output_76 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_76[] = {
"tst%?\t%0, %1",
"bic%?s\t%3, %0, #%B1",
};
return strings_76[which_alternative];
}
static const char *
output_77 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
operands[1] = GEN_INT (((1 << INTVAL (operands[1])) - 1)
<< INTVAL (operands[2]));
output_asm_insn ("tst%?\t%0, %1", operands);
return "";
}
static const char *
output_78 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
operands[2] = GEN_INT (((1 << INTVAL (operands[2])) - 1)
<< INTVAL (operands[3]));
output_asm_insn ("ands\t%0, %1, %2", operands);
return "movne\t%0, #1";
}
static const char *
output_81 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_81[] = {
"bic%?\t%Q0, %Q1, %2",
"bic%?\t%Q0, %Q1, %2\n\tmov%?\t%R0, %R1",
};
return strings_81[which_alternative];
}
static const char *
output_88 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_88[] = {
"orr%?\t%Q0, %Q1, %2",
"orr%?\t%Q0, %Q1, %2\n\tmov%?\t%R0, %R1",
};
return strings_88[which_alternative];
}
static const char *
output_91 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_91[] = {
"orr%?\t%0, %1, %2",
"#",
};
return strings_91[which_alternative];
}
static const char *
output_96 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_96[] = {
"eor%?\t%Q0, %Q1, %2",
"eor%?\t%Q0, %Q1, %2\n\tmov%?\t%R0, %R1",
};
return strings_96[which_alternative];
}
static const char *
output_103 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_103[] = {
"cmp\t%1, %2\n\tmovlt\t%0, %2",
"cmp\t%1, %2\n\tmovge\t%0, %1",
"cmp\t%1, %2\n\tmovge\t%0, %1\n\tmovlt\t%0, %2",
};
return strings_103[which_alternative];
}
static const char *
output_104 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_104[] = {
"cmp\t%1, %2\n\tmovge\t%0, %2",
"cmp\t%1, %2\n\tmovlt\t%0, %1",
"cmp\t%1, %2\n\tmovlt\t%0, %1\n\tmovge\t%0, %2",
};
return strings_104[which_alternative];
}
static const char *
output_105 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_105[] = {
"cmp\t%1, %2\n\tmovcc\t%0, %2",
"cmp\t%1, %2\n\tmovcs\t%0, %1",
"cmp\t%1, %2\n\tmovcs\t%0, %1\n\tmovcc\t%0, %2",
};
return strings_105[which_alternative];
}
static const char *
output_106 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_106[] = {
"cmp\t%1, %2\n\tmovcs\t%0, %2",
"cmp\t%1, %2\n\tmovcc\t%0, %1",
"cmp\t%1, %2\n\tmovcc\t%0, %1\n\tmovcs\t%0, %2",
};
return strings_106[which_alternative];
}
static const char *
output_107 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
operands[3] = gen_rtx (minmax_code (operands[3]), SImode, operands[1],
operands[2]);
output_asm_insn ("cmp\t%1, %2", operands);
output_asm_insn ("str%d3\t%1, %0", operands);
output_asm_insn ("str%D3\t%2, %0", operands);
return "";
}
static const char *
output_108 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
{
enum rtx_code code = GET_CODE (operands[4]);
operands[5] = gen_rtx (minmax_code (operands[5]), SImode, operands[2],
operands[3]);
output_asm_insn ("cmp\t%2, %3", operands);
output_asm_insn ("%i4%d5\t%0, %1, %2", operands);
if (which_alternative != 0 || operands[3] != const0_rtx
|| (code != PLUS && code != MINUS && code != IOR && code != XOR))
output_asm_insn ("%i4%D5\t%0, %1, %3", operands);
return "";
}
}
static const char *
output_126 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_126[] = {
"cmp\t%0, #0\n\trsblt\t%0, %0, #0",
"eor%?\t%0, %1, %1, asr #31\n\tsub%?\t%0, %0, %1, asr #31",
};
return strings_126[which_alternative];
}
static const char *
output_127 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_127[] = {
"cmp\t%0, #0\n\trsbgt\t%0, %0, #0",
"eor%?\t%0, %1, %1, asr #31\n\trsb%?\t%0, %0, %1, asr #31",
};
return strings_127[which_alternative];
}
static const char *
output_149 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
if (REGNO (operands[1]) != REGNO (operands[0]) + (WORDS_BIG_ENDIAN ? 1 : 0))
output_asm_insn ("mov%?\t%Q0, %1", operands);
return "mov%?\t%R0, #0";
}
static const char *
output_151 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
if (REGNO (operands[1]) != REGNO (operands[0]) + (WORDS_BIG_ENDIAN ? 1 : 0))
output_asm_insn ("mov%?\t%Q0, %1", operands);
return "mov%?\t%R0, %Q0, asr #31";
}
static const char *
output_166 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
/* If the address is invalid, this will split the instruction into two. */
if (bad_signed_byte_operand (operands[1], QImode))
return "#";
return "ldr%?sb\t%0, %1";
}
static const char *
output_169 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
/* If the address is invalid, this will split the instruction into two. */
if (bad_signed_byte_operand (operands[1], QImode))
return "#";
return "ldr%?sb\t%0, %1";
}
static const char *
output_174 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
return (output_move_double (operands));
}
static const char *
output_176 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_176[] = {
"mov%?\t%0, %1",
"mvn%?\t%0, #%B1",
"ldr%?\t%0, %1",
"str%?\t%1, %0",
};
return strings_176[which_alternative];
}
static const char *
output_182 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
#ifdef AOF_ASSEMBLER
operands[1] = aof_pic_entry (operands[1]);
#endif
output_asm_insn ("ldr%?\t%0, %a1", operands);
return "";
}
static const char *
output_183 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, "L",
CODE_LABEL_NUMBER (operands[1]));
return "add%?\t%0, %|pc, %0";
}
static const char *
output_184 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_184[] = {
"cmp%?\t%0, #0",
"sub%?s\t%0, %1, #0",
};
return strings_184[which_alternative];
}
static const char *
output_190 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
{
rtx ops[2];
ops[0] = operands[0];
ops[1] = gen_rtx_MEM (SImode, plus_constant (XEXP (operands[1], 0), 2));
output_asm_insn ("ldr%?\t%0, %1\t%@ load-rotate", ops);
return "";
}
}
static const char *
output_193 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_193[] = {
"mov%?\t%0, %1\t%@ movhi",
"mvn%?\t%0, #%B1\t%@ movhi",
"ldr%?h\t%0, %1\t%@ movhi",
"str%?h\t%1, %0\t%@ movhi",
};
return strings_193[which_alternative];
}
static const char *
output_194 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_194[] = {
"mov%?\t%0, %1\t%@ movhi",
"mvn%?\t%0, #%B1\t%@ movhi",
"ldr%?\t%0, %1\t%@ movhi",
};
return strings_194[which_alternative];
}
static const char *
output_195 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_195[] = {
"mov%?\t%0, %1\t%@ movhi",
"mvn%?\t%0, #%B1\t%@ movhi",
"ldr%?\t%0, %1\t%@ movhi_bigend\n\tmov%?\t%0, %0, asr #16",
};
return strings_195[which_alternative];
}
static const char *
output_197 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_197[] = {
"mov%?\t%0, %1\t%@ movhi",
"mvn%?\t%0, #%B1\t%@ movhi",
};
return strings_197[which_alternative];
}
static const char *
output_201 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_201[] = {
"mov%?\t%0, %1",
"mvn%?\t%0, #%B1",
"ldr%?b\t%0, %1",
"str%?b\t%1, %0",
};
return strings_201[which_alternative];
}
static const char *
output_203 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_203[] = {
"mvf%?s\t%0, %1",
"mnf%?s\t%0, #%N1",
"ldf%?s\t%0, %1",
"stf%?s\t%1, %0",
"str%?\t%1, [%|sp, #-4]!\n\tldf%?s\t%0, [%|sp], #4",
"stf%?s\t%1, [%|sp, #-4]!\n\tldr%?\t%0, [%|sp], #4",
"mov%?\t%0, %1",
"ldr%?\t%0, %1\t%@ float",
"str%?\t%1, %0\t%@ float",
};
return strings_203[which_alternative];
}
static const char *
output_204 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_204[] = {
"mov%?\t%0, %1",
"ldr%?\t%0, %1\t%@ float",
"str%?\t%1, %0\t%@ float",
};
return strings_204[which_alternative];
}
static const char *
output_207 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
{
switch (which_alternative)
{
default:
case 0: return "ldm%?ia\t%m1, %M0\t%@ double";
case 1: return "stm%?ia\t%m0, %M1\t%@ double";
case 2: case 3: case 4: return output_move_double (operands);
case 5: return "mvf%?d\t%0, %1";
case 6: return "mnf%?d\t%0, #%N1";
case 7: return "ldf%?d\t%0, %1";
case 8: return "stf%?d\t%1, %0";
case 9: return output_mov_double_fpu_from_arm (operands);
case 10: return output_mov_double_arm_from_fpu (operands);
}
}
}
static const char *
output_208 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
return output_move_double (operands);
}
static const char *
output_210 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
switch (which_alternative)
{
default:
case 0: return "mvf%?e\t%0, %1";
case 1: return "mnf%?e\t%0, #%N1";
case 2: return "ldf%?e\t%0, %1";
case 3: return "stf%?e\t%1, %0";
case 4: return output_mov_long_double_fpu_from_arm (operands);
case 5: return output_mov_long_double_arm_from_fpu (operands);
case 6: return output_mov_long_double_arm_from_arm (operands);
}
}
static const char *
output_212 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
{
rtx ops[3];
int count = XVECLEN (operands[0], 0);
ops[0] = XEXP (SET_SRC (XVECEXP (operands[0], 0, 0)), 0);
ops[1] = SET_DEST (XVECEXP (operands[0], 0, 1));
ops[2] = SET_DEST (XVECEXP (operands[0], 0, count - 2));
output_asm_insn ("ldm%?ia\t%0!, {%1-%2}\t%@ load multiple", ops);
return "";
}
}
static const char *
output_213 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
{
rtx ops[3];
int count = XVECLEN (operands[0], 0);
ops[0] = XEXP (SET_SRC (XVECEXP (operands[0], 0, 0)), 0);
ops[1] = SET_DEST (XVECEXP (operands[0], 0, 0));
ops[2] = SET_DEST (XVECEXP (operands[0], 0, count - 1));
output_asm_insn ("ldm%?ia\t%0, {%1-%2}\t%@ load multiple", ops);
return "";
}
}
static const char *
output_215 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
{
rtx ops[3];
int count = XVECLEN (operands[0], 0);
ops[0] = XEXP (SET_SRC (XVECEXP (operands[0], 0, 0)), 0);
ops[1] = SET_SRC (XVECEXP (operands[0], 0, 1));
ops[2] = SET_SRC (XVECEXP (operands[0], 0, count - 2));
output_asm_insn ("stm%?ia\t%0!, {%1-%2}\t%@ str multiple", ops);
return "";
}
}
static const char *
output_216 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
{
rtx ops[3];
int count = XVECLEN (operands[0], 0);
ops[0] = XEXP (SET_DEST (XVECEXP (operands[0], 0, 0)), 0);
ops[1] = SET_SRC (XVECEXP (operands[0], 0, 0));
ops[2] = SET_SRC (XVECEXP (operands[0], 0, count - 1));
output_asm_insn ("stm%?ia\t%0, {%1-%2}\t%@ str multiple", ops);
return "";
}
}
static const char *
output_222 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_222[] = {
"cmp%?\t%0, %1",
"cmn%?\t%0, #%n1",
};
return strings_222[which_alternative];
}
static const char *
output_226 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_226[] = {
"cmf%?\t%0, %1",
"cnf%?\t%0, #%N1",
};
return strings_226[which_alternative];
}
static const char *
output_227 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_227[] = {
"cmf%?\t%0, %1",
"cnf%?\t%0, #%N1",
};
return strings_227[which_alternative];
}
static const char *
output_228 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_228[] = {
"cmf%?\t%0, %1",
"cnf%?\t%0, #%N1",
};
return strings_228[which_alternative];
}
static const char *
output_230 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_230[] = {
"cmf%?\t%0, %1",
"cnf%?\t%0, #%N1",
};
return strings_230[which_alternative];
}
static const char *
output_231 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_231[] = {
"cmf%?e\t%0, %1",
"cnf%?e\t%0, #%N1",
};
return strings_231[which_alternative];
}
static const char *
output_232 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_232[] = {
"cmf%?e\t%0, %1",
"cnf%?e\t%0, #%N1",
};
return strings_232[which_alternative];
}
static const char *
output_233 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_233[] = {
"cmf%?e\t%0, %1",
"cnf%?e\t%0, #%N1",
};
return strings_233[which_alternative];
}
static const char *
output_235 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_235[] = {
"cmf%?e\t%0, %1",
"cnf%?e\t%0, #%N1",
};
return strings_235[which_alternative];
}
static const char *
output_247 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
{
extern int arm_ccfsm_state;
if (arm_ccfsm_state == 1 || arm_ccfsm_state == 2)
{
arm_ccfsm_state += 2;
return "";
}
return "b%d1\t%l0";
}
}
static const char *
output_248 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
{
extern int arm_ccfsm_state;
if (arm_ccfsm_state == 1 || arm_ccfsm_state == 2)
{
arm_ccfsm_state += 2;
return "";
}
return "b%D1\t%l0";
}
}
static const char *
output_265 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_265[] = {
"mov%D3\t%0, %2",
"mvn%D3\t%0, #%B2",
"mov%d3\t%0, %1",
"mvn%d3\t%0, #%B1",
"mov%d3\t%0, %1\n\tmov%D3\t%0, %2",
"mov%d3\t%0, %1\n\tmvn%D3\t%0, #%B2",
"mvn%d3\t%0, #%B1\n\tmov%D3\t%0, %2",
"mvn%d3\t%0, #%B1\n\tmvn%D3\t%0, #%B2",
};
return strings_265[which_alternative];
}
static const char *
output_266 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_266[] = {
"mvf%D3s\t%0, %2",
"mnf%D3s\t%0, #%N2",
"mvf%d3s\t%0, %1",
"mnf%d3s\t%0, #%N1",
"mvf%d3s\t%0, %1\n\tmvf%D3s\t%0, %2",
"mvf%d3s\t%0, %1\n\tmnf%D3s\t%0, #%N2",
"mnf%d3s\t%0, #%N1\n\tmvf%D3s\t%0, %2",
"mnf%d3s\t%0, #%N1\n\tmnf%D3s\t%0, #%N2",
};
return strings_266[which_alternative];
}
static const char *
output_267 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_267[] = {
"mov%D3\t%0, %2",
"mov%d3\t%0, %1",
};
return strings_267[which_alternative];
}
static const char *
output_268 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_268[] = {
"mvf%D3d\t%0, %2",
"mnf%D3d\t%0, #%N2",
"mvf%d3d\t%0, %1",
"mnf%d3d\t%0, #%N1",
"mvf%d3d\t%0, %1\n\tmvf%D3d\t%0, %2",
"mvf%d3d\t%0, %1\n\tmnf%D3d\t%0, #%N2",
"mnf%d3d\t%0, #%N1\n\tmvf%D3d\t%0, %2",
"mnf%d3d\t%0, #%N1\n\tmnf%D3d\t%0, #%N2",
};
return strings_268[which_alternative];
}
static const char *
output_269 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
{
extern int arm_ccfsm_state;
if (arm_ccfsm_state == 1 || arm_ccfsm_state == 2)
{
arm_ccfsm_state += 2;
return "";
}
return "b%?\t%l0";
}
}
static const char *
output_271 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
return output_call (operands);
}
static const char *
output_272 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
return output_call_mem (operands);
}
static const char *
output_274 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
return output_call (&operands[1]);
}
static const char *
output_275 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
return output_call_mem (&operands[1]);
}
static const char *
output_276 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
{
return NEED_PLT_GOT ? "bl%?\t%a0(PLT)" : "bl%?\t%a0";
}
}
static const char *
output_277 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
{
return NEED_PLT_GOT ? "bl%?\t%a1(PLT)" : "bl%?\t%a1";
}
}
static const char *
output_278 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
{
extern int arm_ccfsm_state;
if (arm_ccfsm_state == 2)
{
arm_ccfsm_state += 2;
return "";
}
return output_return_instruction (NULL, TRUE, FALSE);
}
}
static const char *
output_279 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
{
extern int arm_ccfsm_state;
if (arm_ccfsm_state == 2)
{
arm_ccfsm_state += 2;
return "";
}
return output_return_instruction (operands[0], TRUE, FALSE);
}
}
static const char *
output_280 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
{
extern int arm_ccfsm_state;
if (arm_ccfsm_state == 2)
{
arm_ccfsm_state += 2;
return "";
}
return output_return_instruction (operands[0], TRUE, TRUE);
}
}
static const char *
output_284 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
if (flag_pic)
return "cmp\t%0, %1\n\taddls\t%|pc, %|pc, %0, asl #2\n\tb\t%l3";
return "cmp\t%0, %1\n\tldrls\t%|pc, [%|pc, %0, asl #2]\n\tb\t%l3";
}
static const char *
output_294 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
output_asm_insn ("add%?\t%0, %2, %3%S5", operands);
operands[2] = operands[1];
operands[1] = operands[0];
return output_add_immediate (operands);
}
static const char *
output_295 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
output_add_immediate (operands);
return "add%?s\t%0, %0, %3%S5";
}
static const char *
output_296 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
output_add_immediate (operands);
return "add%?s\t%0, %0, %3%S5";
}
static const char *
output_297 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
output_asm_insn ("mla%?\t%0, %2, %1, %3", operands);
operands[2] = operands[4];
operands[1] = operands[0];
return output_add_immediate (operands);
}
static const char *
output_298 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
output_add_immediate (operands);
output_asm_insn ("mla%?s\t%0, %3, %4, %0", operands);
return "";
}
static const char *
output_299 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
output_add_immediate (operands);
return "mla%?s\t%0, %3, %4, %0";
}
static const char *
output_301 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_301[] = {
"orr%d2\t%0, %1, #1",
"mov%D2\t%0, %1\n\torr%d2\t%0, %1, #1",
};
return strings_301[which_alternative];
}
static const char *
output_302 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
if (GET_CODE (operands[1]) == LT && operands[3] == const0_rtx)
return "mov\t%0, %2, lsr #31";
if (GET_CODE (operands[1]) == GE && operands[3] == const0_rtx)
return "mvn\t%0, %2\n\tmov\t%0, %0, lsr #31";
if (GET_CODE (operands[1]) == NE)
{
if (which_alternative == 1)
return "adds\t%0, %2, #%n3\n\tmovne\t%0, #1";
return "subs\t%0, %2, %3\n\tmovne\t%0, #1";
}
if (which_alternative == 1)
output_asm_insn ("cmn\t%2, #%n3", operands);
else
output_asm_insn ("cmp\t%2, %3", operands);
return "mov%D1\t%0, #0\n\tmov%d1\t%0, #1";
}
static const char *
output_303 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
if (GET_CODE (operands[3]) == NE)
{
if (which_alternative != 1)
output_asm_insn ("mov%D4\t%0, %2", operands);
if (which_alternative != 0)
output_asm_insn ("mov%d4\t%0, %1", operands);
return "";
}
if (which_alternative != 0)
output_asm_insn ("mov%D4\t%0, %1", operands);
if (which_alternative != 1)
output_asm_insn ("mov%d4\t%0, %2", operands);
return "";
}
static const char *
output_304 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
if (GET_CODE (operands[4]) == LT && operands[3] == const0_rtx)
return "%i5\t%0, %1, %2, lsr #31";
output_asm_insn ("cmp\t%2, %3", operands);
if (GET_CODE (operands[5]) == AND)
output_asm_insn ("mov%D4\t%0, #0", operands);
else if (GET_CODE (operands[5]) == MINUS)
output_asm_insn ("rsb%D4\t%0, %1, #0", operands);
else if (which_alternative != 0)
output_asm_insn ("mov%D4\t%0, %1", operands);
return "%i5%d4\t%0, %1, #1";
}
static const char *
output_305 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
output_asm_insn ("cmp\t%2, %3", operands);
if (which_alternative != 0)
output_asm_insn ("mov%D4\t%0, %1", operands);
return "sub%d4\t%0, %1, #1";
}
static const char *
output_306 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
{
char* opcodes[4][2] =
{
{"cmp\t%2, %3\n\tcmp%d5\t%0, %1","cmp\t%0, %1\n\tcmp%d4\t%2, %3"},
{"cmp\t%2, %3\n\tcmn%d5\t%0, #%n1", "cmn\t%0, #%n1\n\tcmp%d4\t%2, %3"},
{"cmn\t%2, #%n3\n\tcmp%d5\t%0, %1", "cmp\t%0, %1\n\tcmn%d4\t%2, #%n3"},
{"cmn\t%2, #%n3\n\tcmn%d5\t%0, #%n1",
"cmn\t%0, #%n1\n\tcmn%d4\t%2, #%n3"}
};
int swap =
comparison_dominates_p (GET_CODE (operands[5]), GET_CODE (operands[4]));
return opcodes[which_alternative][swap];
}
}
static const char *
output_307 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
{
char* opcodes[4][2] =
{
{"cmp\t%0, %1\n\tcmp%d4\t%2, %3", "cmp\t%2, %3\n\tcmp%D5\t%0, %1"},
{"cmn\t%0, #%n1\n\tcmp%d4\t%2, %3", "cmp\t%2, %3\n\tcmn%D5\t%0, #%n1"},
{"cmp\t%0, %1\n\tcmn%d4\t%2, #%n3", "cmn\t%2, #%n3\n\tcmp%D5\t%0, %1"},
{"cmn\t%0, #%n1\n\tcmn%d4\t%2, #%n3",
"cmn\t%2, #%n3\n\tcmn%D5\t%0, #%n1"}
};
int swap =
comparison_dominates_p (GET_CODE (operands[5]),
reverse_condition (GET_CODE (operands[4])));
return opcodes[which_alternative][swap];
}
}
static const char *
output_308 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
if (GET_CODE (operands[3]) == LT && operands[3] == const0_rtx)
return "mov\t%0, %1, asr #31";
if (GET_CODE (operands[3]) == NE)
return "subs\t%0, %1, %2\n\tmvnne\t%0, #0";
if (GET_CODE (operands[3]) == GT)
return "subs\t%0, %1, %2\n\tmvnne\t%0, %0, asr #31";
output_asm_insn ("cmp\t%1, %2", operands);
output_asm_insn ("mov%D3\t%0, #0", operands);
return "mvn%d3\t%0, #0";
}
static const char *
output_309 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
if (GET_CODE (operands[5]) == LT
&& (operands[4] == const0_rtx))
{
if (which_alternative != 1 && GET_CODE (operands[1]) == REG)
{
if (operands[2] == const0_rtx)
return "and\t%0, %1, %3, asr #31";
return "ands\t%0, %1, %3, asr #32\n\tmovcc\t%0, %2";
}
else if (which_alternative != 0 && GET_CODE (operands[2]) == REG)
{
if (operands[1] == const0_rtx)
return "bic\t%0, %2, %3, asr #31";
return "bics\t%0, %2, %3, asr #32\n\tmovcs\t%0, %1";
}
/* The only case that falls through to here is when both ops 1 & 2
are constants */
}
if (GET_CODE (operands[5]) == GE
&& (operands[4] == const0_rtx))
{
if (which_alternative != 1 && GET_CODE (operands[1]) == REG)
{
if (operands[2] == const0_rtx)
return "bic\t%0, %1, %3, asr #31";
return "bics\t%0, %1, %3, asr #32\n\tmovcs\t%0, %2";
}
else if (which_alternative != 0 && GET_CODE (operands[2]) == REG)
{
if (operands[1] == const0_rtx)
return "and\t%0, %2, %3, asr #31";
return "ands\t%0, %2, %3, asr #32\n\tmovcc\t%0, %1";
}
/* The only case that falls through to here is when both ops 1 & 2
are constants */
}
if (GET_CODE (operands[4]) == CONST_INT
&& !const_ok_for_arm (INTVAL (operands[4])))
output_asm_insn ("cmn\t%3, #%n4", operands);
else
output_asm_insn ("cmp\t%3, %4", operands);
if (which_alternative != 0)
output_asm_insn ("mov%d5\t%0, %1", operands);
if (which_alternative != 1)
output_asm_insn ("mov%D5\t%0, %2", operands);
return "";
}
static const char *
output_311 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_311[] = {
"add%d4\t%0, %2, %3",
"sub%d4\t%0, %2, #%n3",
"add%d4\t%0, %2, %3\n\tmov%D4\t%0, %1",
"sub%d4\t%0, %2, #%n3\n\tmov%D4\t%0, %1",
};
return strings_311[which_alternative];
}
static const char *
output_313 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_313[] = {
"add%D4\t%0, %2, %3",
"sub%D4\t%0, %2, #%n3",
"add%D4\t%0, %2, %3\n\tmov%d4\t%0, %1",
"sub%D4\t%0, %2, #%n3\n\tmov%d4\t%0, %1",
};
return strings_313[which_alternative];
}
static const char *
output_316 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
/* If we have an operation where (op x 0) is the identity operation and
the conditional operator is LT or GE and we are comparing against zero and
everything is in registers then we can do this in two instructions */
if (operands[3] == const0_rtx
&& GET_CODE (operands[7]) != AND
&& GET_CODE (operands[5]) == REG
&& GET_CODE (operands[1]) == REG
&& REGNO (operands[1]) == REGNO (operands[4])
&& REGNO (operands[4]) != REGNO (operands[0]))
{
if (GET_CODE (operands[6]) == LT)
return "and\t%0, %5, %2, asr #31\n\t%I7\t%0, %4, %0";
else if (GET_CODE (operands[6]) == GE)
return "bic\t%0, %5, %2, asr #31\n\t%I7\t%0, %4, %0";
}
if (GET_CODE (operands[3]) == CONST_INT
&& !const_ok_for_arm (INTVAL (operands[3])))
output_asm_insn ("cmn\t%2, #%n3", operands);
else
output_asm_insn ("cmp\t%2, %3", operands);
output_asm_insn ("%I7%d6\t%0, %4, %5", operands);
if (which_alternative != 0)
return "mov%D6\t%0, %1";
return "";
}
static const char *
output_317 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_317[] = {
"%I5%d4\t%0, %2, %3",
"%I5%d4\t%0, %2, %3\n\tmov%D4\t%0, %1",
};
return strings_317[which_alternative];
}
static const char *
output_318 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
/* If we have an operation where (op x 0) is the identity operation and
the conditional operator is LT or GE and we are comparing against zero and
everything is in registers then we can do this in two instructions */
if (operands[5] == const0_rtx
&& GET_CODE (operands[7]) != AND
&& GET_CODE (operands[3]) == REG
&& GET_CODE (operands[1]) == REG
&& REGNO (operands[1]) == REGNO (operands[2])
&& REGNO (operands[2]) != REGNO (operands[0]))
{
if (GET_CODE (operands[6]) == GE)
return "and\t%0, %3, %4, asr #31\n\t%I7\t%0, %2, %0";
else if (GET_CODE (operands[6]) == LT)
return "bic\t%0, %3, %4, asr #31\n\t%I7\t%0, %2, %0";
}
if (GET_CODE (operands[5]) == CONST_INT
&& !const_ok_for_arm (INTVAL (operands[5])))
output_asm_insn ("cmn\t%4, #%n5", operands);
else
output_asm_insn ("cmp\t%4, %5", operands);
if (which_alternative != 0)
output_asm_insn ("mov%d6\t%0, %1", operands);
return "%I7%D6\t%0, %2, %3";
}
static const char *
output_319 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_319[] = {
"%I5%D4\t%0, %2, %3",
"%I5%D4\t%0, %2, %3\n\tmov%d4\t%0, %1",
};
return strings_319[which_alternative];
}
static const char *
output_321 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_321[] = {
"mvn%D4\t%0, %2",
"mov%d4\t%0, %1\n\tmvn%D4\t%0, %2",
"mvn%d4\t%0, #%B1\n\tmvn%D4\t%0, %2",
};
return strings_321[which_alternative];
}
static const char *
output_323 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_323[] = {
"mvn%d4\t%0, %2",
"mov%D4\t%0, %1\n\tmvn%d4\t%0, %2",
"mvn%D4\t%0, #%B1\n\tmvn%d4\t%0, %2",
};
return strings_323[which_alternative];
}
static const char *
output_325 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_325[] = {
"mov%d5\t%0, %2%S4",
"mov%D5\t%0, %1\n\tmov%d5\t%0, %2%S4",
"mvn%D5\t%0, #%B1\n\tmov%d5\t%0, %2%S4",
};
return strings_325[which_alternative];
}
static const char *
output_327 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_327[] = {
"mov%D5\t%0, %2%S4",
"mov%d5\t%0, %1\n\tmov%D5\t%0, %2%S4",
"mvn%d5\t%0, #%B1\n\tmov%D5\t%0, %2%S4",
};
return strings_327[which_alternative];
}
static const char *
output_335 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_335[] = {
"rsb%d4\t%0, %2, #0",
"mov%D4\t%0, %1\n\trsb%d4\t%0, %2, #0",
"mvn%D4\t%0, #%B1\n\trsb%d4\t%0, %2, #0",
};
return strings_335[which_alternative];
}
static const char *
output_337 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
static const char *const strings_337[] = {
"rsb%D4\t%0, %2, #0",
"mov%d4\t%0, %1\n\trsb%D4\t%0, %2, #0",
"mvn%d4\t%0, #%B1\n\trsb%D4\t%0, %2, #0",
};
return strings_337[which_alternative];
}
static const char *
output_338 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
{
rtx ldm[3];
rtx arith[4];
int val1 = 0, val2 = 0;
if (REGNO (operands[0]) > REGNO (operands[4]))
{
ldm[1] = operands[4];
ldm[2] = operands[0];
}
else
{
ldm[1] = operands[0];
ldm[2] = operands[4];
}
if (GET_CODE (XEXP (operands[2], 0)) != REG)
val1 = INTVAL (XEXP (XEXP (operands[2], 0), 1));
if (GET_CODE (XEXP (operands[3], 0)) != REG)
val2 = INTVAL (XEXP (XEXP (operands[3], 0), 1));
arith[0] = operands[0];
arith[3] = operands[1];
if (val1 < val2)
{
arith[1] = ldm[1];
arith[2] = ldm[2];
}
else
{
arith[1] = ldm[2];
arith[2] = ldm[1];
}
if (val1 && val2)
{
rtx ops[3];
ldm[0] = ops[0] = operands[4];
ops[1] = XEXP (XEXP (operands[2], 0), 0);
ops[2] = XEXP (XEXP (operands[2], 0), 1);
output_add_immediate (ops);
if (val1 < val2)
output_asm_insn ("ldm%?ia\t%0, {%1, %2}", ldm);
else
output_asm_insn ("ldm%?da\t%0, {%1, %2}", ldm);
}
else if (val1)
{
ldm[0] = XEXP (operands[3], 0);
if (val1 < val2)
output_asm_insn ("ldm%?da\t%0, {%1, %2}", ldm);
else
output_asm_insn ("ldm%?ia\t%0, {%1, %2}", ldm);
}
else
{
ldm[0] = XEXP (operands[2], 0);
if (val1 < val2)
output_asm_insn ("ldm%?ia\t%0, {%1, %2}", ldm);
else
output_asm_insn ("ldm%?da\t%0, {%1, %2}", ldm);
}
output_asm_insn ("%I3%?\t%0, %1, %2", arith);
return "";
}
}
static const char *
output_369 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
return emit_ldm_seq (operands, 4);
}
static const char *
output_370 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
return emit_ldm_seq (operands, 3);
}
static const char *
output_371 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
return emit_ldm_seq (operands, 2);
}
static const char *
output_372 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
return emit_stm_seq (operands, 4);
}
static const char *
output_373 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
return emit_stm_seq (operands, 3);
}
static const char *
output_374 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
return emit_stm_seq (operands, 2);
}
static const char *
output_375 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
{
extern rtx arm_target_insn;
extern int arm_ccfsm_state;
if (arm_ccfsm_state && arm_target_insn && INSN_DELETED_P (arm_target_insn))
{
arm_current_cc = ARM_INVERSE_CONDITION_CODE (arm_current_cc);
output_return_instruction (NULL, TRUE, FALSE);
arm_ccfsm_state = 0;
arm_target_insn = NULL;
}
output_return_instruction (NULL, FALSE, FALSE);
return NEED_PLT_GOT ? "b%?\t%a0(PLT)" : "b%?\t%a0";
}
}
static const char *
output_376 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
{
extern rtx arm_target_insn;
extern int arm_ccfsm_state;
if (arm_ccfsm_state && arm_target_insn && INSN_DELETED_P (arm_target_insn))
{
arm_current_cc = ARM_INVERSE_CONDITION_CODE (arm_current_cc);
output_return_instruction (NULL, TRUE, FALSE);
arm_ccfsm_state = 0;
arm_target_insn = NULL;
}
output_return_instruction (NULL, FALSE, FALSE);
return NEED_PLT_GOT ? "b%?\t%a1(PLT)" : "b%?\t%a1";
}
}
static const char *
output_377 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
{
extern rtx arm_target_insn;
extern int arm_ccfsm_state;
if (arm_ccfsm_state && arm_target_insn && INSN_DELETED_P (arm_target_insn))
{
arm_current_cc = ARM_INVERSE_CONDITION_CODE (arm_current_cc);
output_return_instruction (NULL, TRUE, FALSE);
arm_ccfsm_state = 0;
arm_target_insn = NULL;
}
output_return_instruction (NULL, FALSE, FALSE);
return "b%?\t%a1";
}
}
static const char *
output_382 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
operands[2] = GEN_INT (1 << INTVAL (operands[2]));
output_asm_insn ("ands\t%0, %1, %2", operands);
return "mvnne\t%0, #0";
}
static const char *
output_383 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
operands[2] = GEN_INT (1 << INTVAL (operands[2]));
output_asm_insn ("tst\t%1, %2", operands);
output_asm_insn ("mvneq\t%0, #0", operands);
return "movne\t%0, #0";
}
static const char *
output_384 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
{
char pattern[100];
int i;
extern int lr_save_eliminated;
if (lr_save_eliminated)
{
if (XVECLEN (operands[2], 0) > 1)
abort ();
return "";
}
strcpy (pattern, "stmfd\t%m0!, {%1");
for (i = 1; i < XVECLEN (operands[2], 0); i++)
{
strcat (pattern, ", %|");
strcat (pattern, reg_names[REGNO (XEXP (XVECEXP (operands[2], 0, i),
0))]);
}
strcat (pattern, "}");
output_asm_insn (pattern, operands);
return "";
}
}
static const char *
output_385 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
{
char pattern[100];
sprintf (pattern, "sfmfd\t%%1, %d, [%%m0]!", XVECLEN (operands[2], 0));
output_asm_insn (pattern, operands);
return "";
}
}
static const char *
output_386 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
{
making_const_table = TRUE;
switch (GET_MODE_CLASS (GET_MODE (operands[0])))
{
case MODE_FLOAT:
{
union real_extract u;
bcopy ((char *) &CONST_DOUBLE_LOW (operands[0]), (char *) &u, sizeof u);
assemble_real (u.d, GET_MODE (operands[0]));
break;
}
default:
assemble_integer (operands[0], 4, 1);
break;
}
return "";
}
}
static const char *
output_387 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
{
making_const_table = TRUE;
switch (GET_MODE_CLASS (GET_MODE (operands[0])))
{
case MODE_FLOAT:
{
union real_extract u;
bcopy ((char *) &CONST_DOUBLE_LOW (operands[0]), (char *) &u, sizeof u);
assemble_real (u.d, GET_MODE (operands[0]));
break;
}
default:
assemble_integer (operands[0], 8, 1);
break;
}
return "";
}
}
static const char *
output_388 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
making_const_table = FALSE;
return "";
}
static const char *
output_389 (operands, insn)
rtx *operands ATTRIBUTE_UNUSED;
rtx insn ATTRIBUTE_UNUSED;
{
assemble_align (32);
return "";
}
const char * const insn_template[] =
{
"adds\t%Q0, %Q1, %Q2\n\tadc\t%R0, %R1, %R2",
"adds\t%Q0, %Q1, %2\n\tadc\t%R0, %R1, %2, asr #31",
"adds\t%Q0, %Q1, %2\n\tadc\t%R0, %R1, #0",
0,
0,
0,
0,
0,
0,
0,
0,
0,
"adc%?\t%0, %1, %2",
"adc%?\t%0, %1, %2",
"adc%?\t%0, %1, %2",
"adc%?\t%0, %1, %2",
0,
0,
0,
0,
0,
"adf%?d\t%0, %1, %2",
"adf%?d\t%0, %1, %2",
0,
"subs\t%Q0, %Q1, %Q2\n\tsbc\t%R0, %R1, %R2",
"subs\t%Q0, %Q1, %2\n\tsbc\t%R0, %R1, #0",
"subs\t%Q0, %Q1, %2\n\tsbc\t%R0, %R1, %2, asr #31",
"rsbs\t%Q0, %Q1, %2\n\trsc\t%R0, %R1, #0",
"rsbs\t%Q0, %Q1, %2\n\trsc\t%R0, %R1, %2, asr #31",
"subs\t%Q0, %1, %2\n\trsc\t%R0, %1, %1",
0,
0,
0,
0,
0,
0,
0,
"suf%?d\t%0, %1, %2",
0,
"suf%?d\t%0, %1, %2",
0,
"mul%?\t%0, %2, %1",
"mul%?s\t%0, %2, %1",
"mul%?s\t%0, %2, %1",
"mla%?\t%0, %2, %1, %3",
"mla%?s\t%0, %2, %1, %3",
"mla%?s\t%0, %2, %1, %3",
"smull%?\t%Q0, %R0, %1, %2",
"umull%?\t%Q0, %R0, %1, %2",
"smull%?\t%3, %0, %2, %1",
"umull%?\t%3, %0, %2, %1",
"fml%?s\t%0, %1, %2",
"muf%?d\t%0, %1, %2",
"muf%?d\t%0, %1, %2",
"muf%?d\t%0, %1, %2",
"muf%?d\t%0, %1, %2",
"muf%?e\t%0, %1, %2",
0,
0,
"dvf%?d\t%0, %1, %2",
"rdf%?d\t%0, %2, %1",
"dvf%?d\t%0, %1, %2",
0,
"rmf%?s\t%0, %1, %2",
"rmf%?d\t%0, %1, %2",
"rmf%?d\t%0, %1, %2",
"rmf%?d\t%0, %1, %2",
"rmf%?d\t%0, %1, %2",
"rmf%?e\t%0, %1, %2",
"and%?\t%Q0, %Q1, %Q2\n\tand%?\t%R0, %R1, %R2",
"and%?\t%Q0, %Q1, %2\n\tmov%?\t%R0, #0",
"and%?\t%Q0, %Q1, %2\n\tand%?\t%R0, %R1, %2, asr #31",
0,
0,
0,
0,
0,
0,
0,
0,
"bic%?\t%Q0, %Q1, %Q2\n\tbic%?\t%R0, %R1, %R2",
0,
"bic%?\t%Q0, %Q1, %2\n\tbic%?\t%R0, %R1, %2, asr #31",
"bic%?\t%0, %1, %2",
"bic%?\t%0, %1, %2%S4",
"bic%?s\t%0, %1, %2",
"bic%?s\t%0, %1, %2",
"orr%?\t%Q0, %Q1, %Q2\n\torr%?\t%R0, %R1, %R2",
0,
"orr%?\t%Q0, %Q1, %2\n\torr%?\t%R0, %R1, %2, asr #31",
0,
0,
0,
"orr%?s\t%0, %1, %2",
"orr%?s\t%0, %1, %2",
"eor%?\t%Q0, %Q1, %Q2\n\teor%?\t%R0, %R1, %R2",
0,
"eor%?\t%Q0, %Q1, %2\n\teor%?\t%R0, %R1, %2, asr #31",
"eor%?\t%0, %1, %2",
"eor%?s\t%0, %1, %2",
"teq%?\t%0, %1",
0,
"orr%?\t%0, %1, %2\n\tbic%?\t%0, %0, %3",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
"mov%?\t%0, %1%S3",
"mov%?s\t%0, %1%S3",
"mov%?s\t%0, %1%S3",
"mvn%?\t%0, %1%S3",
"mvn%?s\t%0, %1%S3",
"mvn%?s\t%0, %1%S3",
"rsbs\t%Q0, %Q1, #0\n\trsc\t%R0, %R1, #0",
"rsb%?\t%0, %1, #0",
"mnf%?s\t%0, %1",
"mnf%?d\t%0, %1",
"mnf%?d\t%0, %1",
"mnf%?e\t%0, %1",
0,
0,
"abs%?s\t%0, %1",
"abs%?d\t%0, %1",
"abs%?d\t%0, %1",
"abs%?e\t%0, %1",
"sqt%?s\t%0, %1",
"sqt%?d\t%0, %1",
"sqt%?d\t%0, %1",
"sqt%?e\t%0, %1",
"mvn%?\t%Q0, %Q1\n\tmvn%?\t%R0, %R1",
"mvn%?\t%0, %1",
"mvn%?s\t%0, %1",
"mvn%?s\t%0, %1",
"flt%?s\t%0, %1",
"flt%?d\t%0, %1",
"flt%?e\t%0, %1",
"fix%?z\t%0, %1",
"fix%?z\t%0, %1",
"fix%?z\t%0, %1",
"mvf%?s\t%0, %1",
"mvf%?s\t%0, %1",
"mvf%?d\t%0, %1",
0,
"and%?\t%Q0, %1, #255\n\tmov%?\t%R0, #0",
0,
0,
"ldr%?h\t%0, %1",
0,
0,
0,
"ldr%?b\t%0, %1\t%@ zero_extendqisi2",
0,
"tst\t%0, #255",
0,
0,
"ldr%?sh\t%0, %1",
0,
0,
0,
0,
0,
0,
0,
0,
"mvf%?d\t%0, %1",
"mvf%?e\t%0, %1",
"mvf%?e\t%0, %1",
0,
0,
0,
0,
0,
"adr%?\t%0, %a1",
"ldr%?\t%0, %a1",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
"ldr%?\t%0, %1\t%@ movhi_bigend",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
"cmp%?\t%0, %1%S3",
"cmp%?\t%0, %1%S3",
"cmn%?\t%0, %1%S3",
0,
0,
0,
"cmf%?\t%0, %1",
0,
0,
0,
0,
"cmf%?e\t%0, %1",
0,
"\t%@ deleted compare",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
"mov%D1\t%0, #0\n\tmov%d1\t%0, #1",
"mov%D1\t%0, #0\n\tmvn%d1\t%0, #0",
"mov%D1\t%0, #0\n\tmvn%d1\t%0, #1",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
"",
0,
0,
"mov%?\t%|pc, %0\t%@ indirect jump",
"ldr%?\t%|pc, %0\t%@ indirect jump",
"mov%?\t%|r0, %|r0\t%@ nop",
"%i1%?\t%0, %2, %4%S3",
"%i1%?s\t%0, %2, %4%S3",
"%i1%?s\t%0, %2, %4%S3",
"sub%?\t%0, %1, %3%S2",
"sub%?s\t%0, %1, %3%S2",
"sub%?s\t%0, %1, %3%S2",
0,
0,
0,
0,
0,
0,
"mov%D1\t%0, #0\n\tand%d1\t%0, %2, #1",
0,
0,
0,
0,
0,
0,
0,
0,
0,
"#",
0,
"#",
0,
"#",
"%I6%d5\t%0, %1, %2\n\t%I7%D5\t%0, %3, %4",
0,
0,
0,
0,
"#",
0,
"#",
0,
"#",
0,
"#",
0,
"#",
"mov%d5\t%0, %1%S6\n\tmov%D5\t%0, %3%S7",
"#",
"mvn%d5\t%0, %1\n\t%I6%D5\t%0, %2, %3",
"#",
"mvn%D5\t%0, %1\n\t%I6%d5\t%0, %2, %3",
"#",
0,
"#",
0,
0,
"str%?b\t%3, [%0, %2]!",
"str%?b\t%3, [%0, -%2]!",
"ldr%?b\t%3, [%0, %2]!",
"ldr%?b\t%3, [%0, -%2]!",
"ldr%?b\t%3, [%0, %2]!\t%@ z_extendqisi",
"ldr%?b\t%3, [%0, -%2]!\t%@ z_extendqisi",
"str%?\t%3, [%0, %2]!",
"str%?\t%3, [%0, -%2]!",
"ldr%?\t%3, [%0, %2]!",
"ldr%?\t%3, [%0, -%2]!",
"ldr%?\t%3, [%0, %2]!\t%@ loadhi",
"ldr%?\t%3, [%0, -%2]!\t%@ loadhi",
"str%?b\t%5, [%0, %3%S2]!",
"str%?b\t%5, [%0, -%3%S2]!",
"ldr%?b\t%5, [%0, %3%S2]!",
"ldr%?b\t%5, [%0, -%3%S2]!",
"str%?\t%5, [%0, %3%S2]!",
"str%?\t%5, [%0, -%3%S2]!",
"ldr%?\t%5, [%0, %3%S2]!",
"ldr%?\t%5, [%0, -%3%S2]!",
"ldr%?\t%5, [%0, %3%S2]!\t%@ loadhi",
"ldr%?\t%5, [%0, -%3%S2]!\t%@ loadhi",
"str%?b\t%2, [%0], %1",
"ldr%?b\t%0, [%1], %2",
"str%?\t%2, [%0], %1",
"ldr%?\t%0, [%1], %2\t%@ loadhi",
"ldr%?\t%0, [%1], %2",
"str%?b\t%2, [%0, %1]!",
"str%?b\t%3, [%2, %0%S4]!",
"sub%?s\t%0, %1, #0",
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
};
const char *(*const insn_outfun[])() =
{
0,
0,
0,
0,
0,
output_5,
output_6,
output_7,
output_8,
output_9,
output_10,
output_11,
0,
0,
0,
0,
output_16,
0,
output_18,
output_19,
output_20,
0,
0,
output_23,
0,
0,
0,
0,
0,
0,
0,
output_31,
0,
output_33,
output_34,
output_35,
output_36,
0,
output_38,
0,
output_40,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
output_57,
output_58,
0,
0,
0,
output_62,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
output_73,
0,
output_75,
output_76,
output_77,
output_78,
0,
0,
output_81,
0,
0,
0,
0,
0,
0,
output_88,
0,
0,
output_91,
0,
0,
0,
0,
output_96,
0,
0,
0,
0,
0,
0,
output_103,
output_104,
output_105,
output_106,
output_107,
output_108,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
output_126,
output_127,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
output_149,
0,
output_151,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
output_166,
0,
0,
output_169,
0,
0,
0,
0,
output_174,
0,
output_176,
0,
0,
0,
0,
0,
output_182,
output_183,
output_184,
0,
0,
0,
0,
0,
output_190,
0,
0,
output_193,
output_194,
output_195,
0,
output_197,
0,
0,
0,
output_201,
0,
output_203,
output_204,
0,
0,
output_207,
output_208,
0,
output_210,
0,
output_212,
output_213,
0,
output_215,
output_216,
0,
0,
0,
0,
0,
output_222,
0,
0,
0,
output_226,
output_227,
output_228,
0,
output_230,
output_231,
output_232,
output_233,
0,
output_235,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
output_247,
output_248,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
output_265,
output_266,
output_267,
output_268,
output_269,
0,
output_271,
output_272,
0,
output_274,
output_275,
output_276,
output_277,
output_278,
output_279,
output_280,
0,
0,
0,
output_284,
0,
0,
0,
0,
0,
0,
0,
0,
0,
output_294,
output_295,
output_296,
output_297,
output_298,
output_299,
0,
output_301,
output_302,
output_303,
output_304,
output_305,
output_306,
output_307,
output_308,
output_309,
0,
output_311,
0,
output_313,
0,
0,
output_316,
output_317,
output_318,
output_319,
0,
output_321,
0,
output_323,
0,
output_325,
0,
output_327,
0,
0,
0,
0,
0,
0,
0,
output_335,
0,
output_337,
output_338,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
output_369,
output_370,
output_371,
output_372,
output_373,
output_374,
output_375,
output_376,
output_377,
0,
0,
0,
0,
output_382,
output_383,
output_384,
output_385,
output_386,
output_387,
output_388,
output_389,
};
rtx (*const insn_gen_function[]) () =
{
gen_adddi3,
0,
0,
gen_addsi3,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
gen_incscc,
0,
gen_addsf3,
gen_adddf3,
0,
0,
0,
gen_addxf3,
gen_subdi3,
0,
0,
0,
0,
0,
gen_subsi3,
0,
0,
0,
gen_decscc,
gen_subsf3,
gen_subdf3,
0,
0,
0,
gen_subxf3,
gen_mulsi3,
0,
0,
0,
0,
0,
gen_mulsidi3,
gen_umulsidi3,
gen_smulsi3_highpart,
gen_umulsi3_highpart,
gen_mulsf3,
gen_muldf3,
0,
0,
0,
gen_mulxf3,
gen_divsf3,
gen_divdf3,
0,
0,
0,
gen_divxf3,
gen_modsf3,
gen_moddf3,
0,
0,
0,
gen_modxf3,
gen_anddi3,
0,
0,
gen_andsi3,
0,
0,
0,
0,
0,
0,
gen_insv,
0,
0,
0,
gen_andsi_notsi_si,
gen_andsi_not_shiftsi_si,
0,
0,
gen_iordi3,
0,
0,
gen_iorsi3,
0,
0,
0,
0,
gen_xordi3,
0,
0,
gen_xorsi3,
0,
0,
0,
0,
gen_smaxsi3,
gen_sminsi3,
gen_umaxsi3,
gen_uminsi3,
0,
0,
gen_ashlsi3,
gen_ashrsi3,
gen_lshrsi3,
gen_rotlsi3,
gen_rotrsi3,
0,
0,
0,
0,
0,
0,
gen_negdi2,
gen_negsi2,
gen_negsf2,
gen_negdf2,
0,
gen_negxf2,
gen_abssi2,
0,
gen_abssf2,
gen_absdf2,
0,
gen_absxf2,
gen_sqrtsf2,
gen_sqrtdf2,
0,
gen_sqrtxf2,
gen_one_cmpldi2,
gen_one_cmplsi2,
0,
0,
gen_floatsisf2,
gen_floatsidf2,
gen_floatsixf2,
gen_fix_truncsfsi2,
gen_fix_truncdfsi2,
gen_fix_truncxfsi2,
gen_truncdfsf2,
gen_truncxfsf2,
gen_truncxfdf2,
gen_zero_extendsidi2,
gen_zero_extendqidi2,
gen_extendsidi2,
gen_zero_extendhisi2,
0,
0,
0,
gen_zero_extendqisi2,
0,
0,
0,
gen_extendhisi2,
gen_extendhisi2_mem,
0,
0,
0,
gen_extendqihi2,
0,
0,
gen_extendqisi2,
0,
0,
gen_extendsfdf2,
gen_extendsfxf2,
gen_extenddfxf2,
gen_movdi,
gen_movsi,
0,
0,
gen_movaddr,
0,
gen_pic_load_addr,
gen_pic_load_addr_based,
0,
gen_pic_add_dot_plus_eight,
0,
gen_storehi,
gen_storehi_bigend,
gen_storeinthi,
gen_storehi_single_op,
gen_movhi,
gen_rotated_loadsi,
gen_movhi_bytes,
gen_movhi_bigend,
0,
0,
0,
0,
0,
gen_reload_outhi,
gen_reload_inhi,
gen_movqi,
0,
gen_movsf,
0,
0,
gen_movdf,
gen_reload_outdf,
0,
0,
gen_movxf,
0,
gen_load_multiple,
0,
0,
gen_store_multiple,
0,
0,
gen_movstrqi,
gen_cmpsi,
gen_cmpsf,
gen_cmpdf,
gen_cmpxf,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
gen_beq,
gen_bne,
gen_bgt,
gen_ble,
gen_bge,
gen_blt,
gen_bgtu,
gen_bleu,
gen_bgeu,
gen_bltu,
0,
0,
gen_seq,
gen_sne,
gen_sgt,
gen_sle,
gen_sge,
gen_slt,
gen_sgtu,
gen_sleu,
gen_sgeu,
gen_sltu,
0,
0,
0,
gen_movsicc,
gen_movsfcc,
gen_movdfcc,
0,
0,
0,
0,
gen_jump,
gen_call,
0,
0,
gen_call_value,
0,
0,
0,
0,
gen_return,
0,
0,
gen_untyped_call,
gen_blockage,
gen_casesi,
gen_casesi_internal,
gen_indirect_jump,
0,
gen_nop,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
gen_movcond,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
gen_prologue,
0,
0,
0,
0,
0,
gen_consttable_4,
gen_consttable_8,
gen_consttable_end,
gen_align_4,
};
const char *insn_name[] =
{
"adddi3",
"*adddi_sesidi_di",
"*adddi_zesidi_di",
"addsi3",
"addsi3+1",
"*addsi3_insn",
"*addsi3_compare0",
"*addsi3_compare0_scratch",
"*addsi3_compare_op1",
"*addsi3_compare_op2",
"*compare_addsi2_op0",
"*compare_addsi2_op1",
"*addsi3_carryin",
"*addsi3_carryin_alt1",
"*addsi3_carryin_alt2",
"*addsi3_carryin_alt3",
"incscc",
"incscc+1",
"addsf3",
"adddf3",
"*adddf_df_esfdf",
"*adddf_df_esfdf",
"*adddf_esfdf_esfdf",
"addxf3",
"subdi3",
"*subdi_di_zesidi",
"*subdi_di_sesidi",
"*subdi_zesidi_di",
"*subdi_sesidi_di",
"*subdi_zesidi_zesidi",
"subsi3",
"*subsi3_insn",
"*subsi3_insn+1",
"*subsi3_compare0",
"decscc",
"subsf3",
"subdf3",
"*subdf_esfdf_df",
"*subdf_df_esfdf",
"*subdf_esfdf_esfdf",
"subxf3",
"mulsi3",
"*mulsi3_compare0",
"*mulsi_compare0_scratch",
"*mulsi3addsi",
"*mulsi3addsi_compare0",
"*mulsi3addsi_compare0_scratch",
"mulsidi3",
"umulsidi3",
"smulsi3_highpart",
"umulsi3_highpart",
"mulsf3",
"muldf3",
"*muldf_esfdf_df",
"*muldf_df_esfdf",
"*muldf_esfdf_esfdf",
"mulxf3",
"divsf3",
"divdf3",
"*divdf_esfdf_df",
"*divdf_df_esfdf",
"*divdf_esfdf_esfdf",
"divxf3",
"modsf3",
"moddf3",
"*moddf_esfdf_df",
"*moddf_df_esfdf",
"*moddf_esfdf_esfdf",
"modxf3",
"anddi3",
"*anddi_zesidi_di",
"*anddi_sesdi_di",
"andsi3",
"*andsi3_insn",
"*andsi3_insn+1",
"*andsi3_compare0",
"*andsi3_compare0_scratch",
"*zeroextractsi_compare0_scratch",
"*ne_zeroextractsi",
"insv",
"*anddi_notdi_di",
"*anddi_notzesidi_di",
"*anddi_notsesidi_di",
"andsi_notsi_si",
"andsi_not_shiftsi_si",
"*andsi_notsi_si_compare0",
"*andsi_notsi_si_compare0_scratch",
"iordi3",
"*iordi_zesidi_di",
"*iordi_sesidi_di",
"iorsi3",
"*iorsi3_insn",
"*iorsi3_insn+1",
"*iorsi3_compare0",
"*iorsi3_compare0_scratch",
"xordi3",
"*xordi_zesidi_di",
"*xordi_sesidi_di",
"xorsi3",
"*xorsi3_compare0",
"*xorsi3_compare0_scratch",
"*xorsi3_compare0_scratch+1",
"*andsi_iorsi3_notsi",
"smaxsi3",
"sminsi3",
"umaxsi3",
"uminsi3",
"*store_minmaxsi",
"*minmax_arithsi",
"ashlsi3",
"ashrsi3",
"lshrsi3",
"rotlsi3",
"rotrsi3",
"*shiftsi3",
"*shiftsi3_compare0",
"*shiftsi3_compare0_scratch",
"*notsi_shiftsi",
"*notsi_shiftsi_compare0",
"*not_shiftsi_compare0_scratch",
"negdi2",
"negsi2",
"negsf2",
"negdf2",
"*negdf_esfdf",
"negxf2",
"abssi2",
"*neg_abssi2",
"abssf2",
"absdf2",
"*absdf_esfdf",
"absxf2",
"sqrtsf2",
"sqrtdf2",
"*sqrtdf_esfdf",
"sqrtxf2",
"one_cmpldi2",
"one_cmplsi2",
"*notsi_compare0",
"*notsi_compare0_scratch",
"floatsisf2",
"floatsidf2",
"floatsixf2",
"fix_truncsfsi2",
"fix_truncdfsi2",
"fix_truncxfsi2",
"truncdfsf2",
"truncxfsf2",
"truncxfdf2",
"zero_extendsidi2",
"zero_extendqidi2",
"extendsidi2",
"zero_extendhisi2",
"*zero_extendhisi_insn",
"*zero_extendhisi_insn+1",
"zero_extendqisi2-1",
"zero_extendqisi2",
"*load_extendqisi",
"*load_extendqisi+1",
"*compareqi_eq0",
"extendhisi2",
"extendhisi2_mem",
"*extendhisi_insn",
"*extendhisi_insn+1",
"extendqihi2-1",
"extendqihi2",
"*extendqihi_insn",
"*extendqihi_insn+1",
"extendqisi2",
"*extendqisi_insn",
"*extendqisi_insn+1",
"extendsfdf2",
"extendsfxf2",
"extenddfxf2",
"movdi",
"movsi",
"*movsi_insn",
"*movsi_insn+1",
"movaddr",
"*movaddr_insn",
"pic_load_addr",
"pic_load_addr_based",
"*pic_load_addr_based_insn",
"pic_add_dot_plus_eight",
"*movsi_compare0",
"storehi",
"storehi_bigend",
"storeinthi",
"storehi_single_op",
"movhi",
"rotated_loadsi",
"movhi_bytes",
"movhi_bigend",
"*movhi_insn_arch4",
"*movhi_insn_littleend",
"*movhi_insn_bigend",
"*loadhi_si_bigend",
"*movhi_bytes",
"reload_outhi",
"reload_inhi",
"movqi",
"*movqi_insn",
"movsf",
"*movsf_hard_insn",
"*movsf_soft_insn",
"movdf",
"reload_outdf",
"*movdf_hard_insn",
"*movdf_soft_insn",
"movxf",
"*movxf_hard_insn",
"load_multiple",
"*ldmsi_postinc",
"*ldmsi",
"store_multiple",
"*stmsi_postinc",
"*stmsi",
"movstrqi",
"cmpsi",
"cmpsf",
"cmpdf",
"cmpxf",
"*cmpsi_insn",
"*cmpsi_shiftsi",
"*cmpsi_shiftsi_swp",
"*cmpsi_neg_shiftsi",
"*cmpsf_insn",
"*cmpdf_insn",
"*cmpesfdf_df",
"*cmpdf_esfdf",
"*cmpxf_insn",
"*cmpsf_trap",
"*cmpdf_trap",
"*cmp_esfdf_df_trap",
"*cmp_df_esfdf_trap",
"*cmpxf_trap",
"*deleted_compare",
"beq",
"bne",
"bgt",
"ble",
"bge",
"blt",
"bgtu",
"bleu",
"bgeu",
"bltu",
"*condbranch",
"*condbranch_reversed",
"seq",
"sne",
"sgt",
"sle",
"sge",
"slt",
"sgtu",
"sleu",
"sgeu",
"sltu",
"*mov_scc",
"*mov_negscc",
"*mov_notscc",
"movsicc",
"movsfcc",
"movdfcc",
"*movsicc_insn",
"*movsfcc_hard_insn",
"*movsfcc_soft_insn",
"*movdfcc_insn",
"jump",
"call",
"*call_reg",
"*call_mem",
"call_value",
"*call_value_reg",
"*call_value_mem",
"*call_symbol",
"*call_value_symbol",
"return",
"*cond_return",
"*cond_return_inverted",
"untyped_call",
"blockage",
"casesi",
"casesi_internal",
"indirect_jump",
"*load_indirect_jump",
"nop",
"*arith_shiftsi",
"*arith_shiftsi_compare0",
"*arith_shiftsi_compare0_scratch",
"*sub_shiftsi",
"*sub_shiftsi_compare0",
"*sub_shiftsi_compare0_scratch",
"*reload_mulsi3",
"*reload_mulsi_compare0",
"*reload_mulsi_compare0_scratch",
"*reload_muladdsi",
"*reload_muladdsi_compare0",
"*reload_muladdsi_compare0_scratch",
"*and_scc",
"*ior_scc",
"*compare_scc",
"*cond_move",
"*cond_arith",
"*cond_sub",
"*cmp_ite0",
"*cmp_ite1",
"*negscc",
"movcond",
"*ifcompare_plus_move",
"*if_plus_move",
"*ifcompare_move_plus",
"*if_move_plus",
"*ifcompare_arith_arith",
"*if_arith_arith",
"*ifcompare_arith_move",
"*if_arith_move",
"*ifcompare_move_arith",
"*if_move_arith",
"*ifcompare_move_not",
"*if_move_not",
"*ifcompare_not_move",
"*if_not_move",
"*ifcompare_shift_move",
"*if_shift_move",
"*ifcompare_move_shift",
"*if_move_shift",
"*ifcompare_shift_shift",
"*if_shift_shift",
"*ifcompare_not_arith",
"*if_not_arith",
"*ifcompare_arith_not",
"*if_arith_not",
"*ifcompare_neg_move",
"*if_neg_move",
"*ifcompare_move_neg",
"*if_move_neg",
"*arith_adjacentmem",
"*strqi_preinc",
"*strqi_predec",
"*loadqi_preinc",
"*loadqi_predec",
"*loadqisi_preinc",
"*loadqisi_predec",
"*strsi_preinc",
"*strqi_predec",
"*loadsi_preinc",
"*loadsi_predec",
"*loadhi_preinc",
"*loadhi_predec",
"*strqi_shiftpreinc",
"*strqi_shiftpredec",
"*loadqi_shiftpreinc",
"*loadqi_shiftpredec",
"*strsi_shiftpreinc",
"*strsi_shiftpredec",
"*loadqi_shiftpreinc",
"*loadqi_shiftpredec",
"*loadhi_shiftpreinc",
"*loadhi_shiftpredec",
"*loadhi_shiftpredec+1",
"*loadhi_shiftpredec+2",
"*loadhi_shiftpredec+3",
"*loadhi_shiftpredec+4",
"*loadhi_shiftpredec+5",
"*loadhi_shiftpredec+6",
"*loadhi_shiftpredec+7",
"*loadhi_shiftpredec+8",
"*loadhi_shiftpredec+9",
"*loadhi_shiftpredec+10",
"prologue-9",
"prologue-8",
"prologue-7",
"prologue-6",
"prologue-5",
"prologue-4",
"prologue-3",
"prologue-2",
"prologue-1",
"prologue",
"prologue+1",
"*sign_extract_onebit",
"*not_signextract_onebit",
"*push_multi",
"*push_fp_multi",
"consttable_4",
"consttable_8",
"consttable_end",
"align_4",
};
const char **insn_name_ptr = insn_name;
const int insn_n_operands[] =
{
3,
3,
3,
3,
3,
3,
3,
2,
3,
3,
2,
2,
3,
3,
3,
3,
4,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
4,
3,
3,
3,
3,
3,
3,
3,
3,
3,
4,
4,
4,
3,
3,
4,
4,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
4,
3,
4,
4,
3,
3,
3,
3,
5,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
5,
4,
3,
3,
3,
3,
4,
6,
3,
3,
3,
3,
3,
4,
4,
4,
4,
4,
4,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
3,
5,
2,
2,
3,
1,
2,
2,
2,
3,
5,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
3,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
3,
3,
2,
2,
2,
2,
2,
2,
3,
2,
2,
2,
2,
0,
4,
3,
0,
4,
3,
4,
2,
2,
2,
2,
2,
4,
4,
4,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
3,
3,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
3,
3,
3,
4,
4,
4,
5,
5,
5,
5,
1,
2,
2,
2,
3,
3,
3,
2,
3,
0,
2,
2,
3,
0,
5,
4,
1,
1,
0,
6,
6,
6,
5,
5,
5,
6,
6,
6,
5,
5,
5,
4,
4,
4,
6,
6,
5,
7,
7,
4,
6,
7,
6,
7,
6,
10,
9,
8,
7,
8,
7,
6,
5,
6,
5,
8,
7,
8,
7,
10,
9,
8,
7,
8,
7,
6,
5,
6,
5,
5,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
4,
6,
6,
6,
6,
6,
6,
6,
6,
6,
6,
3,
3,
3,
3,
3,
3,
5,
2,
8,
6,
4,
8,
6,
4,
2,
3,
3,
6,
3,
0,
6,
3,
3,
3,
3,
1,
1,
0,
0,
};
const int insn_n_dups[] =
{
0,
0,
0,
0,
0,
0,
2,
0,
3,
3,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
3,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
2,
7,
0,
0,
0,
2,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
1,
1,
4,
4,
2,
0,
0,
0,
5,
4,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
2,
0,
1,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
1,
0,
0,
2,
0,
0,
3,
0,
0,
4,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
};
const char *const insn_operand_constraint[][MAX_RECOG_OPERANDS] =
{
{ "=&r,&r", "%0,0", "r,0", },
{ "=&r,&r", "r,0", "r,r", },
{ "=&r,&r", "r,0", "r,r", },
{ "", "", "", },
{ "", "", "", },
{ "=r,r,r", "r,r,r", "rI,L,?n", },
{ "=r,r", "r,r", "rI,L", },
{ "r,r", "rI,L", },
{ "=r,r", "r,r", "rI,L", },
{ "=r,r", "r,r", "rI,L", },
{ "r,r", "rI,L", },
{ "r,r", "rI,L", },
{ "=r", "r", "rI", },
{ "=r", "r", "rI", },
{ "=r", "r", "rI", },
{ "=r", "r", "rI", },
{ "=r,r", "0,?r", "", "", },
{ "", "", "", },
{ "=f,f", "f,f", "fG,H", },
{ "=f,f", "f,f", "fG,H", },
{ "=f,f", "f,f", "fG,H", },
{ "=f", "f", "f", },
{ "=f", "f", "f", },
{ "=f,f", "f,f", "fG,H", },
{ "=&r,&r,&r", "0,r,0", "r,0,0", },
{ "=&r,&r", "?r,0", "r,r", },
{ "=&r,&r", "r,0", "r,r", },
{ "=&r,&r", "?r,0", "r,r", },
{ "=&r,&r", "?r,0", "r,r", },
{ "=r", "r", "r", },
{ "", "", "", },
{ "=r,r", "rI,?n", "r,r", },
{ "", "", "", },
{ "=r,r", "r,I", "rI,r", },
{ "=r,r", "0,?r", "", "", },
{ "=f,f", "f,G", "fG,f", },
{ "=f,f", "f,G", "fG,f", },
{ "=f", "f", "fG", },
{ "=f,f", "f,G", "f,f", },
{ "=f", "f", "f", },
{ "=f,f", "f,G", "fG,f", },
{ "=&r,&r", "%?r,0", "r,r", },
{ "=&r,&r", "%?r,0", "r,r", },
{ "=&r,&r", "%?r,0", "r,r", },
{ "=&r,&r,&r,&r", "%r,0,r,0", "r,r,r,r", "?r,r,0,0", },
{ "=&r,&r,&r,&r", "%r,0,r,0", "r,r,r,r", "?r,r,0,0", },
{ "=&r,&r,&r,&r", "%r,0,r,0", "r,r,r,r", "?r,r,0,0", },
{ "=&r", "%r", "r", },
{ "=&r", "%r", "r", },
{ "=&r,&r", "%r,0", "r,r", "=&r,&r", },
{ "=&r,&r", "%r,0", "r,r", "=&r,&r", },
{ "=f", "f", "fG", },
{ "=f", "f", "fG", },
{ "=f", "f", "fG", },
{ "=f", "f", "f", },
{ "=f", "f", "f", },
{ "=f", "f", "fG", },
{ "=f,f", "f,G", "fG,f", },
{ "=f,f", "f,G", "fG,f", },
{ "=f", "f", "fG", },
{ "=f", "fG", "f", },
{ "=f", "f", "f", },
{ "=f,f", "f,G", "fG,f", },
{ "=f", "f", "fG", },
{ "=f", "f", "fG", },
{ "=f", "f", "fG", },
{ "=f", "f", "f", },
{ "=f", "f", "f", },
{ "=f", "f", "fG", },
{ "=&r,&r", "%0,0", "r,0", },
{ "=&r,&r", "?r,0", "r,r", },
{ "=&r,&r", "?r,0", "r,r", },
{ "", "", "", },
{ "=r,r,r", "r,r,r", "rI,K,?n", },
{ "", "", "", },
{ "=r,r", "r,r", "rI,K", },
{ "r,r", "rI,K", "", "=X,r", },
{ "r", "n", "n", },
{ "=r", "r", "n", "n", },
{ "", "", "", "", },
{ "=&r,&r", "0,r", "r,0", },
{ "=&r,&r", "0,?r", "r,r", },
{ "=&r,&r", "?r,0", "r,r", },
{ "=r", "r", "r", },
{ "=r", "r", "r", "rM", "", },
{ "=r", "r", "r", },
{ "=r", "r", "r", },
{ "=&r", "%0", "r", },
{ "=&r,&r", "0,?r", "r,r", },
{ "=&r,&r", "?r,0", "r,r", },
{ "", "", "", },
{ "=r,r", "r,r", "rI,?n", },
{ "", "", "", },
{ "=r", "%r", "rI", },
{ "=r", "%r", "rI", },
{ "=&r,&r", "%0,0", "r,0", },
{ "=&r,&r", "0,?r", "r,r", },
{ "=&r,&r", "?r,0", "r,r", },
{ "=r", "r", "rI", },
{ "=r", "r", "rI", },
{ "r", "rI", },
{ "", "", "", "", "", },
{ "=&r,&r,&r", "r,r,0", "rI,0,rI", "rI,rI,rI", },
{ "=r,r,r", "0,r,?r", "rI,0,rI", },
{ "=r,r,r", "0,r,?r", "rI,0,rI", },
{ "=r,r,r", "0,r,?r", "rI,0,rI", },
{ "=r,r,r", "0,r,?r", "rI,0,rI", },
{ "=m", "r", "r", "", },
{ "=r,r", "0,?r", "r,r", "rI,rI", "", "", },
{ "", "", "", },
{ "", "", "", },
{ "", "", "", },
{ "", "", "", },
{ "", "", "", },
{ "=r", "r", "rM", "", },
{ "=r", "r", "rM", "", },
{ "=r", "r", "rM", "", },
{ "=r", "r", "rM", "", },
{ "=r", "r", "rM", "", },
{ "=r", "r", "rM", "", },
{ "=&r,&r", "?r,0", },
{ "=r", "r", },
{ "=f", "f", },
{ "=f", "f", },
{ "=f", "f", },
{ "=f", "f", },
{ "=r,&r", "0,r", },
{ "=r,&r", "0,r", },
{ "=f", "f", },
{ "=f", "f", },
{ "=f", "f", },
{ "=f", "f", },
{ "=f", "f", },
{ "=f", "f", },
{ "=f", "f", },
{ "=f", "f", },
{ "=&r,&r", "?r,0", },
{ "=r", "r", },
{ "=r", "r", },
{ "=r", "r", },
{ "=f", "r", },
{ "=f", "r", },
{ "=f", "r", },
{ "=r", "f", },
{ "=r", "f", },
{ "=r", "f", },
{ "=f", "f", },
{ "=f", "f", },
{ "=f", "f", },
{ "=r", "r", },
{ "=r", "r", },
{ "=r", "r", },
{ "", "", },
{ "=r", "m", },
{ "", "", "", },
{ "", "", "", "", "", },
{ "=r,r", "r,m", },
{ "=r", "m", },
{ "", "", "", },
{ "r", },
{ "", "", },
{ "", "", },
{ "=r", "m", },
{ "", "", "", },
{ "", "", "", "", "", },
{ "", "", },
{ "=r", "m", },
{ "", "", },
{ "", "", },
{ "=r", "m", },
{ "", "", },
{ "=f", "f", },
{ "=f", "f", },
{ "=f", "f", },
{ "=r,r,o<>", "rIK,mi,r", },
{ "", "", },
{ "=r,r,r,m", "rI,K,mi,r", },
{ "", "", },
{ "", "", },
{ "=r", "p", },
{ "=r", "", },
{ "=r", "", },
{ "=r", "", "r", },
{ "+r", "", },
{ "=r,r", "0,r", },
{ "", "", },
{ "", "", },
{ "", "", },
{ "", "", },
{ "", "", },
{ "=r", "o", },
{ "", "", },
{ "", "", },
{ "=r,r,r,m", "rI,K,m,r", },
{ "=r,r,r", "rI,K,m", },
{ "=r,r,r", "rI,K,m", },
{ "=r", "m", },
{ "=r,r", "rI,K", },
{ "=o", "r", "=&r", },
{ "=r", "o", "=&r", },
{ "", "", },
{ "=r,r,r,m", "rI,K,m,r", },
{ "", "", },
{ "=f,f,f,m,f,r,r,r,m", "fG,H,mE,f,r,f,r,mE,r", },
{ "=r,r,m", "r,mE,r", },
{ "", "", },
{ "=o", "r", "=&r", },
{ "=r,Q,r,m,r,f,f,f,m,!f,!r", "Q,r,r,r,mF,fG,H,mF,f,r,f", },
{ "=r,r,m", "r,mF,r", },
{ "", "", },
{ "=f,f,f,m,f,r,r", "fG,H,m,f,r,f,r", },
{ 0 },
{ "", "+r", "n", "=r", },
{ "", "=r", "r", },
{ 0 },
{ "", "+r", "n", "r", },
{ "", "r", "r", },
{ "", "", "", "", },
{ "", "", },
{ "", "", },
{ "", "", },
{ "", "", },
{ "r,r", "rI,L", },
{ "r", "r", "rM", "", },
{ "r", "r", "rM", "", },
{ "r", "r", "rM", "", },
{ "f,f", "fG,H", },
{ "f,f", "fG,H", },
{ "f,f", "fG,H", },
{ "f", "f", },
{ "f,f", "fG,H", },
{ "f,f", "fG,H", },
{ "f,f", "fG,H", },
{ "f,f", "fG,H", },
{ "f", "f", },
{ "f,f", "fG,H", },
{ "", },
{ "", },
{ "", },
{ "", },
{ "", },
{ "", },
{ "", },
{ "", },
{ "", },
{ "", },
{ "", },
{ "", "", "", },
{ "", "", "", },
{ "=r", },
{ "=r", },
{ "=r", },
{ "=r", },
{ "=r", },
{ "=r", },
{ "=r", },
{ "=r", },
{ "=r", },
{ "=r", },
{ "=r", "", "", },
{ "=r", "", "", },
{ "=r", "", "", },
{ "", "", "", "", },
{ "", "", "", "", },
{ "", "", "", "", },
{ "=r,r,r,r,r,r,r,r", "0,0,rI,K,rI,rI,K,K", "rI,K,0,0,rI,K,rI,K", "", "", },
{ "=f,f,f,f,f,f,f,f", "0,0,fG,H,fG,fG,H,H", "fG,H,0,0,fG,H,fG,H", "", "", },
{ "=r,r", "0,r", "r,0", "", "", },
{ "=f,f,f,f,f,f,f,f", "0,0,fG,H,fG,fG,H,H", "fG,H,0,0,fG,H,fG,H", "", "", },
{ "", },
{ "", "", },
{ "r", "g", },
{ "m", "g", },
{ "=rf", "m", "g", },
{ "=rf", "r", "g", },
{ "=rf", "m", "g", },
{ "X", "g", },
{ "=rf", "X", "g", },
{ 0 },
{ "", "", },
{ "", "", },
{ "", "", "", },
{ 0 },
{ "", "", "", "", "", },
{ "r", "rI", "", "", },
{ "r", },
{ "m", },
{ 0 },
{ "=r", "", "r", "", "r", "rI", },
{ "=r", "", "r", "", "r", "rI", },
{ "=r", "", "r", "", "r", "rI", },
{ "=r", "r", "", "r", "rM", },
{ "=r", "r", "", "r", "rM", },
{ "=r", "r", "", "r", "rM", },
{ "=&r", "n", "r", "r", "rM", "", },
{ "=&r", "r", "n", "r", "rM", "", },
{ "=&r", "r", "n", "r", "rM", "", },
{ "=&r,&r", "%0,r", "r,r", "r,r", "n,n", },
{ "=&r", "r", "n", "r", "r", },
{ "=&r", "r", "n", "r", "r", },
{ "=r", "", "r", "", },
{ "=r,r", "0,?r", "", "", },
{ "=r,r", "", "r,r", "rI,L", },
{ "=r,r,r", "0,rI,?rI", "rI,0,rI", "", "", "", },
{ "=r,r", "0,?r", "r,r", "rI,rI", "", "", },
{ "=r,r", "0,?r", "r,r", "rI,rI", "", },
{ "r,r,r,r", "rI,L,rI,L", "r,r,r,r", "rI,rI,L,L", "", "", "", },
{ "r,r,r,r", "rI,L,rI,L", "r,r,r,r", "rI,rI,L,L", "", "", "", },
{ "=r", "r", "rI", "", },
{ "=r,r,r", "0,rI,?rI", "rI,0,rI", "r,r,r", "rIL,rIL,rIL", "", },
{ "=r,r", "0,?rI", "r,r", "rIL,rIL", "r,r", "rIL,rIL", "", },
{ "=r,r,r,r", "0,0,?rI,?rI", "r,r,r,r", "rI,L,rI,L", "", "", },
{ "=r,r", "0,?rI", "r,r", "rIL,rIL", "r,r", "rIL,rIL", "", },
{ "=r,r,r,r", "0,0,?rI,?rI", "r,r,r,r", "rI,L,rI,L", "", "", },
{ "=r", "r", "rI", "r", "rI", "r", "rIL", "", "", "", },
{ "=r", "r", "rI", "r", "rI", "", "", "", "", },
{ "=r,r", "0,?rI", "r,r", "rIL,rIL", "r,r", "rI,rI", "", "", },
{ "=r,r", "0,?rI", "r,r", "rI,rI", "", "", "", },
{ "=r,r", "0,?rI", "r,r", "rI,rI", "r,r", "rIL,rIL", "", "", },
{ "=r,r", "0,?rI", "r,r", "rI,rI", "", "", "", },
{ "=r,r", "0,?rIK", "r,r", "r,r", "rIL,rIL", "", },
{ "=r,r,r", "0,?rI,K", "r,r,r", "", "", },
{ "=r,r", "0,?rIK", "r,r", "r,r", "rIL,rIL", "", },
{ "=r,r,r", "0,?rI,K", "r,r,r", "", "", },
{ "=r,r", "0,?rIK", "r,r", "rM,rM", "r,r", "rIL,rIL", "", "", },
{ "=r,r,r", "0,?rI,K", "r,r,r", "rM,rM,rM", "", "", "", },
{ "=r,r", "0,?rIK", "r,r", "rM,rM", "r,r", "rIL,rIL", "", "", },
{ "=r,r,r", "0,?rI,K", "r,r,r", "rM,rM,rM", "", "", "", },
{ "=r", "r", "rM", "r", "rM", "r", "rIL", "", "", "", },
{ "=r", "r", "rM", "r", "rM", "", "", "", "", },
{ "=r", "r", "r", "rI", "r", "rIL", "", "", },
{ "=r", "r", "r", "rI", "", "", "", },
{ "=r", "r", "r", "rI", "r", "rIL", "", "", },
{ "=r", "r", "r", "rI", "", "", "", },
{ "=r,r", "0,?rIK", "r,r", "r,r", "rIL,rIL", "", },
{ "=r,r,r", "0,?rI,K", "r,r,r", "", "", },
{ "=r,r", "0,?rIK", "r,r", "r,r", "rIL,rIL", "", },
{ "=r,r,r", "0,?rI,K", "r,r,r", "", "", },
{ "=r", "", "m", "m", "=r", },
{ "=r", "%0", "rJ", "r", },
{ "=r", "0", "r", "r", },
{ "=r", "%0", "rJ", "=r", },
{ "=r", "0", "r", "=r", },
{ "=r", "%0", "rJ", "=r", },
{ "=r", "0", "r", "=r", },
{ "=r", "%0", "rJ", "r", },
{ "=r", "0", "r", "r", },
{ "=r", "%0", "rJ", "=r", },
{ "=r", "0", "r", "=r", },
{ "=r", "%0", "rJ", "=r", },
{ "=r", "0", "r", "=r", },
{ "=r", "0", "", "r", "n", "r", },
{ "=r", "0", "", "r", "n", "r", },
{ "=r", "0", "", "r", "n", "=r", },
{ "=r", "0", "", "r", "n", "=r", },
{ "=r", "0", "", "r", "n", "r", },
{ "=r", "0", "", "r", "n", "r", },
{ "=r", "0", "", "r", "n", "=r", },
{ "=r", "0", "", "r", "n", "=r", },
{ "=r", "0", "", "r", "n", "=r", },
{ "=r", "0", "", "r", "n", "=r", },
{ "+r", "rJ", "r", },
{ "=r", "+r", "rJ", },
{ "+r", "rJ", "r", },
{ "=r", "+r", "rJ", },
{ "=r", "+r", "rJ", },
{ "+r", "rJ", "r", },
{ "r", "n", "+r", "r", "", },
{ "=r", "r", },
{ "=r", "=r", "=r", "=r", "m", "m", "m", "m", },
{ "=r", "=r", "=r", "m", "m", "m", },
{ "=r", "=r", "m", "m", },
{ "r", "r", "r", "r", "=m", "=m", "=m", "=m", },
{ "r", "r", "r", "=m", "=m", "=m", },
{ "r", "r", "=m", "=m", },
{ "X", "g", },
{ "=rf", "X", "g", },
{ "=rf", "X", "g", },
{ "", "", "", "", "", "", },
{ "", "", "", },
{ 0 },
{ "", "", "", "", "", "", },
{ "=r", "r", "n", },
{ "=r", "r", "n", },
{ "=m", "r", "", },
{ "=m", "f", "", },
{ "", },
{ "", },
{ 0 },
{ 0 },
};
const enum machine_mode insn_operand_mode[][MAX_RECOG_OPERANDS] =
{
{ DImode, DImode, DImode, },
{ DImode, DImode, SImode, },
{ DImode, DImode, SImode, },
{ SImode, SImode, SImode, },
{ VOIDmode, VOIDmode, VOIDmode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, },
{ SImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, VOIDmode, },
{ VOIDmode, VOIDmode, VOIDmode, },
{ SFmode, SFmode, SFmode, },
{ DFmode, DFmode, DFmode, },
{ DFmode, SFmode, DFmode, },
{ DFmode, DFmode, SFmode, },
{ DFmode, SFmode, SFmode, },
{ XFmode, XFmode, XFmode, },
{ DImode, DImode, DImode, },
{ DImode, DImode, SImode, },
{ DImode, DImode, SImode, },
{ DImode, DImode, SImode, },
{ DImode, DImode, SImode, },
{ DImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ VOIDmode, VOIDmode, VOIDmode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, VOIDmode, },
{ SFmode, SFmode, SFmode, },
{ DFmode, DFmode, DFmode, },
{ DFmode, SFmode, DFmode, },
{ DFmode, DFmode, SFmode, },
{ DFmode, SFmode, SFmode, },
{ XFmode, XFmode, XFmode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, },
{ DImode, SImode, SImode, },
{ DImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, },
{ SFmode, SFmode, SFmode, },
{ DFmode, DFmode, DFmode, },
{ DFmode, SFmode, DFmode, },
{ DFmode, DFmode, SFmode, },
{ DFmode, SFmode, SFmode, },
{ XFmode, XFmode, XFmode, },
{ SFmode, SFmode, SFmode, },
{ DFmode, DFmode, DFmode, },
{ DFmode, SFmode, DFmode, },
{ DFmode, DFmode, SFmode, },
{ DFmode, SFmode, SFmode, },
{ XFmode, XFmode, XFmode, },
{ SFmode, SFmode, SFmode, },
{ DFmode, DFmode, DFmode, },
{ DFmode, SFmode, DFmode, },
{ DFmode, DFmode, SFmode, },
{ DFmode, SFmode, SFmode, },
{ XFmode, XFmode, XFmode, },
{ DImode, DImode, DImode, },
{ DImode, DImode, SImode, },
{ DImode, DImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ VOIDmode, VOIDmode, VOIDmode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, VOIDmode, SImode, },
{ SImode, VOIDmode, VOIDmode, },
{ SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, },
{ DImode, DImode, DImode, },
{ DImode, DImode, SImode, },
{ DImode, DImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ DImode, DImode, DImode, },
{ DImode, DImode, SImode, },
{ DImode, DImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ VOIDmode, VOIDmode, VOIDmode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ DImode, DImode, DImode, },
{ DImode, DImode, SImode, },
{ DImode, DImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, },
{ VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
{ SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, },
{ DImode, DImode, },
{ SImode, SImode, },
{ SFmode, SFmode, },
{ DFmode, DFmode, },
{ DFmode, SFmode, },
{ XFmode, XFmode, },
{ SImode, SImode, },
{ SImode, SImode, },
{ SFmode, SFmode, },
{ DFmode, DFmode, },
{ DFmode, SFmode, },
{ XFmode, XFmode, },
{ SFmode, SFmode, },
{ DFmode, DFmode, },
{ DFmode, SFmode, },
{ XFmode, XFmode, },
{ DImode, DImode, },
{ SImode, SImode, },
{ SImode, SImode, },
{ SImode, SImode, },
{ SFmode, SImode, },
{ DFmode, SImode, },
{ XFmode, SImode, },
{ SImode, SFmode, },
{ SImode, DFmode, },
{ SImode, XFmode, },
{ SFmode, DFmode, },
{ SFmode, XFmode, },
{ DFmode, XFmode, },
{ DImode, SImode, },
{ DImode, QImode, },
{ DImode, SImode, },
{ SImode, HImode, },
{ SImode, HImode, },
{ VOIDmode, VOIDmode, VOIDmode, },
{ VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
{ SImode, QImode, },
{ SImode, QImode, },
{ VOIDmode, VOIDmode, VOIDmode, },
{ QImode, },
{ SImode, HImode, },
{ SImode, HImode, },
{ SImode, HImode, },
{ VOIDmode, VOIDmode, VOIDmode, },
{ VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
{ HImode, QImode, },
{ HImode, QImode, },
{ VOIDmode, VOIDmode, },
{ SImode, QImode, },
{ SImode, QImode, },
{ VOIDmode, VOIDmode, },
{ DFmode, SFmode, },
{ XFmode, SFmode, },
{ XFmode, DFmode, },
{ DImode, DImode, },
{ SImode, SImode, },
{ SImode, SImode, },
{ VOIDmode, VOIDmode, },
{ SImode, DImode, },
{ SImode, DImode, },
{ SImode, VOIDmode, },
{ SImode, VOIDmode, },
{ SImode, VOIDmode, VOIDmode, },
{ VOIDmode, VOIDmode, },
{ SImode, SImode, },
{ VOIDmode, VOIDmode, },
{ VOIDmode, VOIDmode, },
{ VOIDmode, VOIDmode, },
{ HImode, HImode, },
{ HImode, HImode, },
{ SImode, SImode, },
{ SImode, HImode, },
{ HImode, HImode, },
{ HImode, HImode, },
{ HImode, HImode, },
{ HImode, HImode, },
{ SImode, HImode, },
{ HImode, HImode, },
{ HImode, HImode, DImode, },
{ HImode, HImode, DImode, },
{ QImode, QImode, },
{ QImode, QImode, },
{ SFmode, SFmode, },
{ SFmode, SFmode, },
{ SFmode, SFmode, },
{ DFmode, DFmode, },
{ DFmode, DFmode, SImode, },
{ DFmode, DFmode, },
{ DFmode, DFmode, },
{ XFmode, XFmode, },
{ XFmode, XFmode, },
{ VOIDmode },
{ VOIDmode, SImode, SImode, SImode, },
{ VOIDmode, SImode, SImode, },
{ VOIDmode },
{ VOIDmode, SImode, SImode, SImode, },
{ VOIDmode, SImode, SImode, },
{ BLKmode, BLKmode, SImode, SImode, },
{ SImode, SImode, },
{ SFmode, SFmode, },
{ DFmode, DFmode, },
{ XFmode, XFmode, },
{ SImode, SImode, },
{ SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, },
{ SFmode, SFmode, },
{ DFmode, DFmode, },
{ SFmode, DFmode, },
{ DFmode, SFmode, },
{ XFmode, XFmode, },
{ SFmode, SFmode, },
{ DFmode, DFmode, },
{ SFmode, DFmode, },
{ DFmode, SFmode, },
{ XFmode, XFmode, },
{ VOIDmode, },
{ VOIDmode, },
{ VOIDmode, },
{ VOIDmode, },
{ VOIDmode, },
{ VOIDmode, },
{ VOIDmode, },
{ VOIDmode, },
{ VOIDmode, },
{ VOIDmode, },
{ VOIDmode, },
{ VOIDmode, VOIDmode, VOIDmode, },
{ VOIDmode, VOIDmode, VOIDmode, },
{ SImode, },
{ SImode, },
{ SImode, },
{ SImode, },
{ SImode, },
{ SImode, },
{ SImode, },
{ SImode, },
{ SImode, },
{ SImode, },
{ SImode, SImode, VOIDmode, },
{ SImode, SImode, VOIDmode, },
{ SImode, SImode, VOIDmode, },
{ SImode, VOIDmode, SImode, SImode, },
{ SFmode, VOIDmode, SFmode, SFmode, },
{ DFmode, VOIDmode, DFmode, DFmode, },
{ SImode, SImode, SImode, VOIDmode, VOIDmode, },
{ SFmode, SFmode, SFmode, VOIDmode, VOIDmode, },
{ SFmode, SFmode, SFmode, VOIDmode, VOIDmode, },
{ DFmode, DFmode, DFmode, VOIDmode, VOIDmode, },
{ VOIDmode, },
{ VOIDmode, VOIDmode, },
{ SImode, VOIDmode, },
{ VOIDmode, VOIDmode, },
{ VOIDmode, VOIDmode, VOIDmode, },
{ VOIDmode, SImode, VOIDmode, },
{ VOIDmode, VOIDmode, VOIDmode, },
{ SImode, SImode, },
{ VOIDmode, SImode, SImode, },
{ VOIDmode },
{ VOIDmode, VOIDmode, },
{ VOIDmode, VOIDmode, },
{ VOIDmode, VOIDmode, VOIDmode, },
{ VOIDmode },
{ SImode, SImode, SImode, SImode, SImode, },
{ SImode, SImode, VOIDmode, VOIDmode, },
{ SImode, },
{ SImode, },
{ VOIDmode },
{ SImode, SImode, SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, SImode, },
{ SImode, VOIDmode, SImode, VOIDmode, },
{ SImode, SImode, VOIDmode, VOIDmode, },
{ SImode, VOIDmode, SImode, SImode, },
{ SImode, SImode, SImode, VOIDmode, VOIDmode, VOIDmode, },
{ SImode, SImode, SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, VOIDmode, SImode, VOIDmode, },
{ SImode, SImode, SImode, SImode, VOIDmode, SImode, VOIDmode, },
{ SImode, SImode, SImode, VOIDmode, },
{ SImode, SImode, SImode, SImode, SImode, VOIDmode, },
{ SImode, SImode, SImode, SImode, SImode, SImode, VOIDmode, },
{ SImode, SImode, SImode, SImode, VOIDmode, VOIDmode, },
{ SImode, SImode, SImode, SImode, SImode, SImode, VOIDmode, },
{ SImode, SImode, SImode, SImode, VOIDmode, VOIDmode, },
{ SImode, SImode, SImode, SImode, SImode, SImode, SImode, SImode, SImode, VOIDmode, },
{ SImode, SImode, SImode, SImode, SImode, VOIDmode, SImode, SImode, VOIDmode, },
{ SImode, SImode, SImode, SImode, SImode, SImode, VOIDmode, SImode, },
{ SImode, SImode, SImode, SImode, VOIDmode, SImode, VOIDmode, },
{ SImode, SImode, SImode, SImode, SImode, SImode, VOIDmode, SImode, },
{ SImode, SImode, SImode, SImode, VOIDmode, SImode, VOIDmode, },
{ SImode, SImode, SImode, SImode, SImode, VOIDmode, },
{ SImode, SImode, SImode, VOIDmode, VOIDmode, },
{ SImode, SImode, SImode, SImode, SImode, VOIDmode, },
{ SImode, SImode, SImode, VOIDmode, VOIDmode, },
{ SImode, SImode, SImode, SImode, SImode, SImode, VOIDmode, SImode, },
{ SImode, SImode, SImode, SImode, SImode, VOIDmode, VOIDmode, },
{ SImode, SImode, SImode, SImode, SImode, SImode, VOIDmode, SImode, },
{ SImode, SImode, SImode, SImode, SImode, VOIDmode, VOIDmode, },
{ SImode, SImode, SImode, SImode, SImode, SImode, SImode, VOIDmode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, SImode, VOIDmode, SImode, SImode, VOIDmode, },
{ SImode, SImode, SImode, SImode, SImode, SImode, VOIDmode, SImode, },
{ SImode, SImode, SImode, SImode, VOIDmode, VOIDmode, SImode, },
{ SImode, SImode, SImode, SImode, SImode, SImode, VOIDmode, SImode, },
{ SImode, SImode, SImode, SImode, VOIDmode, VOIDmode, SImode, },
{ SImode, SImode, SImode, SImode, SImode, VOIDmode, },
{ SImode, SImode, SImode, VOIDmode, VOIDmode, },
{ SImode, SImode, SImode, SImode, SImode, VOIDmode, },
{ SImode, SImode, SImode, VOIDmode, VOIDmode, },
{ SImode, SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, QImode, },
{ SImode, SImode, SImode, QImode, },
{ SImode, SImode, SImode, QImode, },
{ SImode, SImode, SImode, QImode, },
{ SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, HImode, },
{ SImode, SImode, SImode, HImode, },
{ SImode, SImode, SImode, SImode, SImode, QImode, },
{ SImode, SImode, SImode, SImode, SImode, QImode, },
{ SImode, SImode, SImode, SImode, SImode, QImode, },
{ SImode, SImode, SImode, SImode, SImode, QImode, },
{ SImode, SImode, SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, SImode, HImode, },
{ SImode, SImode, SImode, SImode, SImode, HImode, },
{ VOIDmode, VOIDmode, VOIDmode, },
{ VOIDmode, VOIDmode, VOIDmode, },
{ VOIDmode, VOIDmode, VOIDmode, },
{ VOIDmode, VOIDmode, VOIDmode, },
{ VOIDmode, VOIDmode, VOIDmode, },
{ VOIDmode, VOIDmode, VOIDmode, },
{ VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
{ VOIDmode, VOIDmode, },
{ VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
{ VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
{ VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
{ VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
{ VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
{ VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
{ VOIDmode, VOIDmode, },
{ VOIDmode, VOIDmode, VOIDmode, },
{ VOIDmode, VOIDmode, VOIDmode, },
{ VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
{ VOIDmode, VOIDmode, VOIDmode, },
{ VOIDmode },
{ VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ BLKmode, SImode, VOIDmode, },
{ BLKmode, XFmode, VOIDmode, },
{ VOIDmode, },
{ VOIDmode, },
{ VOIDmode },
{ VOIDmode },
};
const char insn_operand_strict_low[][MAX_RECOG_OPERANDS] =
{
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, },
{ 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, 0, },
{ 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0 },
{ 0, 0, 0, 0, },
{ 0, 0, 0, },
{ 0 },
{ 0, 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, },
{ 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, },
{ 0, 0, 0, },
{ 0 },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, 0, },
{ 0 },
{ 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, },
{ 0, },
{ 0 },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, 0, 0, },
{ 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, },
{ 0 },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, },
{ 0, },
{ 0 },
{ 0 },
};
extern int s_register_operand ();
extern int reg_or_int_operand ();
extern int arm_add_operand ();
extern int arm_rhs_operand ();
extern int comparison_operator ();
extern int cc_register ();
extern int fpu_add_operand ();
extern int fpu_rhs_operand ();
extern int scratch_operand ();
extern int arm_not_operand ();
extern int const_int_operand ();
extern int general_operand ();
extern int nonmemory_operand ();
extern int shift_operator ();
extern int memory_operand ();
extern int minmax_operator ();
extern int shiftable_operator ();
extern int nonimmediate_operand ();
extern int di_operand ();
extern int address_operand ();
extern int register_operand ();
extern int offsettable_memory_operand ();
extern int reload_memory_operand ();
extern int soft_df_operand ();
extern int load_multiple_operation ();
extern int store_multiple_operation ();
extern int equality_operator ();
extern int dominant_cc_register ();
extern int index_operand ();
extern int const_shift_operand ();
extern int multi_register_push ();
extern int f_register_operand ();
int (*const insn_operand_predicate[][MAX_RECOG_OPERANDS])() =
{
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, reg_or_int_operand, },
{ 0, 0, 0, },
{ s_register_operand, s_register_operand, reg_or_int_operand, },
{ s_register_operand, s_register_operand, arm_add_operand, },
{ s_register_operand, arm_add_operand, },
{ s_register_operand, s_register_operand, arm_add_operand, },
{ s_register_operand, s_register_operand, arm_add_operand, },
{ s_register_operand, arm_add_operand, },
{ s_register_operand, arm_add_operand, },
{ s_register_operand, s_register_operand, arm_rhs_operand, },
{ s_register_operand, s_register_operand, arm_rhs_operand, },
{ s_register_operand, s_register_operand, arm_rhs_operand, },
{ s_register_operand, s_register_operand, arm_rhs_operand, },
{ s_register_operand, s_register_operand, comparison_operator, cc_register, },
{ 0, 0, 0, },
{ s_register_operand, s_register_operand, fpu_add_operand, },
{ s_register_operand, s_register_operand, fpu_add_operand, },
{ s_register_operand, s_register_operand, fpu_add_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, fpu_add_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, reg_or_int_operand, s_register_operand, },
{ s_register_operand, reg_or_int_operand, s_register_operand, },
{ 0, 0, 0, },
{ s_register_operand, arm_rhs_operand, arm_rhs_operand, },
{ s_register_operand, s_register_operand, comparison_operator, cc_register, },
{ s_register_operand, fpu_rhs_operand, fpu_rhs_operand, },
{ s_register_operand, fpu_rhs_operand, fpu_rhs_operand, },
{ s_register_operand, s_register_operand, fpu_rhs_operand, },
{ s_register_operand, fpu_rhs_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, fpu_rhs_operand, fpu_rhs_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ scratch_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, s_register_operand, },
{ scratch_operand, s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, scratch_operand, },
{ s_register_operand, s_register_operand, s_register_operand, scratch_operand, },
{ s_register_operand, s_register_operand, fpu_rhs_operand, },
{ s_register_operand, s_register_operand, fpu_rhs_operand, },
{ s_register_operand, s_register_operand, fpu_rhs_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, fpu_rhs_operand, },
{ s_register_operand, fpu_rhs_operand, fpu_rhs_operand, },
{ s_register_operand, fpu_rhs_operand, fpu_rhs_operand, },
{ s_register_operand, s_register_operand, fpu_rhs_operand, },
{ s_register_operand, fpu_rhs_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, fpu_rhs_operand, fpu_rhs_operand, },
{ s_register_operand, s_register_operand, fpu_rhs_operand, },
{ s_register_operand, s_register_operand, fpu_rhs_operand, },
{ s_register_operand, s_register_operand, fpu_rhs_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, fpu_rhs_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, reg_or_int_operand, },
{ s_register_operand, s_register_operand, reg_or_int_operand, },
{ 0, 0, 0, },
{ s_register_operand, s_register_operand, arm_not_operand, },
{ s_register_operand, arm_not_operand, 0, scratch_operand, },
{ s_register_operand, const_int_operand, const_int_operand, },
{ s_register_operand, s_register_operand, const_int_operand, const_int_operand, },
{ s_register_operand, general_operand, general_operand, nonmemory_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, arm_rhs_operand, shift_operator, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ scratch_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, reg_or_int_operand, },
{ s_register_operand, s_register_operand, reg_or_int_operand, },
{ 0, 0, 0, },
{ s_register_operand, s_register_operand, arm_rhs_operand, },
{ scratch_operand, s_register_operand, arm_rhs_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, arm_rhs_operand, },
{ s_register_operand, s_register_operand, arm_rhs_operand, },
{ s_register_operand, arm_rhs_operand, },
{ 0, 0, 0, 0, 0, },
{ s_register_operand, s_register_operand, arm_rhs_operand, arm_rhs_operand, },
{ s_register_operand, s_register_operand, arm_rhs_operand, },
{ s_register_operand, s_register_operand, arm_rhs_operand, },
{ s_register_operand, s_register_operand, arm_rhs_operand, },
{ s_register_operand, s_register_operand, arm_rhs_operand, },
{ memory_operand, s_register_operand, s_register_operand, minmax_operator, },
{ s_register_operand, s_register_operand, s_register_operand, arm_rhs_operand, shiftable_operator, minmax_operator, },
{ s_register_operand, s_register_operand, arm_rhs_operand, },
{ s_register_operand, s_register_operand, arm_rhs_operand, },
{ s_register_operand, s_register_operand, arm_rhs_operand, },
{ s_register_operand, s_register_operand, reg_or_int_operand, },
{ s_register_operand, s_register_operand, arm_rhs_operand, },
{ s_register_operand, s_register_operand, reg_or_int_operand, shift_operator, },
{ s_register_operand, s_register_operand, arm_rhs_operand, shift_operator, },
{ scratch_operand, s_register_operand, arm_rhs_operand, shift_operator, },
{ s_register_operand, s_register_operand, arm_rhs_operand, shift_operator, },
{ s_register_operand, s_register_operand, arm_rhs_operand, shift_operator, },
{ scratch_operand, s_register_operand, arm_rhs_operand, shift_operator, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ scratch_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, nonimmediate_operand, },
{ s_register_operand, memory_operand, },
{ 0, 0, 0, },
{ 0, 0, 0, 0, 0, },
{ s_register_operand, nonimmediate_operand, },
{ s_register_operand, memory_operand, },
{ 0, 0, 0, },
{ s_register_operand, },
{ s_register_operand, nonimmediate_operand, },
{ 0, 0, },
{ s_register_operand, memory_operand, },
{ 0, 0, 0, },
{ 0, 0, 0, 0, 0, },
{ s_register_operand, general_operand, },
{ s_register_operand, memory_operand, },
{ 0, 0, },
{ s_register_operand, general_operand, },
{ s_register_operand, memory_operand, },
{ 0, 0, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, },
{ di_operand, di_operand, },
{ general_operand, general_operand, },
{ general_operand, general_operand, },
{ 0, 0, },
{ s_register_operand, address_operand, },
{ s_register_operand, address_operand, },
{ s_register_operand, 0, },
{ s_register_operand, 0, },
{ s_register_operand, 0, s_register_operand, },
{ register_operand, 0, },
{ s_register_operand, s_register_operand, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ memory_operand, general_operand, },
{ general_operand, general_operand, },
{ s_register_operand, offsettable_memory_operand, },
{ 0, 0, },
{ s_register_operand, memory_operand, },
{ general_operand, general_operand, },
{ s_register_operand, general_operand, },
{ s_register_operand, general_operand, },
{ s_register_operand, memory_operand, },
{ s_register_operand, arm_rhs_operand, },
{ reload_memory_operand, s_register_operand, s_register_operand, },
{ s_register_operand, reload_memory_operand, s_register_operand, },
{ general_operand, general_operand, },
{ general_operand, general_operand, },
{ general_operand, general_operand, },
{ general_operand, general_operand, },
{ general_operand, general_operand, },
{ general_operand, general_operand, },
{ reload_memory_operand, s_register_operand, s_register_operand, },
{ general_operand, general_operand, },
{ soft_df_operand, soft_df_operand, },
{ general_operand, general_operand, },
{ general_operand, general_operand, },
{ 0 },
{ load_multiple_operation, s_register_operand, const_int_operand, s_register_operand, },
{ load_multiple_operation, s_register_operand, s_register_operand, },
{ 0 },
{ store_multiple_operation, s_register_operand, const_int_operand, s_register_operand, },
{ store_multiple_operation, s_register_operand, s_register_operand, },
{ general_operand, general_operand, const_int_operand, const_int_operand, },
{ s_register_operand, arm_add_operand, },
{ s_register_operand, fpu_rhs_operand, },
{ s_register_operand, fpu_rhs_operand, },
{ s_register_operand, fpu_rhs_operand, },
{ s_register_operand, arm_add_operand, },
{ s_register_operand, s_register_operand, arm_rhs_operand, shift_operator, },
{ s_register_operand, s_register_operand, reg_or_int_operand, shift_operator, },
{ s_register_operand, s_register_operand, arm_rhs_operand, shift_operator, },
{ s_register_operand, fpu_add_operand, },
{ s_register_operand, fpu_add_operand, },
{ s_register_operand, fpu_add_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, fpu_add_operand, },
{ s_register_operand, fpu_add_operand, },
{ s_register_operand, fpu_add_operand, },
{ s_register_operand, fpu_add_operand, },
{ s_register_operand, s_register_operand, },
{ s_register_operand, fpu_add_operand, },
{ cc_register, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, comparison_operator, cc_register, },
{ 0, comparison_operator, cc_register, },
{ s_register_operand, },
{ s_register_operand, },
{ s_register_operand, },
{ s_register_operand, },
{ s_register_operand, },
{ s_register_operand, },
{ s_register_operand, },
{ s_register_operand, },
{ s_register_operand, },
{ s_register_operand, },
{ s_register_operand, comparison_operator, cc_register, },
{ s_register_operand, comparison_operator, cc_register, },
{ s_register_operand, comparison_operator, cc_register, },
{ s_register_operand, comparison_operator, arm_not_operand, arm_not_operand, },
{ s_register_operand, comparison_operator, s_register_operand, nonmemory_operand, },
{ s_register_operand, comparison_operator, s_register_operand, fpu_add_operand, },
{ s_register_operand, arm_not_operand, arm_not_operand, comparison_operator, cc_register, },
{ s_register_operand, fpu_add_operand, fpu_add_operand, comparison_operator, cc_register, },
{ s_register_operand, s_register_operand, s_register_operand, comparison_operator, cc_register, },
{ s_register_operand, fpu_add_operand, fpu_add_operand, comparison_operator, cc_register, },
{ 0, },
{ memory_operand, general_operand, },
{ s_register_operand, 0, },
{ memory_operand, general_operand, },
{ 0, memory_operand, general_operand, },
{ 0, s_register_operand, general_operand, },
{ 0, memory_operand, general_operand, },
{ 0, general_operand, },
{ s_register_operand, 0, general_operand, },
{ 0 },
{ comparison_operator, cc_register, },
{ comparison_operator, cc_register, },
{ 0, 0, 0, },
{ 0 },
{ s_register_operand, const_int_operand, const_int_operand, 0, 0, },
{ s_register_operand, arm_rhs_operand, 0, 0, },
{ s_register_operand, },
{ memory_operand, },
{ 0 },
{ s_register_operand, shiftable_operator, s_register_operand, shift_operator, s_register_operand, reg_or_int_operand, },
{ s_register_operand, shiftable_operator, s_register_operand, shift_operator, s_register_operand, reg_or_int_operand, },
{ scratch_operand, shiftable_operator, s_register_operand, shift_operator, s_register_operand, reg_or_int_operand, },
{ s_register_operand, s_register_operand, shift_operator, s_register_operand, reg_or_int_operand, },
{ s_register_operand, s_register_operand, shift_operator, s_register_operand, reg_or_int_operand, },
{ scratch_operand, s_register_operand, shift_operator, s_register_operand, reg_or_int_operand, },
{ 0, const_int_operand, 0, 0, 0, shift_operator, },
{ 0, 0, const_int_operand, 0, 0, shift_operator, },
{ scratch_operand, 0, const_int_operand, 0, 0, shift_operator, },
{ 0, 0, 0, 0, const_int_operand, },
{ 0, 0, const_int_operand, 0, 0, },
{ scratch_operand, 0, const_int_operand, 0, 0, },
{ s_register_operand, comparison_operator, s_register_operand, cc_register, },
{ s_register_operand, s_register_operand, comparison_operator, cc_register, },
{ s_register_operand, comparison_operator, s_register_operand, arm_add_operand, },
{ s_register_operand, arm_rhs_operand, arm_rhs_operand, equality_operator, comparison_operator, cc_register, },
{ s_register_operand, s_register_operand, s_register_operand, arm_rhs_operand, comparison_operator, shiftable_operator, },
{ s_register_operand, s_register_operand, s_register_operand, arm_rhs_operand, comparison_operator, },
{ s_register_operand, arm_add_operand, s_register_operand, arm_add_operand, comparison_operator, comparison_operator, dominant_cc_register, },
{ s_register_operand, arm_add_operand, s_register_operand, arm_add_operand, comparison_operator, comparison_operator, dominant_cc_register, },
{ s_register_operand, s_register_operand, arm_rhs_operand, comparison_operator, },
{ s_register_operand, arm_rhs_operand, arm_rhs_operand, s_register_operand, arm_add_operand, comparison_operator, },
{ s_register_operand, arm_rhs_operand, s_register_operand, arm_add_operand, s_register_operand, arm_add_operand, comparison_operator, },
{ s_register_operand, arm_rhs_operand, s_register_operand, arm_add_operand, comparison_operator, cc_register, },
{ s_register_operand, arm_rhs_operand, s_register_operand, arm_add_operand, s_register_operand, arm_add_operand, comparison_operator, },
{ s_register_operand, arm_rhs_operand, s_register_operand, arm_add_operand, comparison_operator, cc_register, },
{ s_register_operand, s_register_operand, arm_rhs_operand, s_register_operand, arm_rhs_operand, s_register_operand, arm_add_operand, shiftable_operator, shiftable_operator, comparison_operator, },
{ s_register_operand, s_register_operand, arm_rhs_operand, s_register_operand, arm_rhs_operand, comparison_operator, shiftable_operator, shiftable_operator, cc_register, },
{ s_register_operand, arm_rhs_operand, s_register_operand, arm_add_operand, s_register_operand, arm_rhs_operand, comparison_operator, shiftable_operator, },
{ s_register_operand, arm_rhs_operand, s_register_operand, arm_rhs_operand, comparison_operator, shiftable_operator, cc_register, },
{ s_register_operand, arm_rhs_operand, s_register_operand, arm_rhs_operand, s_register_operand, arm_add_operand, comparison_operator, shiftable_operator, },
{ s_register_operand, arm_rhs_operand, s_register_operand, arm_rhs_operand, comparison_operator, shiftable_operator, cc_register, },
{ s_register_operand, arm_not_operand, s_register_operand, s_register_operand, arm_add_operand, comparison_operator, },
{ s_register_operand, arm_not_operand, s_register_operand, cc_register, comparison_operator, },
{ s_register_operand, arm_not_operand, s_register_operand, s_register_operand, arm_add_operand, comparison_operator, },
{ s_register_operand, arm_not_operand, s_register_operand, cc_register, comparison_operator, },
{ s_register_operand, arm_not_operand, s_register_operand, arm_rhs_operand, s_register_operand, arm_add_operand, comparison_operator, shift_operator, },
{ s_register_operand, arm_not_operand, s_register_operand, arm_rhs_operand, shift_operator, comparison_operator, cc_register, },
{ s_register_operand, arm_not_operand, s_register_operand, arm_rhs_operand, s_register_operand, arm_add_operand, comparison_operator, shift_operator, },
{ s_register_operand, arm_not_operand, s_register_operand, arm_rhs_operand, shift_operator, comparison_operator, cc_register, },
{ s_register_operand, s_register_operand, arm_rhs_operand, s_register_operand, arm_rhs_operand, s_register_operand, arm_add_operand, comparison_operator, shift_operator, shift_operator, },
{ s_register_operand, s_register_operand, arm_rhs_operand, s_register_operand, arm_rhs_operand, comparison_operator, shift_operator, shift_operator, cc_register, },
{ s_register_operand, s_register_operand, s_register_operand, arm_rhs_operand, s_register_operand, arm_add_operand, comparison_operator, shiftable_operator, },
{ s_register_operand, s_register_operand, s_register_operand, arm_rhs_operand, cc_register, comparison_operator, shiftable_operator, },
{ s_register_operand, s_register_operand, s_register_operand, arm_rhs_operand, s_register_operand, arm_add_operand, comparison_operator, shiftable_operator, },
{ s_register_operand, s_register_operand, s_register_operand, arm_rhs_operand, cc_register, comparison_operator, shiftable_operator, },
{ s_register_operand, arm_not_operand, s_register_operand, s_register_operand, arm_add_operand, comparison_operator, },
{ s_register_operand, arm_not_operand, s_register_operand, cc_register, comparison_operator, },
{ s_register_operand, arm_not_operand, s_register_operand, s_register_operand, arm_add_operand, comparison_operator, },
{ s_register_operand, arm_not_operand, s_register_operand, cc_register, comparison_operator, },
{ s_register_operand, shiftable_operator, memory_operand, memory_operand, scratch_operand, },
{ s_register_operand, s_register_operand, index_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, index_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, index_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, index_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, index_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, index_operand, s_register_operand, },
{ s_register_operand, s_register_operand, s_register_operand, s_register_operand, },
{ s_register_operand, s_register_operand, shift_operator, s_register_operand, const_shift_operand, s_register_operand, },
{ s_register_operand, s_register_operand, shift_operator, s_register_operand, const_shift_operand, s_register_operand, },
{ s_register_operand, s_register_operand, shift_operator, s_register_operand, const_shift_operand, s_register_operand, },
{ s_register_operand, s_register_operand, shift_operator, s_register_operand, const_shift_operand, s_register_operand, },
{ s_register_operand, s_register_operand, shift_operator, s_register_operand, const_shift_operand, s_register_operand, },
{ s_register_operand, s_register_operand, shift_operator, s_register_operand, const_shift_operand, s_register_operand, },
{ s_register_operand, s_register_operand, shift_operator, s_register_operand, const_shift_operand, s_register_operand, },
{ s_register_operand, s_register_operand, shift_operator, s_register_operand, const_shift_operand, s_register_operand, },
{ s_register_operand, s_register_operand, shift_operator, s_register_operand, const_shift_operand, s_register_operand, },
{ s_register_operand, s_register_operand, shift_operator, s_register_operand, const_shift_operand, s_register_operand, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, 0, 0, },
{ 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, 0, 0, 0, },
{ 0, 0, 0, },
{ 0 },
{ 0, 0, 0, 0, 0, 0, },
{ s_register_operand, s_register_operand, const_int_operand, },
{ s_register_operand, s_register_operand, const_int_operand, },
{ memory_operand, s_register_operand, multi_register_push, },
{ memory_operand, f_register_operand, multi_register_push, },
{ 0, },
{ 0, },
{ 0 },
{ 0 },
};
const int insn_n_alternatives[] =
{
2,
2,
2,
0,
0,
3,
2,
2,
2,
2,
2,
2,
1,
1,
1,
1,
2,
0,
2,
2,
2,
1,
1,
2,
3,
2,
2,
2,
2,
1,
0,
2,
0,
2,
2,
2,
2,
1,
2,
1,
2,
2,
2,
2,
4,
4,
4,
1,
1,
2,
2,
1,
1,
1,
1,
1,
1,
2,
2,
1,
1,
1,
2,
1,
1,
1,
1,
1,
1,
2,
2,
2,
0,
3,
0,
2,
2,
1,
1,
0,
2,
2,
2,
1,
1,
1,
1,
1,
2,
2,
0,
2,
0,
1,
1,
2,
2,
2,
1,
1,
1,
0,
3,
3,
3,
3,
3,
1,
2,
0,
0,
0,
0,
0,
1,
1,
1,
1,
1,
1,
2,
1,
1,
1,
1,
1,
2,
2,
1,
1,
1,
1,
1,
1,
1,
1,
2,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
1,
0,
0,
2,
1,
0,
1,
0,
0,
1,
0,
0,
0,
1,
0,
0,
1,
0,
1,
1,
1,
3,
0,
4,
0,
0,
1,
1,
1,
1,
1,
2,
0,
0,
0,
0,
0,
1,
0,
0,
4,
3,
3,
1,
2,
1,
1,
0,
4,
0,
9,
3,
0,
1,
11,
3,
0,
7,
0,
1,
1,
0,
1,
1,
0,
0,
0,
0,
0,
2,
1,
1,
1,
2,
2,
2,
1,
2,
2,
2,
2,
1,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
0,
0,
8,
8,
2,
8,
0,
0,
1,
1,
1,
1,
1,
1,
1,
0,
0,
0,
0,
0,
0,
1,
1,
1,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
2,
1,
1,
1,
2,
2,
3,
2,
2,
4,
4,
1,
3,
2,
4,
2,
4,
1,
1,
2,
2,
2,
2,
2,
3,
2,
3,
2,
3,
2,
3,
1,
1,
1,
1,
1,
1,
2,
3,
2,
3,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
0,
0,
0,
0,
1,
1,
1,
1,
0,
0,
0,
0,
};
syntax highlighted by Code2HTML, v. 0.9.1