/* This file is autogenerated by scripts/decodetree.py. */ typedef struct { int vd; int vm; int vn; } arg_disas_vfp_uncond0; typedef struct { int cc; int dp; int vd; int vm; int vn; } arg_disas_vfp_uncond1; typedef struct { int dp; int rm; int vd; int vm; } arg_disas_vfp_uncond2; typedef struct { int dp; int op; int rm; int vd; int vm; } arg_disas_vfp_uncond3; typedef arg_disas_vfp_uncond1 arg_VSEL; static bool trans_VSEL(DisasContext *ctx, arg_VSEL *a); typedef arg_disas_vfp_uncond0 arg_VMAXNM_sp; static bool trans_VMAXNM_sp(DisasContext *ctx, arg_VMAXNM_sp *a); typedef arg_disas_vfp_uncond0 arg_VMINNM_sp; static bool trans_VMINNM_sp(DisasContext *ctx, arg_VMINNM_sp *a); typedef arg_disas_vfp_uncond0 arg_VMAXNM_dp; static bool trans_VMAXNM_dp(DisasContext *ctx, arg_VMAXNM_dp *a); typedef arg_disas_vfp_uncond0 arg_VMINNM_dp; static bool trans_VMINNM_dp(DisasContext *ctx, arg_VMINNM_dp *a); typedef arg_disas_vfp_uncond2 arg_VRINT; static bool trans_VRINT(DisasContext *ctx, arg_VRINT *a); typedef arg_disas_vfp_uncond3 arg_VCVT; static bool trans_VCVT(DisasContext *ctx, arg_VCVT *a); static void disas_vfp_uncond_extract_disas_vfp_uncond_Fmt_2(DisasContext *ctx, arg_disas_vfp_uncond1 *a, uint32_t insn) { a->cc = extract32(insn, 20, 2); 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)); a->dp = 0; } static void disas_vfp_uncond_extract_disas_vfp_uncond_Fmt_3(DisasContext *ctx, arg_disas_vfp_uncond1 *a, uint32_t insn) { a->cc = extract32(insn, 20, 2); 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)); a->dp = 1; } static void disas_vfp_uncond_extract_disas_vfp_uncond_Fmt_4(DisasContext *ctx, arg_disas_vfp_uncond2 *a, uint32_t insn) { a->rm = extract32(insn, 16, 2); 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)); a->dp = 0; } static void disas_vfp_uncond_extract_disas_vfp_uncond_Fmt_5(DisasContext *ctx, arg_disas_vfp_uncond2 *a, uint32_t insn) { a->rm = extract32(insn, 16, 2); 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)); a->dp = 1; } static void disas_vfp_uncond_extract_disas_vfp_uncond_Fmt_6(DisasContext *ctx, arg_disas_vfp_uncond3 *a, uint32_t insn) { a->rm = extract32(insn, 16, 2); a->op = extract32(insn, 7, 1); 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)); a->dp = 0; } static void disas_vfp_uncond_extract_disas_vfp_uncond_Fmt_7(DisasContext *ctx, arg_disas_vfp_uncond3 *a, uint32_t insn) { a->rm = extract32(insn, 16, 2); a->op = extract32(insn, 7, 1); 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)); a->dp = 1; } static void disas_vfp_uncond_extract_vfp_dnm_d(DisasContext *ctx, arg_disas_vfp_uncond0 *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_uncond_extract_vfp_dnm_s(DisasContext *ctx, arg_disas_vfp_uncond0 *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_uncond(DisasContext *ctx, uint32_t insn) { union { arg_disas_vfp_uncond0 f_disas_vfp_uncond0; arg_disas_vfp_uncond1 f_disas_vfp_uncond1; arg_disas_vfp_uncond2 f_disas_vfp_uncond2; arg_disas_vfp_uncond3 f_disas_vfp_uncond3; } u; switch (insn & 0xff800f50) { case 0xfe000a00: /* 11111110 0....... ....1010 .0.0.... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp-uncond.decode:47 */ disas_vfp_uncond_extract_disas_vfp_uncond_Fmt_2(ctx, &u.f_disas_vfp_uncond1, insn); if (trans_VSEL(ctx, &u.f_disas_vfp_uncond1)) return true; return false; case 0xfe000b00: /* 11111110 0....... ....1011 .0.0.... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp-uncond.decode:49 */ disas_vfp_uncond_extract_disas_vfp_uncond_Fmt_3(ctx, &u.f_disas_vfp_uncond1, insn); if (trans_VSEL(ctx, &u.f_disas_vfp_uncond1)) return true; return false; case 0xfe800a00: /* 11111110 1....... ....1010 .0.0.... */ disas_vfp_uncond_extract_vfp_dnm_s(ctx, &u.f_disas_vfp_uncond0, insn); switch ((insn >> 20) & 0x3) { case 0x0: /* 11111110 1.00.... ....1010 .0.0.... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp-uncond.decode:52 */ if (trans_VMAXNM_sp(ctx, &u.f_disas_vfp_uncond0)) return true; return false; } return false; case 0xfe800a40: /* 11111110 1....... ....1010 .1.0.... */ switch ((insn >> 20) & 0x3) { case 0x0: /* 11111110 1.00.... ....1010 .1.0.... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp-uncond.decode:53 */ disas_vfp_uncond_extract_vfp_dnm_s(ctx, &u.f_disas_vfp_uncond0, insn); if (trans_VMINNM_sp(ctx, &u.f_disas_vfp_uncond0)) return true; return false; case 0x3: /* 11111110 1.11.... ....1010 .1.0.... */ switch ((insn >> 18) & 0x3) { case 0x2: /* 11111110 1.1110.. ....1010 .1.0.... */ disas_vfp_uncond_extract_disas_vfp_uncond_Fmt_4(ctx, &u.f_disas_vfp_uncond2, insn); switch ((insn >> 7) & 0x1) { case 0x0: /* 11111110 1.1110.. ....1010 01.0.... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp-uncond.decode:58 */ if (trans_VRINT(ctx, &u.f_disas_vfp_uncond2)) return true; return false; } return false; case 0x3: /* 11111110 1.1111.. ....1010 .1.0.... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp-uncond.decode:64 */ disas_vfp_uncond_extract_disas_vfp_uncond_Fmt_6(ctx, &u.f_disas_vfp_uncond3, insn); if (trans_VCVT(ctx, &u.f_disas_vfp_uncond3)) return true; return false; } return false; } return false; case 0xfe800b00: /* 11111110 1....... ....1011 .0.0.... */ disas_vfp_uncond_extract_vfp_dnm_d(ctx, &u.f_disas_vfp_uncond0, insn); switch ((insn >> 20) & 0x3) { case 0x0: /* 11111110 1.00.... ....1011 .0.0.... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp-uncond.decode:55 */ if (trans_VMAXNM_dp(ctx, &u.f_disas_vfp_uncond0)) return true; return false; } return false; case 0xfe800b40: /* 11111110 1....... ....1011 .1.0.... */ switch ((insn >> 20) & 0x3) { case 0x0: /* 11111110 1.00.... ....1011 .1.0.... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp-uncond.decode:56 */ disas_vfp_uncond_extract_vfp_dnm_d(ctx, &u.f_disas_vfp_uncond0, insn); if (trans_VMINNM_dp(ctx, &u.f_disas_vfp_uncond0)) return true; return false; case 0x3: /* 11111110 1.11.... ....1011 .1.0.... */ switch ((insn >> 18) & 0x3) { case 0x2: /* 11111110 1.1110.. ....1011 .1.0.... */ disas_vfp_uncond_extract_disas_vfp_uncond_Fmt_5(ctx, &u.f_disas_vfp_uncond2, insn); switch ((insn >> 7) & 0x1) { case 0x0: /* 11111110 1.1110.. ....1011 01.0.... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp-uncond.decode:60 */ if (trans_VRINT(ctx, &u.f_disas_vfp_uncond2)) return true; return false; } return false; case 0x3: /* 11111110 1.1111.. ....1011 .1.0.... */ /* /mnt/c/Users/me/Documents/projects/unicorn2/tmp/tmp/qemu-5.0.0/target/arm/vfp-uncond.decode:66 */ disas_vfp_uncond_extract_disas_vfp_uncond_Fmt_7(ctx, &u.f_disas_vfp_uncond3, insn); if (trans_VCVT(ctx, &u.f_disas_vfp_uncond3)) return true; return false; } return false; } return false; } return false; }