summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/testsuite/ChangeLog10
-rw-r--r--gas/testsuite/gas/i386/i386.exp2
-rw-r--r--gas/testsuite/gas/i386/x86-64-crx-suffix.d1
-rw-r--r--gas/testsuite/gas/i386/x86-64-drx-suffix.d21
-rw-r--r--gas/testsuite/gas/i386/x86-64-drx.d20
-rw-r--r--gas/testsuite/gas/i386/x86-64-drx.s18
-rw-r--r--opcodes/ChangeLog5
-rw-r--r--opcodes/i386-dis.c4
8 files changed, 78 insertions, 3 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 193a0184fbf..570fe147175 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,5 +1,15 @@
2006-02-11 H.J. Lu <hongjiu.lu@intel.com>
+ * gas/i386/i386.exp: Add "x86-64-drx" and "x86-64-drx-suffix".
+
+ * gas/i386/x86-64-crx-suffix.d: Minor update.
+
+ * gas/i386/x86-64-drx-suffix.d: New file.
+ * gas/i386/x86-64-drx.d: Likewise.
+ * gas/i386/x86-64-drx.s: Likewise.
+
+2006-02-11 H.J. Lu <hongjiu.lu@intel.com>
+
* gas/i386/i386.exp: Add "x86-64-crx" and "x86-64-crx-suffix".
* gas/i386/x86-64-crx-suffix.d: New file.
diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp
index 91a5e9b0791..7bf459580be 100644
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -134,6 +134,8 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] t
run_dump_test "x86-64-prescott"
run_dump_test "x86-64-crx"
run_dump_test "x86-64-crx-suffix"
+ run_dump_test "x86-64-drx"
+ run_dump_test "x86-64-drx-suffix"
if { ![istarget "*-*-aix*"]
&& ![istarget "*-*-beos*"]
diff --git a/gas/testsuite/gas/i386/x86-64-crx-suffix.d b/gas/testsuite/gas/i386/x86-64-crx-suffix.d
index 1dc3584219e..bb462fe49d6 100644
--- a/gas/testsuite/gas/i386/x86-64-crx-suffix.d
+++ b/gas/testsuite/gas/i386/x86-64-crx-suffix.d
@@ -1,6 +1,5 @@
#objdump: -dwMsuffix
#name: x86-64 control register related opcodes (with suffixes)
-#source: x86-64-crx.s
.*: +file format elf64-x86-64
diff --git a/gas/testsuite/gas/i386/x86-64-drx-suffix.d b/gas/testsuite/gas/i386/x86-64-drx-suffix.d
new file mode 100644
index 00000000000..1f76b8b163b
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-drx-suffix.d
@@ -0,0 +1,21 @@
+#objdump: -dwMsuffix
+#name: x86-64 debug register related opcodes (with suffixes)
+#source: x86-64-drx.s
+
+.*: +file format elf64-x86-64
+
+Disassembly of section .text:
+
+0+ <_start>:
+[ ]*[0-9a-f]+: 44 0f 21 c0[ ]+movq[ ]+?%db8,%rax
+[ ]*[0-9a-f]+: 44 0f 21 c7[ ]+movq[ ]+?%db8,%rdi
+[ ]*[0-9a-f]+: 44 0f 23 c0[ ]+movq[ ]+?%rax,%db8
+[ ]*[0-9a-f]+: 44 0f 23 c7[ ]+movq[ ]+?%rdi,%db8
+[ ]*[0-9a-f]+: 44 0f 21 c0[ ]+movq[ ]+?%db8,%rax
+[ ]*[0-9a-f]+: 44 0f 21 c7[ ]+movq[ ]+?%db8,%rdi
+[ ]*[0-9a-f]+: 44 0f 23 c0[ ]+movq[ ]+?%rax,%db8
+[ ]*[0-9a-f]+: 44 0f 23 c7[ ]+movq[ ]+?%rdi,%db8
+[ ]*[0-9a-f]+: 44 0f 21 c0[ ]+movq[ ]+?%db8,%rax
+[ ]*[0-9a-f]+: 44 0f 21 c7[ ]+movq[ ]+?%db8,%rdi
+[ ]*[0-9a-f]+: 44 0f 23 c0[ ]+movq[ ]+?%rax,%db8
+[ ]*[0-9a-f]+: 44 0f 23 c7[ ]+movq[ ]+?%rdi,%db8
diff --git a/gas/testsuite/gas/i386/x86-64-drx.d b/gas/testsuite/gas/i386/x86-64-drx.d
new file mode 100644
index 00000000000..879ce50a5ef
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-drx.d
@@ -0,0 +1,20 @@
+#objdump: -dw
+#name: x86-64 debug register related opcodes
+
+.*: +file format elf64-x86-64
+
+Disassembly of section .text:
+
+0+ <_start>:
+[ ]*[0-9a-f]+: 44 0f 21 c0[ ]+movq?[ ]+?%db8,%rax
+[ ]*[0-9a-f]+: 44 0f 21 c7[ ]+movq?[ ]+?%db8,%rdi
+[ ]*[0-9a-f]+: 44 0f 23 c0[ ]+movq?[ ]+?%rax,%db8
+[ ]*[0-9a-f]+: 44 0f 23 c7[ ]+movq?[ ]+?%rdi,%db8
+[ ]*[0-9a-f]+: 44 0f 21 c0[ ]+movq?[ ]+?%db8,%rax
+[ ]*[0-9a-f]+: 44 0f 21 c7[ ]+movq?[ ]+?%db8,%rdi
+[ ]*[0-9a-f]+: 44 0f 23 c0[ ]+movq?[ ]+?%rax,%db8
+[ ]*[0-9a-f]+: 44 0f 23 c7[ ]+movq?[ ]+?%rdi,%db8
+[ ]*[0-9a-f]+: 44 0f 21 c0[ ]+movq?[ ]+?%db8,%rax
+[ ]*[0-9a-f]+: 44 0f 21 c7[ ]+movq?[ ]+?%db8,%rdi
+[ ]*[0-9a-f]+: 44 0f 23 c0[ ]+movq?[ ]+?%rax,%db8
+[ ]*[0-9a-f]+: 44 0f 23 c7[ ]+movq?[ ]+?%rdi,%db8
diff --git a/gas/testsuite/gas/i386/x86-64-drx.s b/gas/testsuite/gas/i386/x86-64-drx.s
new file mode 100644
index 00000000000..16801d18931
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-drx.s
@@ -0,0 +1,18 @@
+.text
+_start:
+ movq %dr8, %rax
+ movq %dr8, %rdi
+ movq %rax, %dr8
+ movq %rdi, %dr8
+
+.att_syntax noprefix
+ movq dr8, rax
+ movq dr8, rdi
+ movq rax, dr8
+ movq rdi, dr8
+
+.intel_syntax noprefix
+ mov rax, dr8
+ mov rdi, dr8
+ mov dr8, rax
+ mov dr8, rdi
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 629ab5e9bf7..f36656c9840 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,5 +1,10 @@
2006-02-11 H.J. Lu <hongjiu.lu@intel.com>
+ * i386-dis.c (dis386_twobyte): Use "movZ" for debug register
+ moves.
+
+2006-02-11 H.J. Lu <hongjiu.lu@intel.com>
+
* i386-dis.c ('Z'): Add a new macro.
(dis386_twobyte): Use "movZ" for control register moves.
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 65cb43ce651..4fb487d5a49 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -832,9 +832,9 @@ static const struct dis386 dis386_twobyte[] = {
{ "(bad)", XX, XX, XX },
/* 20 */
{ "movZ", Rm, Cm, XX },
- { "movL", Rm, Dm, XX },
+ { "movZ", Rm, Dm, XX },
{ "movZ", Cm, Rm, XX },
- { "movL", Dm, Rm, XX },
+ { "movZ", Dm, Rm, XX },
{ "movL", Rd, Td, XX },
{ "(bad)", XX, XX, XX },
{ "movL", Td, Rd, XX },