diff options
Diffstat (limited to 'gas/testsuite')
39 files changed, 346 insertions, 523 deletions
diff --git a/gas/testsuite/gas/i386/amd.s b/gas/testsuite/gas/i386/amd.s index d9f654d922b..0270851b515 100644 --- a/gas/testsuite/gas/i386/amd.s +++ b/gas/testsuite/gas/i386/amd.s @@ -32,4 +32,4 @@ foo: # This is a 3DNow! instruction, with a prefix, that isn't quite right # Everything's good bar the opcode suffix -.byte 0x2e, 0x0f, 0x0f, 0x54, 0xc3, 0x07, 0xc3 + .insn 0x0f0f, $0xc3, %cs:7(%ebx,%eax,8), %mm2 diff --git a/gas/testsuite/gas/i386/avx512f-nondef.s b/gas/testsuite/gas/i386/avx512f-nondef.s index 96d04666248..a1175929474 100644 --- a/gas/testsuite/gas/i386/avx512f-nondef.s +++ b/gas/testsuite/gas/i386/avx512f-nondef.s @@ -1,27 +1,28 @@ # Check if objdump works correctly when some bits in instruction # has non-default value -# vrndscalesd {sae}, $123, %xmm4, %xmm5, %xmm6{%k7} # with null RC -.byte 0x62, 0xf3, 0xd5, 0x1f, 0x0b, 0xf4, 0x7b + vrndscalesd $123, {sae}, %xmm4, %xmm5, %xmm6{%k7} # with null RC # vrndscalesd {sae}, $123, %xmm4, %xmm5, %xmm6{%k7} # with not-null RC -.byte 0x62, 0xf3, 0xd5, 0x5f, 0x0b, 0xf4, 0x7b -# vpminud %zmm4, %zmm5, %zmm6{%k7} # with 11 EVEX.{B,R'} -.byte 0x62, 0xf2, 0x55, 0x4f, 0x3b, 0xf4 + .insn EVEX.66.0f3a.W1 0x0b, $123, {ru-sae}, %xmm4, %xmm5, %xmm6{%k7} + + vpminud %zmm4, %zmm5, %zmm6{%k7} # with 11 EVEX.{B,R'} # vpminud %zmm4, %zmm5, %zmm6{%k7} # with not-11 EVEX.{B,R'} .byte 0x62, 0xc2, 0x55, 0x4f, 0x3b, 0xf4 # vpminud %zmm4, %zmm5, %zmm6{%k7} # with set EVEX.b bit -.byte 0x62, 0xf2, 0x55, 0x1f, 0x3b, 0xf4 -# vpmovdb %zmm6, 2032(%rdx) # with unset EVEX.b bit -.byte 0x62, 0xf2, 0x7e, 0x48, 0x31, 0x72, 0x7f -# vpmovdb %zmm6, 2032(%rdx) # with set EVEX.b bit - we should get (bad) operand -.byte 0x62, 0xf2, 0x7e, 0x58, 0x31, 0x72, 0x7f + .insn EVEX.66.0F38.W0 0x3b, {rn-sae}, %zmm4, %zmm5, %zmm6{%k7} + + vpmovdb %zmm6, 2032(%edx) # with unset EVEX.b bit +# vpmovdb %zmm6, 2032(%edx) # with set EVEX.b bit - we should get (bad) operand + .insn EVEX.f3.0f38.W0 0x31, %zmm6, 2032(%edx){1to4} + # vaddps xmm0, xmm0, xmm3 # with EVEX.z set .byte 0x62, 0xf1, 0x7c, 0x88, 0x58, 0xc3 + # vgatherdps (%ecx), %zmm0{%k7} # without SIB / index register -.byte 0x62, 0xf2, 0x7d, 0x4f, 0x92, 0x01 + .insn EVEX.66.0F38.W0 0x92, (%ecx), %zmm0{%k7} # vgatherdps (%bx,%xmm?), %zmm0{%k7} # with 16-bit addressing -.byte 0x67, 0x62, 0xf2, 0x7d, 0x4f, 0x92, 0x01 + .insn EVEX.66.0F38.W0 0x92, (%bx,%di), %zmm0{%k7} # vgatherdps (%eax,%zmm1), %zmm0{%k7}{z} # with set EVEX.z -.byte 0x62, 0xf2, 0x7d, 0xcf, 0x92, 0x04, 0x08 + .insn EVEX.66.0F38.W0 0x92, (%eax,%zmm1), %zmm0{%k7}{z} # vgatherdps (%eax,%zmm1), %zmm0 # without actual mask register -.byte 0x62, 0xf2, 0x7d, 0x48, 0x92, 0x04, 0x08 + .insn EVEX.66.0F38.W0 0x92, (%eax,%zmm1), %zmm0 diff --git a/gas/testsuite/gas/i386/cdr.s b/gas/testsuite/gas/i386/cdr.s index fb7c5a04d33..b8dd24a5427 100644 --- a/gas/testsuite/gas/i386/cdr.s +++ b/gas/testsuite/gas/i386/cdr.s @@ -1,14 +1,7 @@ .text start: - .byte 0x0f - .byte 0x22 - .byte 0x1f - .byte 0x0f - .byte 0x20 - .byte 0x1f - .byte 0x0f - .byte 0x21 - .byte 0x1f - .byte 0x0f - .byte 0x23 - .byte 0x1f + .code32 + .insn 0x0f22, (%edi), %cr3 + .insn 0x0f20, %cr3, (%edi) + .insn 0x0f21, %db3, (%edi) + .insn 0x0f23, (%edi), %db3 diff --git a/gas/testsuite/gas/i386/disassem.d b/gas/testsuite/gas/i386/disassem.d index ac52818577a..7e414a56374 100644 --- a/gas/testsuite/gas/i386/disassem.d +++ b/gas/testsuite/gas/i386/disassem.d @@ -1,3 +1,4 @@ +#as: --divide #objdump: -drw #name: opcodes with invalid modrm byte diff --git a/gas/testsuite/gas/i386/disassem.s b/gas/testsuite/gas/i386/disassem.s index 9a4aa5ad6e7..7c09fadceea 100644 --- a/gas/testsuite/gas/i386/disassem.s +++ b/gas/testsuite/gas/i386/disassem.s @@ -1,124 +1,124 @@ .text -.byte 0xFF, 0xEF -.byte 0xFF, 0xD8 + .insn 0xFF/5, %edi + .insn 0xFF/3, %eax .fill 0x5, 0x1, 0x90 .byte 0xC5, 0xEC, 0x4A, 0x9B .byte 0xC5, 0xEC, 0x4A, 0x6F -.byte 0xC5, 0xEC, 0x4A, 0x3F + .insn VEX.L1.NP.0f.W0 0x4a, (%edi), %k2, %k7 .byte 0xC5, 0xED, 0x4A, 0x9B .byte 0xC5, 0xED, 0x4A, 0x6F -.byte 0xC5, 0xED, 0x4A, 0x3F + .insn VEX.L1.66.0f.W0 0x4a, (%edi), %k2, %k7 .byte 0xC4, 0xE1, 0xEC, 0x4A, 0x9B .byte 0xC4, 0xE1, 0xEC, 0x4A, 0x6F -.byte 0xC4, 0xE1, 0xEC, 0x4A, 0x3F + .insn VEX.L1.NP.0f.W1 0x4a, (%edi), %k2, %k7 .byte 0xC4, 0xE1, 0xED, 0x4A, 0x9B .byte 0xC4, 0xE1, 0xED, 0x4A, 0x6F -.byte 0xC4, 0xE1, 0xED, 0x4A, 0x3F + .insn VEX.L1.66.0f.W1 0x4a, (%edi), %k2, %k7 .byte 0xC5, 0xEC, 0x41, 0x9B .byte 0xC5, 0xEC, 0x41, 0x6F -.byte 0xC5, 0xEC, 0x41, 0x3F + .insn VEX.L1.NP.0f.W0 0x41, (%edi), %k2, %k7 .byte 0xC5, 0xED, 0x41, 0x9B .byte 0xC5, 0xED, 0x41, 0x6F -.byte 0xC5, 0xED, 0x41, 0x3F + .insn VEX.L1.66.0f.W0 0x41, (%edi), %k2, %k7 .byte 0xC4, 0xE1, 0xEC, 0x41, 0x9B .byte 0xC4, 0xE1, 0xEC, 0x41, 0x6F -.byte 0xC4, 0xE1, 0xEC, 0x41, 0x3F + .insn VEX.L1.NP.0f.W1 0x41, (%edi), %k2, %k7 .byte 0xC4, 0xE1, 0xED, 0x41, 0x9B .byte 0xC4, 0xE1, 0xED, 0x41, 0x6F -.byte 0xC4, 0xE1, 0xED, 0x41, 0x3F + .insn VEX.L1.66.0f.W1 0x41, (%edi), %k2, %k7 .byte 0xC5, 0xEC, 0x42, 0x9B .byte 0xC5, 0xEC, 0x42, 0x6F -.byte 0xC5, 0xEC, 0x42, 0x3F + .insn VEX.L1.NP.0f.W0 0x42, (%edi), %k2, %k7 .byte 0xC5, 0xED, 0x42, 0x9B .byte 0xC5, 0xED, 0x42, 0x6F -.byte 0xC5, 0xED, 0x42, 0x3F + .insn VEX.L1.66.0f.W0 0x42, (%edi), %k2, %k7 .byte 0xC4, 0xE1, 0xEC, 0x42, 0x9B .byte 0xC4, 0xE1, 0xEC, 0x42, 0x6F -.byte 0xC4, 0xE1, 0xEC, 0x42, 0x3F + .insn VEX.L1.NP.0f.W1 0x42, (%edi), %k2, %k7 .byte 0xC4, 0xE1, 0xED, 0x42, 0x9B .byte 0xC4, 0xE1, 0xED, 0x42, 0x6F -.byte 0xC4, 0xE1, 0xED, 0x42, 0x3F + .insn VEX.L1.66.0f.W1 0x42, (%edi), %k2, %k7 .byte 0xC5, 0xEC, 0x4B, 0x9B .byte 0xC5, 0xEC, 0x4B, 0x6F -.byte 0xC5, 0xEC, 0x4B, 0x3F + .insn VEX.L1.NP.0f.W0 0x4b, (%edi), %k2, %k7 .byte 0xC5, 0xED, 0x4B, 0x9B .byte 0xC5, 0xED, 0x4B, 0x6F -.byte 0xC5, 0xED, 0x4B, 0x3F + .insn VEX.L1.66.0f.W0 0x4b, (%edi), %k2, %k7 .byte 0xC4, 0xE1, 0xEC, 0x4B, 0x9B .byte 0xC4, 0xE1, 0xEC, 0x4B, 0x6F -.byte 0xC4, 0xE1, 0xEC, 0x4B, 0x3F + .insn VEX.L1.NP.0f.W1 0x4b, (%edi), %k2, %k7 .byte 0xC5, 0xF8, 0x44, 0x9B .byte 0xC5, 0xF8, 0x44, 0x6F -.byte 0xC5, 0xF8, 0x44, 0x3F + .insn VEX.L0.NP.0f.W0 0x44, (%edi), %k7 .byte 0xC5, 0xF9, 0x44, 0x9B .byte 0xC5, 0xF9, 0x44, 0x6F -.byte 0xC5, 0xF9, 0x44, 0x3F + .insn VEX.L0.66.0f.W0 0x44, (%edi), %k7 .byte 0xC4, 0xE1, 0xF8, 0x44, 0x9B .byte 0xC4, 0xE1, 0xF8, 0x44, 0x6F -.byte 0xC4, 0xE1, 0xF8, 0x44, 0x3F + .insn VEX.L0.NP.0f.W1 0x44, (%edi), %k7 .byte 0xC4, 0xE1, 0xF9, 0x44, 0x9B .byte 0xC4, 0xE1, 0xF9, 0x44, 0x6F -.byte 0xC4, 0xE1, 0xF9, 0x44, 0x3F + .insn VEX.L0.66.0f.W1 0x44, (%edi), %k7 .byte 0xC5, 0xEC, 0x45, 0x9B .byte 0xC5, 0xEC, 0x45, 0x6F -.byte 0xC5, 0xEC, 0x45, 0x3F + .insn VEX.L1.NP.0f.W0 0x45, (%edi), %k2, %k7 .byte 0xC5, 0xED, 0x45, 0x9B .byte 0xC5, 0xED, 0x45, 0x6F -.byte 0xC5, 0xED, 0x45, 0x3F + .insn VEX.L1.66.0f.W0 0x45, (%edi), %k2, %k7 .byte 0xC4, 0xE1, 0xEC, 0x45, 0x9B .byte 0xC4, 0xE1, 0xEC, 0x45, 0x6F -.byte 0xC4, 0xE1, 0xEC, 0x45, 0x3F + .insn VEX.L1.NP.0f.W1 0x45, (%edi), %k2, %k7 .byte 0xC4, 0xE1, 0xED, 0x45, 0x9B .byte 0xC4, 0xE1, 0xED, 0x45, 0x6F -.byte 0xC4, 0xE1, 0xED, 0x45, 0x3F + .insn VEX.L1.66.0f.W1 0x45, (%edi), %k2, %k7 .byte 0xC5, 0xF8, 0x98, 0x9B .byte 0xC5, 0xF8, 0x98, 0x6F -.byte 0xC5, 0xF8, 0x98, 0x3F + .insn VEX.L0.NP.0f.W0 0x98, (%edi), %k7 .byte 0xC5, 0xF9, 0x98, 0x9B .byte 0xC5, 0xF9, 0x98, 0x6F -.byte 0xC5, 0xF9, 0x98, 0x3F + .insn VEX.L0.66.0f.W0 0x98, (%edi), %k7 .byte 0xC4, 0xE1, 0xF8, 0x98, 0x9B .byte 0xC4, 0xE1, 0xF8, 0x98, 0x6F -.byte 0xC4, 0xE1, 0xF8, 0x98, 0x3F + .insn VEX.L0.NP.0f.W1 0x98, (%edi), %k7 .byte 0xC4, 0xE1, 0xF9, 0x98, 0x9B .byte 0xC4, 0xE1, 0xF9, 0x98, 0x6F -.byte 0xC4, 0xE1, 0xF9, 0x98, 0x3F + .insn VEX.L0.66.0f.W1 0x98, (%edi), %k7 .byte 0xC5, 0xEC, 0x46, 0x9B .byte 0xC5, 0xEC, 0x46, 0x6F -.byte 0xC5, 0xEC, 0x46, 0x3F + .insn VEX.L1.NP.0f.W0 0x46, (%edi), %k2, %k7 .byte 0xC5, 0xED, 0x46, 0x9B .byte 0xC5, 0xED, 0x46, 0x6F -.byte 0xC5, 0xED, 0x46, 0x3F + .insn VEX.L1.66.0f.W0 0x46, (%edi), %k2, %k7 .byte 0xC4, 0xE1, 0xEC, 0x46, 0x9B .byte 0xC4, 0xE1, 0xEC, 0x46, 0x6F -.byte 0xC4, 0xE1, 0xEC, 0x46, 0x3F + .insn VEX.L1.NP.0f.W1 0x46, (%edi), %k2, %k7 .byte 0xC4, 0xE1, 0xED, 0x46, 0x9B .byte 0xC4, 0xE1, 0xED, 0x46, 0x6F -.byte 0xC4, 0xE1, 0xED, 0x46, 0x3F + .insn VEX.L1.66.0f.W1 0x46, (%edi), %k2, %k7 .byte 0xC5, 0xEC, 0x47, 0x9B .byte 0xC5, 0xEC, 0x47, 0x6F -.byte 0xC5, 0xEC, 0x47, 0x3F + .insn VEX.L1.NP.0f.W0 0x47, (%edi), %k2, %k7 .byte 0xC5, 0xED, 0x47, 0x9B .byte 0xC5, 0xED, 0x47, 0x6F -.byte 0xC5, 0xED, 0x47, 0x3F + .insn VEX.L1.66.0f.W0 0x47, (%edi), %k2, %k7 .byte 0xC4, 0xE1, 0xEC, 0x47, 0x9B .byte 0xC4, 0xE1, 0xEC, 0x47, 0x6F -.byte 0xC4, 0xE1, 0xEC, 0x47, 0x3F + .insn VEX.L1.NP.0f.W1 0x47, (%edi), %k2, %k7 .byte 0xC4, 0xE1, 0xED, 0x47, 0x9B .byte 0xC4, 0xE1, 0xED, 0x47, 0x6F -.byte 0xC4, 0xE1, 0xED, 0x47, 0x3F + .insn VEX.L1.66.0f.W1 0x47, (%edi), %k2, %k7 .byte 0xC5, 0xF8, 0x99, 0x9B .byte 0xC5, 0xF8, 0x99, 0x6F -.byte 0xC5, 0xF8, 0x99, 0x3F + .insn VEX.L0.NP.0f.W0 0x99, (%edi), %k7 .byte 0xC5, 0xF9, 0x99, 0x9B .byte 0xC5, 0xF9, 0x99, 0x6F -.byte 0xC5, 0xF9, 0x99, 0x3F + .insn VEX.L0.66.0f.W0 0x99, (%edi), %k7 .byte 0xC4, 0xE1, 0xF8, 0x99, 0x9B .byte 0xC4, 0xE1, 0xF8, 0x99, 0x6F -.byte 0xC4, 0xE1, 0xF8, 0x99, 0x3F + .insn VEX.L0.NP.0f.W1 0x99, (%edi), %k7 .byte 0xC4, 0xE1, 0xF9, 0x99, 0x9B .byte 0xC4, 0xE1, 0xF9, 0x99, 0x6F -.byte 0xC4, 0xE1, 0xF9, 0x99, 0x3F + .insn VEX.L0.66.0f.W1 0x99, (%edi), %k7 .byte 0xC4, 0xE3, 0xF9, 0x30, 0x8F, 0x01 .byte 0xC4, 0xE3, 0xF9, 0x30, 0x6A, 0x01 .byte 0xC4, 0xE3, 0xF9, 0x30, 0x04, 0x01 @@ -145,33 +145,34 @@ .byte 0xC4, 0xE3, 0x79, 0x33, 0x04, 0x01 .byte 0xC5, 0xF8, 0x92, 0x9B .byte 0xC5, 0xF8, 0x92, 0x6F -.byte 0xC5, 0xF8, 0x92, 0x3F + .insn VEX.L0.NP.0f.W0 0x92, (%edi), %k7 .byte 0xC5, 0xF9, 0x92, 0x9B .byte 0xC5, 0xF9, 0x92, 0x6F -.byte 0xC5, 0xF9, 0x92, 0x3F + .insn VEX.L0.66.0f.W0 0x92, (%edi), %k7 .byte 0xC5, 0xFB, 0x92, 0x9B .byte 0xC5, 0xFB, 0x92, 0x6F -.byte 0xC5, 0xFB, 0x92, 0x3F + .insn VEX.L0.f2.0f.W0 0x92, (%edi), %k7 .byte 0xC4, 0xE1, 0xF9, 0x92, 0x9B .byte 0xC4, 0xE1, 0xF9, 0x92, 0x6F -.byte 0xC4, 0xE1, 0xF9, 0x92, 0x3F + .insn VEX.L0.66.0f.W1 0x92, (%edi), %k7 .byte 0xC5, 0xF8, 0x93, 0x9B .byte 0xC5, 0xF8, 0x93, 0x6F -.byte 0xC5, 0xF8, 0x93, 0x3F + .insn VEX.L0.NP.0f.W0 0x93, (%edi), %k7 .byte 0xC5, 0xF9, 0x93, 0x9B .byte 0xC5, 0xF9, 0x93, 0x6F -.byte 0xC5, 0xF9, 0x93, 0x3F + .insn VEX.L0.66.0f.W0 0x93, (%edi), %k7 .byte 0xC5, 0xFB, 0x93, 0x9B .byte 0xC5, 0xFB, 0x93, 0x6F -.byte 0xC5, 0xFB, 0x93, 0x3F + .insn VEX.L0.f2.0f.W0 0x93, (%edi), %k7 .byte 0xC4, 0xE1, 0xF9, 0x93, 0x9B .byte 0xC4, 0xE1, 0xF9, 0x93, 0x6F -.byte 0xC4, 0xE1, 0xF9, 0x93, 0x3F + .insn VEX.L0.66.0f.W1 0x93, (%edi), %k7 .byte 0xc4, 0xe2, 0x1, 0x1c, 0x41, 0x37 .byte 0x62, 0xf2, 0xad, 0x08, 0x1c, 0x01 .byte 0x1 -.byte 0x62, 0xf3, 0x7d, 0x28, 0x1b, 0xc8, 0x25 + .insn EVEX.66.0f3a.W0 0x1b, $0x25, %ymm0, %xmm1 .byte 0x62, 0xf3 -.byte 0x62, 0xf3, 0x75, 0x08, 0x23, 0xc2, 0x25 +//.byte 0x62, 0xf3, 0x75, 0x08, 0x23, 0xc2, 0x25 + .insn EVEX.66.0f3a.W0 0x23, $0x25, %xmm2, %xmm1, %xmm0 .byte 0x62 -.byte 0x62, 0xf2, 0x7d, 0x28, 0x5b, 0x41, 0x37 + .insn EVEX.66.0f38.W0 0x5b, 0x37(%ecx){:d1}, %ymm0 diff --git a/gas/testsuite/gas/i386/evex.s b/gas/testsuite/gas/i386/evex.s index ff6cb43499b..29a5a89a2e7 100644 --- a/gas/testsuite/gas/i386/evex.s +++ b/gas/testsuite/gas/i386/evex.s @@ -3,14 +3,14 @@ .allow_index_reg .text _start: - .byte 0x62, 0xf1, 0xd6, 0x38, 0x2a, 0xf0 - .byte 0x62, 0xf1, 0x57, 0x38, 0x2a, 0xf0 - .byte 0x62, 0xf1, 0xd7, 0x38, 0x2a, 0xf0 - .byte 0x62, 0xf1, 0xd6, 0x08, 0x7b, 0xf0 - .byte 0x62, 0xf1, 0x57, 0x08, 0x7b, 0xf0 - .byte 0x62, 0xf1, 0xd7, 0x08, 0x7b, 0xf0 - .byte 0x62, 0xf1, 0xd6, 0x38, 0x7b, 0xf0 - .byte 0x62, 0xf1, 0x57, 0x38, 0x7b, 0xf0 - .byte 0x62, 0xf1, 0xd7, 0x38, 0x7b, 0xf0 + .insn EVEX.LIG.F3.0F.W1 0x2a, %eax,{rd-sae},%xmm5,%xmm6 + .insn EVEX.LIG.F2.0F.W0 0x2a, %eax,{rd-sae},%xmm5,%xmm6 + .insn EVEX.LIG.F2.0F.W1 0x2a, %eax,{rd-sae},%xmm5,%xmm6 + .insn EVEX.LIG.F3.0F.W1 0x7b, %eax,%xmm5,%xmm6 + .insn EVEX.LIG.F2.0F.W0 0x7b, %eax,%xmm5,%xmm6 + .insn EVEX.LIG.F2.0F.W1 0x7b, %eax,%xmm5,%xmm6 + .insn EVEX.LIG.F3.0F.W1 0x7b, %eax,{rd-sae},%xmm5,%xmm6 + .insn EVEX.LIG.F2.0F.W0 0x7b, %eax,{rd-sae},%xmm5,%xmm6 + .insn EVEX.LIG.F2.0F.W1 0x7b, %eax,{rd-sae},%xmm5,%xmm6 .byte 0x62, 0xe1, 0x7e, 0x08, 0x2d, 0xc0 .byte 0x62, 0xe1, 0x7c, 0x08, 0xc2, 0xc0, 0x00 diff --git a/gas/testsuite/gas/i386/fpu-bad.d b/gas/testsuite/gas/i386/fpu-bad.d index 415e5e6c3b6..1486fcda771 100644 --- a/gas/testsuite/gas/i386/fpu-bad.d +++ b/gas/testsuite/gas/i386/fpu-bad.d @@ -1,4 +1,4 @@ -#as: --32 +#as: --32 --divide #objdump: -dw #name: i386 fpu bad opcodes diff --git a/gas/testsuite/gas/i386/fpu-bad.s b/gas/testsuite/gas/i386/fpu-bad.s index a03817038fe..dbe4cf2837e 100644 --- a/gas/testsuite/gas/i386/fpu-bad.s +++ b/gas/testsuite/gas/i386/fpu-bad.s @@ -1,4 +1,3 @@ .text start: - .byte 0xdd - .byte 0xf0 + .insn 0xdd/6, %st(0) diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-nops.d b/gas/testsuite/gas/i386/ilp32/x86-64-nops.d index b874e75bc50..af7893fbf3e 100644 --- a/gas/testsuite/gas/i386/ilp32/x86-64-nops.d +++ b/gas/testsuite/gas/i386/ilp32/x86-64-nops.d @@ -1,63 +1,5 @@ #source: ../x86-64-nops.s +#as: --divide #objdump: -drw #name: x86-64 (ILP32) nops - -.*: +file format .* - -Disassembly of section .text: - -0+ <.text>: -[ ]*[a-f0-9]+: 0f 1f 00 nopl \(%rax\) -[ ]*[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\) -[ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\) -[ ]*[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%rax,%rax,1\) -[ ]*[a-f0-9]+: 0f 1f 80 00 00 00 00 nopl 0x0\(%rax\) -[ ]*[a-f0-9]+: 0f 1f 84 00 00 00 00 00 nopl 0x0\(%rax,%rax,1\) -[ ]*[a-f0-9]+: 66 0f 1f 84 00 00 00 00 00 nopw 0x0\(%rax,%rax,1\) -[ ]*[a-f0-9]+: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0\(%rax,%rax,1\) -[ ]*[a-f0-9]+: 0f 19 ff nop %edi -[ ]*[a-f0-9]+: 0f 1a ff nop %edi -[ ]*[a-f0-9]+: 0f 1b ff nop %edi -[ ]*[a-f0-9]+: 0f 1c ff nop %edi -[ ]*[a-f0-9]+: 0f 1d ff nop %edi -[ ]*[a-f0-9]+: 0f 1e ff nop %edi -[ ]*[a-f0-9]+: 0f 1f ff nop %edi -[ ]*[a-f0-9]+: 0f 19 5a 22 nopl 0x22\(%rdx\) -[ ]*[a-f0-9]+: 0f 1c 5a 22 nopl 0x22\(%rdx\) -[ ]*[a-f0-9]+: 0f 1d 5a 22 nopl 0x22\(%rdx\) -[ ]*[a-f0-9]+: 0f 1e 5a 22 nopl 0x22\(%rdx\) -[ ]*[a-f0-9]+: 0f 1f 5a 22 nopl 0x22\(%rdx\) -[ ]*[a-f0-9]+: 0f 19 9c 1d 11 22 33 44 nopl 0x44332211\(%rbp,%rbx,1\) -[ ]*[a-f0-9]+: 0f 1c 9c 1d 11 22 33 44 nopl 0x44332211\(%rbp,%rbx,1\) -[ ]*[a-f0-9]+: 0f 1d 9c 1d 11 22 33 44 nopl 0x44332211\(%rbp,%rbx,1\) -[ ]*[a-f0-9]+: 0f 1e 9c 1d 11 22 33 44 nopl 0x44332211\(%rbp,%rbx,1\) -[ ]*[a-f0-9]+: 0f 1f 9c 1d 11 22 33 44 nopl 0x44332211\(%rbp,%rbx,1\) -[ ]*[a-f0-9]+: 0f 19 04 60 nopl \(%rax,%riz,2\) -[ ]*[a-f0-9]+: 0f 1c 0c 60 nopl \(%rax,%riz,2\) -[ ]*[a-f0-9]+: 0f 1d 04 60 nopl \(%rax,%riz,2\) -[ ]*[a-f0-9]+: 0f 1e 04 60 nopl \(%rax,%riz,2\) -[ ]*[a-f0-9]+: 0f 1f 04 60 nopl \(%rax,%riz,2\) -[ ]*[a-f0-9]+: 0f 19 04 59 nopl \(%rcx,%rbx,2\) -[ ]*[a-f0-9]+: 0f 1c 0c 59 nopl \(%rcx,%rbx,2\) -[ ]*[a-f0-9]+: 0f 1d 04 59 nopl \(%rcx,%rbx,2\) -[ ]*[a-f0-9]+: 0f 1e 04 59 nopl \(%rcx,%rbx,2\) -[ ]*[a-f0-9]+: 0f 1f 04 59 nopl \(%rcx,%rbx,2\) -[ ]*[a-f0-9]+: 48 0f 1f c0 nop %rax -[ ]*[a-f0-9]+: 0f 1f c0 nop %eax -[ ]*[a-f0-9]+: 66 0f 1f c0 nop %ax -[ ]*[a-f0-9]+: 48 0f 1f 00 nopq \(%rax\) -[ ]*[a-f0-9]+: 0f 1f 00 nopl \(%rax\) -[ ]*[a-f0-9]+: 66 0f 1f 00 nopw \(%rax\) -[ ]*[a-f0-9]+: 48 0f 1f c0 nop %rax -[ ]*[a-f0-9]+: 0f 1f c0 nop %eax -[ ]*[a-f0-9]+: 66 0f 1f c0 nop %ax -[ ]*[a-f0-9]+: 49 0f 1f c2 nop %r10 -[ ]*[a-f0-9]+: 41 0f 1f c2 nop %r10d -[ ]*[a-f0-9]+: 66 41 0f 1f c2 nop %r10w -[ ]*[a-f0-9]+: 49 0f 1f 02 nopq \(%r10\) -[ ]*[a-f0-9]+: 41 0f 1f 02 nopl \(%r10\) -[ ]*[a-f0-9]+: 66 41 0f 1f 02 nopw \(%r10\) -[ ]*[a-f0-9]+: 49 0f 1f c2 nop %r10 -[ ]*[a-f0-9]+: 41 0f 1f c2 nop %r10d -[ ]*[a-f0-9]+: 66 41 0f 1f c2 nop %r10w -#pass +#dump: ../x86-64-nops.d diff --git a/gas/testsuite/gas/i386/katmai.d b/gas/testsuite/gas/i386/katmai.d index c67923ae500..2f0c7c082d2 100644 --- a/gas/testsuite/gas/i386/katmai.d +++ b/gas/testsuite/gas/i386/katmai.d @@ -1,3 +1,4 @@ +#as: --divide #objdump: -dw #name: i386 katmai diff --git a/gas/testsuite/gas/i386/katmai.s b/gas/testsuite/gas/i386/katmai.s index 5510417cb48..c6c09506166 100644 --- a/gas/testsuite/gas/i386/katmai.s +++ b/gas/testsuite/gas/i386/katmai.s @@ -158,6 +158,6 @@ foo: prefetcht2 (%ecx) # A bad sfence modrm byte -.byte 0x65,0x0F,0xAE,0xff + .insn gs 0x0FAE/7, %edi # Pad out to good alignment .p2align 4,0 diff --git a/gas/testsuite/gas/i386/mpx.s b/gas/testsuite/gas/i386/mpx.s index 1ae51fca84f..593ff496ef9 100644 --- a/gas/testsuite/gas/i386/mpx.s +++ b/gas/testsuite/gas/i386/mpx.s @@ -158,14 +158,10 @@ start: foo: bnd ret + .att_syntax prefix bad: # bndldx (%eax),(bad) - .byte 0x0f - .byte 0x1a - .byte 0x30 + .insn 0x0f1a, (%eax), %esi # bndmov (bad),%bnd0 - .byte 0x66 - .byte 0x0f - .byte 0x1a - .byte 0xc4 + .insn 0x660f1a, %k4, %bnd0 diff --git a/gas/testsuite/gas/i386/nops.d b/gas/testsuite/gas/i386/nops.d index 4e4c75fc28a..5a2a91a63ea 100644 --- a/gas/testsuite/gas/i386/nops.d +++ b/gas/testsuite/gas/i386/nops.d @@ -1,3 +1,4 @@ +#as: --divide #objdump: -drw #name: i386 nops @@ -13,7 +14,7 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 0f 1f 80 00 00 00 00 nopl 0x0\(%eax\) [ ]*[a-f0-9]+: 0f 1f 84 00 00 00 00 00 nopl 0x0\(%eax,%eax,1\) [ ]*[a-f0-9]+: 66 0f 1f 84 00 00 00 00 00 nopw 0x0\(%eax,%eax,1\) -[ ]*[a-f0-9]+: 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:0x0\(%eax,%eax,1\) +[ ]*[a-f0-9]+: 2e 66 0f 1f 84 00 00 00 00 00 nopw %cs:0x0\(%eax,%eax,1\) [ ]*[a-f0-9]+: 0f 19 ff nop %edi [ ]*[a-f0-9]+: 0f 1a ff nop %edi [ ]*[a-f0-9]+: 0f 1b ff nop %edi diff --git a/gas/testsuite/gas/i386/nops.s b/gas/testsuite/gas/i386/nops.s index df5396bc671..e953cebc4aa 100644 --- a/gas/testsuite/gas/i386/nops.s +++ b/gas/testsuite/gas/i386/nops.s @@ -1,48 +1,49 @@ .text - .byte 0x0f, 0x1f, 0x0 - .byte 0x0f, 0x1f, 0x40, 0x0 - .byte 0x0f, 0x1f, 0x44, 0x0, 0x0 - .byte 0x66, 0x0f, 0x1f, 0x44, 0x0, 0x0 - .byte 0x0f, 0x1f, 0x80, 0x0, 0x0, 0x0, 0x0 - .byte 0x0f, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0 - .byte 0x66, 0x0f, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0 - .byte 0x66, 0x2e, 0x0f, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0 + .insn 0x0f1f/0, (%eax) + .insn {disp8} 0x0f1f/0, 0(%eax) + .insn {disp8} 0x0f1f/0, 0(%eax,%eax) + .insn {disp8} data16 0x0f1f/0, 0(%eax,%eax) + .insn {disp32} 0x0f1f/0, 0(%eax) + .insn {disp32} 0x0f1f/0, 0(%eax,%eax) + .insn {disp32} data16 0x0f1f/0, 0(%eax,%eax) + .insn {disp32} data16 0x0f1f/0, %cs:0(%eax,%eax) # reg,reg - .byte 0x0f, 0x19, 0xff - .byte 0x0f, 0x1a, 0xff - .byte 0x0f, 0x1b, 0xff - .byte 0x0f, 0x1c, 0xff - .byte 0x0f, 0x1d, 0xff - .byte 0x0f, 0x1e, 0xff - .byte 0x0f, 0x1f, 0xff + .insn 0x0f19, %edi, %edi + .insn 0x0f1a, %edi, %edi + .insn 0x0f1b, %edi, %edi + .insn 0x0f1c, %edi, %edi + .insn 0x0f1d, %edi, %edi + .insn 0x0f1e, %edi, %edi + .insn 0x0f1f, %edi, %edi # with base and imm8 - .byte 0x0f, 0x19, 0x5A, 0x22 - .byte 0x0f, 0x1c, 0x5A, 0x22 - .byte 0x0f, 0x1d, 0x5A, 0x22 - .byte 0x0f, 0x1e, 0x5A, 0x22 - .byte 0x0f, 0x1f, 0x5A, 0x22 + .insn 0x0f19/3, 0x22(%edx) + .insn 0x0f1c/3, 0x22(%edx) + .insn 0x0f1d/3, 0x22(%edx) + .insn 0x0f1e/3, 0x22(%edx) + .insn 0x0f1f/3, 0x22(%edx) # with sib and imm32 - .byte 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44 - .byte 0x0f, 0x1c, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44 - .byte 0x0f, 0x1d, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44 - .byte 0x0f, 0x1e, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44 - .byte 0x0f, 0x1f, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44 + .insn 0x0f19/3, 0x44332211(%ebp,%ebx) + .insn 0x0f1c/3, 0x44332211(%ebp,%ebx) + .insn 0x0f1d/3, 0x44332211(%ebp,%ebx) + .insn 0x0f1e/3, 0x44332211(%ebp,%ebx) + .insn 0x0f1f/3, 0x44332211(%ebp,%ebx) - .byte 0x0f, 0x19, 0x04, 0x60 - .byte 0x0f, 0x1c, 0x0c, 0x60 - .byte 0x0f, 0x1d, 0x04, 0x60 - .byte 0x0f, 0x1e, 0x04, 0x60 - .byte 0x0f, 0x1f, 0x04, 0x60 + .allow_index_reg + .insn 0x0f19/0, (%eax,%eiz,2) + .insn 0x0f1c/1, (%eax,%eiz,2) + .insn 0x0f1d/0, (%eax,%eiz,2) + .insn 0x0f1e/0, (%eax,%eiz,2) + .insn 0x0f1f/0, (%eax,%eiz,2) - .byte 0x0f, 0x19, 0x04, 0x59 - .byte 0x0f, 0x1c, 0x0c, 0x59 - .byte 0x0f, 0x1d, 0x04, 0x59 - .byte 0x0f, 0x1e, 0x04, 0x59 - .byte 0x0f, 0x1f, 0x04, 0x59 + .insn 0x0f19/0, (%ecx,%ebx,2) + .insn 0x0f1c/1, (%ecx,%ebx,2) + .insn 0x0f1d/0, (%ecx,%ebx,2) + .insn 0x0f1e/0, (%ecx,%ebx,2) + .insn 0x0f1f/0, (%ecx,%ebx,2) nop %eax nop %ax diff --git a/gas/testsuite/gas/i386/opcode-intel.d b/gas/testsuite/gas/i386/opcode-intel.d index b0c1f2d1f68..7f641db2892 100644 --- a/gas/testsuite/gas/i386/opcode-intel.d +++ b/gas/testsuite/gas/i386/opcode-intel.d @@ -1,5 +1,5 @@ #source: opcode.s -#as: -J +#as: -J --divide #objdump: -dwMintel #name: i386 opcodes (Intel disassembly) @@ -598,7 +598,7 @@ Disassembly of section .text: [ ]*[a-f0-9]+: df 38 fistp QWORD PTR \[eax\] [ ]*[a-f0-9]+: df 38 fistp QWORD PTR \[eax\] +[a-f0-9]+: 82 c3 01 add bl,0x1 - +[a-f0-9]+: 82 f3 01 xor bl,0x1 + +[a-f0-9]+: 82 cb 01 or bl,0x1 +[a-f0-9]+: 82 d3 01 adc bl,0x1 +[a-f0-9]+: 82 db 01 sbb bl,0x1 +[a-f0-9]+: 82 e3 01 and bl,0x1 diff --git a/gas/testsuite/gas/i386/opcode-suffix.d b/gas/testsuite/gas/i386/opcode-suffix.d index 91623eba8c1..152c3b865a0 100644 --- a/gas/testsuite/gas/i386/opcode-suffix.d +++ b/gas/testsuite/gas/i386/opcode-suffix.d @@ -1,5 +1,5 @@ #source: opcode.s -#as: -J +#as: -J --divide #objdump: -dwMsuffix #name: i386 opcodes (w/ suffix) @@ -598,7 +598,7 @@ Disassembly of section .text: [ ]*[a-f0-9]+: df 38 fistpll \(%eax\) [ ]*[a-f0-9]+: df 38 fistpll \(%eax\) +[a-f0-9]+: 82 c3 01 addb \$0x1,%bl - +[a-f0-9]+: 82 f3 01 xorb \$0x1,%bl + +[a-f0-9]+: 82 cb 01 orb \$0x1,%bl +[a-f0-9]+: 82 d3 01 adcb \$0x1,%bl +[a-f0-9]+: 82 db 01 sbbb \$0x1,%bl +[a-f0-9]+: 82 e3 01 andb \$0x1,%bl diff --git a/gas/testsuite/gas/i386/opcode.d b/gas/testsuite/gas/i386/opcode.d index 952afb41175..c6ffb018a19 100644 --- a/gas/testsuite/gas/i386/opcode.d +++ b/gas/testsuite/gas/i386/opcode.d @@ -1,4 +1,4 @@ -#as: -J +#as: -J --divide #objdump: -dw #name: i386 opcodes @@ -597,7 +597,7 @@ Disassembly of section .text: [ ]*[a-f0-9]+: df 38 fistpll \(%eax\) [ ]*[a-f0-9]+: df 38 fistpll \(%eax\) +[a-f0-9]+: 82 c3 01 add \$0x1,%bl - +[a-f0-9]+: 82 f3 01 xor \$0x1,%bl + +[a-f0-9]+: 82 cb 01 or \$0x1,%bl +[a-f0-9]+: 82 d3 01 adc \$0x1,%bl +[a-f0-9]+: 82 db 01 sbb \$0x1,%bl +[a-f0-9]+: 82 e3 01 and \$0x1,%bl diff --git a/gas/testsuite/gas/i386/opcode.s b/gas/testsuite/gas/i386/opcode.s index f2ac1e8fed5..000fff3e852 100644 --- a/gas/testsuite/gas/i386/opcode.s +++ b/gas/testsuite/gas/i386/opcode.s @@ -597,23 +597,23 @@ foo: fistpq (%eax) fistpll (%eax) - .byte 0x82, 0xc3, 0x01 - .byte 0x82, 0xf3, 0x01 - .byte 0x82, 0xd3, 0x01 - .byte 0x82, 0xdb, 0x01 - .byte 0x82, 0xe3, 0x01 - .byte 0x82, 0xeb, 0x01 - .byte 0x82, 0xf3, 0x01 - .byte 0x82, 0xfb, 0x01 + .insn 0x82/0, $1, %bl + .insn 0x82/1, $1, %bl + .insn 0x82/2, $1, %bl + .insn 0x82/3, $1, %bl + .insn 0x82/4, $1, %bl + .insn 0x82/5, $1, %bl + .insn 0x82/6, $1, %bl + .insn 0x82/7, $1, %bl {evex} {store} vpextrw $0xab, %xmm5, %eax - .byte 0xf6, 0xc9, 0x01 - .byte 0x66, 0xf7, 0xc9, 0x02, 0x00 - .byte 0xf7, 0xc9, 0x04, 0x00, 0x00, 0x00 - .byte 0xc0, 0xf0, 0x02 - .byte 0xc1, 0xf0, 0x01 - .byte 0xd0, 0xf0 - .byte 0xd1, 0xf0 - .byte 0xd2, 0xf0 - .byte 0xd3, 0xf0 + .insn 0xf6/1, $1, %cl + .insn 0xf7/1, $2{:u16}, %cx + .insn 0xf7/1, $4{:u32}, %ecx + .insn 0xc0/6, $2, %al + .insn 0xc1/6, $1, %eax + .insn 0xd0/6, %al + .insn 0xd1/6, %eax + .insn 0xd2/6, %al + .insn 0xd3/6, %eax diff --git a/gas/testsuite/gas/i386/pr29483.s b/gas/testsuite/gas/i386/pr29483.s index 6b133acf17b..27fe025373b 100644 --- a/gas/testsuite/gas/i386/pr29483.s +++ b/gas/testsuite/gas/i386/pr29483.s @@ -1,3 +1,3 @@ .text pr29483: - .byte 0x65,0x62,0x62,0x7d,0x97,0xa0,0x94,0xff,0x20,0x20,0x20,0xae + .insn EVEX.128.66.0f38.W0 0xa0, %gs:-0x51dfdfe0(%rdi,%xmm23,8){1to4}, %xmm26{%k7}{z} diff --git a/gas/testsuite/gas/i386/prefetch-intel.d b/gas/testsuite/gas/i386/prefetch-intel.d index 39307f2937a..ca0fd914515 100644 --- a/gas/testsuite/gas/i386/prefetch-intel.d +++ b/gas/testsuite/gas/i386/prefetch-intel.d @@ -1,3 +1,4 @@ +#as: --divide #objdump: -dw -Mintel #name: i386 prefetch (Intel disassembly) #source: prefetch.s diff --git a/gas/testsuite/gas/i386/prefetch.d b/gas/testsuite/gas/i386/prefetch.d index b37f8aedbed..285077862a7 100644 --- a/gas/testsuite/gas/i386/prefetch.d +++ b/gas/testsuite/gas/i386/prefetch.d @@ -1,3 +1,4 @@ +#as: --divide #objdump: -dw #name: i386 prefetch diff --git a/gas/testsuite/gas/i386/prefetch.s b/gas/testsuite/gas/i386/prefetch.s index c0f92ae2a0d..b36e1cb0447 100644 --- a/gas/testsuite/gas/i386/prefetch.s +++ b/gas/testsuite/gas/i386/prefetch.s @@ -1,18 +1,20 @@ + .code32 + .macro try opcode:vararg - .byte \opcode, 0x00 - .byte \opcode, 0x08 - .byte \opcode, 0x10 - .byte \opcode, 0x18 - .byte \opcode, 0x20 - .byte \opcode, 0x28 - .byte \opcode, 0x30 - .byte \opcode, 0x38 + .insn 0x0f\opcode/0, (%eax) + .insn 0x0f\opcode/1, (%eax) + .insn 0x0f\opcode/2, (%eax) + .insn 0x0f\opcode/3, (%eax) + .insn 0x0f\opcode/4, (%eax) + .insn 0x0f\opcode/5, (%eax) + .insn 0x0f\opcode/6, (%eax) + .insn 0x0f\opcode/7, (%eax) .endm .text amd_prefetch: - try 0x0f, 0x0d + try 0d intel_prefetch: - try 0x0f, 0x18 + try 18 diff --git a/gas/testsuite/gas/i386/prefix.s b/gas/testsuite/gas/i386/prefix.s index fccb7cbafc7..f2c02cb30a4 100644 --- a/gas/testsuite/gas/i386/prefix.s +++ b/gas/testsuite/gas/i386/prefix.s @@ -336,59 +336,32 @@ int $3 # "repz" vmovaps %xmm7, %xmm7 - .byte 0xc5 - .byte 0xfa - .byte 0x28 - .byte 0xff + .insn VEX.128.f3.0f.W0 0x28, %xmm7, %xmm7 int $3 # "repnz" {vex3} vmovaps %xmm7, %xmm7 - .byte 0xc4 - .byte 0xe1 - .byte 0x7b - .byte 0x28 - .byte 0xff + .insn {vex3} VEX.128.f2.0f.W0 0x28, %xmm7, %xmm7 int $3 # "EVEX.W1" vmovaps %xmm7, %xmm7 - .byte 0x62 - .byte 0xf1 - .byte 0xfc - .byte 0x08 - .byte 0x28 - .byte 0xff + .insn EVEX.128.0f.W1 0x28, %xmm7, %xmm7 int $3 # "repz" vmovaps %xmm7, %xmm7 - .byte 0x62 - .byte 0xf1 - .byte 0x7e - .byte 0x08 - .byte 0x28 - .byte 0xff + .insn EVEX.128.f3.0f.W0 0x28, %xmm7, %xmm7 int $3 # "EVEX.W0" vmovapd %xmm7, %xmm7 - .byte 0x62 - .byte 0xf1 - .byte 0x7d - .byte 0x08 - .byte 0x28 - .byte 0xff + .insn EVEX.128.66.0f.W0 0x28, %xmm7, %xmm7 int $3 # "repnz" vmovapd %xmm7, %xmm7 - .byte 0x62 - .byte 0xf1 - .byte 0xff - .byte 0x08 - .byte 0x28 - .byte 0xff + .insn EVEX.128.f2.0f.W1 0x28, %xmm7, %xmm7 int $3 diff --git a/gas/testsuite/gas/i386/x86-64-amx-bad.s b/gas/testsuite/gas/i386/x86-64-amx-bad.s index 2781553cb40..740debadf93 100644 --- a/gas/testsuite/gas/i386/x86-64-amx-bad.s +++ b/gas/testsuite/gas/i386/x86-64-amx-bad.s @@ -1,63 +1,32 @@ .text #tdpbf16ps %tmm5,%tmm4,%tmm3 set VEX.W = 1 (illegal value). - .byte 0xc4 - .byte 0xe2 - .byte 0xd2 - .byte 0x5c - .byte 0xdc + .insn VEX.128.F3.0F38.W1 0x5c, %tmm4, %tmm5, %tmm3 .fill 0x05, 0x01, 0x90 + #tdpbf16ps %tmm5,%tmm4,%tmm3 set VEX.L = 1 (illegal value). - .byte 0xc4 - .byte 0xe2 - .byte 0x56 - .byte 0x5c - .byte 0xdc + .insn VEX.256.F3.0F38.W0 0x5c, %tmm4, %tmm5, %tmm3 .fill 0x05, 0x01, 0x90 + #tdpbf16ps %tmm5,%tmm4,%tmm3 set VEX.R = 0 (illegal value). - .byte 0xc4 - .byte 0x62 - .byte 0x52 - .byte 0x5c - .byte 0xdc + .insn VEX.128.F3.0F38.W0 0x5c, %xmm4, %xmm5, %xmm11 + #tdpbf16ps %tmm5,%tmm4,%tmm3 set VEX.B = 0 (illegal value). - .byte 0xc4 - .byte 0xc2 - .byte 0x52 - .byte 0x5c - .byte 0xdc + .insn VEX.128.F3.0F38.W0 0x5c, %xmm12, %xmm5, %xmm3 + #tdpbf16ps %tmm5,%tmm4,%tmm3 set VEX.VVVV = 0110 (illegal value). - .byte 0xc4 - .byte 0xe2 - .byte 0x32 - .byte 0x5c - .byte 0xdc - #tileloadd (%rax),%tmm1 set R/M= 001 (illegal value) without SIB. - .byte 0xc4 - .byte 0xe2 - .byte 0x7b - .byte 0x4b - .byte 0x09 + .insn VEX.128.F3.0F38.W0 0x5c, %xmm4, %xmm9, %xmm3 + + #tileloadd (%rcx),%tmm1 set R/M= 001 (illegal value) without SIB. + .insn VEX.128.F2.0F38.W0 0x4b, (%rcx), %xmm1 + #tdpbuud %tmm1,%tmm1,%tmm1 All 3 TMM registers can't be identical. - .byte 0xc4 - .byte 0xe2 - .byte 0x70 - .byte 0x5e - .byte 0xc9 + .insn VEX.128.NP.0F38.W0 0x5e, %tmm1, %tmm1, %tmm1 + #tdpbuud %tmm0,%tmm1,%tmm1 All 3 TMM registers can't be identical. - .byte 0xc4 - .byte 0xe2 - .byte 0x78 - .byte 0x5e - .byte 0xc9 + .insn VEX.128.NP.0F38.W0 0x5e, %tmm1, %tmm0, %tmm1 + #tdpbuud %tmm1,%tmm0,%tmm1 All 3 TMM registers can't be identical. - .byte 0xc4 - .byte 0xe2 - .byte 0x70 - .byte 0x5e - .byte 0xc8 + .insn VEX.128.NP.0F38.W0 0x5e, %tmm0, %tmm1, %tmm1 + #tdpbuud %tmm1,%tmm1,%tmm0 All 3 TMM registers can't be identical. - .byte 0xc4 - .byte 0xe2 - .byte 0x70 - .byte 0x5e - .byte 0xc1 + .insn VEX.128.NP.0F38.W0 0x5e, %tmm1, %tmm1, %tmm0 diff --git a/gas/testsuite/gas/i386/x86-64-amx-fp16-bad.s b/gas/testsuite/gas/i386/x86-64-amx-fp16-bad.s index da5be1086eb..75a2c38dfbf 100644 --- a/gas/testsuite/gas/i386/x86-64-amx-fp16-bad.s +++ b/gas/testsuite/gas/i386/x86-64-amx-fp16-bad.s @@ -2,34 +2,18 @@ .text #tdpfp16ps %tmm5,%tmm4,%tmm3 set VEX.W = 1 (illegal value). - .byte 0xc4 - .byte 0xe2 - .byte 0xd3 - .byte 0x5c - .byte 0xdc + .insn VEX.128.F2.0F38.W1 0x5c, %tmm4, %tmm5, %tmm3 .fill 0x05, 0x01, 0x90 + #tdpfp16ps %tmm5,%tmm4,%tmm3 set VEX.L = 1 (illegal value). - .byte 0xc4 - .byte 0xe2 - .byte 0x57 - .byte 0x5c - .byte 0xdc + .insn VEX.256.F2.0F38.W0 0x5c, %tmm4, %tmm5, %tmm3 .fill 0x05, 0x01, 0x90 + #tdpfp16ps %tmm5,%tmm4,%tmm3 set VEX.R = 0 (illegal value). - .byte 0xc4 - .byte 0x62 - .byte 0x53 - .byte 0x5c - .byte 0xdc - #tdpbf16ps %tmm5,%tmm4,%tmm3 set VEX.B = 0 (illegal value). - .byte 0xc4 - .byte 0xc2 - .byte 0x53 - .byte 0x5c - .byte 0xdc - #tdpbf16ps %tmm5,%tmm4,%tmm3 set VEX.VVVV = 0110 (illegal value). - .byte 0xc4 - .byte 0xe2 - .byte 0x33 - .byte 0x5c - .byte 0xdc + .insn VEX.128.F2.0F38.W0 0x5c, %xmm4, %xmm5, %xmm11 + + #tdpfp16ps %tmm5,%tmm4,%tmm3 set VEX.B = 0 (illegal value). + .insn VEX.128.F2.0F38.W0 0x5c, %xmm12, %xmm5, %xmm3 + + #tdpfp16ps %tmm5,%tmm4,%tmm3 set VEX.VVVV = 0110 (illegal value). + .insn VEX.128.F2.0F38.W0 0x5c, %xmm4, %xmm9, %xmm3 diff --git a/gas/testsuite/gas/i386/x86-64-avx512_fp16-bad.s b/gas/testsuite/gas/i386/x86-64-avx512_fp16-bad.s index d927134f288..12d24f0371d 100644 --- a/gas/testsuite/gas/i386/x86-64-avx512_fp16-bad.s +++ b/gas/testsuite/gas/i386/x86-64-avx512_fp16-bad.s @@ -1,36 +1,15 @@ .text #vfcmaddcph %zmm30, %zmm29, %zmm30 dest and src registers must be distinct. - .byte 0x62 - .byte 0x06 - .byte 0x17 - .byte 0x40 - .byte 0x56 - .byte 0xf6 + .insn EVEX.f2.M6.W0 0x56, %zmm30, %zmm29, %zmm30 + #vfcmaddcph (%rcx), %zmm3, %zmm3 dest and src registers must be distinct. - .byte 0x62 - .byte 0xf6 - .byte 0x67 - .byte 0x48 - .byte 0x56 - .byte 0x19 + .insn EVEX.f2.M6.W0 0x56, (%rcx), %zmm3, %zmm3 + #vfcmaddcph %xmm3, %xmm2, %xmm2 dest and src registers must be distinct. - .byte 0x62 - .byte 0xf6 - .byte 0x6f - .byte 0x08 - .byte 0x56 - .byte 0xd3 + .insn EVEX.f2.M6.W0 0x56, %xmm3, %xmm2, %xmm2 + #vfcmaddcsh %xmm3, %xmm2, %xmm3 dest and src registers must be distinct. - .byte 0x62 - .byte 0xf6 - .byte 0x6f - .byte 0x08 - .byte 0x57 - .byte 0xdb + .insn EVEX.LIG.f2.M6.W0 0x57, %xmm3, %xmm2, %xmm3 + #vfcmaddcsh %xmm3, %xmm2, %xmm2 dest and src registers must be distinct. - .byte 0x62 - .byte 0xf6 - .byte 0x6f - .byte 0x08 - .byte 0x57 - .byte 0xd3 + .insn EVEX.LIG.f2.M6.W0 0x57, %xmm3, %xmm2, %xmm2 diff --git a/gas/testsuite/gas/i386/x86-64-avx512f-nondef.s b/gas/testsuite/gas/i386/x86-64-avx512f-nondef.s index 952f2db76b3..c256b867009 100644 --- a/gas/testsuite/gas/i386/x86-64-avx512f-nondef.s +++ b/gas/testsuite/gas/i386/x86-64-avx512f-nondef.s @@ -1,17 +1,15 @@ # Check if objdump works correctly when some bits in instruction # has non-default value -# vrndscalesd {sae}, $123, %xmm4, %xmm5, %xmm6{%k7} # with null RC -.byte 0x62, 0xf3, 0xd5, 0x1f, 0x0b, 0xf4, 0x7b + vrndscalesd $123, {sae}, %xmm4, %xmm5, %xmm6{%k7} # with null RC # vrndscalesd {sae}, $123, %xmm4, %xmm5, %xmm6{%k7} # with not-null RC -.byte 0x62, 0xf3, 0xd5, 0x5f, 0x0b, 0xf4, 0x7b -# vpminud %zmm4, %zmm5, %zmm6{%k7} # with 11 EVEX.{B,R'} -.byte 0x62, 0xf2, 0x55, 0x4f, 0x3b, 0xf4 -# vpminud %zmm4, %zmm5, %zmm6{%k7} # with not-11 EVEX.{B,R'} -.byte 0x62, 0xc2, 0x55, 0x4f, 0x3b, 0xf4 + .insn EVEX.66.0f3a.W1 0x0b, $123, {ru-sae}, %xmm4, %xmm5, %xmm6{%k7} + + vpminud %zmm4, %zmm5, %zmm6{%k7} # with 11 EVEX.{B,R'} + vpminud %zmm12, %zmm5, %zmm22{%k7} # with not-11 EVEX.{B,R'} # vpminud %zmm4, %zmm5, %zmm6{%k7} # with set EVEX.b bit -.byte 0x62, 0xf2, 0x55, 0x1f, 0x3b, 0xf4 -# vpmovdb %zmm6, 2032(%rdx) # with unset EVEX.b bit -.byte 0x62, 0xf2, 0x7e, 0x48, 0x31, 0x72, 0x7f + .insn EVEX.66.0F38.W0 0x3b, {rn-sae}, %zmm4, %zmm5, %zmm6{%k7} + + vpmovdb %zmm6, 2032(%rdx) # with unset EVEX.b bit # vpmovdb %zmm6, 2032(%rdx) # with set EVEX.b bit - we should get (bad) operand -.byte 0x62, 0xf2, 0x7e, 0x58, 0x31, 0x72, 0x7f + .insn EVEX.f3.0f38.W0 0x31, %zmm6, 2032(%rdx){1to4} diff --git a/gas/testsuite/gas/i386/x86-64-disassem.d b/gas/testsuite/gas/i386/x86-64-disassem.d index 7c67fd44028..6e4dd91fccd 100644 --- a/gas/testsuite/gas/i386/x86-64-disassem.d +++ b/gas/testsuite/gas/i386/x86-64-disassem.d @@ -1,3 +1,4 @@ +#as: --divide #objdump: -drw #name: x86-64 opcodes with invalid modrm byte diff --git a/gas/testsuite/gas/i386/x86-64-disassem.s b/gas/testsuite/gas/i386/x86-64-disassem.s index 7184e3f8252..ff049045bcd 100644 --- a/gas/testsuite/gas/i386/x86-64-disassem.s +++ b/gas/testsuite/gas/i386/x86-64-disassem.s @@ -1,124 +1,124 @@ .text -.byte 0xFF, 0xEF -.byte 0xFF, 0xD8 + .insn 0xFF/5, %edi + .insn 0xFF/3, %eax .fill 0x5, 0x1, 0x90 .byte 0xC5, 0xEC, 0x4A, 0x9B .byte 0xC5, 0xEC, 0x4A, 0x6F -.byte 0xC5, 0xEC, 0x4A, 0x3F + .insn VEX.L1.NP.0f.W0 0x4a, (%rdi), %k2, %k7 .byte 0xC5, 0xED, 0x4A, 0x9B .byte 0xC5, 0xED, 0x4A, 0x6F -.byte 0xC5, 0xED, 0x4A, 0x3F + .insn VEX.L1.66.0f.W0 0x4a, (%rdi), %k2, %k7 .byte 0xC4, 0xE1, 0xEC, 0x4A, 0x9B .byte 0xC4, 0xE1, 0xEC, 0x4A, 0x6F -.byte 0xC4, 0xE1, 0xEC, 0x4A, 0x3F + .insn VEX.L1.NP.0f.W1 0x4a, (%rdi), %k2, %k7 .byte 0xC4, 0xE1, 0xED, 0x4A, 0x9B .byte 0xC4, 0xE1, 0xED, 0x4A, 0x6F -.byte 0xC4, 0xE1, 0xED, 0x4A, 0x3F + .insn VEX.L1.66.0f.W1 0x4a, (%rdi), %k2, %k7 .byte 0xC5, 0xEC, 0x41, 0x9B .byte 0xC5, 0xEC, 0x41, 0x6F -.byte 0xC5, 0xEC, 0x41, 0x3F + .insn VEX.L1.NP.0f.W0 0x41, (%rdi), %k2, %k7 .byte 0xC5, 0xED, 0x41, 0x9B .byte 0xC5, 0xED, 0x41, 0x6F -.byte 0xC5, 0xED, 0x41, 0x3F + .insn VEX.L1.66.0f.W0 0x41, (%rdi), %k2, %k7 .byte 0xC4, 0xE1, 0xEC, 0x41, 0x9B .byte 0xC4, 0xE1, 0xEC, 0x41, 0x6F -.byte 0xC4, 0xE1, 0xEC, 0x41, 0x3F + .insn VEX.L1.NP.0f.W1 0x41, (%rdi), %k2, %k7 .byte 0xC4, 0xE1, 0xED, 0x41, 0x9B .byte 0xC4, 0xE1, 0xED, 0x41, 0x6F -.byte 0xC4, 0xE1, 0xED, 0x41, 0x3F + .insn VEX.L1.66.0f.W1 0x41, (%rdi), %k2, %k7 .byte 0xC5, 0xEC, 0x42, 0x9B .byte 0xC5, 0xEC, 0x42, 0x6F -.byte 0xC5, 0xEC, 0x42, 0x3F + .insn VEX.L1.NP.0f.W0 0x42, (%rdi), %k2, %k7 .byte 0xC5, 0xED, 0x42, 0x9B .byte 0xC5, 0xED, 0x42, 0x6F -.byte 0xC5, 0xED, 0x42, 0x3F + .insn VEX.L1.66.0f.W0 0x42, (%rdi), %k2, %k7 .byte 0xC4, 0xE1, 0xEC, 0x42, 0x9B .byte 0xC4, 0xE1, 0xEC, 0x42, 0x6F -.byte 0xC4, 0xE1, 0xEC, 0x42, 0x3F + .insn VEX.L1.NP.0f.W1 0x42, (%rdi), %k2, %k7 .byte 0xC4, 0xE1, 0xED, 0x42, 0x9B .byte 0xC4, 0xE1, 0xED, 0x42, 0x6F -.byte 0xC4, 0xE1, 0xED, 0x42, 0x3F + .insn VEX.L1.66.0f.W1 0x42, (%rdi), %k2, %k7 .byte 0xC5, 0xEC, 0x4B, 0x9B .byte 0xC5, 0xEC, 0x4B, 0x6F -.byte 0xC5, 0xEC, 0x4B, 0x3F + .insn VEX.L1.NP.0f.W0 0x4b, (%rdi), %k2, %k7 .byte 0xC5, 0xED, 0x4B, 0x9B .byte 0xC5, 0xED, 0x4B, 0x6F -.byte 0xC5, 0xED, 0x4B, 0x3F + .insn VEX.L1.66.0f.W0 0x4b, (%rdi), %k2, %k7 .byte 0xC4, 0xE1, 0xEC, 0x4B, 0x9B .byte 0xC4, 0xE1, 0xEC, 0x4B, 0x6F -.byte 0xC4, 0xE1, 0xEC, 0x4B, 0x3F + .insn VEX.L1.NP.0f.W1 0x4b, (%rdi), %k2, %k7 .byte 0xC5, 0xF8, 0x44, 0x9B .byte 0xC5, 0xF8, 0x44, 0x6F -.byte 0xC5, 0xF8, 0x44, 0x3F + .insn VEX.L0.NP.0f.W0 0x44, (%rdi), %k7 .byte 0xC5, 0xF9, 0x44, 0x9B .byte 0xC5, 0xF9, 0x44, 0x6F -.byte 0xC5, 0xF9, 0x44, 0x3F + .insn VEX.L0.66.0f.W0 0x44, (%rdi), %k7 .byte 0xC4, 0xE1, 0xF8, 0x44, 0x9B .byte 0xC4, 0xE1, 0xF8, 0x44, 0x6F -.byte 0xC4, 0xE1, 0xF8, 0x44, 0x3F + .insn VEX.L0.NP.0f.W1 0x44, (%rdi), %k7 .byte 0xC4, 0xE1, 0xF9, 0x44, 0x9B .byte 0xC4, 0xE1, 0xF9, 0x44, 0x6F -.byte 0xC4, 0xE1, 0xF9, 0x44, 0x3F + .insn VEX.L0.66.0f.W1 0x44, (%rdi), %k7 .byte 0xC5, 0xEC, 0x45, 0x9B .byte 0xC5, 0xEC, 0x45, 0x6F -.byte 0xC5, 0xEC, 0x45, 0x3F + .insn VEX.L1.NP.0f.W0 0x45, (%rdi), %k2, %k7 .byte 0xC5, 0xED, 0x45, 0x9B .byte 0xC5, 0xED, 0x45, 0x6F -.byte 0xC5, 0xED, 0x45, 0x3F + .insn VEX.L1.66.0f.W0 0x45, (%rdi), %k2, %k7 .byte 0xC4, 0xE1, 0xEC, 0x45, 0x9B .byte 0xC4, 0xE1, 0xEC, 0x45, 0x6F -.byte 0xC4, 0xE1, 0xEC, 0x45, 0x3F + .insn VEX.L1.NP.0f.W1 0x45, (%rdi), %k2, %k7 .byte 0xC4, 0xE1, 0xED, 0x45, 0x9B .byte 0xC4, 0xE1, 0xED, 0x45, 0x6F -.byte 0xC4, 0xE1, 0xED, 0x45, 0x3F + .insn VEX.L1.66.0f.W1 0x45, (%rdi), %k2, %k7 .byte 0xC5, 0xF8, 0x98, 0x9B .byte 0xC5, 0xF8, 0x98, 0x6F -.byte 0xC5, 0xF8, 0x98, 0x3F + .insn VEX.L0.NP.0f.W0 0x98, (%rdi), %k7 .byte 0xC5, 0xF9, 0x98, 0x9B .byte 0xC5, 0xF9, 0x98, 0x6F -.byte 0xC5, 0xF9, 0x98, 0x3F + .insn VEX.L0.66.0f.W0 0x98, (%rdi), %k7 .byte 0xC4, 0xE1, 0xF8, 0x98, 0x9B .byte 0xC4, 0xE1, 0xF8, 0x98, 0x6F -.byte 0xC4, 0xE1, 0xF8, 0x98, 0x3F + .insn VEX.L0.NP.0f.W1 0x98, (%rdi), %k7 .byte 0xC4, 0xE1, 0xF9, 0x98, 0x9B .byte 0xC4, 0xE1, 0xF9, 0x98, 0x6F -.byte 0xC4, 0xE1, 0xF9, 0x98, 0x3F + .insn VEX.L0.66.0f.W1 0x98, (%rdi), %k7 .byte 0xC5, 0xEC, 0x46, 0x9B .byte 0xC5, 0xEC, 0x46, 0x6F -.byte 0xC5, 0xEC, 0x46, 0x3F + .insn VEX.L1.NP.0f.W0 0x46, (%rdi), %k2, %k7 .byte 0xC5, 0xED, 0x46, 0x9B .byte 0xC5, 0xED, 0x46, 0x6F -.byte 0xC5, 0xED, 0x46, 0x3F + .insn VEX.L1.66.0f.W0 0x46, (%rdi), %k2, %k7 .byte 0xC4, 0xE1, 0xEC, 0x46, 0x9B .byte 0xC4, 0xE1, 0xEC, 0x46, 0x6F -.byte 0xC4, 0xE1, 0xEC, 0x46, 0x3F + .insn VEX.L1.NP.0f.W1 0x46, (%rdi), %k2, %k7 .byte 0xC4, 0xE1, 0xED, 0x46, 0x9B .byte 0xC4, 0xE1, 0xED, 0x46, 0x6F -.byte 0xC4, 0xE1, 0xED, 0x46, 0x3F + .insn VEX.L1.66.0f.W1 0x46, (%rdi), %k2, %k7 .byte 0xC5, 0xEC, 0x47, 0x9B .byte 0xC5, 0xEC, 0x47, 0x6F -.byte 0xC5, 0xEC, 0x47, 0x3F + .insn VEX.L1.NP.0f.W0 0x47, (%rdi), %k2, %k7 .byte 0xC5, 0xED, 0x47, 0x9B .byte 0xC5, 0xED, 0x47, 0x6F -.byte 0xC5, 0xED, 0x47, 0x3F + .insn VEX.L1.66.0f.W0 0x47, (%rdi), %k2, %k7 .byte 0xC4, 0xE1, 0xEC, 0x47, 0x9B .byte 0xC4, 0xE1, 0xEC, 0x47, 0x6F -.byte 0xC4, 0xE1, 0xEC, 0x47, 0x3F + .insn VEX.L1.NP.0f.W1 0x47, (%rdi), %k2, %k7 .byte 0xC4, 0xE1, 0xED, 0x47, 0x9B .byte 0xC4, 0xE1, 0xED, 0x47, 0x6F -.byte 0xC4, 0xE1, 0xED, 0x47, 0x3F + .insn VEX.L1.66.0f.W1 0x47, (%rdi), %k2, %k7 .byte 0xC5, 0xF8, 0x99, 0x9B .byte 0xC5, 0xF8, 0x99, 0x6F -.byte 0xC5, 0xF8, 0x99, 0x3F + .insn VEX.L0.NP.0f.W0 0x99, (%rdi), %k7 .byte 0xC5, 0xF9, 0x99, 0x9B .byte 0xC5, 0xF9, 0x99, 0x6F -.byte 0xC5, 0xF9, 0x99, 0x3F + .insn VEX.L0.66.0f.W0 0x99, (%rdi), %k7 .byte 0xC4, 0xE1, 0xF8, 0x99, 0x9B .byte 0xC4, 0xE1, 0xF8, 0x99, 0x6F -.byte 0xC4, 0xE1, 0xF8, 0x99, 0x3F + .insn VEX.L0.NP.0f.W1 0x99, (%rdi), %k7 .byte 0xC4, 0xE1, 0xF9, 0x99, 0x9B .byte 0xC4, 0xE1, 0xF9, 0x99, 0x6F -.byte 0xC4, 0xE1, 0xF9, 0x99, 0x3F + .insn VEX.L0.66.0f.W1 0x99, (%rdi), %k7 .byte 0xC4, 0xE3, 0xF9, 0x30, 0x8F, 0x01 .byte 0xC4, 0xE3, 0xF9, 0x30, 0x6A, 0x01 .byte 0xC4, 0xE3, 0xF9, 0x30, 0x04, 0x01 @@ -145,33 +145,33 @@ .byte 0xC4, 0xE3, 0x79, 0x33, 0x04, 0x01 .byte 0xC5, 0xF8, 0x92, 0x9B .byte 0xC5, 0xF8, 0x92, 0x6F -.byte 0xC5, 0xF8, 0x92, 0x3F + .insn VEX.L0.NP.0f.W0 0x92, (%rdi), %k7 .byte 0xC5, 0xF9, 0x92, 0x9B .byte 0xC5, 0xF9, 0x92, 0x6F -.byte 0xC5, 0xF9, 0x92, 0x3F + .insn VEX.L0.66.0f.W0 0x92, (%rdi), %k7 .byte 0xC5, 0xFB, 0x92, 0x9B .byte 0xC5, 0xFB, 0x92, 0x6F -.byte 0xC5, 0xFB, 0x92, 0x3F + .insn VEX.L0.f2.0f.W0 0x92, (%rdi), %k7 .byte 0xC4, 0xE1, 0xF9, 0x92, 0x9B .byte 0xC4, 0xE1, 0xF9, 0x92, 0x6F -.byte 0xC4, 0xE1, 0xF9, 0x92, 0x3F + .insn VEX.L0.66.0f.W1 0x92, (%rdi), %k7 .byte 0xC5, 0xF8, 0x93, 0x9B .byte 0xC5, 0xF8, 0x93, 0x6F -.byte 0xC5, 0xF8, 0x93, 0x3F + .insn VEX.L0.NP.0f.W0 0x93, (%rdi), %k7 .byte 0xC5, 0xF9, 0x93, 0x9B .byte 0xC5, 0xF9, 0x93, 0x6F -.byte 0xC5, 0xF9, 0x93, 0x3F + .insn VEX.L0.66.0f.W0 0x93, (%rdi), %k7 .byte 0xC5, 0xFB, 0x93, 0x9B .byte 0xC5, 0xFB, 0x93, 0x6F -.byte 0xC5, 0xFB, 0x93, 0x3F + .insn VEX.L0.f2.0f.W0 0x93, (%rdi), %k7 .byte 0xC4, 0xE1, 0xF9, 0x93, 0x9B .byte 0xC4, 0xE1, 0xF9, 0x93, 0x6F -.byte 0xC4, 0xE1, 0xF9, 0x93, 0x3F -.byte 0xc4, 0x62, 0x1, 0x1c, 0x41, 0x37 -.byte 0x62, 0x72, 0xad, 0x08, 0x1c, 0x01 + .insn VEX.L0.66.0f.W1 0x93, (%rdi), %k7 + .insn VEX.66.0f38.W0 0x1c, 0x37(%rcx), %xmm15, %xmm8 + .insn EVEX.66.0f38.W1 0x1c, (%rcx), %xmm10, %xmm8 .byte 0x1 -.byte 0x62, 0xf3, 0x7d, 0x28, 0x1b, 0xc8, 0x25 + .insn EVEX.66.0f3a.W0 0x1b, $0x25, %ymm0, %xmm1 .byte 0x62, 0xf3 -.byte 0x62, 0xf3, 0x75, 0x08, 0x23, 0xc2, 0x25 + .insn EVEX.66.0f3a.W0 0x23, $0x25, %xmm2, %xmm1, %xmm0 .byte 0x62 -.byte 0x62, 0xf2, 0x7d, 0x28, 0x5b, 0x41, 0x37 + .insn EVEX.66.0f38.W0 0x5b, 0x37(%rcx){:d1}, %ymm0 diff --git a/gas/testsuite/gas/i386/x86-64-mpx.s b/gas/testsuite/gas/i386/x86-64-mpx.s index 3594d8e9c88..2d328ac2077 100644 --- a/gas/testsuite/gas/i386/x86-64-mpx.s +++ b/gas/testsuite/gas/i386/x86-64-mpx.s @@ -215,35 +215,19 @@ start: foo: bnd ret + .att_syntax prefix bad: - # bndldx (%eax),(bad) - .byte 0x0f - .byte 0x1a - .byte 0x30 + # bndldx (%rax),(bad) + .insn 0x0f1a, (%rax), %esi # bndmov (bad),%bnd0 - .byte 0x66 - .byte 0x0f - .byte 0x1a - .byte 0xc4 + .insn 0x660f1a, %esp, %bnd0 # bndmov with REX.B set - .byte 0x66 - .byte 0x41 - .byte 0x0f - .byte 0x1a - .byte 0xc0 + .insn 0x660f1a, %r8d, %bnd0 # bndmov with REX.R set - .byte 0x66 - .byte 0x44 - .byte 0x0f - .byte 0x1a - .byte 0xc0 + .insn 0x660f1a, %bnd0, %r8d # bndmk (bad),%bnd0 - .byte 0xf3 - .byte 0x0f - .byte 0x1b - .byte 0x05 - .long 0x90909090 + .insn 0xf30f1b, -0x6f6f6f70(%rip), %bnd0 diff --git a/gas/testsuite/gas/i386/x86-64-nops.d b/gas/testsuite/gas/i386/x86-64-nops.d index 311056c0831..e42bc452129 100644 --- a/gas/testsuite/gas/i386/x86-64-nops.d +++ b/gas/testsuite/gas/i386/x86-64-nops.d @@ -1,3 +1,4 @@ +#as: --divide #objdump: -drw #name: x86-64 nops @@ -13,7 +14,7 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 0f 1f 80 00 00 00 00 nopl 0x0\(%rax\) [ ]*[a-f0-9]+: 0f 1f 84 00 00 00 00 00 nopl 0x0\(%rax,%rax,1\) [ ]*[a-f0-9]+: 66 0f 1f 84 00 00 00 00 00 nopw 0x0\(%rax,%rax,1\) -[ ]*[a-f0-9]+: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0\(%rax,%rax,1\) +[ ]*[a-f0-9]+: 2e 66 0f 1f 84 00 00 00 00 00 cs nopw 0x0\(%rax,%rax,1\) [ ]*[a-f0-9]+: 0f 19 ff nop %edi [ ]*[a-f0-9]+: 0f 1a ff nop %edi [ ]*[a-f0-9]+: 0f 1b ff nop %edi diff --git a/gas/testsuite/gas/i386/x86-64-nops.s b/gas/testsuite/gas/i386/x86-64-nops.s index 8bbd7e3a5be..b9d13bc7944 100644 --- a/gas/testsuite/gas/i386/x86-64-nops.s +++ b/gas/testsuite/gas/i386/x86-64-nops.s @@ -1,48 +1,49 @@ .text - .byte 0x0f, 0x1f, 0x0 - .byte 0x0f, 0x1f, 0x40, 0x0 - .byte 0x0f, 0x1f, 0x44, 0x0, 0x0 - .byte 0x66, 0x0f, 0x1f, 0x44, 0x0, 0x0 - .byte 0x0f, 0x1f, 0x80, 0x0, 0x0, 0x0, 0x0 - .byte 0x0f, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0 - .byte 0x66, 0x0f, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0 - .byte 0x66, 0x2e, 0x0f, 0x1f, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0 + .insn 0x0f1f/0, (%rax) + .insn {disp8} 0x0f1f/0, 0(%rax) + .insn {disp8} 0x0f1f/0, 0(%rax,%rax) + .insn {disp8} data16 0x0f1f/0, 0(%rax,%rax) + .insn {disp32} 0x0f1f/0, 0(%rax) + .insn {disp32} 0x0f1f/0, 0(%rax,%rax) + .insn {disp32} data16 0x0f1f/0, 0(%rax,%rax) + .insn {disp32} data16 0x0f1f/0, %cs:0(%rax,%rax) # reg,reg - .byte 0x0f, 0x19, 0xff - .byte 0x0f, 0x1a, 0xff - .byte 0x0f, 0x1b, 0xff - .byte 0x0f, 0x1c, 0xff - .byte 0x0f, 0x1d, 0xff - .byte 0x0f, 0x1e, 0xff - .byte 0x0f, 0x1f, 0xff + .insn 0x0f19, %edi, %edi + .insn 0x0f1a, %edi, %edi + .insn 0x0f1b, %edi, %edi + .insn 0x0f1c, %edi, %edi + .insn 0x0f1d, %edi, %edi + .insn 0x0f1e, %edi, %edi + .insn 0x0f1f, %edi, %edi # with base and imm8 - .byte 0x0f, 0x19, 0x5A, 0x22 - .byte 0x0f, 0x1c, 0x5A, 0x22 - .byte 0x0f, 0x1d, 0x5A, 0x22 - .byte 0x0f, 0x1e, 0x5A, 0x22 - .byte 0x0f, 0x1f, 0x5A, 0x22 + .insn 0x0f19/3, 0x22(%rdx) + .insn 0x0f1c/3, 0x22(%rdx) + .insn 0x0f1d/3, 0x22(%rdx) + .insn 0x0f1e/3, 0x22(%rdx) + .insn 0x0f1f/3, 0x22(%rdx) # with sib and imm32 - .byte 0x0f, 0x19, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44 - .byte 0x0f, 0x1c, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44 - .byte 0x0f, 0x1d, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44 - .byte 0x0f, 0x1e, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44 - .byte 0x0f, 0x1f, 0x9C, 0x1D, 0x11, 0x22, 0x33, 0x44 + .insn 0x0f19/3, 0x44332211(%rbp,%rbx) + .insn 0x0f1c/3, 0x44332211(%rbp,%rbx) + .insn 0x0f1d/3, 0x44332211(%rbp,%rbx) + .insn 0x0f1e/3, 0x44332211(%rbp,%rbx) + .insn 0x0f1f/3, 0x44332211(%rbp,%rbx) - .byte 0x0f, 0x19, 0x04, 0x60 - .byte 0x0f, 0x1c, 0x0c, 0x60 - .byte 0x0f, 0x1d, 0x04, 0x60 - .byte 0x0f, 0x1e, 0x04, 0x60 - .byte 0x0f, 0x1f, 0x04, 0x60 + .allow_index_reg + .insn 0x0f19/0, (%rax,%riz,2) + .insn 0x0f1c/1, (%rax,%riz,2) + .insn 0x0f1d/0, (%rax,%riz,2) + .insn 0x0f1e/0, (%rax,%riz,2) + .insn 0x0f1f/0, (%rax,%riz,2) - .byte 0x0f, 0x19, 0x04, 0x59 - .byte 0x0f, 0x1c, 0x0c, 0x59 - .byte 0x0f, 0x1d, 0x04, 0x59 - .byte 0x0f, 0x1e, 0x04, 0x59 - .byte 0x0f, 0x1f, 0x04, 0x59 + .insn 0x0f19/0, (%rcx,%rbx,2) + .insn 0x0f1c/1, (%rcx,%rbx,2) + .insn 0x0f1d/0, (%rcx,%rbx,2) + .insn 0x0f1e/0, (%rcx,%rbx,2) + .insn 0x0f1f/0, (%rcx,%rbx,2) nop %rax nop %eax diff --git a/gas/testsuite/gas/i386/x86-64-opcode-bad.s b/gas/testsuite/gas/i386/x86-64-opcode-bad.s index 5acbcbbd9ea..582b11383d7 100644 --- a/gas/testsuite/gas/i386/x86-64-opcode-bad.s +++ b/gas/testsuite/gas/i386/x86-64-opcode-bad.s @@ -1,10 +1,4 @@ .text # All the followings are bad opcodes for x86-64. - .byte 0xc5 - .byte 0xac - .byte 0x46 - .byte 0xf5 - .byte 0xc5 - .byte 0x2c - .byte 0x46 - .byte 0xf5 + .insn VEX.L1.0f 0x46, %k5, %r10d, %k6 + .insn VEX.L1.0f 0x46, %k5, %r10d, %r14d diff --git a/gas/testsuite/gas/i386/x86-64-opcode.d b/gas/testsuite/gas/i386/x86-64-opcode.d index e347869d2d8..ee6d0f5f4bd 100644 --- a/gas/testsuite/gas/i386/x86-64-opcode.d +++ b/gas/testsuite/gas/i386/x86-64-opcode.d @@ -1,4 +1,4 @@ -#as: -J +#as: -J --divide #objdump: -drw #name: x86-64 opcode diff --git a/gas/testsuite/gas/i386/x86-64-opcode.s b/gas/testsuite/gas/i386/x86-64-opcode.s index 6575cc33438..220998c8653 100644 --- a/gas/testsuite/gas/i386/x86-64-opcode.s +++ b/gas/testsuite/gas/i386/x86-64-opcode.s @@ -458,16 +458,16 @@ int3 int $0x90 - .byte 0xf6, 0xc9, 0x01 - .byte 0x66, 0xf7, 0xc9, 0x02, 0x00 - .byte 0xf7, 0xc9, 0x04, 0x00, 0x00, 0x00 - .byte 0x48, 0xf7, 0xc9, 0x08, 0x00, 0x00, 0x00 - .byte 0xc0, 0xf0, 0x02 - .byte 0xc1, 0xf0, 0x01 - .byte 0x48, 0xc1, 0xf0, 0x01 - .byte 0xd0, 0xf0 - .byte 0xd1, 0xf0 - .byte 0x48, 0xd1, 0xf0 - .byte 0xd2, 0xf0 - .byte 0xd3, 0xf0 - .byte 0x48, 0xd3, 0xf0 + .insn 0xf6/1, $1, %cl + .insn 0xf7/1, $2{:u16}, %cx + .insn 0xf7/1, $4{:u32}, %ecx + .insn 0xf7/1, $8{:s32}, %rcx + .insn 0xc0/6, $2, %al + .insn 0xc1/6, $1, %eax + .insn 0xc1/6, $1, %rax + .insn 0xd0/6, %al + .insn 0xd1/6, %eax + .insn 0xd1/6, %rax + .insn 0xd2/6, %al + .insn 0xd3/6, %eax + .insn 0xd3/6, %rax diff --git a/gas/testsuite/gas/i386/x86-64-prefetch-intel.d b/gas/testsuite/gas/i386/x86-64-prefetch-intel.d index 4b5995f474e..b0f9556f942 100644 --- a/gas/testsuite/gas/i386/x86-64-prefetch-intel.d +++ b/gas/testsuite/gas/i386/x86-64-prefetch-intel.d @@ -1,3 +1,4 @@ +#as: --divide #objdump: -dw -Mintel #name: x86-64 prefetch (Intel disassembly) #source: prefetch.s diff --git a/gas/testsuite/gas/i386/x86-64-prefetch.d b/gas/testsuite/gas/i386/x86-64-prefetch.d index 121592b6ecc..3e83ef5bf4c 100644 --- a/gas/testsuite/gas/i386/x86-64-prefetch.d +++ b/gas/testsuite/gas/i386/x86-64-prefetch.d @@ -1,3 +1,4 @@ +#as: --divide #objdump: -dw #name: x86-64 prefetch #source: prefetch.s diff --git a/gas/testsuite/gas/i386/x86-64-prefetchi-inval-register.d b/gas/testsuite/gas/i386/x86-64-prefetchi-inval-register.d index b29b1ae2379..9c47c368d28 100644 --- a/gas/testsuite/gas/i386/x86-64-prefetchi-inval-register.d +++ b/gas/testsuite/gas/i386/x86-64-prefetchi-inval-register.d @@ -1,4 +1,4 @@ -#as: +#as: --divide #objdump: -dw #name: x86-64 PREFETCHI INVAL REGISTER insns diff --git a/gas/testsuite/gas/i386/x86-64-prefetchi-inval-register.s b/gas/testsuite/gas/i386/x86-64-prefetchi-inval-register.s index 550449a0c9f..0206afb2b5a 100644 --- a/gas/testsuite/gas/i386/x86-64-prefetchi-inval-register.s +++ b/gas/testsuite/gas/i386/x86-64-prefetchi-inval-register.s @@ -1,9 +1,6 @@ .text #prefetchit0 (%rcx) PREFETCHIT0/1 apply without RIP-relative addressing, should stay NOPs. - .byte 0x0f - .byte 0x18 - .byte 0x39 + .insn 0x0f18/7, (%rcx) + #prefetchit1 (%rcx) PREFETCHIT1/1 apply without RIP-relative addressing, should stay NOPs. - .byte 0x0f - .byte 0x18 - .byte 0x31 + .insn 0x0f18/6, (%rcx) |