diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2005-07-15 13:49:53 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2005-07-15 13:49:53 +0000 |
commit | 90700ea20faa973207ec0c5351ba73fbd7d38908 (patch) | |
tree | da6189e06fa8b2707a52dc507e9404c8c138b50c /gas | |
parent | 5e797c2c670d8fe04e417043214c0a1843a18aa3 (diff) | |
download | gdb-90700ea20faa973207ec0c5351ba73fbd7d38908.zip gdb-90700ea20faa973207ec0c5351ba73fbd7d38908.tar.gz gdb-90700ea20faa973207ec0c5351ba73fbd7d38908.tar.bz2 |
gas/
2007-07-15 H.J. Lu <hongjiu.lu@intel.com>
* gas/config/tc-i386.h (CpuVMX): New.
(CpuUnknownFlags): Add CpuVMX.
gas/testsuite/
2007-07-15 H.J. Lu <hongjiu.lu@intel.com>
* gas/i386/i386.exp: Add vmx and x86-64-vmx.
* gas/i386/vmx.d: New file.
* gas/i386/vmx.s: Likewise.
* gas/i386/x86-64-vmx.d: Likewise.
* gas/i386/x86-64-vmx.s: Likewise.
include/opcode/
2007-07-15 H.J. Lu <hongjiu.lu@intel.com>
* i386.h (i386_optab): Support Intel VMX Instructions.
opcodes/
2007-07-15 H.J. Lu <hongjiu.lu@intel.com>
* i386-dis.c (OP_VMX): New. Handle Intel VMX Instructions.
(VMX_Fixup): New. Fix up Intel VMX Instructions.
(Em): New.
(Gm): New.
(VM): New.
(dis386_twobyte): Updated entries 0x78 and 0x79.
(twobyte_has_modrm): Likewise.
(grps): Use OP_VMX in the "sgdtIQ" entry. Updated GRP9.
(OP_G): Handle m_mode.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-i386.h | 3 | ||||
-rw-r--r-- | gas/testsuite/ChangeLog | 9 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/i386.exp | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/vmx.d | 25 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/vmx.s | 21 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-vmx.d | 25 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-vmx.s | 21 |
8 files changed, 110 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index f766ff3..58f0822 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2007-07-15 H.J. Lu <hongjiu.lu@intel.com> + + * gas/config/tc-i386.h (CpuVMX): New. + (CpuUnknownFlags): Add CpuVMX. + 2005-07-14 Jim Blandy <jimb@redhat.com> Add support for the Renesas M32C. diff --git a/gas/config/tc-i386.h b/gas/config/tc-i386.h index b10e887..4acf3c1 100644 --- a/gas/config/tc-i386.h +++ b/gas/config/tc-i386.h @@ -184,6 +184,7 @@ typedef struct #define CpuPNI CpuSSE3 /* Prescott New Instructions required */ #define CpuPadLock 0x40000 /* VIA PadLock required */ #define CpuSVME 0x80000 /* AMD Secure Virtual Machine Ext-s required */ +#define CpuVMX 0x100000 /* VMX Instructions required */ /* These flags are set by gas depending on the flag_code. */ #define Cpu64 0x4000000 /* 64bit support required */ @@ -191,7 +192,7 @@ typedef struct /* The default value for unknown CPUs - enable all features to avoid problems. */ #define CpuUnknownFlags (Cpu086|Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686 \ - |CpuP4|CpuSledgehammer|CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuPNI \ + |CpuP4|CpuSledgehammer|CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuPNI|CpuVMX \ |Cpu3dnow|Cpu3dnowA|CpuK6|CpuAthlon|CpuPadLock|CpuSVME) /* the bits in opcode_modifier are used to generate the final opcode from diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 1cb58c9..5af722a 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2007-07-15 H.J. Lu <hongjiu.lu@intel.com> + + * gas/i386/i386.exp: Add vmx and x86-64-vmx. + + * gas/i386/vmx.d: New file. + * gas/i386/vmx.s: Likewise. + * gas/i386/x86-64-vmx.d: Likewise. + * gas/i386/x86-64-vmx.s: Likewise. + 2005-07-14 Nick Clifton <nickc@redhat.com> PR 1063 diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp index 169d552..851f698 100644 --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -60,6 +60,7 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]] run_dump_test "sub" run_dump_test "prescott" run_dump_test "sib" + run_dump_test "vmx" if {![istarget "*-*-aix*"] && (![is_elf_format] || [istarget "*-*-linux*"] @@ -130,6 +131,7 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] t run_list_test "x86-64-inval-seg" "-al" run_dump_test "x86-64-branch" run_dump_test "svme64" + run_dump_test "x86-64-vmx" # For ELF targets verify that @unwind works. if { ([istarget "*-*-elf*"] || [istarget "*-*-linux*"] diff --git a/gas/testsuite/gas/i386/vmx.d b/gas/testsuite/gas/i386/vmx.d new file mode 100644 index 0000000..334702d9 --- /dev/null +++ b/gas/testsuite/gas/i386/vmx.d @@ -0,0 +1,25 @@ +#objdump: -dw +#name: i386 VMX + +.*: +file format .* + +Disassembly of section .text: + +0+000 <foo>: + 0: 0f 01 c1 [ ]*vmcall + 3: 0f 01 c2 [ ]*vmlaunch + 6: 0f 01 c3 [ ]*vmresume + 9: 0f 01 c4 [ ]*vmxoff + c: 66 0f c7 30 [ ]*vmclear \(%eax\) + 10: 0f c7 30 [ ]*vmptrld \(%eax\) + 13: 0f c7 38 [ ]*vmptrst \(%eax\) + 16: f3 0f c7 30 [ ]*vmxon \(%eax\) + 1a: 0f 78 c3 [ ]*vmread %eax,%ebx + 1d: 0f 78 c3 [ ]*vmread %eax,%ebx + 20: 0f 78 03 [ ]*vmread %eax,\(%ebx\) + 23: 0f 78 03 [ ]*vmread %eax,\(%ebx\) + 26: 0f 79 d8 [ ]*vmwrite %eax,%ebx + 29: 0f 79 d8 [ ]*vmwrite %eax,%ebx + 2c: 0f 79 18 [ ]*vmwrite \(%eax\),%ebx + 2f: 0f 79 18 [ ]*vmwrite \(%eax\),%ebx + ... diff --git a/gas/testsuite/gas/i386/vmx.s b/gas/testsuite/gas/i386/vmx.s new file mode 100644 index 0000000..9f52b3f --- /dev/null +++ b/gas/testsuite/gas/i386/vmx.s @@ -0,0 +1,21 @@ +# VMX Instructions + + .text +foo: + vmcall + vmlaunch + vmresume + vmxoff + vmclear (%eax) + vmptrld (%eax) + vmptrst (%eax) + vmxon (%eax) + vmread %eax,%ebx + vmreadl %eax,%ebx + vmread %eax,(%ebx) + vmreadl %eax,(%ebx) + vmwrite %eax,%ebx + vmwritel %eax,%ebx + vmwrite (%eax),%ebx + vmwritel (%eax),%ebx + .p2align 4,0 diff --git a/gas/testsuite/gas/i386/x86-64-vmx.d b/gas/testsuite/gas/i386/x86-64-vmx.d new file mode 100644 index 0000000..201dc05 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-vmx.d @@ -0,0 +1,25 @@ +#objdump: -dw +#name: 64bit VMX + +.*: +file format .* + +Disassembly of section .text: + +0+000 <foo>: + 0: 0f 01 c1 [ ]*vmcall + 3: 0f 01 c2 [ ]*vmlaunch + 6: 0f 01 c3 [ ]*vmresume + 9: 0f 01 c4 [ ]*vmxoff + c: 66 0f c7 30 [ ]*vmclear \(%rax\) + 10: 0f c7 30 [ ]*vmptrld \(%rax\) + 13: 0f c7 38 [ ]*vmptrst \(%rax\) + 16: f3 0f c7 30 [ ]*vmxon \(%rax\) + 1a: 0f 78 c3 [ ]*vmread %rax,%rbx + 1d: 0f 78 c3 [ ]*vmread %rax,%rbx + 20: 0f 78 03 [ ]*vmread %rax,\(%rbx\) + 23: 0f 78 03 [ ]*vmread %rax,\(%rbx\) + 26: 0f 79 d8 [ ]*vmwrite %rax,%rbx + 29: 0f 79 d8 [ ]*vmwrite %rax,%rbx + 2c: 0f 79 18 [ ]*vmwrite \(%rax\),%rbx + 2f: 0f 79 18 [ ]*vmwrite \(%rax\),%rbx + ... diff --git a/gas/testsuite/gas/i386/x86-64-vmx.s b/gas/testsuite/gas/i386/x86-64-vmx.s new file mode 100644 index 0000000..7c40181 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-vmx.s @@ -0,0 +1,21 @@ +# VMX Instructions + + .text +foo: + vmcall + vmlaunch + vmresume + vmxoff + vmclear (%rax) + vmptrld (%rax) + vmptrst (%rax) + vmxon (%rax) + vmread %rax,%rbx + vmreadq %rax,%rbx + vmread %rax,(%rbx) + vmreadq %rax,(%rbx) + vmwrite %rax,%rbx + vmwriteq %rax,%rbx + vmwrite (%rax),%rbx + vmwriteq (%rax),%rbx + .p2align 4,0 |