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

H.J. Lu hjl.tools@gmail.com
Mon Jun 8 11:43:22 GMT 2020


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.

-- 
H.J.


More information about the Binutils mailing list