[committed] MIPS/BFD: Correct register index calculation in BZ16_REG

Andreas Schwab schwab@linux-m68k.org
Sun Jan 24 08:35:00 GMT 2016


"Maciej W. Rozycki" <macro@imgtec.com> writes:

> diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c
> index 4ece819..176970a 100644
> --- a/bfd/elfxx-mips.c
> +++ b/bfd/elfxx-mips.c
> @@ -13110,7 +13110,7 @@ static const struct opcode_descriptor bz_insns_16[] = {
>  
>  /* Switch between a 5-bit register index and its 3-bit shorthand.  */
>  
> -#define BZ16_REG(opcode) ((((((opcode) >> 7) & 7) + 0x1e) & 0x17) + 2)
> +#define BZ16_REG(opcode) ((((((opcode) >> 7) & 7) + 0x1e) & 0xf) + 2)

It doesn't make sense to add 0x1e if you mask off 0x10 afterwards.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."



More information about the Binutils mailing list