x86: Do not dump DS/CS segment overrides for branch hints
authorBorislav Petkov <bp@suse.de>
Sat, 28 Nov 2020 13:20:06 +0000 (14:20 +0100)
committerH.J. Lu <hjl.tools@gmail.com>
Sun, 29 Nov 2020 17:08:56 +0000 (09:08 -0800)
commit632ee6fd822f8264edc5935c4e31955849df8ba2
treecb5f6b5f3ea89bbab67eaf48ecb4b965832e5f8a
parent568cbddc710f6cb6be752f390a1521cd5556ad9b
x86: Do not dump DS/CS segment overrides for branch hints

The previous change

  "x86: Ignore CS/DS/ES/SS segment-override prefixes in 64-bit mode"

to ignore segment override prefixes in 64-bit mode lead to dumping
branch hints as excessive prefixes:

  ffffffff8109d5a0 <vmx_get_rflags>:
  ...
  ffffffff8109d601:       3e 77 0a                ds ja,pt ffffffff8109d60e <vmx_get_rflags+0x6e>
   ^^^^^

In this particular case, those prefixes are not excessive but are used
to provide branch hints - taken/not-taken - to the CPU.

Assign active_seg_prefix in that particular case to consume them.

gas/

2002-11-29  Borislav Petkov  <bp@suse.de>

        * testsuite/gas/i386/branch.d: Add new branch insns test.
        * testsuite/gas/i386/branch.s: Likewise.
        * testsuite/gas/i386/i386.exp: Insert the new branch test.
        * testsuite/gas/i386/x86-64-branch.d: Test for branch hints insns.
        * testsuite/gas/i386/x86-64-branch.s: Likewise.
        * testsuite/gas/i386/ilp32/x86-64-branch.d: Likewise.

opcodes/

2020-11-28 Borislav Petkov  <bp@suse.de>

        * i386-dis.c (print_insn): Set active_seg_prefix for branch hint insns
        to not dump branch hint prefixes 0x2E and 0x3E as unused prefixes.
gas/ChangeLog
gas/testsuite/gas/i386/branch.d [new file with mode: 0644]
gas/testsuite/gas/i386/branch.s [new file with mode: 0644]
gas/testsuite/gas/i386/i386.exp
gas/testsuite/gas/i386/ilp32/x86-64-branch.d
gas/testsuite/gas/i386/x86-64-branch.d
gas/testsuite/gas/i386/x86-64-branch.s
opcodes/ChangeLog
opcodes/i386-dis.c