x86: avoid .byte in testcases where possible
authorJan Beulich <jbeulich@suse.com>
Fri, 3 Mar 2023 07:45:12 +0000 (08:45 +0100)
committerJan Beulich <jbeulich@suse.com>
Fri, 3 Mar 2023 07:45:12 +0000 (08:45 +0100)
In the course of using the upcoming .insn directive to eliminate various
.byte uses in testcases I've come across these, which needlessly use
more .byte than necessary even without the availability of .insn.

gas/testsuite/gas/i386/notrack.s
gas/testsuite/gas/i386/opcode.s
gas/testsuite/gas/i386/prefix.s
gas/testsuite/gas/i386/x86-64-notrack.s

index e6db928feeb10d9d1f43fce5a82affc1a41d3ac5..52df4dc8df2fb9f296d3b0552c428f09f3feb967 100644 (file)
@@ -54,14 +54,11 @@ _start:
        bnd notrack call DWORD PTR [eax]
        bnd notrack call WORD PTR [eax]
 
+       .att_syntax prefix
        # bnd notrack call *%eax
-       .byte 0xf2
-       .byte 0x3e
-       .byte 0xff
-       .byte 0xd0
+       bnd
+       notrack call *%eax
 
        # notrack callw *%ax
        .byte 0x66
-       .byte 0x3e
-       .byte 0xff
-       .byte 0xd0
+       notrack call *%eax
index 8b87dd70694973424630ffa0ddaf2b97280c6fc2..f2ac1e8fed588a586d932a353ab6f985bf692fe6 100644 (file)
@@ -606,7 +606,7 @@ foo:
        .byte 0x82, 0xf3, 0x01
        .byte 0x82, 0xfb, 0x01
 
-       .byte 0x62, 0xf3, 0x7d, 0x08, 0x15, 0xe8, 0xab
+       {evex} {store} vpextrw $0xab, %xmm5, %eax
 
        .byte 0xf6, 0xc9, 0x01
        .byte 0x66, 0xf7, 0xc9, 0x02, 0x00
index 8d563e1626749ab60300d89352c06a3c724b3823..fccb7cbafc70bcd0992ef5a1b6878372c31412d3 100644 (file)
 
 # data16 movsd %xmm4,(%edx)
        .byte 0xf2
-       .byte 0x66
-       .byte 0x0f
-       .byte 0x11
-       .byte 0x22
+       movupd %xmm4, (%edx)
 
 # data16 movsd %xmm4,(%bp,%si)
        .byte 0xf2
-       .byte 0x67
-       .byte 0x66
-       .byte 0x0f
-       .byte 0x11
-       .byte 0x22
+       movupd %xmm4, (%bp,%si)
 
 # lock data16 movsd %xmm4,(%bp,%si)
        .byte 0xf2
        .byte 0x67
-       .byte 0xf0
-       .byte 0x66
-       .byte 0x0f
-       .byte 0x11
-       .byte 0x22
+       lock
+       movupd %xmm4, (%edx)
 
 # data16 movss %xmm4,(%edx)
        .byte 0xf3
-       .byte 0x66
-       .byte 0x0f
-       .byte 0x11
-       .byte 0x22
+       movupd %xmm4, (%edx)
 
 # lock data16 movss %xmm4,(%bp,%si)
        .byte 0xf3
        .byte 0x67
-       .byte 0xf0
-       .byte 0x66
-       .byte 0x0f
-       .byte 0x11
-       .byte 0x22
+       lock
+       movupd %xmm4, (%edx)
 
 # repz data16 movsd %xmm4,(%bp,%si)
-       .byte 0xf3
+       repz
        .byte 0x67
        .byte 0xf2
-       .byte 0x66
-       .byte 0x0f
-       .byte 0x11
-       .byte 0x22
+       movupd %xmm4, (%edx)
 
 # data16 movss %xmm4,%ds:(%edx)
        .byte 0xf3
        .byte 0x66
-       .byte 0x3e
-       .byte 0x0f
-       .byte 0x11
-       .byte 0x22
+       ds
+       movups %xmm4, (%edx)
 
 # data16 movsd %xmm4,%ss:(%edx)
        .byte 0xf2
        .byte 0x66
-       .byte 0x36
-       .byte 0x0f
-       .byte 0x11
-       .byte 0x22
+       movups %xmm4, %ss:(%edx)
 
 # repz lock data16 movsd %xmm4,%ss:(%edx)
-       .byte 0xf3
-       .byte 0xf0
+       repz
+       lock
        .byte 0xf2
        .byte 0x66
-       .byte 0x36
-       .byte 0x0f
-       .byte 0x11
-       .byte 0x22
+       movups %xmm4, %ss:(%edx)
 
 # data16 ds movsd %xmm4,%ss:(%edx)
        .byte 0xf2
        .byte 0x66
-       .byte 0x3e
-       .byte 0x36
-       .byte 0x0f
-       .byte 0x11
-       .byte 0x22
+       ds
+       movups %xmm4, %ss:(%edx)
 
 # data16 ds movsd %xmm4,%ss:(%bp,%si)
        .byte 0xf2
        .byte 0x67
        .byte 0x66
