[PATCH] aarch64: actually copy first operand in convert_bfc_to_bfm()
Jan Beulich
JBeulich@suse.com
Tue Feb 21 10:38:00 GMT 2017
>>> On 21.02.17 at 11:30, <Richard.Earnshaw@arm.com> wrote:
> On 21/02/17 10:11, Jan Beulich wrote:
>> Commit 93562a343c ("[AArch64] PR target/20666, fix wrong encoding of
>> new introduced BFC pseudo") changed the destination operand to 0,
>> making the whole function invocation a no-op. We really want to copy
>> operand 0 (a register) to operand 1 (an immediate before coming here).
>>
>> opcodes/
>> 2017-02-21 Jan Beulich <jbeulich@suse.com>
>>
>> * aarch64-asm.c (convert_bfc_to_bfm): Copy operand 0 to operand
>> 1 (instead of to itself).
>>
>> --- 2017-02-21/opcodes/aarch64-asm.c
>> +++ 2017-02-21/opcodes/aarch64-asm.c
>> @@ -1607,7 +1607,7 @@ convert_bfc_to_bfm (aarch64_inst *inst)
>> /* Insert XZR. */
>> copy_operand_info (inst, 3, 2);
>> copy_operand_info (inst, 2, 1);
>> - copy_operand_info (inst, 0, 0);
>> + copy_operand_info (inst, 1, 0);
>> inst->operands[1].reg.regno = 0x1f;
>>
>> /* Convert the immedate operand. */
>
> This needs an update to the testsuite as well. Clearly something is
> missing there or it would have been found before.
I don't understand: At present the difference between the operand
being an immediate or a register simply doesn't matter (anymore)
once this function ran. There's no resulting change in generated
code; this is just a latent bug that I spotted since my fix to the
original problem differed from the one which got committed (and I
did point this out back then).
Jan
More information about the Binutils
mailing list