/* 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, };