aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2006-12-01 15:00:12 +0000
committerJan Beulich <jbeulich@novell.com>2006-12-01 15:00:12 +0000
commit52fd6d94163f6cf1a1fbda57ed4c34da53f726a4 (patch)
treeacb75745c35a061eee8339548d570f6e46431810 /gas
parenta35ca55aee929c1b59136d93a257f0b5dcad6186 (diff)
downloadgdb-52fd6d94163f6cf1a1fbda57ed4c34da53f726a4.zip
gdb-52fd6d94163f6cf1a1fbda57ed4c34da53f726a4.tar.gz
gdb-52fd6d94163f6cf1a1fbda57ed4c34da53f726a4.tar.bz2
opcodes/
2006-11-30 Jan Beulich <jbeulich@novell.com> * i386-dis.c (zAX): New. (Xz): New. (Yzr): New. (z_mode): New. (z_mode_ax_reg): New. (putop): New suffix character 'G'. (dis386): Use it for in, out, ins, and outs. (intel_operand_size): Handle z_mode. (OP_REG): Delete unreachable case indir_dx_reg. (OP_IMREG): Fix Intel syntax output for case indir_dx_reg. Handle z_mode_ax_reg. (OP_ESreg): Fix Intel syntax operand size handling. (OP_DSreg): Likewise. gas/testsuite/ 2006-11-30 Jan Beulich <jbeulich@novell.com> * gas/i386/x86-64-io.[sd]: New. * gas/i386/x86-64-io-intel.d: New. * gas/i386/x86-64-io-suffix.d: New. * gas/i386/i386.exp: Run new tests.
Diffstat (limited to 'gas')
-rw-r--r--gas/testsuite/ChangeLog7
-rw-r--r--gas/testsuite/gas/i386/i386.exp3
-rw-r--r--gas/testsuite/gas/i386/x86-64-io-intel.d28
-rw-r--r--gas/testsuite/gas/i386/x86-64-io-suffix.d28
-rw-r--r--gas/testsuite/gas/i386/x86-64-io.d27
-rw-r--r--gas/testsuite/gas/i386/x86-64-io.s16
6 files changed, 109 insertions, 0 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 725f910..3382153 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,5 +1,12 @@
2006-11-30 Jan Beulich <jbeulich@novell.com>
+ * gas/i386/x86-64-io.[sd]: New.
+ * gas/i386/x86-64-io-intel.d: New.
+ * gas/i386/x86-64-io-suffix.d: New.
+ * gas/i386/i386.exp: Run new tests.
+
+2006-11-30 Jan Beulich <jbeulich@novell.com>
+
* gas/i386/intel.s: Use Intel syntax in Intel syntax test.
* gas/i386/x86-64-cbw.[sd]: New.
* gas/i386/x86-64-cbw-intel.d: New.
diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp
index 699ad65..cdf3e14 100644
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -157,6 +157,9 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] t
run_dump_test "x86-64-rep-suffix"
run_dump_test "x86-64-cbw"
run_dump_test "x86-64-cbw-intel"
+ run_dump_test "x86-64-io"
+ run_dump_test "x86-64-io-intel"
+ run_dump_test "x86-64-io-suffix"
run_dump_test "x86-64-gidt"
run_dump_test "x86-64-nops"
if ![istarget "*-*-mingw64*"] then {
diff --git a/gas/testsuite/gas/i386/x86-64-io-intel.d b/gas/testsuite/gas/i386/x86-64-io-intel.d
new file mode 100644
index 0000000..a8787a0
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-io-intel.d
@@ -0,0 +1,28 @@
+#source: x86-64-io.s
+#objdump: -dwMintel
+#name: x86-64 rex64 in/out (Intel disassembly)
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+000 <_in>:
+ 0: 48 ed rex64 in eax,dx
+ 2: 66 data16
+ 3: 48 ed rex64 in eax,dx
+
+0+005 <_out>:
+ 5: 48 ef rex64 out dx,eax
+ 7: 66 data16
+ 8: 48 ef rex64 out dx,eax
+
+0+00a <_ins>:
+ a: 48 6d rex64 ins DWORD PTR es:\[rdi\],dx
+ c: 66 data16
+ d: 48 6d rex64 ins DWORD PTR es:\[rdi\],dx
+
+0+00f <_outs>:
+ f: 48 6f rex64 outs dx,DWORD PTR ds:\[rsi\]
+ 11: 66 data16
+ 12: 48 6f rex64 outs dx,DWORD PTR ds:\[rsi\]
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-io-suffix.d b/gas/testsuite/gas/i386/x86-64-io-suffix.d
new file mode 100644
index 0000000..f83b162
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-io-suffix.d
@@ -0,0 +1,28 @@
+#source: x86-64-io.s
+#objdump: -dwMsuffix
+#name: x86-64 rex64 in/out w/ suffix
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+000 <_in>:
+ 0: 48 ed rex64 inl \(%dx\),%eax
+ 2: 66 data16
+ 3: 48 ed rex64 inl \(%dx\),%eax
+
+0+005 <_out>:
+ 5: 48 ef rex64 outl %eax,\(%dx\)
+ 7: 66 data16
+ 8: 48 ef rex64 outl %eax,\(%dx\)
+
+0+00a <_ins>:
+ a: 48 6d rex64 insl \(%dx\),%es:\(%rdi\)
+ c: 66 data16
+ d: 48 6d rex64 insl \(%dx\),%es:\(%rdi\)
+
+0+00f <_outs>:
+ f: 48 6f rex64 outsl %ds:\(%rsi\),\(%dx\)
+ 11: 66 data16
+ 12: 48 6f rex64 outsl %ds:\(%rsi\),\(%dx\)
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-io.d b/gas/testsuite/gas/i386/x86-64-io.d
new file mode 100644
index 0000000..7158b75
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-io.d
@@ -0,0 +1,27 @@
+#objdump: -dw
+#name: x86-64 rex64 in/out
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+000 <_in>:
+ 0: 48 ed rex64 in \(%dx\),%eax
+ 2: 66 data16
+ 3: 48 ed rex64 in \(%dx\),%eax
+
+0+005 <_out>:
+ 5: 48 ef rex64 out %eax,\(%dx\)
+ 7: 66 data16
+ 8: 48 ef rex64 out %eax,\(%dx\)
+
+0+00a <_ins>:
+ a: 48 6d rex64 insl \(%dx\),%es:\(%rdi\)
+ c: 66 data16
+ d: 48 6d rex64 insl \(%dx\),%es:\(%rdi\)
+
+0+00f <_outs>:
+ f: 48 6f rex64 outsl %ds:\(%rsi\),\(%dx\)
+ 11: 66 data16
+ 12: 48 6f rex64 outsl %ds:\(%rsi\),\(%dx\)
+#pass \ No newline at end of file
diff --git a/gas/testsuite/gas/i386/x86-64-io.s b/gas/testsuite/gas/i386/x86-64-io.s
new file mode 100644
index 0000000..58200c8
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-io.s
@@ -0,0 +1,16 @@
+ .intel_syntax noprefix
+ .text
+_in:
+ rex64 in eax,dx
+ rex64 in ax,dx
+_out:
+ rex64 out dx,eax
+ rex64 out dx,ax
+_ins:
+ rex64 insd
+ rex64 insw
+_outs:
+ rex64 outsd
+ rex64 outsw
+
+ .p2align 4,0