x86-64: fix handling of PUSH/POP of segment register
authorJan Beulich <jbeulich@suse.com>
Fri, 20 Sep 2019 08:18:15 +0000 (10:18 +0200)
committerJan Beulich <jbeulich@suse.com>
Fri, 20 Sep 2019 08:18:15 +0000 (10:18 +0200)
commit3f9aad111cea2f25877d0a6b404956769c14faee
tree710516f16c6e7652447adce60a180cdd6f9e2362
parent4c51dacacf8a97194a1241ad5e1cbf7be00a59a3
x86-64: fix handling of PUSH/POP of segment register

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/ChangeLog
gas/config/tc-i386.c
gas/testsuite/gas/i386/x86-64-opcode.d
gas/testsuite/gas/i386/x86-64-opcode.s
opcodes/ChangeLog
opcodes/i386-opc.tbl
opcodes/i386-tbl.h
This page took 0.025435 seconds and 4 git commands to generate.