X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=opcodes%2Faarch64-opc.c;h=84e30f5f34531db41f4581fda37a5051d516edd2;hb=3c17238bc9fe8a078a6199470291f07bab9c64c8;hp=1f85294e3bf992d95e48375d8021be401785f17d;hpb=cd50a87ae29f163e7d254729a902a5e51fcccbbc;p=external%2Fbinutils.git diff --git a/opcodes/aarch64-opc.c b/opcodes/aarch64-opc.c index 1f85294..84e30f5 100644 --- a/opcodes/aarch64-opc.c +++ b/opcodes/aarch64-opc.c @@ -2540,13 +2540,18 @@ operand_general_constraint_met_p (const aarch64_opnd_info *opnds, int idx, case AARCH64_OPND_SVE_SHRIMM_PRED: case AARCH64_OPND_SVE_SHRIMM_UNPRED: - size = aarch64_get_qualifier_esize (opnds[idx - 1].qualifier); - if (!value_in_range_p (opnd->imm.value, 1, 8 * size)) + case AARCH64_OPND_SVE_SHRIMM_UNPRED_22: { - set_imm_out_of_range_error (mismatch_detail, idx, 1, 8 * size); - return 0; - } - break; + unsigned int index = + (type == AARCH64_OPND_SVE_SHRIMM_UNPRED_22) ? 2 : 1; + size = aarch64_get_qualifier_esize (opnds[idx - index].qualifier); + if (!value_in_range_p (opnd->imm.value, 1, 8 * size)) + { + set_imm_out_of_range_error (mismatch_detail, idx, 1, 8*size); + return 0; + } + break; + } default: break; @@ -3352,6 +3357,7 @@ aarch64_print_operand (char *buf, size_t size, bfd_vma pc, case AARCH64_OPND_SVE_SHLIMM_UNPRED: case AARCH64_OPND_SVE_SHRIMM_PRED: case AARCH64_OPND_SVE_SHRIMM_UNPRED: + case AARCH64_OPND_SVE_SHRIMM_UNPRED_22: case AARCH64_OPND_SVE_SIMM5: case AARCH64_OPND_SVE_SIMM5B: case AARCH64_OPND_SVE_SIMM6: