[PATCH] x86: Do not dump DS/CS segment overrides for branch hints

H.J. Lu hjl.tools@gmail.com
Sun Nov 29 00:11:40 GMT 2020


On Sat, Nov 28, 2020 at 4:00 PM Borislav Petkov <bp@suse.de> wrote:
>
> On Sat, Nov 28, 2020 at 06:07:37AM -0800, H.J. Lu wrote:
> > Please add a testcase to show that the regression is fixed.
>
> Ok, how's that diff (ontop of the previous one)?
>
> I've added them to x86-64-segovr because for 64-bit that test deals with
> segment overrides so they kinda logically belong there.
>
> And I couldn't find the corresponding test for i386 so I put them in
> the SSE2 test because those branch hints came together with the SSE2
> extensions, according to the SDM.

Please add 64-bit tests to x86-64-branch.s and add a new test file,
branch.s, for 32-bit tests.

> I can do separate files, if that is preferred though, but since that
> test is only two insns, I thought I should keep it simple and not add
> more files...
>
> diff --git a/gas/testsuite/gas/i386/sse2-16bit.d b/gas/testsuite/gas/i386/sse2-16bit.d
> index a0970362a508..15ab05b39964 100644
> --- a/gas/testsuite/gas/i386/sse2-16bit.d
> +++ b/gas/testsuite/gas/i386/sse2-16bit.d
> @@ -163,6 +163,8 @@ Disassembly of section .text:
>  [      ]*[a-f0-9]+:    67 0f fb 00             psubq  \(%eax\),%mm0
>  [      ]*[a-f0-9]+:    66 0f fb c1             psubq  %xmm1,%xmm0
>  [      ]*[a-f0-9]+:    67 66 0f fb 00          psubq  \(%eax\),%xmm0
> +[      ]*[a-f0-9]+:    3e 0f 84 14 fd          je,pt  0 <foo>
> +[      ]*[a-f0-9]+:    2e 0f 84 0f fd          je,pn  0 <foo>
>  [      ]*[a-f0-9]+:    0f 58 2f                addps  \(%bx\),%xmm5
>  [      ]*[a-f0-9]+:    f3 0f 2a d9             cvtsi2ss %ecx,%xmm3
>  [      ]*[a-f0-9]+:    f3 0f 2d cb             cvtss2si %xmm3,%ecx
> diff --git a/gas/testsuite/gas/i386/sse2.d b/gas/testsuite/gas/i386/sse2.d
> index 23f7b430bb68..52b6878cf10c 100644
> --- a/gas/testsuite/gas/i386/sse2.d
> +++ b/gas/testsuite/gas/i386/sse2.d
> @@ -163,4 +163,6 @@ Disassembly of section .text:
>  [      ]*[a-f0-9]+:    0f fb 00                psubq  \(%eax\),%mm0
>  [      ]*[a-f0-9]+:    66 0f fb c1             psubq  %xmm1,%xmm0
>  [      ]*[a-f0-9]+:    66 0f fb 00             psubq  \(%eax\),%xmm0
> +[      ]*[a-f0-9]+:    3e 0f 84 59 fd ff ff    je,pt  0 <foo>
> +[      ]*[a-f0-9]+:    2e 0f 84 52 fd ff ff    je,pn  0 <foo>
>  #pass
> diff --git a/gas/testsuite/gas/i386/sse2.s b/gas/testsuite/gas/i386/sse2.s
> index c6375dcb06e9..6b52b87c5fdc 100644
> --- a/gas/testsuite/gas/i386/sse2.s
> +++ b/gas/testsuite/gas/i386/sse2.s
> @@ -155,3 +155,5 @@ foo:
>         psubq           (%eax),%mm0
>         psubq           %xmm1,%xmm0
>         psubq           (%eax),%xmm0
> +       jz,pt foo
> +       jz,pn foo
> diff --git a/gas/testsuite/gas/i386/x86-64-segovr.d b/gas/testsuite/gas/i386/x86-64-segovr.d
> index 2e7ebf26efa9..304d30fe00ea 100644
> --- a/gas/testsuite/gas/i386/x86-64-segovr.d
> +++ b/gas/testsuite/gas/i386/x86-64-segovr.d
> @@ -38,4 +38,6 @@ Disassembly of section .text:
>  [      ]*[a-f0-9]+:    36 41 8b 45 00[         ]+ss mov[       ]+((0x)?0)?\(%r13\),%eax
>  [      ]*[a-f0-9]+:    36 41 8b 06[    ]+ss mov[       ]+\(%r14\),%eax
>  [      ]*[a-f0-9]+:    36 41 8b 07[    ]+ss mov[       ]+\(%r15\),%eax
> +[      ]*[a-f0-9]+:    3e 74 03[       ]+je,pt[        ]+6e <label>
> +[      ]*[a-f0-9]+:    2e 74 00[       ]+je,pn[        ]+6e <label>
>  #pass
> diff --git a/gas/testsuite/gas/i386/x86-64-segovr.s b/gas/testsuite/gas/i386/x86-64-segovr.s
> index 08c045f231f5..d0386da807a0 100644
> --- a/gas/testsuite/gas/i386/x86-64-segovr.s
> +++ b/gas/testsuite/gas/i386/x86-64-segovr.s
> @@ -7,3 +7,6 @@ segovr:
>         mov     %\seg:(%r\reg), %eax
>   .endr
>  .endr
> +jz,pt label
> +jz,pn label
> +label:
>

Please submit a new patch with proper ChangeLog entries in commit
log.   Please generate the patch "git format-patch -1" and also include
the patch as an attachment if you need someone else to commit it
for you.

Thanks.

-- 
H.J.


More information about the Binutils mailing list