[PATCH] x86: -mfence-as-lock-add=yes doesn't work for 16-bit mode

H.J. Lu hjl.tools@gmail.com
Fri Dec 17 14:20:42 GMT 2021


On Fri, Dec 17, 2021 at 5:55 AM Jan Beulich <jbeulich@suse.com> wrote:
>
> Rather than trying to fix this (which would require making an assumption
> on the upper half of %esp being zero), simply issue an error. While at
> it, since the generated code is in conflict with -momit-lock-prefix=yes,
> issue an error in that case as well.
>
> --- a/gas/config/tc-i386.c
> +++ b/gas/config/tc-i386.c
> @@ -9638,7 +9638,12 @@ output_insn (void)
>         {
>           /* Encode lfence, mfence, and sfence as
>              f0 83 04 24 00   lock addl $0x0, (%{re}sp).  */
> -         if (now_seg != absolute_section)
> +         if (flag_code == CODE_16BIT)
> +           as_bad (_("Cannot convert `%s' in 16-bit mode"), i.tm.name);
> +         else if (omit_lock_prefix)
> +           as_bad (_("Cannot convert `%s' with `-momit-lock-prefix=yes' in effect"),
> +                   i.tm.name);
> +         else if (now_seg != absolute_section)
>             {
>               offsetT val = 0x240483f0ULL;
>
>

This is OK.

Thanks.

-- 
H.J.


More information about the Binutils mailing list