-       .byte 0x3e
-       .byte 0x36
-       .byte 0x0f
-       .byte 0x11
-       .byte 0x22
+       ds
+       movups %xmm4, %ss:(%edx)
 
 # lock data16 ds movsd %xmm4,%ss:(%bp,%si)
        .byte 0xf2
        .byte 0x67
-       .byte 0xf0
+       lock
        .byte 0x66
-       .byte 0x3e
-       .byte 0x36
-       .byte 0x0f
-       .byte 0x11
-       .byte 0x22
+       ds
+       movups %xmm4, %ss:(%edx)
 
 # data16 ds movss %xmm4,%ss:(%edx)
        .byte 0xf3
        .byte 0x66
-       .byte 0x3e
-       .byte 0x36
-       .byte 0x0f
-       .byte 0x11
-       .byte 0x22
+       ds
+       movups %xmm4, %ss:(%edx)
 
 # lock data16 ds movss %xmm4,%ss:(%edx)
        .byte 0xf3
-       .byte 0xf0
+       lock
        .byte 0x66
-       .byte 0x3e
-       .byte 0x36
-       .byte 0x0f
-       .byte 0x11
-       .byte 0x22
+       ds
+       movups %xmm4, %ss:(%edx)
 
 # repz data16 ds movsd %xmm4,%ss:(%bp,%si)
        .byte 0xf3
        .byte 0x67
        .byte 0xf2
        .byte 0x66
-       .byte 0x3e
-       .byte 0x36
-       .byte 0x0f
-       .byte 0x11
-       .byte 0x22
+       ds
+       movups %xmm4, %ss:(%edx)
 
 # repnz; xchg %ax,%ax
-       .byte 0xf2
-       .byte 0x66
-       .byte 0x90
+       repnz
+       xchg %ax, %ax
 
 # repnz; addr16 xchg %ax,%ax
-       .byte 0xf2
+       repnz
        .byte 0x67
-       .byte 0x66
-       .byte 0x90
+       xchg %ax, %ax
 
 # repnz; addr16 lock xchg %ax,%ax
-       .byte 0xf2
+       repnz
        .byte 0x67
-       .byte 0xf0
-       .byte 0x66
-       .byte 0x90
+       lock
+       xchg %ax, %ax
 
 # data16 pause
-       .byte 0xf3
-       .byte 0x66
-       .byte 0x90
+       repz
+       xchg %ax, %ax
 
 # addr16 lock data16 pause
        .byte 0xf3
        .byte 0x67
-       .byte 0xf0
-       .byte 0x66
-       .byte 0x90
+       lock
+       xchg %ax, %ax
 
 # repz; addr16; repnz; xchg %ax,%ax
-       .byte 0xf3
+       repz
        .byte 0x67
-       .byte 0xf2
-       .byte 0x66
-       .byte 0x90
+       repnz
+       xchg %ax, %ax
 
 # repnz; ds nop
-       .byte 0xf2
-       .byte 0x3e
-       .byte 0x90
+       repnz
+       ds
+       nop
 
 # repnz; lock addr16 ds nop
-       .byte 0xf2
-       .byte 0xf0
+       repnz
+       lock
        .byte 0x67
-       .byte 0x3e
-       .byte 0x90
+       ds
+       nop
 
 # ds pause
        .byte 0xf3
-       .byte 0x3e
-       .byte 0x90
+       ds
+       nop
 
 # data16 ds pause
        .byte 0xf3
        .byte 0x66
-       .byte 0x3e
-       .byte 0x90
+       ds
+       nop
 
 # lock ds pause
        .byte 0xf3
-       .byte 0xf0
-       .byte 0x3e
-       .byte 0x90
+       lock
+       ds
+       nop
 
 # lock addr16 ds pause
        .byte 0xf3
-       .byte 0xf0
+       lock
        .byte 0x67
-       .byte 0x3e
-       .byte 0x90
+       ds
+       nop
 
 # repz; repnz; addr16 ds nop
        .byte 0xf3
-       .byte 0xf2
+       repnz
        .byte 0x67
-       .byte 0x3e
-       .byte 0x90
+       ds
+       nop
 
 # lock ss xchg %ax,%ax
        .byte 0x66
-       .byte 0xf0
-       .byte 0x36
-       .byte 0x90
+       lock
+       ss
+       nop
 
 # repnz; ss nop
-       .byte 0xf2
-       .byte 0x36
-       .byte 0x90
+       repnz
+       ss
+       nop
 
 # repnz; ss xchg %ax,%ax
-       .byte 0xf2
+       repnz
        .byte 0x66
-       .byte 0x36
-       .byte 0x90
+       ss
+       nop
 
 # repnz; lock ss nop
-       .byte 0xf2
-       .byte 0xf0
-       .byte 0x36
-       .byte 0x90
+       repnz
+       lock
+       ss
+       nop
 
 # repnz; lock addr16 ss nop
