/* This file is autogenerated by scripts/decodetree.py.  */

typedef struct {
    int vd;
    int vm;
    int vn;
} arg_disas_vfp0;

typedef struct {
    int vd;
    int vm;
} arg_disas_vfp1;

typedef struct {
    int imm;
    int vd;
} arg_disas_vfp10;

typedef struct {
    int e;
    int vd;
    int vm;
    int z;
} arg_disas_vfp11;

typedef struct {
    int t;
    int vd;
    int vm;
} arg_disas_vfp12;

typedef struct {
    int s;
    int vd;
    int vm;
} arg_disas_vfp13;

typedef struct {
    int imm;
    int opc;
    int vd;
} arg_disas_vfp14;

typedef struct {
    int rz;
    int s;
    int vd;
    int vm;
} arg_disas_vfp15;

typedef struct {
    int l;
    int rn;
} arg_disas_vfp16;

typedef struct {
    int index;
    int rt;
    int size;
    int u;
    int vn;
} arg_disas_vfp2;

typedef struct {
    int index;
    int rt;
    int size;
    int vn;
} arg_disas_vfp3;

typedef struct {
    int b;
    int e;
    int q;
    int rt;
    int vn;
} arg_disas_vfp4;

typedef struct {
    int l;
    int reg;
    int rt;
} arg_disas_vfp5;

typedef struct {
    int l;
    int rt;
    int vn;
} arg_disas_vfp6;

typedef struct {
    int op;
    int rt;
    int rt2;
    int vm;
} arg_disas_vfp7;

typedef struct {
    int imm;
    int l;
    int rn;
    int u;
    int vd;
} arg_disas_vfp8;

typedef struct {
    int imm;
    int l;
    int p;
    int rn;
    int u;
    int vd;
    int w;
} arg_disas_vfp9;

