x86/Intel: debug registers are named DRn

%db<n> is an AT&T invention; the Intel documentation and MASM have only
ever specified DRn (in line with CRn and TRn). (In principle gas also
shouldn't accept the names in Intel mode, but at least for now I've kept
things as they are. Perhaps as a first step this should just be warned
about.)
This commit is contained in:
Jan Beulich
2020-07-14 10:43:38 +02:00
parent 78467458dd
commit bfbd943845
7 changed files with 19 additions and 8 deletions

View File

@ -1,3 +1,10 @@
2020-07-14 Jan Beulich <jbeulich@suse.com>
* testsuite/gas/i386/intel.s: Use dr<N> instead of db<N>.
* testsuite/gas/i386/intel-intel.d: Disambiguate name.
* testsuite/gas/i386/intel.d,
testsuite/gas/i386/opcode-intel.d: Adjust expectations.
2020-07-14 Jan Beulich <jbeulich@suse.com>
* testsuite/gas/i386/prefix.d: Adjust expectations.

View File

@ -260,9 +260,9 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: 0f 09 + wbinvd *
[ ]*[a-f0-9]+: 0f 0b + ud2 *
[ ]*[a-f0-9]+: 0f 20 d0 + mov eax,cr2
[ ]*[a-f0-9]+: 0f 21 d0 + mov eax,db2
[ ]*[a-f0-9]+: 0f 21 d0 + mov eax,dr2
[ ]*[a-f0-9]+: 0f 22 d0 + mov cr2,eax
[ ]*[a-f0-9]+: 0f 23 d0 + mov db2,eax
[ ]*[a-f0-9]+: 0f 23 d0 + mov dr2,eax
[ ]*[a-f0-9]+: 0f 24 d0 + mov eax,tr2
[ ]*[a-f0-9]+: 0f 26 d0 + mov tr2,eax
[ ]*[a-f0-9]+: 0f 30 + wrmsr *

View File

@ -1,6 +1,6 @@
#as: -J
#objdump: -dw
#name: i386 intel
#name: i386 intel (AT&T disassembly)
#warning_output: intel.e
.*: +file format .*

View File

@ -252,9 +252,9 @@ foo:
wbinvd
ud2a
mov eax, cr2
mov eax, db2
mov eax, dr2
mov cr2, eax
mov db2, eax
mov dr2, eax
mov eax, tr2
mov tr2, eax
wrmsr

View File

@ -257,9 +257,9 @@ Disassembly of section .text:
*[0-9a-f]+: 0f 09[ ]+wbinvd[ ]*
*[0-9a-f]+: 0f 0b[ ]+ud2[ ]*
*[0-9a-f]+: 0f 20 d0[ ]+mov[ ]+eax,cr2
*[0-9a-f]+: 0f 21 d0[ ]+mov[ ]+eax,db2
*[0-9a-f]+: 0f 21 d0[ ]+mov[ ]+eax,dr2
*[0-9a-f]+: 0f 22 d0[ ]+mov[ ]+cr2,eax
*[0-9a-f]+: 0f 23 d0[ ]+mov[ ]+db2,eax
*[0-9a-f]+: 0f 23 d0[ ]+mov[ ]+dr2,eax
*[0-9a-f]+: 0f 24 d0[ ]+mov[ ]+eax,tr2
*[0-9a-f]+: 0f 26 d0[ ]+mov[ ]+tr2,eax
*[0-9a-f]+: 0f 30[ ]+wrmsr[ ]*

View File

@ -1,3 +1,7 @@
2020-07-14 Jan Beulich <jbeulich@suse.com>
* i386-dis.c (OP_D): Print dr<N> instead of db<N> in Intel mode.
2020-07-14 Jan Beulich <jbeulich@suse.com>
* i386-dis.c (OP_R, Rm): Delete.

View File

@ -12787,7 +12787,7 @@ OP_D (int dummy ATTRIBUTE_UNUSED, int sizeflag ATTRIBUTE_UNUSED)
else
add = 0;
if (intel_syntax)
sprintf (scratchbuf, "db%d", modrm.reg + add);
sprintf (scratchbuf, "dr%d", modrm.reg + add);
else
sprintf (scratchbuf, "%%db%d", modrm.reg + add);
oappend (scratchbuf);