[PATCH] x86-64: fix handling of PUSH/POP of segment register

H.J. Lu hjl.tools@gmail.com
Thu Sep 19 16:23:00 GMT 2019
On Thu, Sep 19, 2019 at 7:56 AM Jan Beulich <jbeulich@suse.com> wrote:
>
> Commit 21df382b91 ("x86: fold SReg{2,3}") went too far: Folding 64-bit
> PUSH/POP templates into non-64-bit ones isn't correct, due to the
> different operand widths, and hence suffixes permitted. Restore the
> separate templates.
>
> Add tests of PUSH/POP with q suffix and %fs/%gs operands to the
> testsuite. While doing so also add PUSHF/POPF ones _without_ suffix.
>
> gas/
> 2018-09-19  Jan Beulich  <jbeulich@suse.com>
>
>         PR gas/25012
>         * config/tc-i386.c (process_operands): Adjust handling of
>         PUSH/POP of segment registers.
>         * testsuite/gas/i386/x86-64-opcode.s: Add PUSHq/POPq case with
>         %fs/%gs operands. Add PUSHF/POPF case without suffix.
>         * testsuite/gas/i386/x86-64-opcode.d: Adjust expectations.
>
> opcodes/
> 2018-09-19  Jan Beulich  <jbeulich@suse.com>
>
>         PR gas/25012
>         * i386-opc.tbl (push, pop): Re-instate distinct Cpu64 templates
>         with SReg operand.
>         * i386-tbl.h: Re-generate.
>

OK.

Thanks.

-- 
H.J.



More information about the Binutils mailing list