aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2005-07-15 13:49:53 +0000
committerH.J. Lu <hjl.tools@gmail.com>2005-07-15 13:49:53 +0000
commit90700ea20faa973207ec0c5351ba73fbd7d38908 (patch)
treeda6189e06fa8b2707a52dc507e9404c8c138b50c /gas
parent5e797c2c670d8fe04e417043214c0a1843a18aa3 (diff)
downloadgdb-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/ChangeLog5
-rw-r--r--gas/config/tc-i386.h3
-rw-r--r--gas/testsuite/ChangeLog9
-rw-r--r--gas/testsuite/gas/i386/i386.exp2
-rw-r--r--gas/testsuite/gas/i386/vmx.d25
-rw-r--r--gas/testsuite/gas/i386/vmx.s21
-rw-r--r--gas/testsuite/gas/i386/x86-64-vmx.d25
-rw-r--r--gas/testsuite/gas/i386/x86-64-vmx.s21
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