diff options
author | Jan Beulich <jbeulich@novell.com> | 2005-07-05 07:16:54 +0000 |
---|---|---|
committer | Jan Beulich <jbeulich@novell.com> | 2005-07-05 07:16:54 +0000 |
commit | 3012383869aefee12175ab4c8f5028449b4be4e9 (patch) | |
tree | e3ba259a7225982198b73a306be5b3ab6c9209d1 /gas/testsuite | |
parent | b35d266b300fb3acd9e4a6190da4c3c5368ad734 (diff) | |
download | gdb-3012383869aefee12175ab4c8f5028449b4be4e9.zip gdb-3012383869aefee12175ab4c8f5028449b4be4e9.tar.gz gdb-3012383869aefee12175ab4c8f5028449b4be4e9.tar.bz2 |
gas/
2005-07-05 Jan Beulich <jbeulich@novell.com>
* config/tc-i386.h (CpuSVME): New.
(CpuUnknownFlags): Include CpuSVME.
* config/tc-i386.c (cpu_arch): Add .pacifica and .svme. Add opteron
as alias of sledgehammer.
(md_assemble): Include invlpga in the check for insns with two source
operands.
(process_operands): Include SVME insns in the check for ignored
segment overrides. Adjust diagnostic.
(i386_index_check): Special-case SVME insns with memory operands.
gas/testsuite/
2005-07-05 Jan Beulich <jbeulich@novell.com>
* gas/i386/svme.d: New.
* gas/i386/svme.s: New.
* gas/i386/svme64.d: New.
* gas/i386/i386.exp: Run new tests.
include/opcode/
2005-07-05 Jan Beulich <jbeulich@novell.com>
* i386.h (i386_optab): Add new insns.
opcodes/
2005-07-05 Jan Beulich <jbeulich@novell.com>
* i386-dis.c (SVME_Fixup): New.
(grps): Use it for the lidt entry.
(PNI_Fixup): Call OP_M rather than OP_E.
(INVLPG_Fixup): Likewise.
Diffstat (limited to 'gas/testsuite')
-rw-r--r-- | gas/testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/i386.exp | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/svme.d | 29 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/svme.s | 36 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/svme64.d | 41 |
5 files changed, 115 insertions, 0 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 05f1610..57fa47a 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2005-07-05 Jan Beulich <jbeulich@novell.com> + + * gas/i386/svme.d: New. + * gas/i386/svme.s: New. + * gas/i386/svme64.d: New. + * gas/i386/i386.exp: Run new tests. + 2005-07-04 Zack Weinberg <zack@codesourcery.com> * lib/gas-defs.exp (run_dump_tests): New proc. diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp index 34862a5..169d552 100644 --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -74,6 +74,7 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]] run_dump_test "padlock" run_dump_test "crx" run_list_test "cr-err" "" + run_dump_test "svme" # These tests require support for 8 and 16 bit relocs, # so we only run them for ELF and COFF targets. @@ -128,6 +129,7 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] t run_list_test "x86-64-segment" "-al" run_list_test "x86-64-inval-seg" "-al" run_dump_test "x86-64-branch" + run_dump_test "svme64" # For ELF targets verify that @unwind works. if { ([istarget "*-*-elf*"] || [istarget "*-*-linux*"] diff --git a/gas/testsuite/gas/i386/svme.d b/gas/testsuite/gas/i386/svme.d new file mode 100644 index 0000000..d7682a4 --- /dev/null +++ b/gas/testsuite/gas/i386/svme.d @@ -0,0 +1,29 @@ +#objdump: -dw +#name: 32-bit SVME + +.*: +file format .* + +Disassembly of section .text: + +0+000 <common>: +[ ]*[0-9a-f]+:[ ]+0f 01 dd[ ]+clgi[ ]* +[ ]*[0-9a-f]+:[ ]+0f 01 df[ ]+invlpga[ ]* +[ ]*[0-9a-f]+:[ ]+0f 01 de[ ]+skinit[ ]* +[ ]*[0-9a-f]+:[ ]+0f 01 dc[ ]+stgi[ ]* +[ ]*[0-9a-f]+:[ ]+0f 01 da[ ]+vmload[ ]* +[ ]*[0-9a-f]+:[ ]+0f 01 d9[ ]+vmmcall[ ]* +[ ]*[0-9a-f]+:[ ]+0f 01 d8[ ]+vmrun[ ]* +[ ]*[0-9a-f]+:[ ]+0f 01 db[ ]+vmsave[ ]* +[0-9a-f]+ <att32>: +[ ]*[0-9a-f]+:[ ]+0f 01 de[ ]+skinit[ ]* +[ ]*[0-9a-f]+:[ ]+0f 01 df[ ]+invlpga[ ]* +[ ]*[0-9a-f]+:[ ]+0f 01 da[ ]+vmload[ ]* +[ ]*[0-9a-f]+:[ ]+0f 01 d8[ ]+vmrun[ ]* +[ ]*[0-9a-f]+:[ ]+0f 01 db[ ]+vmsave[ ]* +[0-9a-f]+ <intel32>: +[ ]*[0-9a-f]+:[ ]+0f 01 de[ ]+skinit[ ]* +[ ]*[0-9a-f]+:[ ]+0f 01 df[ ]+invlpga[ ]* +[ ]*[0-9a-f]+:[ ]+0f 01 da[ ]+vmload[ ]* +[ ]*[0-9a-f]+:[ ]+0f 01 d8[ ]+vmrun[ ]* +[ ]*[0-9a-f]+:[ ]+0f 01 db[ ]+vmsave[ ]* +#pass diff --git a/gas/testsuite/gas/i386/svme.s b/gas/testsuite/gas/i386/svme.s new file mode 100644 index 0000000..1b7f234 --- /dev/null +++ b/gas/testsuite/gas/i386/svme.s @@ -0,0 +1,36 @@ + .text +common: + clgi + invlpga + skinit + stgi + vmload + vmmcall + vmrun + vmsave + +.macro do_args arg1, arg2 + invlpga \arg1, \arg2 + vmload \arg1 + vmrun \arg1 + vmsave \arg1 +.endm + +.ifdef __amd64__ +att64: + do_args (%rax), %ecx +.endif +att32: + skinit (%eax) + do_args (%eax), %ecx + +.intel_syntax noprefix +.ifdef __amd64__ +intel64: + do_args [rax], ecx +.endif +intel32: + skinit [eax] + do_args [eax], ecx + + .p2align 4,0 diff --git a/gas/testsuite/gas/i386/svme64.d b/gas/testsuite/gas/i386/svme64.d new file mode 100644 index 0000000..876d439 --- /dev/null +++ b/gas/testsuite/gas/i386/svme64.d @@ -0,0 +1,41 @@ +#as: --defsym __amd64__=1 +#objdump: -dw +#name: 64-bit SVME +#source: svme.s + +.*: +file format .* + +Disassembly of section .text: + +0+000 <common>: +[ ]*[0-9a-f]+:[ ]+0f 01 dd[ ]+clgi[ ]* +[ ]*[0-9a-f]+:[ ]+0f 01 df[ ]+invlpga[ ]* +[ ]*[0-9a-f]+:[ ]+0f 01 de[ ]+skinit[ ]* +[ ]*[0-9a-f]+:[ ]+0f 01 dc[ ]+stgi[ ]* +[ ]*[0-9a-f]+:[ ]+0f 01 da[ ]+vmload[ ]* +[ ]*[0-9a-f]+:[ ]+0f 01 d9[ ]+vmmcall[ ]* +[ ]*[0-9a-f]+:[ ]+0f 01 d8[ ]+vmrun[ ]* +[ ]*[0-9a-f]+:[ ]+0f 01 db[ ]+vmsave[ ]* +[0-9a-f]+ <att64>: +[ ]*[0-9a-f]+:[ ]+0f 01 df[ ]+invlpga[ ]* +[ ]*[0-9a-f]+:[ ]+0f 01 da[ ]+vmload[ ]* +[ ]*[0-9a-f]+:[ ]+0f 01 d8[ ]+vmrun[ ]* +[ ]*[0-9a-f]+:[ ]+0f 01 db[ ]+vmsave[ ]* +[0-9a-f]+ <att32>: +[ ]*[0-9a-f]+:[ ]+0f 01 de[ ]+skinit[ ]* +[ ]*[0-9a-f]+:[ ]+67 0f 01 df[ ]+(addr32 )?invlpga[ ]*\(%eax\),[ ]*%ecx +[ ]*[0-9a-f]+:[ ]+67 0f 01 da[ ]+(addr32 )?vmload[ ]*\(%eax\) +[ ]*[0-9a-f]+:[ ]+67 0f 01 d8[ ]+(addr32 )?vmrun[ ]*\(%eax\) +[ ]*[0-9a-f]+:[ ]+67 0f 01 db[ ]+(addr32 )?vmsave[ ]*\(%eax\) +[0-9a-f]+ <intel64>: +[ ]*[0-9a-f]+:[ ]+0f 01 df[ ]+invlpga[ ]* +[ ]*[0-9a-f]+:[ ]+0f 01 da[ ]+vmload[ ]* +[ ]*[0-9a-f]+:[ ]+0f 01 d8[ ]+vmrun[ ]* +[ ]*[0-9a-f]+:[ ]+0f 01 db[ ]+vmsave[ ]* +[0-9a-f]+ <intel32>: +[ ]*[0-9a-f]+:[ ]+0f 01 de[ ]+skinit[ ]* +[ ]*[0-9a-f]+:[ ]+67 0f 01 df[ ]+(addr32 )?invlpga[ ]*\(%eax\),[ ]*%ecx +[ ]*[0-9a-f]+:[ ]+67 0f 01 da[ ]+(addr32 )?vmload[ ]*\(%eax\) +[ ]*[0-9a-f]+:[ ]+67 0f 01 d8[ ]+(addr32 )?vmrun[ ]*\(%eax\) +[ ]*[0-9a-f]+:[ ]+67 0f 01 db[ ]+(addr32 )?vmsave[ ]*\(%eax\) +#pass |