Skip to content

Commit

Permalink
arm: Refactor condition for print_mve_shift_n
Browse files Browse the repository at this point in the history
This is intended to have no functional change, but refactors the
condition guarding the call to print_mve_shift_n in arm-dis.c ahead of a
later patch which adds additional insns to the set of those whose
shift immediate is disassembled using print_mve_shift_n.
  • Loading branch information
acoplan-arm committed Apr 9, 2024
1 parent 9132c81 commit f9d6cf2
Showing 1 changed file with 25 additions and 10 deletions.
35 changes: 25 additions & 10 deletions opcodes/arm-dis.c
Original file line number Diff line number Diff line change
Expand Up @@ -7965,6 +7965,30 @@ print_mve_size (struct disassemble_info *info,
}
}

/* Return true if INSN is a shift insn with an immediate shift amount
which needs decoding as per print_mve_shift_n. */

static bool
mve_shift_insn_p (enum mve_instructions insn)
{
switch (insn)
{
case MVE_VQSHL_T2:
case MVE_VQSHLU_T3:
case MVE_VRSHR:
case MVE_VRSHRN:
case MVE_VSHL_T1:
case MVE_VSHLL_T1:
case MVE_VSHR:
case MVE_VSHRN:
case MVE_VSLI:
case MVE_VSRI:
return true;
default:
return false;
}
}

static void
print_mve_shift_n (struct disassemble_info *info, long given,
enum mve_instructions matched_insn)
Expand Down Expand Up @@ -10225,16 +10249,7 @@ print_insn_mve (struct disassemble_info *info, long given)
arm_regnames[value]);
break;
case 'd':
if (insn->mve_op == MVE_VQSHL_T2
|| insn->mve_op == MVE_VQSHLU_T3
|| insn->mve_op == MVE_VRSHR
|| insn->mve_op == MVE_VRSHRN
|| insn->mve_op == MVE_VSHL_T1
|| insn->mve_op == MVE_VSHLL_T1
|| insn->mve_op == MVE_VSHR
|| insn->mve_op == MVE_VSHRN
|| insn->mve_op == MVE_VSLI
|| insn->mve_op == MVE_VSRI)
if (mve_shift_insn_p (insn->mve_op))
print_mve_shift_n (info, given, insn->mve_op);
else if (insn->mve_op == MVE_VSHLL_T2)
{
Expand Down

0 comments on commit f9d6cf2

Please sign in to comment.