-       .byte 0xf2
-       .byte 0xf0
+       repnz
+       lock
        .byte 0x67
-       .byte 0x36
-       .byte 0x90
+       ss
+       nop
 
 # ss pause
-       .byte 0xf3
-       .byte 0x36
-       .byte 0x90
+       repz
+       ss
+       nop
 
 # addr16 ss pause
-       .byte 0xf3
+       repz
        .byte 0x67
-       .byte 0x36
-       .byte 0x90
+       ss
+       nop
 
 # lock addr16 ss pause
-       .byte 0xf3
-       .byte 0xf0
+       repz
+       lock
        .byte 0x67
-       .byte 0x36
-       .byte 0x90
+       ss
+       nop
 
 # repz; repnz; ss nop
-       .byte 0xf3
-       .byte 0xf2
-       .byte 0x36
-       .byte 0x90
+       repz
+       repnz
+       ss
+       nop
 
 # repz; repnz; addr16 ss nop
-       .byte 0xf3
-       .byte 0xf2
+       repz
+       repnz
        .byte 0x67
-       .byte 0x36
-       .byte 0x90
+       ss
+       nop
 
 # repz; lock; repnz; ss xchg %ax,%ax
-       .byte 0xf3
-       .byte 0xf0
-       .byte 0xf2
+       repz
+       lock
+       repnz
        .byte 0x66
-       .byte 0x36
-       .byte 0x90
+       ss
+       nop
 
 # ds ss xchg %ax,%ax
        .byte 0x66
-       .byte 0x3e
-       .byte 0x36
-       .byte 0x90
+       ds
+       ss
+       nop
 
 # addr16 ds ss xchg %ax,%ax
        .byte 0x67
        .byte 0x66
-       .byte 0x3e
-       .byte 0x36
-       .byte 0x90
+       ds
+       ss
+       nop
 
 # addr16 lock ds ss xchg %ax,%ax
        .byte 0x67
-       .byte 0xf0
+       lock
        .byte 0x66
-       .byte 0x3e
-       .byte 0x36
-       .byte 0x90
+       ds
+       ss
+       nop
 
 # data16 ds ss pause
-       .byte 0xf3
+       repz
        .byte 0x66
-       .byte 0x3e
-       .byte 0x36
-       .byte 0x90
+       ds
+       ss
+       nop
 
 # lock data16 ds ss pause
-       .byte 0xf3
-       .byte 0xf0
+       repz
+       lock
        .byte 0x66
-       .byte 0x3e
-       .byte 0x36
-       .byte 0x90
+       ds
+       ss
+       nop
 
 # repz; repnz; addr16 ds ss nop
-       .byte 0xf3
-       .byte 0xf2
+       repz
+       repnz
        .byte 0x67
-       .byte 0x3e
-       .byte 0x36
-       .byte 0x90
+       ds
+       ss
+       nop
 
 # repz; addr16; repnz; ds ss xchg %ax,%ax
-       .byte 0xf3
+       repz
        .byte 0x67
-       .byte 0xf2
+       repnz
        .byte 0x66
-       .byte 0x3e
-       .byte 0x36
-       .byte 0x90
+       ds
+       ss
+       nop
 
 # repz; rdseed %eax
-       .byte 0xf3
-       .byte 0x0f
-       .byte 0xc7
-       .byte 0xf8
+       repz
+       rdseed %eax
 
        nop
 
 # repz; rdrand %eax
-       .byte 0xf3
-       .byte 0x0f
-       .byte 0xc7
-       .byte 0xf0
+       repz
+       rdrand %eax
 
        nop
 
 # repnz; rdseed %eax
-       .byte 0xf2
-       .byte 0x0f
-       .byte 0xc7
-       .byte 0xf8
+       repnz
+       rdseed %eax
 
        nop
 
 # repnz; rdrand %eax
-       .byte 0xf2
-       .byte 0x0f
-       .byte 0xc7
-       .byte 0xf0
+       repnz
+       rdrand %eax
 
        nop
 
index aeebd11a766b6508e4d71056323a2a4b8aee9270..2681c2de89c69c5dab6b935b1e406c713001e4ca 100644 (file)
@@ -78,20 +78,14 @@ _start:
        bnd notrack call QWORD PTR [eax]
        bnd notrack call QWORD PTR [r8d]
 
+       .att_syntax prefix
        # bnd notrack callq *%rax
-       .byte 0xf2
-       .byte 0x3e
-       .byte 0xff
-       .byte 0xd0
+       bnd
+       notrack call *%rax
 
-       # ds callw *%ax
-       .byte 0x3e
-       .byte 0x66
-       .byte 0xff
-       .byte 0xd0
+       # notrack callw *%ax
+       notrack call *%ax
 
-       # ds callw *%ax
+       # notrack callw *%ax
        .byte 0x66
-       .byte 0x3e
-       .byte 0xff
-       .byte 0xd0
+       notrack call *%rax