typedef arg_disas_vfp2 arg_VMOV_to_gp;
static bool trans_VMOV_to_gp(DisasContext *ctx, arg_VMOV_to_gp *a);
typedef arg_disas_vfp3 arg_VMOV_from_gp;
static bool trans_VMOV_from_gp(DisasContext *ctx, arg_VMOV_from_gp *a);
typedef arg_disas_vfp4 arg_VDUP;
static bool trans_VDUP(DisasContext *ctx, arg_VDUP *a);
typedef arg_disas_vfp5 arg_VMSR_VMRS;
static bool trans_VMSR_VMRS(DisasContext *ctx, arg_VMSR_VMRS *a);
typedef arg_disas_vfp6 arg_VMOV_single;
static bool trans_VMOV_single(DisasContext *ctx, arg_VMOV_single *a);
typedef arg_disas_vfp7 arg_VMOV_64_sp;
static bool trans_VMOV_64_sp(DisasContext *ctx, arg_VMOV_64_sp *a);
typedef arg_disas_vfp7 arg_VMOV_64_dp;
static bool trans_VMOV_64_dp(DisasContext *ctx, arg_VMOV_64_dp *a);
typedef arg_disas_vfp8 arg_VLDR_VSTR_sp;
static bool trans_VLDR_VSTR_sp(DisasContext *ctx, arg_VLDR_VSTR_sp *a);
typedef arg_disas_vfp8 arg_VLDR_VSTR_dp;
static bool trans_VLDR_VSTR_dp(DisasContext *ctx, arg_VLDR_VSTR_dp *a);
typedef arg_disas_vfp9 arg_VLDM_VSTM_sp;
static bool trans_VLDM_VSTM_sp(DisasContext *ctx, arg_VLDM_VSTM_sp *a);
typedef arg_disas_vfp9 arg_VLDM_VSTM_dp;
static bool trans_VLDM_VSTM_dp(DisasContext *ctx, arg_VLDM_VSTM_dp *a);
typedef arg_disas_vfp0 arg_VMLA_sp;
static bool trans_VMLA_sp(DisasContext *ctx, arg_VMLA_sp *a);
typedef arg_disas_vfp0 arg_VMLA_dp;
static bool trans_VMLA_dp(DisasContext *ctx, arg_VMLA_dp *a);
typedef arg_disas_vfp0 arg_VMLS_sp;
static bool trans_VMLS_sp(DisasContext *ctx, arg_VMLS_sp *a);
typedef arg_disas_vfp0 arg_VMLS_dp;
static bool trans_VMLS_dp(DisasContext *ctx, arg_VMLS_dp *a);
typedef arg_disas_vfp0 arg_VNMLS_sp;
static bool trans_VNMLS_sp(DisasContext *ctx, arg_VNMLS_sp *a);
typedef arg_disas_vfp0 arg_VNMLS_dp;
static bool trans_VNMLS_dp(DisasContext *ctx, arg_VNMLS_dp *a);
typedef arg_disas_vfp0 arg_VNMLA_sp;
static bool trans_VNMLA_sp(DisasContext *ctx, arg_VNMLA_sp *a);
typedef arg_disas_vfp0 arg_VNMLA_dp;
static bool trans_VNMLA_dp(DisasContext *ctx, arg_VNMLA_dp *a);
typedef arg_disas_vfp0 arg_VMUL_sp;
static bool trans_VMUL_sp(DisasContext *ctx, arg_VMUL_sp *a);
typedef arg_disas_vfp0 arg_VMUL_dp;
static bool trans_VMUL_dp(DisasContext *ctx, arg_VMUL_dp *a);
typedef arg_disas_vfp0 arg_VNMUL_sp;
static bool trans_VNMUL_sp(DisasContext *ctx, arg_VNMUL_sp *a);
typedef arg_disas_vfp0 arg_VNMUL_dp;
static bool trans_VNMUL_dp(DisasContext *ctx, arg_VNMUL_dp *a);
typedef arg_disas_vfp0 arg_VADD_sp;
static bool trans_VADD_sp(DisasContext *ctx, arg_VADD_sp *a);
typedef arg_disas_vfp0 arg_VADD_dp;
static bool trans_VADD_dp(DisasContext *ctx, arg_VADD_dp *a);
typedef arg_disas_vfp0 arg_VSUB_sp;
static bool trans_VSUB_sp(DisasContext *ctx, arg_VSUB_sp *a);
typedef arg_disas_vfp0 arg_VSUB_dp;
static bool trans_VSUB_dp(DisasContext *ctx, arg_VSUB_dp *a);
typedef arg_disas_vfp0 arg_VDIV_sp;
static bool trans_VDIV_sp(DisasContext *ctx, arg_VDIV_sp *a);
typedef arg_disas_vfp0 arg_VDIV_dp;
static bool trans_VDIV_dp(DisasContext *ctx, arg_VDIV_dp *a);
typedef arg_disas_vfp0 arg_VFMA_sp;
static bool trans_VFMA_sp(DisasContext *ctx, arg_VFMA_sp *a);
typedef arg_disas_vfp0 arg_VFMS_sp;
static bool trans_VFMS_sp(DisasContext *ctx, arg_VFMS_sp *a);
typedef arg_disas_vfp0 arg_VFNMA_sp;
static bool trans_VFNMA_sp(DisasContext *ctx, arg_VFNMA_sp *a);
typedef arg_disas_vfp0 arg_VFNMS_sp;
static bool trans_VFNMS_sp(DisasContext *ctx, arg_VFNMS_sp *a);
typedef arg_disas_vfp0 arg_VFMA_dp;
static bool trans_VFMA_dp(DisasContext *ctx, arg_VFMA_dp *a);
typedef arg_disas_vfp0 arg_VFMS_dp;
static bool trans_VFMS_dp(DisasContext *ctx, arg_VFMS_dp *a);
typedef arg_disas_vfp0 arg_VFNMA_dp;
static bool trans_VFNMA_dp(DisasContext *ctx, arg_VFNMA_dp *a);
typedef arg_disas_vfp0 arg_VFNMS_dp;
static bool trans_VFNMS_dp(DisasContext *ctx, arg_VFNMS_dp *a);
typedef arg_disas_vfp10 arg_VMOV_imm_sp;
static bool trans_VMOV_imm_sp(DisasContext *ctx, arg_VMOV_imm_sp *a);
typedef arg_disas_vfp10 arg_VMOV_imm_dp;
static bool trans_VMOV_imm_dp(DisasContext *ctx, arg_VMOV_imm_dp *a);
typedef arg_disas_vfp1 arg_VMOV_reg_sp;
static bool trans_VMOV_reg_sp(DisasContext *ctx, arg_VMOV_reg_sp *a);
typedef arg_disas_vfp1 arg_VMOV_reg_dp;
static bool trans_VMOV_reg_dp(DisasContext *ctx, arg_VMOV_reg_dp *a);
typedef arg_disas_vfp1 arg_VABS_sp;
static bool trans_VABS_sp(DisasContext *ctx, arg_VABS_sp *a);
typedef arg_disas_vfp1 arg_VABS_dp;
static bool trans_VABS_dp(DisasContext *ctx, arg_VABS_dp *a);
typedef arg_disas_vfp1 arg_VNEG_sp;
static bool trans_VNEG_sp(DisasContext *ctx, arg_VNEG_sp *a);
typedef arg_disas_vfp1 arg_VNEG_dp;
static bool trans_VNEG_dp(DisasContext *ctx, arg_VNEG_dp *a);
typedef arg_disas_vfp1 arg_VSQRT_sp;
static bool trans_VSQRT_sp(DisasContext *ctx, arg_VSQRT_sp *a);
typedef arg_disas_vfp1 arg_VSQRT_dp;
static bool trans_VSQRT_dp(DisasContext *ctx, arg_VSQRT_dp *a);
typedef arg_disas_vfp11 arg_VCMP_sp;
static bool trans_VCMP_sp(DisasContext *ctx, arg_VCMP_sp *a);
typedef arg_disas_vfp11 arg_VCMP_dp;
static bool trans_VCMP_dp(DisasContext *ctx, arg_VCMP_dp *a);
typedef arg_disas_vfp12 arg_VCVT_f32_f16;
static bool trans_VCVT_f32_f16(DisasContext *ctx, arg_VCVT_f32_f16 *a);
typedef arg_disas_vfp12 arg_VCVT_f64_f16;
static bool trans_VCVT_f64_f16(DisasContext *ctx, arg_VCVT_f64_f16 *a);
typedef arg_disas_vfp12 arg_VCVT_f16_f32;
static bool trans_VCVT_f16_f32(DisasContext *ctx, arg_VCVT_f16_f32 *a);
typedef arg_disas_vfp12 arg_VCVT_f16_f64;
static bool trans_VCVT_f16_f64(DisasContext *ctx, arg_VCVT_f16_f64 *a);
typedef arg_disas_vfp1 arg_VRINTR_sp;
static bool trans_VRINTR_sp(DisasContext *ctx, arg_VRINTR_sp *a);
typedef arg_disas_vfp1 arg_VRINTR_dp;
static bool trans_VRINTR_dp(DisasContext *ctx, arg_VRINTR_dp *a);
typedef arg_disas_vfp1 arg_VRINTZ_sp;
static bool trans_VRINTZ_sp(DisasContext *ctx, arg_VRINTZ_sp *a);
typedef arg_disas_vfp1 arg_VRINTZ_dp;
static bool trans_VRINTZ_dp(DisasContext *ctx, arg_VRINTZ_dp *a);
typedef arg_disas_vfp1 arg_VRINTX_sp;
static bool trans_VRINTX_sp(DisasContext *ctx, arg_VRINTX_sp *a);
typedef arg_disas_vfp1 arg_VRINTX_dp;
static bool trans_VRINTX_dp(DisasContext *ctx, arg_VRINTX_dp *a);
typedef arg_disas_vfp1 arg_VCVT_sp;
static bool trans_VCVT_sp(DisasContext *ctx, arg_VCVT_sp *a);
typedef arg_disas_vfp1 arg_VCVT_dp;
static bool trans_VCVT_dp(DisasContext *ctx, arg_VCVT_dp *a);
typedef arg_disas_vfp13 arg_VCVT_int_sp;
static bool trans_VCVT_int_sp(DisasContext *ctx, arg_VCVT_int_sp *a);
typedef arg_disas_vfp13 arg_VCVT_int_dp;
static bool trans_VCVT_int_dp(DisasContext *ctx, arg_VCVT_int_dp *a);
typedef arg_disas_vfp1 arg_VJCVT;
static bool trans_VJCVT(DisasContext *ctx, arg_VJCVT *a);
typedef arg_disas_vfp14 arg_VCVT_fix_sp;
static bool trans_VCVT_fix_sp(DisasContext *ctx, arg_VCVT_fix_sp *a);
typedef arg_disas_vfp14 arg_VCVT_fix_dp;
static bool trans_VCVT_fix_dp(DisasContext *ctx, arg_VCVT_fix_dp *a);
typedef arg_disas_vfp15 arg_VCVT_sp_int;
static bool trans_VCVT_sp_int(DisasContext *ctx, arg_VCVT_sp_int *a);
typedef arg_disas_vfp15 arg_VCVT_dp_int;
static bool trans_VCVT_dp_int(DisasContext *ctx, arg_VCVT_dp_int *a);
typedef arg_disas_vfp16 arg_VLLDM_VLSTM;
static bool trans_VLLDM_VLSTM(DisasContext *ctx, arg_VLLDM_VLSTM *a);

static void disas_vfp_extract_disas_vfp_Fmt_10(DisasContext *ctx, arg_disas_vfp3 *a, uint32_t insn)
{
    a->rt = extract32(insn, 12, 4);
    a->vn = deposit32(extract32(insn, 16, 4), 4, 28, extract32(insn, 7, 1));
    a->size = 1;
    a->index = deposit32(extract32(insn, 6, 1), 1, 31, extract32(insn, 21, 1));
}

static void disas_vfp_extract_disas_vfp_Fmt_11(DisasContext *ctx, arg_disas_vfp3 *a, uint32_t insn)
{
    a->index = extract32(insn, 21, 1);
    a->rt = extract32(insn, 12, 4);
    a->vn = deposit32(extract32(insn, 16, 4), 4, 28, extract32(insn, 7, 1));
    a->size = 2;
}

static void disas_vfp_extract_disas_vfp_Fmt_12(DisasContext *ctx, arg_disas_vfp4 *a, uint32_t insn)
{
    a->b = extract32(insn, 22, 1);
    a->q = extract32(insn, 21, 1);
    a->rt = extract32(insn, 12, 4);
    a->e = extract32(insn, 5, 1);
    a->vn = deposit32(extract32(insn, 16, 4), 4, 28, extract32(insn, 7, 1));
}

