x86/Intel: extend MOVDIRI testing
Test also memory operands with operand size specifier, which was broken
prior to dc2be329b9
("i386: Only check suffix in instruction
mnemonic"), due to the template not permitting any suffixes. Note that
this uncovered a disassembler issue, which is being fixed here as well.
This commit is contained in:
parent
13e600d0f5
commit
77ad80922b
|
@ -1,3 +1,14 @@
|
|||
2019-12-04 Jan Beulich <jbeulich@suse.com>
|
||||
|
||||
* testsuite/gas/i386/movdir.s: Add Intel syntax case with
|
||||
operand size specifier.
|
||||
* testsuite/gas/i386/x86-64-movdir.s: Add Intel syntax cases
|
||||
with operand size specifier and wit 32-bit operands.
|
||||
* testsuite/gas/i386/movdir-intel.d,
|
||||
testsuite/gas/i386/movdir.d,
|
||||
testsuite/gas/i386/x86-64-movdir-intel.d,
|
||||
testsuite/gas/i386/x86-64-movdir.d: Adjust expectations.
|
||||
|
||||
2019-12-04 Jan Beulich <jbeulich@suse.com>
|
||||
|
||||
* config/tc-i386.c (process_suffix): Arrange for insns with a
|
||||
|
|
|
@ -13,6 +13,7 @@ Disassembly of section \.text:
|
|||
[ ]*[a-f0-9]+:[ ]*66 0f 38 f8 01[ ]*movdir64b eax,\[ecx\]
|
||||
[ ]*[a-f0-9]+:[ ]*67 66 0f 38 f8 04[ ]*movdir64b ax,\[si\]
|
||||
[ ]*[a-f0-9]+:[ ]*0f 38 f9 01[ ]*movdiri DWORD PTR \[ecx\],eax
|
||||
[ ]*[a-f0-9]+:[ ]*0f 38 f9 01[ ]*movdiri DWORD PTR \[ecx\],eax
|
||||
[ ]*[a-f0-9]+:[ ]*66 0f 38 f8 01[ ]*movdir64b eax,\[ecx\]
|
||||
[ ]*[a-f0-9]+:[ ]*67 66 0f 38 f8 04[ ]*movdir64b ax,\[si\]
|
||||
#pass
|
||||
|
|
|
@ -13,6 +13,7 @@ Disassembly of section \.text:
|
|||
[ ]*[a-f0-9]+:[ ]*66 0f 38 f8 01[ ]*movdir64b \(%ecx\),%eax
|
||||
[ ]*[a-f0-9]+:[ ]*67 66 0f 38 f8 04[ ]*movdir64b \(%si\),%ax
|
||||
[ ]*[a-f0-9]+:[ ]*0f 38 f9 01[ ]*movdiri %eax,\(%ecx\)
|
||||
[ ]*[a-f0-9]+:[ ]*0f 38 f9 01[ ]*movdiri %eax,\(%ecx\)
|
||||
[ ]*[a-f0-9]+:[ ]*66 0f 38 f8 01[ ]*movdir64b \(%ecx\),%eax
|
||||
[ ]*[a-f0-9]+:[ ]*67 66 0f 38 f8 04[ ]*movdir64b \(%si\),%ax
|
||||
#pass
|
||||
|
|
|
@ -9,5 +9,6 @@ _start:
|
|||
|
||||
.intel_syntax noprefix
|
||||
movdiri [ecx], eax
|
||||
movdiri dword ptr [ecx], eax
|
||||
movdir64b eax,[ecx]
|
||||
movdir64b ax,[si]
|
||||
|
|
|
@ -12,6 +12,9 @@ Disassembly of section \.text:
|
|||
[ ]*[a-f0-9]+:[ ]*48 0f 38 f9 01[ ]*movdiri QWORD PTR \[rcx\],rax
|
||||
[ ]*[a-f0-9]+:[ ]*66 0f 38 f8 01[ ]*movdir64b rax,\[rcx\]
|
||||
[ ]*[a-f0-9]+:[ ]*67 66 0f 38 f8 01[ ]*movdir64b eax,\[ecx]
|
||||
[ ]*[a-f0-9]+:[ ]*0f 38 f9 01[ ]*movdiri DWORD PTR \[rcx\],eax
|
||||
[ ]*[a-f0-9]+:[ ]*48 0f 38 f9 01[ ]*movdiri QWORD PTR \[rcx\],rax
|
||||
[ ]*[a-f0-9]+:[ ]*0f 38 f9 01[ ]*movdiri DWORD PTR \[rcx\],eax
|
||||
[ ]*[a-f0-9]+:[ ]*48 0f 38 f9 01[ ]*movdiri QWORD PTR \[rcx\],rax
|
||||
[ ]*[a-f0-9]+:[ ]*66 0f 38 f8 01[ ]*movdir64b rax,\[rcx\]
|
||||
[ ]*[a-f0-9]+:[ ]*67 66 0f 38 f8 01[ ]*movdir64b eax,\[ecx\]
|
||||
|
|
|
@ -12,6 +12,9 @@ Disassembly of section \.text:
|
|||
[ ]*[a-f0-9]+:[ ]*48 0f 38 f9 01[ ]*movdiri %rax,\(%rcx\)
|
||||
[ ]*[a-f0-9]+:[ ]*66 0f 38 f8 01[ ]*movdir64b \(%rcx\),%rax
|
||||
[ ]*[a-f0-9]+:[ ]*67 66 0f 38 f8 01[ ]*movdir64b \(%ecx\),%eax
|
||||
[ ]*[a-f0-9]+:[ ]*0f 38 f9 01[ ]*movdiri %eax,\(%rcx\)
|
||||
[ ]*[a-f0-9]+:[ ]*48 0f 38 f9 01[ ]*movdiri %rax,\(%rcx\)
|
||||
[ ]*[a-f0-9]+:[ ]*0f 38 f9 01[ ]*movdiri %eax,\(%rcx\)
|
||||
[ ]*[a-f0-9]+:[ ]*48 0f 38 f9 01[ ]*movdiri %rax,\(%rcx\)
|
||||
[ ]*[a-f0-9]+:[ ]*66 0f 38 f8 01[ ]*movdir64b \(%rcx\),%rax
|
||||
[ ]*[a-f0-9]+:[ ]*67 66 0f 38 f8 01[ ]*movdir64b \(%ecx\),%eax
|
||||
|
|
|
@ -8,6 +8,9 @@ _start:
|
|||
movdir64b (%ecx),%eax
|
||||
|
||||
.intel_syntax noprefix
|
||||
movdiri [rcx],eax
|
||||
movdiri [rcx],rax
|
||||
movdiri dword ptr [rcx],eax
|
||||
movdiri qword ptr [rcx],rax
|
||||
movdir64b rax,[rcx]
|
||||
movdir64b eax,[ecx]
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2019-12-04 Jan Beulich <jbeulich@suse.com>
|
||||
|
||||
* i386-dis.c (mod_table): Use Ev instead of Em for movdiri.
|
||||
|
||||
2019-12-04 Jan Beulich <jbeulich@suse.com>
|
||||
|
||||
* i386-opc.tbl (push, pop): Drop DefaultSize from GPR-only
|
||||
|
|
|
@ -10522,7 +10522,7 @@ static const struct dis386 mod_table[][2] = {
|
|||
},
|
||||
{
|
||||
/* MOD_0F38F9_PREFIX_0 */
|
||||
{ "movdiri", { Em, Gv }, PREFIX_OPCODE },
|
||||
{ "movdiri", { Ev, Gv }, PREFIX_OPCODE },
|
||||
},
|
||||
{
|
||||
/* MOD_62_32BIT */
|
||||
|
|
Loading…
Reference in New Issue