[PATCH] x86-64: adjust far indirect branch handling

Jan Beulich jbeulich@suse.com
Mon Jun 8 11:59:57 GMT 2020


On 08.06.2020 13:43, H.J. Lu wrote:
> On Mon, Jun 8, 2020 at 4:38 AM Jan Beulich <jbeulich@suse.com> wrote:
>>
>> An unwanted side effect of 5990e377e5a3 ("x86-64: Intel64 adjustments
>> for insns dealing with far pointers") was that with -mintel64 LCALL and
>> LJMP would now default to 64-bit operand size. Since 64-bit far branches
>> aren't portable, the default operand size should still be 32-bit.
>> However, since the 64-bit variant is permitted, an ambiguous operand
>> warning should be issued.
>>
>> As to the actual code change, please note that the conditional
>> surrounding the switch() that gets adjusted covers several cases which
>> are of no interest to or benign in 64-bit mode, hence the new
>> conditional added can be quite a bit less involved.
>>
>> gas/
>> 2020-06-XX  Jan Beulich  <jbeulich@suse.com>
>>
>>         * config/tc-i386.c (process_suffix): Restrict defaulting to 'q'
>>         suffix.
>>         * testsuite/gas/i386/noreg64.s: Add lcall/ljmp cases.
>>         * testsuite/gas/i386/noreg64.d: Adjust expectations.
>>         * testsuite/gas/i386/noreg-intel64.d,
>>         testsuite/gas/i386/noreg-intel64.l,
>>         testsuite/gas/i386/noreg-intel64.s: New.
>>         * testsuite/gas/i386/i386.exp: Run new tests.
>>
> 
> OK.

Thanks. For this one I wonder whether it should also go on the 2.34
branch, in case there's ever going to be a 2.34.1 (not very likely
as it seems, but anyway).

Jan


More information about the Binutils mailing list