static void disas_vfp_extract_disas_vfp_Fmt_13(DisasContext *ctx, arg_disas_vfp5 *a, uint32_t insn)
{
    a->l = extract32(insn, 20, 1);
    a->reg = extract32(insn, 16, 4);
    a->rt = extract32(insn, 12, 4);
}

static void disas_vfp_extract_disas_vfp_Fmt_14(DisasContext *ctx, arg_disas_vfp6 *a, uint32_t insn)
{
    a->l = extract32(insn, 20, 1);
    a->rt = extract32(insn, 12, 4);
    a->vn = deposit32(extract32(insn, 7, 1), 1, 31, extract32(insn, 16, 4));
}

static void disas_vfp_extract_disas_vfp_Fmt_15(DisasContext *ctx, arg_disas_vfp7 *a, uint32_t insn)
{
    a->op = extract32(insn, 20, 1);
    a->rt2 = extract32(insn, 16, 4);
    a->rt = extract32(insn, 12, 4);
    a->vm = deposit32(extract32(insn, 5, 1), 1, 31, extract32(insn, 0, 4));
}

static void disas_vfp_extract_disas_vfp_Fmt_16(DisasContext *ctx, arg_disas_vfp7 *a, uint32_t insn)
{
    a->op = extract32(insn, 20, 1);
    a->rt2 = extract32(insn, 16, 4);
    a->rt = extract32(insn, 12, 4);
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
}

static void disas_vfp_extract_disas_vfp_Fmt_17(DisasContext *ctx, arg_disas_vfp8 *a, uint32_t insn)
{
    a->u = extract32(insn, 23, 1);
    a->l = extract32(insn, 20, 1);
    a->rn = extract32(insn, 16, 4);
    a->imm = extract32(insn, 0, 8);
    a->vd = deposit32(extract32(insn, 22, 1), 1, 31, extract32(insn, 12, 4));
}

static void disas_vfp_extract_disas_vfp_Fmt_18(DisasContext *ctx, arg_disas_vfp8 *a, uint32_t insn)
{
    a->u = extract32(insn, 23, 1);
    a->l = extract32(insn, 20, 1);
    a->rn = extract32(insn, 16, 4);
    a->imm = extract32(insn, 0, 8);
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_vfp_extract_disas_vfp_Fmt_19(DisasContext *ctx, arg_disas_vfp9 *a, uint32_t insn)
{
    a->w = extract32(insn, 21, 1);
    a->l = extract32(insn, 20, 1);
    a->rn = extract32(insn, 16, 4);
    a->imm = extract32(insn, 0, 8);
    a->vd = deposit32(extract32(insn, 22, 1), 1, 31, extract32(insn, 12, 4));
    a->p = 0;
    a->u = 1;
}

static void disas_vfp_extract_disas_vfp_Fmt_20(DisasContext *ctx, arg_disas_vfp9 *a, uint32_t insn)
{
    a->w = extract32(insn, 21, 1);
    a->l = extract32(insn, 20, 1);
    a->rn = extract32(insn, 16, 4);
    a->imm = extract32(insn, 0, 8);
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
    a->p = 0;
    a->u = 1;
}

static void disas_vfp_extract_disas_vfp_Fmt_21(DisasContext *ctx, arg_disas_vfp9 *a, uint32_t insn)
{
    a->l = extract32(insn, 20, 1);
    a->rn = extract32(insn, 16, 4);
    a->imm = extract32(insn, 0, 8);
    a->vd = deposit32(extract32(insn, 22, 1), 1, 31, extract32(insn, 12, 4));
    a->p = 1;
    a->u = 0;
    a->w = 1;
}

static void disas_vfp_extract_disas_vfp_Fmt_22(DisasContext *ctx, arg_disas_vfp9 *a, uint32_t insn)
{
    a->l = extract32(insn, 20, 1);
    a->rn = extract32(insn, 16, 4);
    a->imm = extract32(insn, 0, 8);
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
    a->p = 1;
    a->u = 0;
    a->w = 1;
}

static void disas_vfp_extract_disas_vfp_Fmt_23(DisasContext *ctx, arg_disas_vfp10 *a, uint32_t insn)
{
    a->vd = deposit32(extract32(insn, 22, 1), 1, 31, extract32(insn, 12, 4));
    a->imm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 16, 4));
}

static void disas_vfp_extract_disas_vfp_Fmt_24(DisasContext *ctx, arg_disas_vfp10 *a, uint32_t insn)
{
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
    a->imm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 16, 4));
}

static void disas_vfp_extract_disas_vfp_Fmt_25(DisasContext *ctx, arg_disas_vfp11 *a, uint32_t insn)
{
    a->z = extract32(insn, 16, 1);
    a->e = extract32(insn, 7, 1);
    a->vd = deposit32(extract32(insn, 22, 1), 1, 31, extract32(insn, 12, 4));
    a->vm = deposit32(extract32(insn, 5, 1), 1, 31, extract32(insn, 0, 4));
}

static void disas_vfp_extract_disas_vfp_Fmt_26(DisasContext *ctx, arg_disas_vfp11 *a, uint32_t insn)
{
    a->z = extract32(insn, 16, 1);
    a->e = extract32(insn, 7, 1);
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
}

static void disas_vfp_extract_disas_vfp_Fmt_27(DisasContext *ctx, arg_disas_vfp12 *a, uint32_t insn)
{
    a->t = extract32(insn, 7, 1);
    a->vd = deposit32(extract32(insn, 22, 1), 1, 31, extract32(insn, 12, 4));
    a->vm = deposit32(extract32(insn, 5, 1), 1, 31, extract32(insn, 0, 4));
}

static void disas_vfp_extract_disas_vfp_Fmt_28(DisasContext *ctx, arg_disas_vfp12 *a, uint32_t insn)
{
    a->t = extract32(insn, 7, 1);
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
    a->vm = deposit32(extract32(insn, 5, 1), 1, 31, extract32(insn, 0, 4));
}

static void disas_vfp_extract_disas_vfp_Fmt_29(DisasContext *ctx, arg_disas_vfp12 *a, uint32_t insn)
{
    a->t = extract32(insn, 7, 1);
    a->vd = deposit32(extract32(insn, 22, 1), 1, 31, extract32(insn, 12, 4));
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
}

static void disas_vfp_extract_disas_vfp_Fmt_30(DisasContext *ctx, arg_disas_vfp13 *a, uint32_t insn)
{
    a->s = extract32(insn, 7, 1);
    a->vd = deposit32(extract32(insn, 22, 1), 1, 31, extract32(insn, 12, 4));
    a->vm = deposit32(extract32(insn, 5, 1), 1, 31, extract32(insn, 0, 4));
}

static void disas_vfp_extract_disas_vfp_Fmt_31(DisasContext *ctx, arg_disas_vfp13 *a, uint32_t insn)
{
    a->s = extract32(insn, 7, 1);
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
    a->vm = deposit32(extract32(insn, 5, 1), 1, 31, extract32(insn, 0, 4));
}

static void disas_vfp_extract_disas_vfp_Fmt_32(DisasContext *ctx, arg_disas_vfp14 *a, uint32_t insn)
{
    a->vd = deposit32(extract32(insn, 22, 1), 1, 31, extract32(insn, 12, 4));
    a->imm = deposit32(extract32(insn, 5, 1), 1, 31, extract32(insn, 0, 4));
    a->opc = deposit32(deposit32(extract32(insn, 7, 1), 1, 31, extract32(insn, 16, 1)), 2, 30, extract32(insn, 18, 1));
}

