NetBSD/gnu/usr.bin/gcc2/arch/ns32k/insn-output.c

4117 lines
70 KiB
C

/* Generated automatically by the program `genoutput'
from the machine description file `md'. */
#include "config.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 <stdio.h>
#include "output.h"
static char *
output_0 (operands, insn)
rtx *operands;
rtx insn;
{
{ cc_status.flags |= CC_REVERSED;
operands[1] = const0_rtx;
return "cmpqd %1,%0"; }
}
static char *
output_1 (operands, insn)
rtx *operands;
rtx insn;
{
{ cc_status.flags |= CC_REVERSED;
operands[1] = const0_rtx;
return "cmpqw %1,%0"; }
}
static char *
output_2 (operands, insn)
rtx *operands;
rtx insn;
{
{ cc_status.flags |= CC_REVERSED;
operands[1] = const0_rtx;
return "cmpqb %1,%0"; }
}
static char *
output_3 (operands, insn)
rtx *operands;
rtx insn;
{
{ cc_status.flags |= CC_REVERSED;
operands[1] = CONST0_RTX (DFmode);
return "cmpl %1,%0"; }
}
static char *
output_4 (operands, insn)
rtx *operands;
rtx insn;
{
{ cc_status.flags |= CC_REVERSED;
operands[1] = CONST0_RTX (SFmode);
return "cmpf %1,%0"; }
}
static char *
output_5 (operands, insn)
rtx *operands;
rtx insn;
{
{
if (GET_CODE (operands[1]) == CONST_INT)
{
int i = INTVAL (operands[1]);
if (i <= 7 && i >= -8)
{
cc_status.flags |= CC_REVERSED;
return "cmpqd %1,%0";
}
}
cc_status.flags &= ~CC_REVERSED;
if (GET_CODE (operands[0]) == CONST_INT)
{
int i = INTVAL (operands[0]);
if (i <= 7 && i >= -8)
return "cmpqd %0,%1";
}
return "cmpd %0,%1";
}
}
static char *
output_6 (operands, insn)
rtx *operands;
rtx insn;
{
{
if (GET_CODE (operands[1]) == CONST_INT)
{
short i = INTVAL (operands[1]);
if (i <= 7 && i >= -8)
{
cc_status.flags |= CC_REVERSED;
if (INTVAL (operands[1]) > 7)
operands[1] = gen_rtx(CONST_INT, VOIDmode, i);
return "cmpqw %1,%0";
}
}
cc_status.flags &= ~CC_REVERSED;
if (GET_CODE (operands[0]) == CONST_INT)
{
short i = INTVAL (operands[0]);
if (i <= 7 && i >= -8)
{
if (INTVAL (operands[0]) > 7)
operands[0] = gen_rtx(CONST_INT, VOIDmode, i);
return "cmpqw %0,%1";
}
}
return "cmpw %0,%1";
}
}
static char *
output_7 (operands, insn)
rtx *operands;
rtx insn;
{
{
if (GET_CODE (operands[1]) == CONST_INT)
{
char i = INTVAL (operands[1]);
if (i <= 7 && i >= -8)
{
cc_status.flags |= CC_REVERSED;
if (INTVAL (operands[1]) > 7)
operands[1] = gen_rtx(CONST_INT, VOIDmode, i);
return "cmpqb %1,%0";
}
}
cc_status.flags &= ~CC_REVERSED;
if (GET_CODE (operands[0]) == CONST_INT)
{
char i = INTVAL (operands[0]);
if (i <= 7 && i >= -8)
{
if (INTVAL (operands[0]) > 7)
operands[0] = gen_rtx(CONST_INT, VOIDmode, i);
return "cmpqb %0,%1";
}
}
return "cmpb %0,%1";
}
}
static char *
output_10 (operands, insn)
rtx *operands;
rtx insn;
{
{
if (FP_REG_P (operands[0]))
{
if (FP_REG_P (operands[1]) || GET_CODE (operands[1]) == CONST_DOUBLE)
return "movl %1,%0";
if (REG_P (operands[1]))
{
rtx xoperands[2];
xoperands[1] = gen_rtx (REG, SImode, REGNO (operands[1]) + 1);
output_asm_insn ("movd %1,tos", xoperands);
output_asm_insn ("movd %1,tos", operands);
return "movl tos,%0";
}
return "movl %1,%0";
}
else if (FP_REG_P (operands[1]))
{
if (REG_P (operands[0]))
{
output_asm_insn ("movl %1,tos\n\tmovd tos,%0", operands);
operands[0] = gen_rtx (REG, SImode, REGNO (operands[0]) + 1);
return "movd tos,%0";
}
else
return "movl %1,%0";
}
return output_move_double (operands);
}
}
static char *
output_11 (operands, insn)
rtx *operands;
rtx insn;
{
{
if (FP_REG_P (operands[0]))
{
if (GET_CODE (operands[1]) == REG && REGNO (operands[1]) < 8)
return "movd %1,tos\n\tmovf tos,%0";
else
return "movf %1,%0";
}
else if (FP_REG_P (operands[1]))
{
if (REG_P (operands[0]))
return "movf %1,tos\n\tmovd tos,%0";
return "movf %1,%0";
}
#if 0 /* Someone suggested this for the Sequent. Is it needed? */
else if (GET_CODE (operands[1]) == CONST_DOUBLE)
return "movf %1,%0";
#endif
/* There was a #if 0 around this, but that was erroneous
for many machines -- rms. */
#ifndef MOVD_FLOAT_OK
/* GAS understands floating constants in ordinary movd instructions
but other assemblers might object. */
else if (GET_CODE (operands[1]) == CONST_DOUBLE)
{
union {int i[2]; float f; double d;} convrt;
convrt.i[0] = CONST_DOUBLE_LOW (operands[1]);
convrt.i[1] = CONST_DOUBLE_HIGH (operands[1]);
convrt.f = convrt.d;
/* Is there a better machine-independent way to to this? */
operands[1] = gen_rtx (CONST_INT, VOIDmode, convrt.i[0]);
return "movd %1,%0";
}
#endif
else return "movd %1,%0";
}
}
static char *
output_13 (operands, insn)
rtx *operands;
rtx insn;
{
{
if (FP_REG_P (operands[0]))
{
if (FP_REG_P (operands[1]) || GET_CODE (operands[1]) == CONST_DOUBLE)
return "movl %1,%0";
if (REG_P (operands[1]))
{
rtx xoperands[2];
xoperands[1] = gen_rtx (REG, SImode, REGNO (operands[1]) + 1);
output_asm_insn ("movd %1,tos", xoperands);
output_asm_insn ("movd %1,tos", operands);
return "movl tos,%0";
}
return "movl %1,%0";
}
else if (FP_REG_P (operands[1]))
{
if (REG_P (operands[0]))
{
output_asm_insn ("movl %1,tos\n\tmovd tos,%0", operands);
operands[0] = gen_rtx (REG, SImode, REGNO (operands[0]) + 1);
return "movd tos,%0";
}
else
return "movl %1,%0";
}
return output_move_double (operands);
}
}
static char *
output_15 (operands, insn)
rtx *operands;
rtx insn;
{
{
if (FP_REG_P (operands[0]))
{
if (GET_CODE (operands[1]) == REG && REGNO (operands[1]) < 8)
return "movd %1,tos\n\tmovf tos,%0";
else
return "movf %1,%0";
}
else if (FP_REG_P (operands[1]))
{
if (REG_P (operands[0]))
return "movf %1,tos\n\tmovd tos,%0";
return "movf %1,%0";
}
if (GET_CODE (operands[0]) == REG
&& REGNO (operands[0]) == FRAME_POINTER_REGNUM)
return "lprd fp,%1";
if (GET_CODE (operands[1]) == CONST_DOUBLE)
operands[1]
= gen_rtx (CONST_INT, VOIDmode, CONST_DOUBLE_LOW (operands[1]));
if (GET_CODE (operands[1]) == CONST_INT)
{
int i = INTVAL (operands[1]);
if (! TARGET_32532)
{
if (i <= 7 && i >= -8)
return "movqd %1,%0";
if (i < 0x4000 && i >= -0x4000)
#if defined (GNX_V3) || defined (UTEK_ASM)
return "addr %c1,%0";
#else
return "addr @%c1,%0";
#endif
}
else
return output_move_dconst(i, "%$%1,%0");
}
else if (GET_CODE (operands[1]) == REG)
{
if (REGNO (operands[1]) < 16)
return "movd %1,%0";
else if (REGNO (operands[1]) == FRAME_POINTER_REGNUM)
{
if (GET_CODE(operands[0]) == REG)
return "sprd fp,%0";
else
return "addr 0(fp),%0" ;
}
else if (REGNO (operands[1]) == STACK_POINTER_REGNUM)
{
if (GET_CODE(operands[0]) == REG)
return "sprd sp,%0";
else
return "addr 0(sp),%0" ;
}
else abort ();
}
else if (GET_CODE (operands[1]) == MEM)
return "movd %1,%0";
/* Check if this effective address can be
calculated faster by pulling it apart. */
if (REG_P (operands[0])
&& GET_CODE (operands[1]) == MULT
&& GET_CODE (XEXP (operands[1], 1)) == CONST_INT
&& (INTVAL (XEXP (operands[1], 1)) == 2
|| INTVAL (XEXP (operands[1], 1)) == 4))
{
rtx xoperands[3];
xoperands[0] = operands[0];
xoperands[1] = XEXP (operands[1], 0);
xoperands[2] = gen_rtx (CONST_INT, VOIDmode, INTVAL (XEXP (operands[1], 1)) >> 1);
return output_shift_insn (xoperands);
}
return "addr %a1,%0";
}
}
static char *
output_16 (operands, insn)
rtx *operands;
rtx insn;
{
{
if (GET_CODE (operands[1]) == CONST_INT)
{
short i = INTVAL (operands[1]);
if (i <= 7 && i >= -8)
{
if (INTVAL (operands[1]) > 7)
operands[1] =
gen_rtx (CONST_INT, VOIDmode, i);
return "movqw %1,%0";
}
return "movw %1,%0";
}
else if (FP_REG_P (operands[0]))
{
if (GET_CODE (operands[1]) == REG && REGNO (operands[1]) < 8)
return "movwf %1,tos\n\tmovf tos,%0";
else
return "movwf %1,%0";
}
else if (FP_REG_P (operands[1]))
{
if (REG_P (operands[0]))
return "movf %1,tos\n\tmovd tos,%0";
return "movf %1,%0";
}
else
return "movw %1,%0";
}
}
static char *
output_17 (operands, insn)
rtx *operands;
rtx insn;
{
{
if (GET_CODE (operands[1]) == CONST_INT
&& INTVAL(operands[1]) <= 7 && INTVAL(operands[1]) >= -8)
return "movqw %1,%0";
return "movw %1,%0";
}
}
static char *
output_18 (operands, insn)
rtx *operands;
rtx insn;
{
{ if (GET_CODE (operands[1]) == CONST_INT)
{
char char_val = (char)INTVAL (operands[1]);
if (char_val <= 7 && char_val >= -8)
{
if (INTVAL (operands[1]) > 7)
operands[1] =
gen_rtx (CONST_INT, VOIDmode, char_val);
return "movqb %1,%0";
}
return "movb %1,%0";
}
else if (FP_REG_P (operands[0]))
{
if (GET_CODE (operands[1]) == REG && REGNO (operands[1]) < 8)
return "movbf %1,tos\n\tmovf tos,%0";
else
return "movbf %1,%0";
}
else if (FP_REG_P (operands[1]))
{
if (REG_P (operands[0]))
return "movf %1,tos\n\tmovd tos,%0";
return "movf %1,%0";
}
else
return "movb %1,%0";
}
}
static char *
output_19 (operands, insn)
rtx *operands;
rtx insn;
{
{
if (GET_CODE (operands[1]) == CONST_INT
&& INTVAL(operands[1]) < 8 && INTVAL(operands[1]) > -9)
return "movqb %1,%0";
return "movb %1,%0";
}
}
static char *
output_21 (operands, insn)
rtx *operands;
rtx insn;
{
{
if (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
abort ();
operands[0] = XEXP (operands[0], 0);
operands[1] = XEXP (operands[1], 0);
if (GET_CODE (operands[0]) == MEM)
if (GET_CODE (operands[1]) == MEM)
output_asm_insn ("movd %0,r2\n\tmovd %1,r1", operands);
else
output_asm_insn ("movd %0,r2\n\taddr %a1,r1", operands);
else if (GET_CODE (operands[1]) == MEM)
output_asm_insn ("addr %a0,r2\n\tmovd %1,r1", operands);
else
output_asm_insn ("addr %a0,r2\n\taddr %a1,r1", operands);
#ifdef UTEK_ASM
if (GET_CODE (operands[2]) == CONST_INT && (INTVAL (operands[2]) & 0x3) == 0)
{
operands[2] = gen_rtx (CONST_INT, VOIDmode, INTVAL (operands[2]) >> 2);
if ((unsigned) INTVAL (operands[2]) <= 7)
return "movqd %2,r0\n\tmovsd $0";
else
return "movd %2,r0\n\tmovsd $0";
}
else
{
return "movd %2,r0\n\tmovsb $0";
}
#else
if (GET_CODE (operands[2]) == CONST_INT && (INTVAL (operands[2]) & 0x3) == 0)
{
operands[2] = gen_rtx (CONST_INT, VOIDmode, INTVAL (operands[2]) >> 2);
if ((unsigned) INTVAL (operands[2]) <= 7)
return "movqd %2,r0\n\tmovsd";
else
return "movd %2,r0\n\tmovsd";
}
else
{
return "movd %2,r0\n\tmovsb";
}
#endif
}
}
static char *
output_58 (operands, insn)
rtx *operands;
rtx insn;
{
{
#ifndef SEQUENT_ADJUST_STACK
if (TARGET_32532)
if (INTVAL (operands[0]) == 8)
return "cmpd tos,tos";
if (TARGET_32532 || TARGET_32332)
if (INTVAL (operands[0]) == 4)
return "cmpqd %$0,tos";
#endif
if (! TARGET_32532)
{
if (INTVAL (operands[0]) < 64 && INTVAL (operands[0]) > -64)
return "adjspb %$%n0";
else if (INTVAL (operands[0]) < 8192 && INTVAL (operands[0]) >= -8192)
return "adjspw %$%n0";
}
return "adjspd %$%n0";
}
}
static char *
output_61 (operands, insn)
rtx *operands;
rtx insn;
{
{
if (which_alternative == 1)
{
int i = INTVAL (operands[2]);
if (NS32K_DISPLACEMENT_P (i))
return "addr %c2(%1),%0";
else
return "movd %1,%0\n\taddd %2,%0";
}
if (GET_CODE (operands[2]) == CONST_INT)
{
int i = INTVAL (operands[2]);
if (i <= 7 && i >= -8)
return "addqd %2,%0";
else if (GET_CODE (operands[0]) == REG
&& i < 0x4000 && i >= -0x4000 && ! TARGET_32532)
return "addr %c2(%0),%0";
}
return "addd %2,%0";
}
}
static char *
output_62 (operands, insn)
rtx *operands;
rtx insn;
{
{ if (GET_CODE (operands[2]) == CONST_INT)
{
int i = INTVAL (operands[2]);
if (i <= 7 && i >= -8)
return "addqw %2,%0";
}
return "addw %2,%0";
}
}
static char *
output_63 (operands, insn)
rtx *operands;
rtx insn;
{
{
if (GET_CODE (operands[1]) == CONST_INT
&& INTVAL (operands[1]) >-9 && INTVAL(operands[1]) < 8)
return "addqw %2,%0";
return "addw %2,%0";
}
}
static char *
output_64 (operands, insn)
rtx *operands;
rtx insn;
{
{ if (GET_CODE (operands[2]) == CONST_INT)
{
int i = INTVAL (operands[2]);
if (i <= 7 && i >= -8)
return "addqb %2,%0";
}
return "addb %2,%0";
}
}
static char *
output_65 (operands, insn)
rtx *operands;
rtx insn;
{
{
if (GET_CODE (operands[1]) == CONST_INT
&& INTVAL (operands[1]) >-9 && INTVAL(operands[1]) < 8)
return "addqb %2,%0";
return "addb %2,%0";
}
}
static char *
output_68 (operands, insn)
rtx *operands;
rtx insn;
{
{
if (GET_CODE(operands[0]) == CONST_INT && INTVAL(operands[0]) < 64
&& INTVAL(operands[0]) > -64 && ! TARGET_32532)
return "adjspb %$%0";
return "adjspd %$%0";
}
}
static char *
output_69 (operands, insn)
rtx *operands;
rtx insn;
{
{ if (GET_CODE (operands[2]) == CONST_INT)
{
int i = INTVAL (operands[2]);
if (i <= 8 && i >= -7)
return "addqd %$%n2,%0";
}
return "subd %2,%0";
}
}
static char *
output_70 (operands, insn)
rtx *operands;
rtx insn;
{
{ if (GET_CODE (operands[2]) == CONST_INT)
{
int i = INTVAL (operands[2]);
if (i <= 8 && i >= -7)
return "addqw %$%n2,%0";
}
return "subw %2,%0";
}
}
static char *
output_71 (operands, insn)
rtx *operands;
rtx insn;
{
{
if (GET_CODE (operands[1]) == CONST_INT
&& INTVAL (operands[1]) >-8 && INTVAL(operands[1]) < 9)
return "addqw %$%n2,%0";
return "subw %2,%0";
}
}
static char *
output_72 (operands, insn)
rtx *operands;
rtx insn;
{
{ if (GET_CODE (operands[2]) == CONST_INT)
{
int i = INTVAL (operands[2]);
if (i <= 8 && i >= -7)
return "addqb %$%n2,%0";
}
return "subb %2,%0";
}
}
static char *
output_73 (operands, insn)
rtx *operands;
rtx insn;
{
{
if (GET_CODE (operands[1]) == CONST_INT
&& INTVAL (operands[1]) >-8 && INTVAL(operands[1]) < 9)
return "addqb %$%n2,%0";
return "subb %2,%0";
}
}
static char *
output_85 (operands, insn)
rtx *operands;
rtx insn;
{
{
operands[1] = gen_rtx (REG, SImode, REGNO (operands[0]) + 1);
return "deid %2,%0\n\tmovd %1,%0";
}
}
static char *
output_86 (operands, insn)
rtx *operands;
rtx insn;
{
{
operands[1] = gen_rtx (REG, HImode, REGNO (operands[0]) + 1);
return "deiw %2,%0\n\tmovw %1,%0";
}
}
static char *
output_87 (operands, insn)
rtx *operands;
rtx insn;
{
{
operands[1] = gen_rtx (REG, QImode, REGNO (operands[0]) + 1);
return "deib %2,%0\n\tmovb %1,%0";
}
}
static char *
output_94 (operands, insn)
rtx *operands;
rtx insn;
{
{
if (GET_CODE (operands[2]) == CONST_INT)
{
if ((INTVAL (operands[2]) | 0xff) == 0xffffffff)
{
if (INTVAL (operands[2]) == 0xffffff00)
return "movqb %$0,%0";
else
{
operands[2] = gen_rtx (CONST_INT, VOIDmode,
INTVAL (operands[2]) & 0xff);
return "andb %2,%0";
}
}
if ((INTVAL (operands[2]) | 0xffff) == 0xffffffff)
{
if (INTVAL (operands[2]) == 0xffff0000)
return "movqw %$0,%0";
else
{
operands[2] = gen_rtx (CONST_INT, VOIDmode,
INTVAL (operands[2]) & 0xffff);
return "andw %2,%0";
}
}
}
return "andd %2,%0";
}
}
static char *
output_95 (operands, insn)
rtx *operands;
rtx insn;
{
{
if (GET_CODE (operands[2]) == CONST_INT
&& (INTVAL (operands[2]) | 0xff) == 0xffffffff)
{
if (INTVAL (operands[2]) == 0xffffff00)
return "movqb %$0,%0";
else
{
operands[2] = gen_rtx (CONST_INT, VOIDmode,
INTVAL (operands[2]) & 0xff);
return "andb %2,%0";
}
}
return "andw %2,%0";
}
}
static char *
output_100 (operands, insn)
rtx *operands;
rtx insn;
{
{
if (GET_CODE (operands[2]) == CONST_INT) {
if ((INTVAL (operands[2]) & 0xffffff00) == 0)
return "orb %2,%0";
if ((INTVAL (operands[2]) & 0xffff0000) == 0)
return "orw %2,%0";
}
return "ord %2,%0";
}
}
static char *
output_101 (operands, insn)
rtx *operands;
rtx insn;
{
{
if (GET_CODE(operands[2]) == CONST_INT &&
(INTVAL(operands[2]) & 0xffffff00) == 0)
return "orb %2,%0";
return "orw %2,%0";
}
}
static char *
output_103 (operands, insn)
rtx *operands;
rtx insn;
{
{
if (GET_CODE (operands[2]) == CONST_INT) {
if ((INTVAL (operands[2]) & 0xffffff00) == 0)
return "xorb %2,%0";
if ((INTVAL (operands[2]) & 0xffff0000) == 0)
return "xorw %2,%0";
}
return "xord %2,%0";
}
}
static char *
output_104 (operands, insn)
rtx *operands;
rtx insn;
{
{
if (GET_CODE(operands[2]) == CONST_INT &&
(INTVAL(operands[2]) & 0xffffff00) == 0)
return "xorb %2,%0";
return "xorw %2,%0";
}
}
static char *
output_114 (operands, insn)
rtx *operands;
rtx insn;
{
{ if (TARGET_32532)
return "lshd %2,%0";
else
return output_shift_insn (operands);
}
}
static char *
output_115 (operands, insn)
rtx *operands;
rtx insn;
{
{ if (GET_CODE (operands[2]) == CONST_INT)
{
if (INTVAL (operands[2]) == 1)
return "addw %0,%0";
else if (INTVAL (operands[2]) == 2 && !TARGET_32532)
return "addw %0,%0\n\taddw %0,%0";
}
if (TARGET_32532)
return "lshw %2,%0";
else
return "ashw %2,%0";
}
}
static char *
output_116 (operands, insn)
rtx *operands;
rtx insn;
{
{ if (GET_CODE (operands[2]) == CONST_INT)
{
if (INTVAL (operands[2]) == 1)
return "addb %0,%0";
else if (INTVAL (operands[2]) == 2 && !TARGET_32532)
return "addb %0,%0\n\taddb %0,%0";
}
if (TARGET_32532)
return "lshb %2,%0";
else
return "ashb %2,%0";
}
}
static char *
output_150 (operands, insn)
rtx *operands;
rtx insn;
{
{
if (REG_P (operands[0])
&& GET_CODE (operands[1]) == MULT
&& GET_CODE (XEXP (operands[1], 1)) == CONST_INT
&& (INTVAL (XEXP (operands[1], 1)) == 2
|| INTVAL (XEXP (operands[1], 1)) == 4))
{
rtx xoperands[3];
xoperands[0] = operands[0];
xoperands[1] = XEXP (operands[1], 0);
xoperands[2] = gen_rtx (CONST_INT, VOIDmode, INTVAL (XEXP (operands[1], 1)) >> 1);
return output_shift_insn (xoperands);
}
return "addr %a1,%0";
}
}
static char *
output_155 (operands, insn)
rtx *operands;
rtx insn;
{
{ cc_status.flags = CC_Z_IN_F;
return "tbitd %1,%0";
}
}
static char *
output_156 (operands, insn)
rtx *operands;
rtx insn;
{
{
output_asm_insn ("movd %1,tos", operands);
if (INTVAL (operands[2]) == 16)
{
if (INTVAL (operands[3]) == 8)
output_asm_insn ("movzwd 1(sp),%0", operands);
else
output_asm_insn ("movzwd 2(sp),%0", operands);
}
else
{
if (INTVAL (operands[3]) == 8)
output_asm_insn ("movzbd 1(sp),%0", operands);
else if (INTVAL (operands[3]) == 16)
output_asm_insn ("movzbd 2(sp),%0", operands);
else
output_asm_insn ("movzbd 3(sp),%0", operands);
}
if (TARGET_32532 || TARGET_32332)
return "cmpqd %$0,tos";
else
return "adjspb %$-4";
}
}
static char *
output_157 (operands, insn)
rtx *operands;
rtx insn;
{
{ if (GET_CODE (operands[3]) == CONST_INT)
return "extsd %1,%0,%3,%2";
else return "extd %3,%1,%0,%2";
}
}
static char *
output_158 (operands, insn)
rtx *operands;
rtx insn;
{
{ if (GET_CODE (operands[3]) == CONST_INT)
return "extsd %1,%0,%3,%2";
else return "extd %3,%1,%0,%2";
}
}
static char *
output_159 (operands, insn)
rtx *operands;
rtx insn;
{
{ if (GET_CODE (operands[2]) == CONST_INT)
{
if (INTVAL (operands[2]) >= 8)
{
operands[0] = adj_offsettable_operand (operands[0],
INTVAL (operands[2]) / 8);
operands[2] = gen_rtx (CONST_INT, VOIDmode, INTVAL (operands[2]) % 8);
}
if (INTVAL (operands[1]) <= 8)
return "inssb %3,%0,%2,%1";
else if (INTVAL (operands[1]) <= 16)
return "inssw %3,%0,%2,%1";
else
return "inssd %3,%0,%2,%1";
}
return "insd %2,%3,%0,%1";
}
}
static char *
output_160 (operands, insn)
rtx *operands;
rtx insn;
{
{ if (GET_CODE (operands[2]) == CONST_INT)
if (INTVAL (operands[1]) <= 8)
return "inssb %3,%0,%2,%1";
else if (INTVAL (operands[1]) <= 16)
return "inssw %3,%0,%2,%1";
else
return "inssd %3,%0,%2,%1";
return "insd %2,%3,%0,%1";
}
}
static char *
output_161 (operands, insn)
rtx *operands;
rtx insn;
{
{ if (GET_CODE (operands[2]) == CONST_INT)
if (INTVAL (operands[1]) <= 8)
return "inssb %3,%0,%2,%1";
else if (INTVAL (operands[1]) <= 16)
return "inssw %3,%0,%2,%1";
else
return "inssd %3,%0,%2,%1";
return "insd %2,%3,%0,%1";
}
}
static char *
output_163 (operands, insn)
rtx *operands;
rtx insn;
{
{ if (cc_prev_status.flags & CC_Z_IN_F)
return "bfc %l0";
else if (cc_prev_status.flags & CC_Z_IN_NOT_F)
return "bfs %l0";
else return "beq %l0";
}
}
static char *
output_164 (operands, insn)
rtx *operands;
rtx insn;
{
{ if (cc_prev_status.flags & CC_Z_IN_F)
return "bfs %l0";
else if (cc_prev_status.flags & CC_Z_IN_NOT_F)
return "bfc %l0";
else return "bne %l0";
}
}
static char *
output_173 (operands, insn)
rtx *operands;
rtx insn;
{
{ if (cc_prev_status.flags & CC_Z_IN_F)
return "bfs %l0";
else if (cc_prev_status.flags & CC_Z_IN_NOT_F)
return "bfc %l0";
else return "bne %l0";
}
}
static char *
output_174 (operands, insn)
rtx *operands;
rtx insn;
{
{ if (cc_prev_status.flags & CC_Z_IN_F)
return "bfc %l0";
else if (cc_prev_status.flags & CC_Z_IN_NOT_F)
return "bfs %l0";
else return "beq %l0";
}
}
static char *
output_185 (operands, insn)
rtx *operands;
rtx insn;
{
{
#ifndef JSR_ALWAYS
if (GET_CODE (operands[0]) == MEM)
{
rtx temp = XEXP (operands[0], 0);
if (CONSTANT_ADDRESS_P (temp))
{
#ifdef ENCORE_ASM
return "bsr %?%0";
#else
#ifdef CALL_MEMREF_IMPLICIT
operands[0] = temp;
return "bsr %0";
#else
#ifdef GNX_V3
return "bsr %0";
#else
return "bsr %?%a0";
#endif
#endif
#endif
}
if (GET_CODE (XEXP (operands[0], 0)) == REG)
#if defined (GNX_V3) || defined (CALL_MEMREF_IMPLICIT)
return "jsr %0";
#else
return "jsr %a0";
#endif
}
#endif /* not JSR_ALWAYS */
return "jsr %0";
}
}
static char *
output_186 (operands, insn)
rtx *operands;
rtx insn;
{
{
#ifndef JSR_ALWAYS
if (GET_CODE (operands[1]) == MEM)
{
rtx temp = XEXP (operands[1], 0);
if (CONSTANT_ADDRESS_P (temp))
{
#ifdef ENCORE_ASM
return "bsr %?%1";
#else
#ifdef CALL_MEMREF_IMPLICIT
operands[1] = temp;
return "bsr %1";
#else
#ifdef GNX_V3
return "bsr %1";
#else
return "bsr %?%a1";
#endif
#endif
#endif
}
if (GET_CODE (XEXP (operands[1], 0)) == REG)
#if defined (GNX_V3) || defined (CALL_MEMREF_IMPLICIT)
return "jsr %1";
#else
return "jsr %a1";
#endif
}
#endif /* not JSR_ALWAYS */
return "jsr %1";
}
}
static char *
output_197 (operands, insn)
rtx *operands;
rtx insn;
{
{
ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, "LI",
CODE_LABEL_NUMBER (operands[1]));
return "cased %0";
}
}
static char *
output_198 (operands, insn)
rtx *operands;
rtx insn;
{
{ if (cc_prev_status.flags & CC_Z_IN_F)
return "sfcd %0";
else if (cc_prev_status.flags & CC_Z_IN_NOT_F)
return "sfsd %0";
else return "seqd %0";
}
}
static char *
output_199 (operands, insn)
rtx *operands;
rtx insn;
{
{ if (cc_prev_status.flags & CC_Z_IN_F)
return "sfcw %0";
else if (cc_prev_status.flags & CC_Z_IN_NOT_F)
return "sfsw %0";
else return "seqw %0";
}
}
static char *
output_200 (operands, insn)
rtx *operands;
rtx insn;
{
{ if (cc_prev_status.flags & CC_Z_IN_F)
return "sfcb %0";
else if (cc_prev_status.flags & CC_Z_IN_NOT_F)
return "sfsb %0";
else return "seqb %0";
}
}
static char *
output_201 (operands, insn)
rtx *operands;
rtx insn;
{
{ if (cc_prev_status.flags & CC_Z_IN_F)
return "sfsd %0";
else if (cc_prev_status.flags & CC_Z_IN_NOT_F)
return "sfcd %0";
else return "sned %0";
}
}
static char *
output_202 (operands, insn)
rtx *operands;
rtx insn;
{
{ if (cc_prev_status.flags & CC_Z_IN_F)
return "sfsw %0";
else if (cc_prev_status.flags & CC_Z_IN_NOT_F)
return "sfcw %0";
else return "snew %0";
}
}
static char *
output_203 (operands, insn)
rtx *operands;
rtx insn;
{
{ if (cc_prev_status.flags & CC_Z_IN_F)
return "sfsb %0";
else if (cc_prev_status.flags & CC_Z_IN_NOT_F)
return "sfcb %0";
else return "sneb %0";
}
}
static char *
output_228 (operands, insn)
rtx *operands;
rtx insn;
{
{
return "movqb 0,%0; ffsd %1,%0; bfs 1f; addqb 1,%0; 1:";
}
}
static char *
output_229 (operands, insn)
rtx *operands;
rtx insn;
{
{
return "movqw 0,%0; ffsd %1,%0; bfs 1f; addqw 1,%0; 1:";
}
}
static char *
output_230 (operands, insn)
rtx *operands;
rtx insn;
{
{
return "movqd 0,%0; ffsd %1,%0; bfs 1f; addqd 1,%0; 1:";
}
}
static char *
output_231 (operands, insn)
rtx *operands;
rtx insn;
{
{
if (GET_CODE (operands[1]) == CONST_INT)
output_asm_insn (output_move_dconst (INTVAL (operands[1]), "%$%1,tos"),
operands);
else
output_asm_insn ("movzwd %1,tos", operands);
return "";
}
}
static char *
output_232 (operands, insn)
rtx *operands;
rtx insn;
{
{
if (GET_CODE (operands[1]) == CONST_INT)
output_asm_insn (output_move_dconst (INTVAL (operands[1]), "%$%1,tos"),
operands);
else
output_asm_insn ("movzbd %1,tos", operands);
return "";
}
}
static char *
output_233 (operands, insn)
rtx *operands;
rtx insn;
{
{
if (GET_CODE (operands[1]) == CONST_INT)
output_asm_insn (output_move_dconst (INTVAL (operands[1]), "%$%1,tos"),
operands);
else
output_asm_insn ("movxbd %1,tos", operands);
return "";
}
}
static char *
output_234 (operands, insn)
rtx *operands;
rtx insn;
{
{
if (GET_CODE (operands[1]) == CONST_INT)
output_asm_insn (output_move_dconst (INTVAL (operands[1]), "%$%1,tos"),
operands);
else
output_asm_insn ("movzbd %1,tos", operands);
return "";
}
}
static char *
output_235 (operands, insn)
rtx *operands;
rtx insn;
{
{
if (GET_CODE (operands[1]) == CONST_INT)
output_asm_insn (output_move_dconst (INTVAL (operands[1]), "%$%1,0(sp)"),
operands);
else
output_asm_insn ("movd %1,0(sp)", operands);
return "";
}
}
static char *
output_236 (operands, insn)
rtx *operands;
rtx insn;
{
{
if (GET_CODE (operands[1]) == CONST_INT)
output_asm_insn (output_move_dconst (INTVAL (operands[1]), "%$%1,4(sp)"),
operands);
else
output_asm_insn ("movd %1,4(sp)", operands);
if (GET_CODE (operands[3]) == CONST_INT)
output_asm_insn (output_move_dconst (INTVAL (operands[3]), "%$%3,0(sp)"),
operands);
else
output_asm_insn ("movd %3,0(sp)", operands);
return "";
}
}
char * const insn_template[] =
{
0,
0,
0,
0,
0,
0,
0,
0,
"cmpl %0,%1",
"cmpf %0,%1",
0,
0,
"movmd %1,%0,4",
0,
"lprd sp,%0",
0,
0,
0,
0,
0,
0,
0,
"movb %1,%0",
"movw %1,%0",
"movb %1,%0",
"movxwd %1,%0",
"movxbw %1,%0",
"movxbd %1,%0",
"movfl %1,%0",
"movlf %1,%0",
"movzwd %1,%0",
"movzbw %1,%0",
"movzbd %1,%0",
"movdf %1,%0",
"movdl %1,%0",
"movwf %1,%0",
"movwl %1,%0",
"movbf %1,%0",
"truncfb %1,%0",
"truncfw %1,%0",
"truncfd %1,%0",
"trunclb %1,%0",
"trunclw %1,%0",
"truncld %1,%0",
"truncfb %1,%0",
"truncfw %1,%0",
"truncfd %1,%0",
"trunclb %1,%0",
"trunclw %1,%0",
"truncld %1,%0",
"truncfb %1,%0",
"truncfw %1,%0",
"truncfd %1,%0",
"trunclb %1,%0",
"trunclw %1,%0",
"truncld %1,%0",
"addl %2,%0",
"addf %2,%0",
0,
"addr %c1(fp),%0",
"addr %c1(sp),%0",
0,
0,
0,
0,
0,
"subl %2,%0",
"subf %2,%0",
0,
0,
0,
0,
0,
0,
"mull %2,%0",
"mulf %2,%0",
"muld %2,%0",
"mulw %2,%0",
"mulb %2,%0",
"meid %2,%0",
"divl %2,%0",
"divf %2,%0",
"quod %2,%0",
"quow %2,%0",
"quob %2,%0",
0,
0,
0,
"remd %2,%0",
"remw %2,%0",
"remb %2,%0",
"deid %2,%0",
"deiw %2,%0",
"deib %2,%0",
0,
0,
"andb %2,%0",
"bicd %1,%0",
"bicw %1,%0",
"bicb %1,%0",
0,
0,
"orb %2,%0",
0,
0,
"xorb %2,%0",
"negl %1,%0",
"negf %1,%0",
"negd %1,%0",
"negw %1,%0",
"negb %1,%0",
"comd %1,%0",
"comw %1,%0",
"comb %1,%0",
0,
0,
0,
0,
"ashd %$%n2,%0",
"ashd %2,%0",
0,
"ashw %$%n2,%0",
"ashw %2,%0",
0,
"ashb %$%n2,%0",
"ashb %2,%0",
"lshd %2,%0",
"lshw %2,%0",
"lshb %2,%0",
0,
"lshd %$%n2,%0",
"lshd %2,%0",
0,
"lshw %$%n2,%0",
"lshw %2,%0",
0,
"lshb %$%n2,%0",
"lshb %2,%0",
"rotd %2,%0",
"rotw %2,%0",
"rotb %2,%0",
0,
"rotd %$%n2,%0",
"rotd %2,%0",
0,
"rotw %$%n2,%0",
"rotw %2,%0",
0,
"rotb %$%n2,%0",
"rotb %2,%0",
0,
"sbitd %1,%0",
"cbitd %1,%0",
"ibitd %1,%0",
"ibitb %1,%0",
0,
0,
0,
0,
0,
0,
0,
"br %l0",
0,
0,
"bgt %l0",
"bhi %l0",
"blt %l0",
"blo %l0",
"bge %l0",
"bhs %l0",
"ble %l0",
"bls %l0",
0,
0,
"ble %l0",
"bls %l0",
"bge %l0",
"bhs %l0",
"blt %l0",
"blo %l0",
"bgt %l0",
"bhi %l0",
"acbd %$%n1,%0,%l2",
"acbd %3,%0,%l2",
0,
0,
0,
"",
"ret 0",
"absf %1,%0",
"absl %1,%0",
"absd %1,%0",
"absw %1,%0",
"absb %1,%0",
"nop",
"jump %0",
0,
0,
0,
0,
0,
0,
0,
"sgtd %0",
"sgtw %0",
"sgtb %0",
"shid %0",
"shiw %0",
"shib %0",
"sltd %0",
"sltw %0",
"sltb %0",
"slod %0",
"slow %0",
"slob %0",
"sged %0",
"sgew %0",
"sgeb %0",
"shsd %0",
"shsw %0",
"shsb %0",
"sled %0",
"slew %0",
"sleb %0",
"slsd %0",
"slsw %0",
"slsb %0",
0,
0,
0,
0,
0,
0,
0,
0,
0,
};
char *(*const insn_outfun[])() =
{
output_0,
output_1,
output_2,
output_3,
output_4,
output_5,
output_6,
output_7,
0,
0,
output_10,
output_11,
0,
output_13,
0,
output_15,
output_16,
output_17,
output_18,
output_19,
0,
output_21,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
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_58,
0,
0,
output_61,
output_62,
output_63,
output_64,
output_65,
0,
0,
output_68,
output_69,
output_70,
output_71,
output_72,
output_73,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
output_85,
output_86,
output_87,
0,
0,
0,
0,
0,
0,
output_94,
output_95,
0,
0,
0,
0,
output_100,
output_101,
0,
output_103,
output_104,
0,
0,
0,
0,
0,
0,
0,
0,
0,
output_114,
output_115,
output_116,
0,
0,
0,
0,
0,
0,
0,
0,
0,
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_150,
0,
0,
0,
0,
output_155,
output_156,
output_157,
output_158,
output_159,
output_160,
output_161,
0,
output_163,
output_164,
0,
0,
0,
0,
0,
0,
0,
0,
output_173,
output_174,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
output_185,
output_186,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
output_197,
output_198,
output_199,
output_200,
output_201,
output_202,
output_203,
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_228,
output_229,
output_230,
output_231,
output_232,
output_233,
output_234,
output_235,
output_236,
};
rtx (*const insn_gen_function[]) () =
{
gen_tstsi,
gen_tsthi,
gen_tstqi,
gen_tstdf,
gen_tstsf,
gen_cmpsi,
gen_cmphi,
gen_cmpqi,
gen_cmpdf,
gen_cmpsf,
gen_movdf,
gen_movsf,
0,
gen_movdi,
0,
gen_movsi,
gen_movhi,
gen_movstricthi,
gen_movqi,
gen_movstrictqi,
gen_movstrsi,
gen_movstrsi1,
gen_truncsiqi2,
gen_truncsihi2,
gen_trunchiqi2,
gen_extendhisi2,
gen_extendqihi2,
gen_extendqisi2,
gen_extendsfdf2,
gen_truncdfsf2,
gen_zero_extendhisi2,
gen_zero_extendqihi2,
gen_zero_extendqisi2,
gen_floatsisf2,
gen_floatsidf2,
gen_floathisf2,
gen_floathidf2,
gen_floatqisf2,
gen_fixsfqi2,
gen_fixsfhi2,
gen_fixsfsi2,
gen_fixdfqi2,
gen_fixdfhi2,
gen_fixdfsi2,
gen_fixunssfqi2,
gen_fixunssfhi2,
gen_fixunssfsi2,
gen_fixunsdfqi2,
gen_fixunsdfhi2,
gen_fixunsdfsi2,
gen_fix_truncsfqi2,
gen_fix_truncsfhi2,
gen_fix_truncsfsi2,
gen_fix_truncdfqi2,
gen_fix_truncdfhi2,
gen_fix_truncdfsi2,
gen_adddf3,
gen_addsf3,
0,
0,
0,
gen_addsi3,
gen_addhi3,
0,
gen_addqi3,
0,
gen_subdf3,
gen_subsf3,
0,
gen_subsi3,
gen_subhi3,
0,
gen_subqi3,
0,
gen_muldf3,
gen_mulsf3,
gen_mulsi3,
gen_mulhi3,
gen_mulqi3,
gen_umulsidi3,
gen_divdf3,
gen_divsf3,
gen_divsi3,
gen_divhi3,
gen_divqi3,
gen_udivsi3,
gen_udivhi3,
gen_udivqi3,
gen_modsi3,
gen_modhi3,
gen_modqi3,
gen_umodsi3,
gen_umodhi3,
gen_umodqi3,
gen_andsi3,
gen_andhi3,
gen_andqi3,
0,
0,
0,
gen_iorsi3,
gen_iorhi3,
gen_iorqi3,
gen_xorsi3,
gen_xorhi3,
gen_xorqi3,
gen_negdf2,
gen_negsf2,
gen_negsi2,
gen_neghi2,
gen_negqi2,
gen_one_cmplsi2,
gen_one_cmplhi2,
gen_one_cmplqi2,
gen_ashlsi3,
gen_ashlhi3,
gen_ashlqi3,
gen_ashrsi3,
0,
0,
gen_ashrhi3,
0,
0,
gen_ashrqi3,
0,
0,
gen_lshlsi3,
gen_lshlhi3,
gen_lshlqi3,
gen_lshrsi3,
0,
0,
gen_lshrhi3,
0,
0,
gen_lshrqi3,
0,
0,
gen_rotlsi3,
gen_rotlhi3,
gen_rotlqi3,
gen_rotrsi3,
0,
0,
gen_rotrhi3,
0,
0,
gen_rotrqi3,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
gen_extzv,
0,
0,
gen_insv,
gen_jump,
gen_beq,
gen_bne,
gen_bgt,
gen_bgtu,
gen_blt,
gen_bltu,
gen_bge,
gen_bgeu,
gen_ble,
gen_bleu,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
gen_call,
gen_call_value,
gen_untyped_call,
gen_blockage,
gen_return,
gen_abssf2,
gen_absdf2,
gen_abssi2,
gen_abshi2,
gen_absqi2,
gen_nop,
gen_indirect_jump,
gen_tablejump,
gen_seq,
0,
0,
gen_sne,
0,
0,
gen_sgt,
0,
0,
gen_sgtu,
0,
0,
gen_slt,
0,
0,
gen_sltu,
0,
0,
gen_sge,
0,
0,
gen_sgeu,
0,
0,
gen_sle,
0,
0,
gen_sleu,
0,
0,
gen_ffsqi2,
gen_ffshi2,
gen_ffssi2,
0,
0,
0,
0,
0,
0,
};
char *insn_name[] =
{
"tstsi",
"tsthi",
"tstqi",
"tstdf",
"tstsf",
"cmpsi",
"cmphi",
"cmpqi",
"cmpdf",
"cmpsf",
"movdf",
"movsf",
"movsf+1",
"movdi",
"movdi+1",
"movsi",
"movhi",
"movstricthi",
"movqi",
"movstrictqi",
"movstrsi",
"movstrsi1",
"truncsiqi2",
"truncsihi2",
"trunchiqi2",
"extendhisi2",
"extendqihi2",
"extendqisi2",
"extendsfdf2",
"truncdfsf2",
"zero_extendhisi2",
"zero_extendqihi2",
"zero_extendqisi2",
"floatsisf2",
"floatsidf2",
"floathisf2",
"floathidf2",
"floatqisf2",
"fixsfqi2",
"fixsfhi2",
"fixsfsi2",
"fixdfqi2",
"fixdfhi2",
"fixdfsi2",
"fixunssfqi2",
"fixunssfhi2",
"fixunssfsi2",
"fixunsdfqi2",
"fixunsdfhi2",
"fixunsdfsi2",
"fix_truncsfqi2",
"fix_truncsfhi2",
"fix_truncsfsi2",
"fix_truncdfqi2",
"fix_truncdfhi2",
"fix_truncdfsi2",
"adddf3",
"addsf3",
"addsf3+1",
"addsf3+2",
"addsi3-1",
"addsi3",
"addhi3",
"addhi3+1",
"addqi3",
"addqi3+1",
"subdf3",
"subsf3",
"subsf3+1",
"subsi3",
"subhi3",
"subhi3+1",
"subqi3",
"subqi3+1",
"muldf3",
"mulsf3",
"mulsi3",
"mulhi3",
"mulqi3",
"umulsidi3",
"divdf3",
"divsf3",
"divsi3",
"divhi3",
"divqi3",
"udivsi3",
"udivhi3",
"udivqi3",
"modsi3",
"modhi3",
"modqi3",
"umodsi3",
"umodhi3",
"umodqi3",
"andsi3",
"andhi3",
"andqi3",
"andqi3+1",
"andqi3+2",
"iorsi3-1",
"iorsi3",
"iorhi3",
"iorqi3",
"xorsi3",
"xorhi3",
"xorqi3",
"negdf2",
"negsf2",
"negsi2",
"neghi2",
"negqi2",
"one_cmplsi2",
"one_cmplhi2",
"one_cmplqi2",
"ashlsi3",
"ashlhi3",
"ashlqi3",
"ashrsi3",
"ashrsi3+1",
"ashrhi3-1",
"ashrhi3",
"ashrhi3+1",
"ashrqi3-1",
"ashrqi3",
"ashrqi3+1",
"lshlsi3-1",
"lshlsi3",
"lshlhi3",
"lshlqi3",
"lshrsi3",
"lshrsi3+1",
"lshrhi3-1",
"lshrhi3",
"lshrhi3+1",
"lshrqi3-1",
"lshrqi3",
"lshrqi3+1",
"rotlsi3-1",
"rotlsi3",
"rotlhi3",
"rotlqi3",
"rotrsi3",
"rotrsi3+1",
"rotrhi3-1",
"rotrhi3",
"rotrhi3+1",
"rotrqi3-1",
"rotrqi3",
"rotrqi3+1",
"rotrqi3+2",
"rotrqi3+3",
"rotrqi3+4",
"rotrqi3+5",
"extzv-5",
"extzv-4",
"extzv-3",
"extzv-2",
"extzv-1",
"extzv",
"extzv+1",
"insv-1",
"insv",
"jump",
"beq",
"bne",
"bgt",
"bgtu",
"blt",
"bltu",
"bge",
"bgeu",
"ble",
"bleu",
"bleu+1",
"bleu+2",
"bleu+3",
"bleu+4",
"bleu+5",
"bleu+6",
"call-6",
"call-5",
"call-4",
"call-3",
"call-2",
"call-1",
"call",
"call_value",
"untyped_call",
"blockage",
"return",
"abssf2",
"absdf2",
"abssi2",
"abshi2",
"absqi2",
"nop",
"indirect_jump",
"tablejump",
"seq",
"seq+1",
"sne-1",
"sne",
"sne+1",
"sgt-1",
"sgt",
"sgt+1",
"sgtu-1",
"sgtu",
"sgtu+1",
"slt-1",
"slt",
"slt+1",
"sltu-1",
"sltu",
"sltu+1",
"sge-1",
"sge",
"sge+1",
"sgeu-1",
"sgeu",
"sgeu+1",
"sle-1",
"sle",
"sle+1",
"sleu-1",
"sleu",
"sleu+1",
"ffsqi2-1",
"ffsqi2",
"ffshi2",
"ffssi2",
"ffssi2+1",
"ffssi2+2",
"ffssi2+3",
"ffssi2+4",
"ffssi2+5",
"ffssi2+6",
};
char **insn_name_ptr = insn_name;
const int insn_n_operands[] =
{
1,
1,
1,
1,
1,
2,
2,
2,
2,
2,
2,
2,
2,
2,
1,
2,
2,
2,
2,
2,
4,
3,
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,
3,
1,
2,
2,
3,
3,
3,
3,
3,
3,
3,
1,
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,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
2,
2,
2,
2,
2,
2,
2,
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,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
2,
2,
2,
2,
2,
4,
4,
4,
4,
4,
4,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
4,
2,
3,
3,
0,
0,
2,
2,
2,
2,
2,
0,
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,
2,
2,
2,
2,
2,
2,
2,
2,
4,
};
const int insn_n_dups[] =
{
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
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,
0,
0,
0,
3,
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,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
};
char *const insn_operand_constraint[][MAX_RECOG_OPERANDS] =
{
{ "rm", },
{ "g", },
{ "g", },
{ "fmF", },
{ "fmF", },
{ "rmn", "rmn", },
{ "g", "g", },
{ "g", "g", },
{ "fmF", "fmF", },
{ "fmF", "fmF", },
{ "=fg<", "fFg", },
{ "=fg<", "fFg", },
{ "=m", "m", },
{ "=g<,*f,g", "gF,g,*f", },
{ "rmn", },
{ "=g<,g<,*f,g,x", "g,?xy,g,*f,rmn", },
{ "=g<,*f,g", "g,g,*f", },
{ "+r", "g", },
{ "=g<,*f,g", "g,g,*f", },
{ "+r", "g", },
{ "=g", "g", "rmn", "", },
{ "=g", "g", "rmn", },
{ "=g<", "rmn", },
{ "=g<", "rmn", },
{ "=g<", "g", },
{ "=g<", "g", },
{ "=g<", "g", },
{ "=g<", "g", },
{ "=fm<", "fmF", },
{ "=fm<", "fmF", },
{ "=g<", "g", },
{ "=g<", "g", },
{ "=g<", "g", },
{ "=fm<", "rm", },
{ "=fm<", "rm", },
{ "=fm<", "rm", },
{ "=fm<", "rm", },
{ "=fm<", "rm", },
{ "=g<", "fm", },
{ "=g<", "fm", },
{ "=g<", "fm", },
{ "=g<", "fm", },
{ "=g<", "fm", },
{ "=g<", "fm", },
{ "=g<", "fm", },
{ "=g<", "fm", },
{ "=g<", "fm", },
{ "=g<", "fm", },
{ "=g<", "fm", },
{ "=g<", "fm", },
{ "=g<", "fm", },
{ "=g<", "fm", },
{ "=g<", "fm", },
{ "=g<", "fm", },
{ "=g<", "fm", },
{ "=g<", "fm", },
{ "=fm", "%0", "fmF", },
{ "=fm", "%0", "fmF", },
{ "i", },
{ "=g<", "i", },
{ "=g<", "i", },
{ "=g,=g&<", "%0,r", "rmn,n", },
{ "=g", "%0", "g", },
{ "=r", "0", "g", },
{ "=g", "%0", "g", },
{ "=r", "0", "g", },
{ "=fm", "0", "fmF", },
{ "=fm", "0", "fmF", },
{ "i", },
{ "=g", "0", "rmn", },
{ "=g", "0", "g", },
{ "=r", "0", "g", },
{ "=g", "0", "g", },
{ "=r", "0", "g", },
{ "=fm", "%0", "fmF", },
{ "=fm", "%0", "fmF", },
{ "=g", "%0", "rmn", },
{ "=g", "%0", "g", },
{ "=g", "%0", "g", },
{ "=g", "0", "rmn", },
{ "=fm", "0", "fmF", },
{ "=fm", "0", "fmF", },
{ "=g", "0", "rmn", },
{ "=g", "0", "g", },
{ "=g", "0", "g", },
{ "=r", "0", "rmn", },
{ "=r", "0", "g", },
{ "=r", "0", "g", },
{ "=g", "0", "rmn", },
{ "=g", "0", "g", },
{ "=g", "0", "g", },
{ "=r", "0", "rmn", },
{ "=r", "0", "g", },
{ "=r", "0", "g", },
{ "=g", "%0", "rmn", },
{ "=g", "%0", "g", },
{ "=g", "%0", "g", },
{ "=g", "rmn", "0", },
{ "=g", "g", "0", },
{ "=g", "g", "0", },
{ "=g", "%0", "rmn", },
{ "=g", "%0", "g", },
{ "=g", "%0", "g", },
{ "=g", "%0", "rmn", },
{ "=g", "%0", "g", },
{ "=g", "%0", "g", },
{ "=fm<", "fmF", },
{ "=fm<", "fmF", },
{ "=g<", "rmn", },
{ "=g<", "g", },
{ "=g<", "g", },
{ "=g<", "rmn", },
{ "=g<", "g", },
{ "=g<", "g", },
{ "=g,g", "r,0", "I,rmn", },
{ "=g", "0", "rmn", },
{ "=g", "0", "rmn", },
{ "=g", "g", "g", },
{ "=g", "0", "i", },
{ "=g", "0", "r", },
{ "=g", "g", "g", },
{ "=g", "0", "i", },
{ "=g", "0", "r", },
{ "=g", "g", "g", },
{ "=g", "0", "i", },
{ "=g", "0", "r", },
{ "=g", "0", "rmn", },
{ "=g", "0", "rmn", },
{ "=g", "0", "rmn", },
{ "=g", "g", "g", },
{ "=g", "0", "i", },
{ "=g", "0", "r", },
{ "=g", "g", "g", },
{ "=g", "0", "i", },
{ "=g", "0", "r", },
{ "=g", "g", "g", },
{ "=g", "0", "i", },
{ "=g", "0", "r", },
{ "=g", "0", "rmn", },
{ "=g", "0", "rmn", },
{ "=g", "0", "rmn", },
{ "=g", "g", "g", },
{ "=g", "0", "i", },
{ "=g", "0", "r", },
{ "=g", "g", "g", },
{ "=g", "0", "i", },
{ "=g", "0", "r", },
{ "=g", "g", "g", },
{ "=g", "0", "i", },
{ "=g", "0", "r", },
{ "=g<", "p", },
{ "+g", "rmn", },
{ "+g", "rmn", },
{ "+g", "rmn", },
{ "=g", "rmn", },
{ "rm", "g", },
{ "=ro", "r", "i", "i", },
{ "=g<", "g", "i", "rK", },
{ "=g<", "g", "i", "rK", },
{ "+o", "i", "rn", "rm", },
{ "+r", "i", "rK", "rm", },
{ "+g", "i", "rK", "rm", },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ "+g", "i", },
{ "+g", "i", "", "i", },
{ "m", "g", },
{ "=rf", "m", "g", },
{ "", "", "", },
{ 0 },
{ 0 },
{ "=fm<", "fmF", },
{ "=fm<", "fmF", },
{ "=g<", "rmn", },
{ "=g<", "g", },
{ "=g<", "g", },
{ 0 },
{ "r", },
{ "g", },
{ "=g<", },
{ "=g<", },
{ "=g<", },
{ "=g<", },
{ "=g<", },
{ "=g<", },
{ "=g<", },
{ "=g<", },
{ "=g<", },
{ "=g<", },
{ "=g<", },
{ "=g<", },
{ "=g<", },
{ "=g<", },
{ "=g<", },
{ "=g<", },
{ "=g<", },
{ "=g<", },
{ "=g<", },
{ "=g<", },
{ "=g<", },
{ "=g<", },
{ "=g<", },
{ "=g<", },
{ "=g<", },
{ "=g<", },
{ "=g<", },
{ "=g<", },
{ "=g<", },
{ "=g<", },
{ "=g", "g", },
{ "=g", "g", },
{ "=g", "g", },
{ "=m", "g", },
{ "=m", "g", },
{ "=m", "g", },
{ "=m", "g", },
{ "=m", "g", },
{ "=m", "g", "=m", "g", },
};
const enum machine_mode insn_operand_mode[][MAX_RECOG_OPERANDS] =
{
{ SImode, },
{ HImode, },
{ QImode, },
{ DFmode, },
{ SFmode, },
{ SImode, SImode, },
{ HImode, HImode, },
{ QImode, QImode, },
{ DFmode, DFmode, },
{ SFmode, SFmode, },
{ DFmode, DFmode, },
{ SFmode, SFmode, },
{ TImode, TImode, },
{ DImode, DImode, },
{ SImode, },
{ SImode, SImode, },
{ HImode, HImode, },
{ HImode, HImode, },
{ QImode, QImode, },
{ QImode, QImode, },
{ BLKmode, BLKmode, SImode, VOIDmode, },
{ BLKmode, BLKmode, SImode, },
{ QImode, SImode, },
{ HImode, SImode, },
{ QImode, HImode, },
{ SImode, HImode, },
{ HImode, QImode, },
{ SImode, QImode, },
{ DFmode, SFmode, },
{ SFmode, DFmode, },
{ SImode, HImode, },
{ HImode, QImode, },
{ SImode, QImode, },
{ SFmode, SImode, },
{ DFmode, SImode, },
{ SFmode, HImode, },
{ DFmode, HImode, },
{ SFmode, QImode, },
{ QImode, SFmode, },
{ HImode, SFmode, },
{ SImode, SFmode, },
{ QImode, DFmode, },
{ HImode, DFmode, },
{ SImode, DFmode, },
{ QImode, SFmode, },
{ HImode, SFmode, },
{ SImode, SFmode, },
{ QImode, DFmode, },
{ HImode, DFmode, },
{ SImode, DFmode, },
{ QImode, SFmode, },
{ HImode, SFmode, },
{ SImode, SFmode, },
{ QImode, DFmode, },
{ HImode, DFmode, },
{ SImode, DFmode, },
{ DFmode, DFmode, DFmode, },
{ SFmode, SFmode, SFmode, },
{ SImode, },
{ SImode, SImode, },
{ SImode, SImode, },
{ SImode, SImode, SImode, },
{ HImode, HImode, HImode, },
{ HImode, HImode, HImode, },
{ QImode, QImode, QImode, },
{ QImode, QImode, QImode, },
{ DFmode, DFmode, DFmode, },
{ SFmode, SFmode, SFmode, },
{ SImode, },
{ SImode, SImode, SImode, },
{ HImode, HImode, HImode, },
{ HImode, HImode, HImode, },
{ QImode, QImode, QImode, },
{ QImode, QImode, QImode, },
{ DFmode, DFmode, DFmode, },
{ SFmode, SFmode, SFmode, },
{ SImode, SImode, SImode, },
{ HImode, HImode, HImode, },
{ QImode, QImode, QImode, },
{ DImode, SImode, SImode, },
{ DFmode, DFmode, DFmode, },
{ SFmode, SFmode, SFmode, },
{ SImode, SImode, SImode, },
{ HImode, HImode, HImode, },
{ QImode, QImode, QImode, },
{ SImode, DImode, SImode, },
{ HImode, DImode, HImode, },
{ QImode, DImode, QImode, },
{ SImode, SImode, SImode, },
{ HImode, HImode, HImode, },
{ QImode, QImode, QImode, },
{ SImode, DImode, SImode, },
{ HImode, DImode, HImode, },
{ QImode, DImode, QImode, },
{ SImode, SImode, SImode, },
{ HImode, HImode, HImode, },
{ QImode, QImode, QImode, },
{ SImode, SImode, SImode, },
{ HImode, HImode, HImode, },
{ QImode, QImode, QImode, },
{ SImode, SImode, SImode, },
{ HImode, HImode, HImode, },
{ QImode, QImode, QImode, },
{ SImode, SImode, SImode, },
{ HImode, HImode, HImode, },
{ QImode, QImode, QImode, },
{ DFmode, DFmode, },
{ SFmode, SFmode, },
{ SImode, SImode, },
{ HImode, HImode, },
{ QImode, QImode, },
{ SImode, SImode, },
{ HImode, HImode, },
{ QImode, QImode, },
{ SImode, SImode, SImode, },
{ HImode, HImode, SImode, },
{ QImode, QImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ HImode, HImode, SImode, },
{ HImode, HImode, SImode, },
{ HImode, HImode, SImode, },
{ QImode, QImode, SImode, },
{ QImode, QImode, SImode, },
{ QImode, QImode, SImode, },
{ SImode, SImode, SImode, },
{ HImode, HImode, SImode, },
{ QImode, QImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ HImode, HImode, SImode, },
{ HImode, HImode, SImode, },
{ HImode, HImode, SImode, },
{ QImode, QImode, SImode, },
{ QImode, QImode, SImode, },
{ QImode, QImode, SImode, },
{ SImode, SImode, SImode, },
{ HImode, HImode, SImode, },
{ QImode, QImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ SImode, SImode, SImode, },
{ HImode, HImode, SImode, },
{ HImode, HImode, SImode, },
{ HImode, HImode, SImode, },
{ QImode, QImode, SImode, },
{ QImode, QImode, SImode, },
{ QImode, QImode, SImode, },
{ SImode, QImode, },
{ SImode, SImode, },
{ SImode, SImode, },
{ SImode, SImode, },
{ QImode, QImode, },
{ SImode, SImode, },
{ SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, },
{ SImode, QImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, },
{ SImode, SImode, SImode, SImode, },
{ QImode, SImode, SImode, SImode, },
{ 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, VOIDmode, SImode, },
{ QImode, QImode, },
{ VOIDmode, QImode, QImode, },
{ VOIDmode, VOIDmode, VOIDmode, },
{ VOIDmode },
{ VOIDmode },
{ SFmode, SFmode, },
{ DFmode, DFmode, },
{ SImode, SImode, },
{ HImode, HImode, },
{ QImode, QImode, },
{ VOIDmode },
{ SImode, },
{ SImode, },
{ SImode, },
{ HImode, },
{ QImode, },
{ SImode, },
{ HImode, },
{ QImode, },
{ SImode, },
{ HImode, },
{ QImode, },
{ SImode, },
{ HImode, },
{ QImode, },
{ SImode, },
{ HImode, },
{ QImode, },
{ SImode, },
{ HImode, },
{ QImode, },
{ SImode, },
{ HImode, },
{ QImode, },
{ SImode, },
{ HImode, },
{ QImode, },
{ SImode, },
{ HImode, },
{ QImode, },
{ SImode, },
{ HImode, },
{ QImode, },
{ QImode, SImode, },
{ HImode, SImode, },
{ SImode, SImode, },
{ VOIDmode, VOIDmode, },
{ VOIDmode, VOIDmode, },
{ VOIDmode, VOIDmode, },
{ VOIDmode, VOIDmode, },
{ VOIDmode, 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, },
{ 1, 0, },
{ 0, 0, },
{ 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, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 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, },
{ 1, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 1, 0, 0, },
{ 0, 0, 0, },
{ 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, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, 0, 0, },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0, 0, },
{ 0, 0, 0, 0, },
{ 0, 0, },
{ 0, 0, 0, },
{ 0, 0, 0, },
{ 0 },
{ 0 },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0 },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 0, },
{ 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 nonimmediate_operand ();
extern int general_operand ();
extern int memory_operand ();
extern int immediate_operand ();
extern int register_operand ();
extern int reg_or_mem_operand ();
extern int address_operand ();
extern int const_int_operand ();
int (*const insn_operand_predicate[][MAX_RECOG_OPERANDS])() =
{
{ nonimmediate_operand, },
{ nonimmediate_operand, },
{ nonimmediate_operand, },
{ general_operand, },
{ general_operand, },
{ nonimmediate_operand, general_operand, },
{ nonimmediate_operand, general_operand, },
{ nonimmediate_operand, general_operand, },
{ general_operand, general_operand, },
{ general_operand, general_operand, },
{ general_operand, general_operand, },
{ general_operand, general_operand, },
{ memory_operand, memory_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, general_operand, },
{ general_operand, general_operand, general_operand, 0, },
{ general_operand, general_operand, general_operand, },
{ general_operand, nonimmediate_operand, },
{ general_operand, nonimmediate_operand, },
{ general_operand, nonimmediate_operand, },
{ general_operand, nonimmediate_operand, },
{ general_operand, nonimmediate_operand, },
{ general_operand, nonimmediate_operand, },
{ general_operand, general_operand, },
{ general_operand, general_operand, },
{ general_operand, nonimmediate_operand, },
{ general_operand, nonimmediate_operand, },
{ general_operand, nonimmediate_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, },
{ general_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, general_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, },
{ general_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, general_operand, },
{ immediate_operand, },
{ general_operand, immediate_operand, },
{ general_operand, immediate_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, },
{ general_operand, general_operand, general_operand, },
{ general_operand, general_operand, general_operand, },
{ general_operand, general_operand, general_operand, },
{ immediate_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, },
{ general_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, general_operand, general_operand, },
{ general_operand, general_operand, general_operand, },
{ general_operand, nonimmediate_operand, nonimmediate_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, },
{ general_operand, general_operand, general_operand, },
{ register_operand, reg_or_mem_operand, general_operand, },
{ register_operand, reg_or_mem_operand, general_operand, },
{ register_operand, reg_or_mem_operand, general_operand, },
{ general_operand, general_operand, general_operand, },
{ general_operand, general_operand, general_operand, },
{ general_operand, general_operand, general_operand, },
{ register_operand, reg_or_mem_operand, general_operand, },
{ register_operand, reg_or_mem_operand, general_operand, },
{ register_operand, reg_or_mem_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, general_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, },
{ general_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, general_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, },
{ general_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, general_operand, },
{ general_operand, general_operand, immediate_operand, },
{ general_operand, general_operand, general_operand, },
{ general_operand, general_operand, general_operand, },
{ general_operand, general_operand, immediate_operand, },
{ general_operand, general_operand, general_operand, },
{ general_operand, general_operand, general_operand, },
{ general_operand, general_operand, immediate_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, },
{ general_operand, general_operand, general_operand, },
{ general_operand, general_operand, immediate_operand, },
{ general_operand, general_operand, general_operand, },
{ general_operand, general_operand, general_operand, },
{ general_operand, general_operand, immediate_operand, },
{ general_operand, general_operand, general_operand, },
{ general_operand, general_operand, general_operand, },
{ general_operand, general_operand, immediate_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, },
{ general_operand, general_operand, general_operand, },
{ general_operand, general_operand, immediate_operand, },
{ general_operand, general_operand, general_operand, },
{ general_operand, general_operand, general_operand, },
{ general_operand, general_operand, immediate_operand, },
{ general_operand, general_operand, general_operand, },
{ general_operand, general_operand, general_operand, },
{ general_operand, general_operand, immediate_operand, },
{ general_operand, general_operand, general_operand, },
{ general_operand, address_operand, },
{ general_operand, general_operand, },
{ general_operand, general_operand, },
{ general_operand, general_operand, },
{ general_operand, general_operand, },
{ general_operand, general_operand, },
{ general_operand, register_operand, const_int_operand, const_int_operand, },
{ general_operand, register_operand, const_int_operand, general_operand, },
{ general_operand, general_operand, const_int_operand, general_operand, },
{ memory_operand, const_int_operand, general_operand, general_operand, },
{ register_operand, const_int_operand, general_operand, general_operand, },
{ general_operand, const_int_operand, general_operand, general_operand, },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ 0 },
{ general_operand, const_int_operand, },
{ general_operand, const_int_operand, 0, const_int_operand, },
{ memory_operand, general_operand, },
{ 0, memory_operand, general_operand, },
{ 0, 0, 0, },
{ 0 },
{ 0 },
{ general_operand, general_operand, },
{ general_operand, general_operand, },
{ general_operand, general_operand, },
{ general_operand, general_operand, },
{ general_operand, general_operand, },
{ 0 },
{ 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, },
{ general_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, },
{ general_operand, },
{ general_operand, },
{ general_operand, },
{ general_operand, },
{ general_operand, },
{ general_operand, },
{ general_operand, general_operand, },
{ general_operand, general_operand, },
{ general_operand, general_operand, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, },
{ 0, 0, 0, 0, },
};
const int insn_n_alternatives[] =
{
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
3,
1,
5,
3,
1,
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,
1,
1,
2,
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,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
2,
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,
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,
1,
1,
1,
1,
0,
0,
0,
1,
1,
1,
1,
1,
0,
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,
1,
};