This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH] aarch64: actually copy first operand in convert_bfc_to_bfm()
- From: "Jan Beulich" <JBeulich at suse dot com>
- To: "Richard Earnshaw (lists)" <Richard dot Earnshaw at arm dot com>
- Cc: "Marcus Shawcroft" <marcus dot shawcroft at arm dot com>, "Richard Earnshaw" <rearnsha at arm dot com>,<binutils at sourceware dot org>
- Date: Tue, 21 Feb 2017 03:38:30 -0700
- Subject: Re: [PATCH] aarch64: actually copy first operand in convert_bfc_to_bfm()
- Authentication-results: sourceware.org; auth=none
- References: <58AC205E020000780013C2EE@prv-mh.provo.novell.com> <6fd65863-bf2c-a0a7-077f-d2a1a3ee2615@arm.com>
>>> 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