static void disas_vfp_extract_disas_vfp_Fmt_33(DisasContext *ctx, arg_disas_vfp14 *a, uint32_t insn)
{
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
    a->imm = deposit32(extract32(insn, 5, 1), 1, 31, extract32(insn, 0, 4));
    a->opc = deposit32(deposit32(extract32(insn, 7, 1), 1, 31, extract32(insn, 16, 1)), 2, 30, extract32(insn, 18, 1));
}

static void disas_vfp_extract_disas_vfp_Fmt_34(DisasContext *ctx, arg_disas_vfp15 *a, uint32_t insn)
{
    a->s = extract32(insn, 16, 1);
    a->rz = extract32(insn, 7, 1);
    a->vd = deposit32(extract32(insn, 22, 1), 1, 31, extract32(insn, 12, 4));
    a->vm = deposit32(extract32(insn, 5, 1), 1, 31, extract32(insn, 0, 4));
}

static void disas_vfp_extract_disas_vfp_Fmt_35(DisasContext *ctx, arg_disas_vfp15 *a, uint32_t insn)
{
    a->s = extract32(insn, 16, 1);
    a->rz = extract32(insn, 7, 1);
    a->vd = deposit32(extract32(insn, 22, 1), 1, 31, extract32(insn, 12, 4));
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
}

static void disas_vfp_extract_disas_vfp_Fmt_36(DisasContext *ctx, arg_disas_vfp16 *a, uint32_t insn)
{
    a->l = extract32(insn, 20, 1);
    a->rn = extract32(insn, 16, 4);
}

static void disas_vfp_extract_disas_vfp_Fmt_6(DisasContext *ctx, arg_disas_vfp2 *a, uint32_t insn)
{
    a->u = extract32(insn, 23, 1);
    a->rt = extract32(insn, 12, 4);
    a->vn = deposit32(extract32(insn, 16, 4), 4, 28, extract32(insn, 7, 1));
    a->size = 0;
    a->index = deposit32(extract32(insn, 5, 2), 2, 30, extract32(insn, 21, 1));
}

static void disas_vfp_extract_disas_vfp_Fmt_7(DisasContext *ctx, arg_disas_vfp2 *a, uint32_t insn)
{
    a->u = extract32(insn, 23, 1);
    a->rt = extract32(insn, 12, 4);
    a->vn = deposit32(extract32(insn, 16, 4), 4, 28, extract32(insn, 7, 1));
    a->size = 1;
    a->index = deposit32(extract32(insn, 6, 1), 1, 31, extract32(insn, 21, 1));
}

static void disas_vfp_extract_disas_vfp_Fmt_8(DisasContext *ctx, arg_disas_vfp2 *a, uint32_t insn)
{
    a->index = extract32(insn, 21, 1);
    a->rt = extract32(insn, 12, 4);
    a->vn = deposit32(extract32(insn, 16, 4), 4, 28, extract32(insn, 7, 1));
    a->size = 2;
    a->u = 0;
}

static void disas_vfp_extract_disas_vfp_Fmt_9(DisasContext *ctx, arg_disas_vfp3 *a, uint32_t insn)
{
    a->rt = extract32(insn, 12, 4);
    a->vn = deposit32(extract32(insn, 16, 4), 4, 28, extract32(insn, 7, 1));
    a->size = 0;
    a->index = deposit32(extract32(insn, 5, 2), 2, 30, extract32(insn, 21, 1));
}

