[binutils][aarch64] New sve_size_sd2 iclass.
Define new sve_size_sd2 iclass to distinguish between the two variants of ldnt1sb and ldnt1sh. include/ChangeLog: 2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com> * opcode/aarch64.h (enum aarch64_insn_class): Add sve_size_sd2 iclass. opcodes/ChangeLog: 2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com> * aarch64-asm.c (aarch64_encode_variant_using_iclass): Handle sve_size_sd2 iclass encode. * aarch64-dis.c (aarch64_decode_variant_using_iclass): Handle sve_size_sd2 iclass decode. * aarch64-opc.c (fields): Handle SVE_sz2 field. * aarch64-opc.h (enum aarch64_field_kind): New SVE_sz2 field.
This commit is contained in:
parent
c469c86473
commit
0a57e14ffa
@ -1,3 +1,7 @@
|
||||
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
|
||||
|
||||
* opcode/aarch64.h (enum aarch64_insn_class): Add sve_size_sd2 iclass.
|
||||
|
||||
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
|
||||
|
||||
* opcode/aarch64.h (enum aarch64_opnd): New SVE_ADDR_ZX operand.
|
||||
|
@ -594,6 +594,7 @@ enum aarch64_insn_class
|
||||
sve_size_hsd,
|
||||
sve_size_hsd2,
|
||||
sve_size_sd,
|
||||
sve_size_sd2,
|
||||
testbranch,
|
||||
cryptosm3,
|
||||
cryptosm4,
|
||||
|
@ -1,3 +1,12 @@
|
||||
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
|
||||
|
||||
* aarch64-asm.c (aarch64_encode_variant_using_iclass): Handle
|
||||
sve_size_sd2 iclass encode.
|
||||
* aarch64-dis.c (aarch64_decode_variant_using_iclass): Handle
|
||||
sve_size_sd2 iclass decode.
|
||||
* aarch64-opc.c (fields): Handle SVE_sz2 field.
|
||||
* aarch64-opc.h (enum aarch64_field_kind): New SVE_sz2 field.
|
||||
|
||||
2019-05-09 Matthew Malcomson <matthew.malcomson@arm.com>
|
||||
|
||||
* aarch64-asm-2.c: Regenerated.
|
||||
|
@ -1659,6 +1659,10 @@ aarch64_encode_variant_using_iclass (struct aarch64_inst *inst)
|
||||
insert_field (FLD_SVE_sz, &inst->value, aarch64_get_variant (inst), 0);
|
||||
break;
|
||||
|
||||
case sve_size_sd2:
|
||||
insert_field (FLD_SVE_sz2, &inst->value, aarch64_get_variant (inst), 0);
|
||||
break;
|
||||
|
||||
case sve_size_hsd2:
|
||||
insert_field (FLD_SVE_size, &inst->value,
|
||||
aarch64_get_variant (inst) + 1, 0);
|
||||
|
@ -2810,6 +2810,10 @@ aarch64_decode_variant_using_iclass (aarch64_inst *inst)
|
||||
variant = extract_field (FLD_SVE_sz, inst->value, 0);
|
||||
break;
|
||||
|
||||
case sve_size_sd2:
|
||||
variant = extract_field (FLD_SVE_sz2, inst->value, 0);
|
||||
break;
|
||||
|
||||
case sve_size_hsd2:
|
||||
i = extract_field (FLD_SVE_size, inst->value, 0);
|
||||
if (i < 1)
|
||||
|
@ -314,6 +314,7 @@ const aarch64_field fields[] =
|
||||
{ 10, 1 }, /* SVE_rot3: 1-bit rotation amount at bit 10. */
|
||||
{ 22, 1 }, /* SVE_sz: 1-bit element size select. */
|
||||
{ 17, 2 }, /* SVE_size: 2-bit element size, bits [18,17]. */
|
||||
{ 30, 1 }, /* SVE_sz2: 1-bit element size select. */
|
||||
{ 16, 4 }, /* SVE_tsz: triangular size select. */
|
||||
{ 22, 2 }, /* SVE_tszh: triangular size select high, bits [23,22]. */
|
||||
{ 8, 2 }, /* SVE_tszl_8: triangular size select low, bits [9,8]. */
|
||||
|
@ -141,6 +141,7 @@ enum aarch64_field_kind
|
||||
FLD_SVE_rot3,
|
||||
FLD_SVE_sz,
|
||||
FLD_SVE_size,
|
||||
FLD_SVE_sz2,
|
||||
FLD_SVE_tsz,
|
||||
FLD_SVE_tszh,
|
||||
FLD_SVE_tszl_8,
|
||||
|
Loading…
Reference in New Issue
Block a user