diff options
author | Jan Beulich <jbeulich@novell.com> | 2006-12-01 15:00:12 +0000 |
---|---|---|
committer | Jan Beulich <jbeulich@novell.com> | 2006-12-01 15:00:12 +0000 |
commit | 52fd6d94163f6cf1a1fbda57ed4c34da53f726a4 (patch) | |
tree | acb75745c35a061eee8339548d570f6e46431810 /gas | |
parent | a35ca55aee929c1b59136d93a257f0b5dcad6186 (diff) | |
download | gdb-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/ChangeLog | 7 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/i386.exp | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-io-intel.d | 28 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-io-suffix.d | 28 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-io.d | 27 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-io.s | 16 |
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 |