static void disas_vfp_extract_vfp_dm_dd(DisasContext *ctx, arg_disas_vfp1 *a, uint32_t insn)
{
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_vfp_extract_vfp_dm_ds(DisasContext *ctx, arg_disas_vfp1 *a, uint32_t insn)
{
    a->vm = deposit32(extract32(insn, 5, 1), 1, 31, extract32(insn, 0, 4));
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_vfp_extract_vfp_dm_sd(DisasContext *ctx, arg_disas_vfp1 *a, uint32_t insn)
{
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->vd = deposit32(extract32(insn, 22, 1), 1, 31, extract32(insn, 12, 4));
}

static void disas_vfp_extract_vfp_dm_ss(DisasContext *ctx, arg_disas_vfp1 *a, uint32_t insn)
{
    a->vm = deposit32(extract32(insn, 5, 1), 1, 31, extract32(insn, 0, 4));
    a->vd = deposit32(extract32(insn, 22, 1), 1, 31, extract32(insn, 12, 4));
}

static void disas_vfp_extract_vfp_dnm_d(DisasContext *ctx, arg_disas_vfp0 *a, uint32_t insn)
{
    a->vm = deposit32(extract32(insn, 0, 4), 4, 28, extract32(insn, 5, 1));
    a->vn = deposit32(extract32(insn, 16, 4), 4, 28, extract32(insn, 7, 1));
    a->vd = deposit32(extract32(insn, 12, 4), 4, 28, extract32(insn, 22, 1));
}

static void disas_vfp_extract_vfp_dnm_s(DisasContext *ctx, arg_disas_vfp0 *a, uint32_t insn)
{
    a->vm = deposit32(extract32(insn, 5, 1), 1, 31, extract32(insn, 0, 4));
    a->vn = deposit32(extract32(insn, 7, 1), 1, 31, extract32(insn, 16, 4));
    a->vd = deposit32(extract32(insn, 22, 1), 1, 31, extract32(insn, 12, 4));
}

static bool disas_vfp(DisasContext *ctx, uint32_t insn)
{
    union {
        arg_disas_vfp0 f_disas_vfp0;
        arg_disas_vfp1 f_disas_vfp1;
        arg_disas_vfp10 f_disas_vfp10;
        arg_disas_vfp11 f_disas_vfp11;
        arg_disas_vfp12 f_disas_vfp12;
        arg_disas_vfp13 f_disas_vfp13;
        arg_disas_vfp14 f_disas_vfp14;
        arg_disas_vfp15 f_disas_vfp15;
        arg_disas_vfp16 f_disas_vfp16;
        arg_disas_vfp2 f_disas_vfp2;
        arg_disas_vfp3 f_disas_vfp3;
        arg_disas_vfp4 f_disas_vfp4;
        arg_disas_vfp5 f_disas_vfp5;
        arg_disas_vfp6 f_disas_vfp6;
        arg_disas_vfp7 f_disas_vfp7;
        arg_disas_vfp8 f_disas_vfp8;
        arg_disas_vfp9 f_disas_vfp9;
    } u;

    switch (insn & 0x0f000f00) {
    case 0x0c000a00:
        /* ....1100 ........ ....1010 ........ */
        switch ((insn >> 23) & 0x1) {
        case 0x0:
            /* ....1100 0....... ....1010 ........ */
            switch (insn & 0x006000d0) {
            case 0x00200000:
                /* ....1100 001..... ....1010 00.0.... */
                disas_vfp_extract_disas_vfp_Fmt_36(ctx, &u.f_disas_vfp16, insn);
                switch (insn & 0xf000f02f) {
                case 0xe0000000:
                    /* 11101100 001..... 00001010 00000000 */
                    /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:217 */
                    if (trans_VLLDM_VLSTM(ctx, &u.f_disas_vfp16)) return true;
                    return false;
                }
                return false;
            case 0x00400010:
                /* ....1100 010..... ....1010 00.1.... */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:79 */
                disas_vfp_extract_disas_vfp_Fmt_15(ctx, &u.f_disas_vfp7, insn);
                if (trans_VMOV_64_sp(ctx, &u.f_disas_vfp7)) return true;
                return false;
            }
            return false;
        case 0x1:
            /* ....1100 1....... ....1010 ........ */
            /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:95 */
            disas_vfp_extract_disas_vfp_Fmt_19(ctx, &u.f_disas_vfp9, insn);
            if (trans_VLDM_VSTM_sp(ctx, &u.f_disas_vfp9)) return true;
            return false;
        }
        return false;
    case 0x0c000b00:
        /* ....1100 ........ ....1011 ........ */
        switch ((insn >> 23) & 0x1) {
        case 0x0:
            /* ....1100 0....... ....1011 ........ */
            disas_vfp_extract_disas_vfp_Fmt_16(ctx, &u.f_disas_vfp7, insn);
            switch (insn & 0x006000d0) {
            case 0x00400010:
                /* ....1100 010..... ....1011 00.1.... */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:80 */
                if (trans_VMOV_64_dp(ctx, &u.f_disas_vfp7)) return true;
                return false;
            }
            return false;
        case 0x1:
            /* ....1100 1....... ....1011 ........ */
            /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:97 */
            disas_vfp_extract_disas_vfp_Fmt_20(ctx, &u.f_disas_vfp9, insn);
            if (trans_VLDM_VSTM_dp(ctx, &u.f_disas_vfp9)) return true;
            return false;
        }
        return false;
    case 0x0d000a00:
        /* ....1101 ........ ....1010 ........ */
        switch ((insn >> 21) & 0x1) {
        case 0x0:
            /* ....1101 ..0..... ....1010 ........ */
            /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:84 */
            disas_vfp_extract_disas_vfp_Fmt_17(ctx, &u.f_disas_vfp8, insn);
            if (trans_VLDR_VSTR_sp(ctx, &u.f_disas_vfp8)) return true;
            return false;
        case 0x1:
            /* ....1101 ..1..... ....1010 ........ */
            disas_vfp_extract_disas_vfp_Fmt_21(ctx, &u.f_disas_vfp9, insn);
            switch ((insn >> 23) & 0x1) {
            case 0x0:
                /* ....1101 0.1..... ....1010 ........ */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:100 */
                if (trans_VLDM_VSTM_sp(ctx, &u.f_disas_vfp9)) return true;
                return false;
            }
            return false;
        }
        return false;
    case 0x0d000b00:
        /* ....1101 ........ ....1011 ........ */
        switch ((insn >> 21) & 0x1) {
        case 0x0:
            /* ....1101 ..0..... ....1011 ........ */
            /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:85 */
            disas_vfp_extract_disas_vfp_Fmt_18(ctx, &u.f_disas_vfp8, insn);
            if (trans_VLDR_VSTR_dp(ctx, &u.f_disas_vfp8)) return true;
            return false;
        case 0x1:
            /* ....1101 ..1..... ....1011 ........ */
            disas_vfp_extract_disas_vfp_Fmt_22(ctx, &u.f_disas_vfp9, insn);
            switch ((insn >> 23) & 0x1) {
            case 0x0:
                /* ....1101 0.1..... ....1011 ........ */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:102 */
                if (trans_VLDM_VSTM_dp(ctx, &u.f_disas_vfp9)) return true;
                return false;
            }
            return false;
        }
        return false;
    case 0x0e000a00:
        /* ....1110 ........ ....1010 ........ */
        switch (insn & 0x00a00050) {
        case 0x00000000:
            /* ....1110 0.0..... ....1010 .0.0.... */
            disas_vfp_extract_vfp_dnm_s(ctx, &u.f_disas_vfp0, insn);
            switch ((insn >> 20) & 0x1) {
            case 0x0:
                /* ....1110 0.00.... ....1010 .0.0.... */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:106 */
                if (trans_VMLA_sp(ctx, &u.f_disas_vfp0)) return true;
                return false;
            case 0x1:
                /* ....1110 0.01.... ....1010 .0.0.... */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:112 */
                if (trans_VNMLS_sp(ctx, &u.f_disas_vfp0)) return true;
                return false;
            }
            return false;
        case 0x00000010:
            /* ....1110 0.0..... ....1010 .0.1.... */
            disas_vfp_extract_disas_vfp_Fmt_14(ctx, &u.f_disas_vfp6, insn);
            switch (insn & 0x0040002f) {
            case 0x00000000:
                /* ....1110 000..... ....1010 .0010000 */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:77 */
                if (trans_VMOV_single(ctx, &u.f_disas_vfp6)) return true;
                return false;
            }
            return false;
        case 0x00000040:
            /* ....1110 0.0..... ....1010 .1.0.... */
            disas_vfp_extract_vfp_dnm_s(ctx, &u.f_disas_vfp0, insn);
            switch ((insn >> 20) & 0x1) {
            case 0x0:
                /* ....1110 0.00.... ....1010 .1.0.... */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:109 */
                if (trans_VMLS_sp(ctx, &u.f_disas_vfp0)) return true;
                return false;
            case 0x1:
                /* ....1110 0.01.... ....1010 .1.0.... */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:115 */
                if (trans_VNMLA_sp(ctx, &u.f_disas_vfp0)) return true;
                return false;
            }
            return false;
        case 0x00200000:
            /* ....1110 0.1..... ....1010 .0.0.... */
            disas_vfp_extract_vfp_dnm_s(ctx, &u.f_disas_vfp0, insn);
            switch ((insn >> 20) & 0x1) {
            case 0x0:
                /* ....1110 0.10.... ....1010 .0.0.... */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:118 */
                if (trans_VMUL_sp(ctx, &u.f_disas_vfp0)) return true;
                return false;
            case 0x1:
                /* ....1110 0.11.... ....1010 .0.0.... */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:124 */
                if (trans_VADD_sp(ctx, &u.f_disas_vfp0)) return true;
                return false;
            }
            return false;
        case 0x00200040:
            /* ....1110 0.1..... ....1010 .1.0.... */
            disas_vfp_extract_vfp_dnm_s(ctx, &u.f_disas_vfp0, insn);
            switch ((insn >> 20) & 0x1) {
            case 0x0:
                /* ....1110 0.10.... ....1010 .1.0.... */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:121 */
                if (trans_VNMUL_sp(ctx, &u.f_disas_vfp0)) return true;
                return false;
            case 0x1:
                /* ....1110 0.11.... ....1010 .1.0.... */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:127 */
                if (trans_VSUB_sp(ctx, &u.f_disas_vfp0)) return true;
                return false;
            }
            return false;
        case 0x00800000:
            /* ....1110 1.0..... ....1010 .0.0.... */
            disas_vfp_extract_vfp_dnm_s(ctx, &u.f_disas_vfp0, insn);
            switch ((insn >> 20) & 0x1) {
            case 0x0:
                /* ....1110 1.00.... ....1010 .0.0.... */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:130 */
                if (trans_VDIV_sp(ctx, &u.f_disas_vfp0)) return true;
                return false;
            case 0x1:
                /* ....1110 1.01.... ....1010 .0.0.... */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:135 */
                if (trans_VFNMA_sp(ctx, &u.f_disas_vfp0)) return true;
                return false;
            }
            return false;
        case 0x00800040:
            /* ....1110 1.0..... ....1010 .1.0.... */
            disas_vfp_extract_vfp_dnm_s(ctx, &u.f_disas_vfp0, insn);
            switch ((insn >> 20) & 0x1) {
            case 0x1:
                /* ....1110 1.01.... ....1010 .1.0.... */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:136 */
                if (trans_VFNMS_sp(ctx, &u.f_disas_vfp0)) return true;
                return false;
            }
            return false;
        case 0x00a00000:
            /* ....1110 1.1..... ....1010 .0.0.... */
            switch ((insn >> 20) & 0x1) {
            case 0x0:
                /* ....1110 1.10.... ....1010 .0.0.... */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:133 */
                disas_vfp_extract_vfp_dnm_s(ctx, &u.f_disas_vfp0, insn);
                if (trans_VFMA_sp(ctx, &u.f_disas_vfp0)) return true;
                return false;
            case 0x1:
                /* ....1110 1.11.... ....1010 .0.0.... */
                disas_vfp_extract_disas_vfp_Fmt_23(ctx, &u.f_disas_vfp10, insn);
                switch (insn & 0x000000a0) {
                case 0x00000000:
                    /* ....1110 1.11.... ....1010 0000.... */
                    /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:143 */
                    if (trans_VMOV_imm_sp(ctx, &u.f_disas_vfp10)) return true;
                    return false;
                }
                return false;
            }
            return false;
        case 0x00a00010:
            /* ....1110 1.1..... ....1010 .0.1.... */
            disas_vfp_extract_disas_vfp_Fmt_13(ctx, &u.f_disas_vfp5, insn);
            switch (insn & 0x004000af) {
            case 0x00400000:
                /* ....1110 111..... ....1010 00010000 */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:76 */
                if (trans_VMSR_VMRS(ctx, &u.f_disas_vfp5)) return true;
                return false;
            }
            return false;
        case 0x00a00040:
            /* ....1110 1.1..... ....1010 .1.0.... */
            switch ((insn >> 20) & 0x1) {
            case 0x0:
                /* ....1110 1.10.... ....1010 .1.0.... */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:134 */
                disas_vfp_extract_vfp_dnm_s(ctx, &u.f_disas_vfp0, insn);
                if (trans_VFMS_sp(ctx, &u.f_disas_vfp0)) return true;
                return false;
            case 0x1:
                /* ....1110 1.11.... ....1010 .1.0.... */
                switch (insn & 0x000a0000) {
                case 0x00000000:
                    /* ....1110 1.110.0. ....1010 .1.0.... */
                    switch ((insn >> 18) & 0x1) {
                    case 0x0:
                        /* ....1110 1.11000. ....1010 .1.0.... */
                        disas_vfp_extract_vfp_dm_ss(ctx, &u.f_disas_vfp1, insn);
                        switch (insn & 0x00010080) {
                        case 0x00000000:
                            /* ....1110 1.110000 ....1010 01.0.... */
                            /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:148 */
                            if (trans_VMOV_reg_sp(ctx, &u.f_disas_vfp1)) return true;
                            return false;
                        case 0x00000080:
                            /* ....1110 1.110000 ....1010 11.0.... */
                            /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:151 */
                            if (trans_VABS_sp(ctx, &u.f_disas_vfp1)) return true;
                            return false;
                        case 0x00010000:
                            /* ....1110 1.110001 ....1010 01.0.... */
                            /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:154 */
                            if (trans_VNEG_sp(ctx, &u.f_disas_vfp1)) return true;
                            return false;
                        case 0x00010080:
                            /* ....1110 1.110001 ....1010 11.0.... */
                            /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:157 */
                            if (trans_VSQRT_sp(ctx, &u.f_disas_vfp1)) return true;
                            return false;
                        }
                        return false;
                    case 0x1:
                        /* ....1110 1.11010. ....1010 .1.0.... */
                        /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:160 */
                        disas_vfp_extract_disas_vfp_Fmt_25(ctx, &u.f_disas_vfp11, insn);
                        if (trans_VCMP_sp(ctx, &u.f_disas_vfp11)) return true;
                        return false;
                    }
                    return false;
                case 0x00020000:
                    /* ....1110 1.110.1. ....1010 .1.0.... */
                    switch (insn & 0x00050000) {
                    case 0x00000000:
                        /* ....1110 1.110010 ....1010 .1.0.... */
                        /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:166 */
                        disas_vfp_extract_disas_vfp_Fmt_27(ctx, &u.f_disas_vfp12, insn);
                        if (trans_VCVT_f32_f16(ctx, &u.f_disas_vfp12)) return true;
                        return false;
                    case 0x00010000:
                        /* ....1110 1.110011 ....1010 .1.0.... */
                        /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:173 */
                        disas_vfp_extract_disas_vfp_Fmt_27(ctx, &u.f_disas_vfp12, insn);
                        if (trans_VCVT_f16_f32(ctx, &u.f_disas_vfp12)) return true;
                        return false;
                    case 0x00040000:
                        /* ....1110 1.110110 ....1010 .1.0.... */
                        disas_vfp_extract_vfp_dm_ss(ctx, &u.f_disas_vfp1, insn);
                        switch ((insn >> 7) & 0x1) {
                        case 0x0:
                            /* ....1110 1.110110 ....1010 01.0.... */
                            /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:178 */
                            if (trans_VRINTR_sp(ctx, &u.f_disas_vfp1)) return true;
                            return false;
                        case 0x1:
                            /* ....1110 1.110110 ....1010 11.0.... */
                            /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:181 */
                            if (trans_VRINTZ_sp(ctx, &u.f_disas_vfp1)) return true;
                            return false;
                        }
                        return false;
                    case 0x00050000:
                        /* ....1110 1.110111 ....1010 .1.0.... */
                        switch ((insn >> 7) & 0x1) {
                        case 0x0:
                            /* ....1110 1.110111 ....1010 01.0.... */
                            /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:184 */
                            disas_vfp_extract_vfp_dm_ss(ctx, &u.f_disas_vfp1, insn);
                            if (trans_VRINTX_sp(ctx, &u.f_disas_vfp1)) return true;
                            return false;
                        case 0x1:
                            /* ....1110 1.110111 ....1010 11.0.... */
                            /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:189 */
                            disas_vfp_extract_vfp_dm_ds(ctx, &u.f_disas_vfp1, insn);
                            if (trans_VCVT_sp(ctx, &u.f_disas_vfp1)) return true;
                            return false;
                        }
                        return false;
                    }
                    return false;
                case 0x00080000:
                    /* ....1110 1.111.0. ....1010 .1.0.... */
                    switch ((insn >> 18) & 0x1) {
                    case 0x0:
                        /* ....1110 1.11100. ....1010 .1.0.... */
                        disas_vfp_extract_disas_vfp_Fmt_30(ctx, &u.f_disas_vfp13, insn);
                        switch ((insn >> 16) & 0x1) {
                        case 0x0:
                            /* ....1110 1.111000 ....1010 .1.0.... */
                            /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:193 */
                            if (trans_VCVT_int_sp(ctx, &u.f_disas_vfp13)) return true;
                            return false;
                        }
                        return false;
                    case 0x1:
                        /* ....1110 1.11110. ....1010 .1.0.... */
                        /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:212 */
                        disas_vfp_extract_disas_vfp_Fmt_34(ctx, &u.f_disas_vfp15, insn);
                        if (trans_VCVT_sp_int(ctx, &u.f_disas_vfp15)) return true;
                        return false;
                    }
                    return false;
                case 0x000a0000:
                    /* ....1110 1.111.1. ....1010 .1.0.... */
                    /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:206 */
                    disas_vfp_extract_disas_vfp_Fmt_32(ctx, &u.f_disas_vfp14, insn);
                    if (trans_VCVT_fix_sp(ctx, &u.f_disas_vfp14)) return true;
                    return false;
                }
                return false;
            }
            return false;
        }
        return false;
    case 0x0e000b00:
        /* ....1110 ........ ....1011 ........ */
        switch (insn & 0x00100010) {
        case 0x00000000:
            /* ....1110 ...0.... ....1011 ...0.... */
            disas_vfp_extract_vfp_dnm_d(ctx, &u.f_disas_vfp0, insn);
            switch (insn & 0x00a00040) {
            case 0x00000000:
                /* ....1110 0.00.... ....1011 .0.0.... */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:107 */
                if (trans_VMLA_dp(ctx, &u.f_disas_vfp0)) return true;
                return false;
            case 0x00000040:
                /* ....1110 0.00.... ....1011 .1.0.... */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:110 */
                if (trans_VMLS_dp(ctx, &u.f_disas_vfp0)) return true;
                return false;
            case 0x00200000:
                /* ....1110 0.10.... ....1011 .0.0.... */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:119 */
                if (trans_VMUL_dp(ctx, &u.f_disas_vfp0)) return true;
                return false;
            case 0x00200040:
                /* ....1110 0.10.... ....1011 .1.0.... */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:122 */
                if (trans_VNMUL_dp(ctx, &u.f_disas_vfp0)) return true;
                return false;
            case 0x00800000:
                /* ....1110 1.00.... ....1011 .0.0.... */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:131 */
                if (trans_VDIV_dp(ctx, &u.f_disas_vfp0)) return true;
                return false;
            case 0x00a00000:
                /* ....1110 1.10.... ....1011 .0.0.... */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:138 */
                if (trans_VFMA_dp(ctx, &u.f_disas_vfp0)) return true;
                return false;
            case 0x00a00040:
                /* ....1110 1.10.... ....1011 .1.0.... */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:139 */
                if (trans_VFMS_dp(ctx, &u.f_disas_vfp0)) return true;
                return false;
            }
            return false;
        case 0x00000010:
            /* ....1110 ...0.... ....1011 ...1.... */
            switch (insn & 0x0080000f) {
            case 0x00000000:
                /* ....1110 0..0.... ....1011 ...10000 */
                switch ((insn >> 22) & 0x1) {
                case 0x0:
                    /* ....1110 00.0.... ....1011 ...10000 */
                    switch ((insn >> 5) & 0x1) {
                    case 0x0:
                        /* ....1110 00.0.... ....1011 ..010000 */
                        disas_vfp_extract_disas_vfp_Fmt_11(ctx, &u.f_disas_vfp3, insn);
                        switch ((insn >> 6) & 0x1) {
                        case 0x0:
                            /* ....1110 00.0.... ....1011 .0010000 */
                            /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:70 */
                            if (trans_VMOV_from_gp(ctx, &u.f_disas_vfp3)) return true;
                            return false;
                        }
                        return false;
                    case 0x1:
                        /* ....1110 00.0.... ....1011 ..110000 */
                        /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:68 */
                        disas_vfp_extract_disas_vfp_Fmt_10(ctx, &u.f_disas_vfp3, insn);
                        if (trans_VMOV_from_gp(ctx, &u.f_disas_vfp3)) return true;
                        return false;
                    }
                    return false;
                case 0x1:
                    /* ....1110 01.0.... ....1011 ...10000 */
                    /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:66 */
                    disas_vfp_extract_disas_vfp_Fmt_9(ctx, &u.f_disas_vfp3, insn);
                    if (trans_VMOV_from_gp(ctx, &u.f_disas_vfp3)) return true;
                    return false;
                }
                return false;
            case 0x00800000:
                /* ....1110 1..0.... ....1011 ...10000 */
                disas_vfp_extract_disas_vfp_Fmt_12(ctx, &u.f_disas_vfp4, insn);
                switch ((insn >> 6) & 0x1) {
                case 0x0:
                    /* ....1110 1..0.... ....1011 .0.10000 */
                    /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:73 */
                    if (trans_VDUP(ctx, &u.f_disas_vfp4)) return true;
                    return false;
                }
                return false;
            }
            return false;
        case 0x00100000:
            /* ....1110 ...1.... ....1011 ...0.... */
            switch (insn & 0x00a00040) {
            case 0x00000000:
                /* ....1110 0.01.... ....1011 .0.0.... */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:113 */
                disas_vfp_extract_vfp_dnm_d(ctx, &u.f_disas_vfp0, insn);
                if (trans_VNMLS_dp(ctx, &u.f_disas_vfp0)) return true;
                return false;
            case 0x00000040:
                /* ....1110 0.01.... ....1011 .1.0.... */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:116 */
                disas_vfp_extract_vfp_dnm_d(ctx, &u.f_disas_vfp0, insn);
                if (trans_VNMLA_dp(ctx, &u.f_disas_vfp0)) return true;
                return false;
            case 0x00200000:
                /* ....1110 0.11.... ....1011 .0.0.... */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:125 */
                disas_vfp_extract_vfp_dnm_d(ctx, &u.f_disas_vfp0, insn);
                if (trans_VADD_dp(ctx, &u.f_disas_vfp0)) return true;
                return false;
            case 0x00200040:
                /* ....1110 0.11.... ....1011 .1.0.... */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:128 */
                disas_vfp_extract_vfp_dnm_d(ctx, &u.f_disas_vfp0, insn);
                if (trans_VSUB_dp(ctx, &u.f_disas_vfp0)) return true;
                return false;
            case 0x00800000:
                /* ....1110 1.01.... ....1011 .0.0.... */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:140 */
                disas_vfp_extract_vfp_dnm_d(ctx, &u.f_disas_vfp0, insn);
                if (trans_VFNMA_dp(ctx, &u.f_disas_vfp0)) return true;
                return false;
            case 0x00800040:
                /* ....1110 1.01.... ....1011 .1.0.... */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:141 */
                disas_vfp_extract_vfp_dnm_d(ctx, &u.f_disas_vfp0, insn);
                if (trans_VFNMS_dp(ctx, &u.f_disas_vfp0)) return true;
                return false;
            case 0x00a00000:
                /* ....1110 1.11.... ....1011 .0.0.... */
                disas_vfp_extract_disas_vfp_Fmt_24(ctx, &u.f_disas_vfp10, insn);
                switch (insn & 0x000000a0) {
                case 0x00000000:
                    /* ....1110 1.11.... ....1011 0000.... */
                    /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:145 */
                    if (trans_VMOV_imm_dp(ctx, &u.f_disas_vfp10)) return true;
                    return false;
                }
                return false;
            case 0x00a00040:
                /* ....1110 1.11.... ....1011 .1.0.... */
                switch (insn & 0x000a0000) {
                case 0x00000000:
                    /* ....1110 1.110.0. ....1011 .1.0.... */
                    switch ((insn >> 18) & 0x1) {
                    case 0x0:
                        /* ....1110 1.11000. ....1011 .1.0.... */
                        disas_vfp_extract_vfp_dm_dd(ctx, &u.f_disas_vfp1, insn);
                        switch (insn & 0x00010080) {
                        case 0x00000000:
                            /* ....1110 1.110000 ....1011 01.0.... */
                            /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:149 */
                            if (trans_VMOV_reg_dp(ctx, &u.f_disas_vfp1)) return true;
                            return false;
                        case 0x00000080:
                            /* ....1110 1.110000 ....1011 11.0.... */
                            /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:152 */
                            if (trans_VABS_dp(ctx, &u.f_disas_vfp1)) return true;
                            return false;
                        case 0x00010000:
                            /* ....1110 1.110001 ....1011 01.0.... */
                            /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:155 */
                            if (trans_VNEG_dp(ctx, &u.f_disas_vfp1)) return true;
                            return false;
                        case 0x00010080:
                            /* ....1110 1.110001 ....1011 11.0.... */
                            /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:158 */
                            if (trans_VSQRT_dp(ctx, &u.f_disas_vfp1)) return true;
                            return false;
                        }
                        return false;
                    case 0x1:
                        /* ....1110 1.11010. ....1011 .1.0.... */
                        /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:162 */
                        disas_vfp_extract_disas_vfp_Fmt_26(ctx, &u.f_disas_vfp11, insn);
                        if (trans_VCMP_dp(ctx, &u.f_disas_vfp11)) return true;
                        return false;
                    }
                    return false;
                case 0x00020000:
                    /* ....1110 1.110.1. ....1011 .1.0.... */
                    switch (insn & 0x00050000) {
                    case 0x00000000:
                        /* ....1110 1.110010 ....1011 .1.0.... */
                        /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:168 */
                        disas_vfp_extract_disas_vfp_Fmt_28(ctx, &u.f_disas_vfp12, insn);
                        if (trans_VCVT_f64_f16(ctx, &u.f_disas_vfp12)) return true;
                        return false;
                    case 0x00010000:
                        /* ....1110 1.110011 ....1011 .1.0.... */
                        /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:175 */
                        disas_vfp_extract_disas_vfp_Fmt_29(ctx, &u.f_disas_vfp12, insn);
                        if (trans_VCVT_f16_f64(ctx, &u.f_disas_vfp12)) return true;
                        return false;
                    case 0x00040000:
                        /* ....1110 1.110110 ....1011 .1.0.... */
                        disas_vfp_extract_vfp_dm_dd(ctx, &u.f_disas_vfp1, insn);
                        switch ((insn >> 7) & 0x1) {
                        case 0x0:
                            /* ....1110 1.110110 ....1011 01.0.... */
                            /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:179 */
                            if (trans_VRINTR_dp(ctx, &u.f_disas_vfp1)) return true;
                            return false;
                        case 0x1:
                            /* ....1110 1.110110 ....1011 11.0.... */
                            /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:182 */
                            if (trans_VRINTZ_dp(ctx, &u.f_disas_vfp1)) return true;
                            return false;
                        }
                        return false;
                    case 0x00050000:
                        /* ....1110 1.110111 ....1011 .1.0.... */
                        switch ((insn >> 7) & 0x1) {
                        case 0x0:
                            /* ....1110 1.110111 ....1011 01.0.... */
                            /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:185 */
                            disas_vfp_extract_vfp_dm_dd(ctx, &u.f_disas_vfp1, insn);
                            if (trans_VRINTX_dp(ctx, &u.f_disas_vfp1)) return true;
                            return false;
                        case 0x1:
                            /* ....1110 1.110111 ....1011 11.0.... */
                            /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:190 */
                            disas_vfp_extract_vfp_dm_sd(ctx, &u.f_disas_vfp1, insn);
                            if (trans_VCVT_dp(ctx, &u.f_disas_vfp1)) return true;
                            return false;
                        }
                        return false;
                    }
                    return false;
                case 0x00080000:
                    /* ....1110 1.111.0. ....1011 .1.0.... */
                    switch ((insn >> 18) & 0x1) {
                    case 0x0:
                        /* ....1110 1.11100. ....1011 .1.0.... */
                        switch ((insn >> 16) & 0x1) {
                        case 0x0:
                            /* ....1110 1.111000 ....1011 .1.0.... */
                            /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:195 */
                            disas_vfp_extract_disas_vfp_Fmt_31(ctx, &u.f_disas_vfp13, insn);
                            if (trans_VCVT_int_dp(ctx, &u.f_disas_vfp13)) return true;
                            return false;
                        case 0x1:
                            /* ....1110 1.111001 ....1011 .1.0.... */
                            disas_vfp_extract_vfp_dm_sd(ctx, &u.f_disas_vfp1, insn);
                            switch ((insn >> 7) & 0x1) {
                            case 0x1:
                                /* ....1110 1.111001 ....1011 11.0.... */
                                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:199 */
                                if (trans_VJCVT(ctx, &u.f_disas_vfp1)) return true;
                                return false;
                            }
                            return false;
                        }
                        return false;
                    case 0x1:
                        /* ....1110 1.11110. ....1011 .1.0.... */
                        /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:214 */
                        disas_vfp_extract_disas_vfp_Fmt_35(ctx, &u.f_disas_vfp15, insn);
                        if (trans_VCVT_dp_int(ctx, &u.f_disas_vfp15)) return true;
                        return false;
                    }
                    return false;
                case 0x000a0000:
                    /* ....1110 1.111.1. ....1011 .1.0.... */
                    /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:208 */
                    disas_vfp_extract_disas_vfp_Fmt_33(ctx, &u.f_disas_vfp14, insn);
                    if (trans_VCVT_fix_dp(ctx, &u.f_disas_vfp14)) return true;
                    return false;
                }
                return false;
            }
            return false;
        case 0x00100010:
            /* ....1110 ...1.... ....1011 ...1.... */
            switch (insn & 0x0040000f) {
            case 0x00000000:
                /* ....1110 .0.1.... ....1011 ...10000 */
                switch ((insn >> 5) & 0x1) {
                case 0x0:
                    /* ....1110 .0.1.... ....1011 ..010000 */
                    disas_vfp_extract_disas_vfp_Fmt_8(ctx, &u.f_disas_vfp2, insn);
                    switch (insn & 0x00800040) {
                    case 0x00000000:
                        /* ....1110 00.1.... ....1011 .0010000 */
                        /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:63 */
                        if (trans_VMOV_to_gp(ctx, &u.f_disas_vfp2)) return true;
                        return false;
                    }
                    return false;
                case 0x1:
                    /* ....1110 .0.1.... ....1011 ..110000 */
                    /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:61 */
                    disas_vfp_extract_disas_vfp_Fmt_7(ctx, &u.f_disas_vfp2, insn);
                    if (trans_VMOV_to_gp(ctx, &u.f_disas_vfp2)) return true;
                    return false;
                }
                return false;
            case 0x00400000:
                /* ....1110 .1.1.... ....1011 ...10000 */
                /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp.decode:59 */
                disas_vfp_extract_disas_vfp_Fmt_6(ctx, &u.f_disas_vfp2, insn);
                if (trans_VMOV_to_gp(ctx, &u.f_disas_vfp2)) return true;
                return false;
            }
            return false;
        }
        return false;
    }
    return false;
}
