aarch64 disassembler infinite loop

Assembling this to an object and trying to disassemble results in
objdump -d looping forever.

 .inst 0x45205120

	PR 25270
	* aarch64-dis.c (aarch64_decode_variant_using_iclass): Return
	false when field is zero for sve_size_tsz_bhs.
This commit is contained in:
Alan Modra 2019-12-10 19:04:37 +10:30
parent 76bba5ee85
commit 9d48687b41
2 changed files with 8 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2019-12-11 Alan Modra <amodra@gmail.com>
PR 25270
* aarch64-dis.c (aarch64_decode_variant_using_iclass): Return
false when field is zero for sve_size_tsz_bhs.
2019-12-11 Alan Modra <amodra@gmail.com>
* epiphany-ibld.c: Regenerate.

View File

@ -2843,6 +2843,8 @@ aarch64_decode_variant_using_iclass (aarch64_inst *inst)
case sve_size_tsz_bhs:
i = extract_fields (inst->value, 0, 2, FLD_SVE_sz, FLD_SVE_tszl_19);
if (i == 0)
return FALSE;
while (i != 1)
{
if (i & 1)