summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl@lucon.org>2008-02-12 05:35:36 +0000
committerH.J. Lu <hjl@lucon.org>2008-02-12 05:35:36 +0000
commitf8144bc60440a16093a375865fbd06d895280c67 (patch)
tree2a2dd75d1fe696b8a35ffe1842729c0c300cc7af
parent28d325bb0cb6ae2bd4f1886f053de2f9df2dd8d4 (diff)
downloadbinutils-redhat-f8144bc60440a16093a375865fbd06d895280c67.tar.gz
gas/
2008-02-11 H.J. Lu <hongjiu.lu@intel.com> * config/tc-i386.c (cpu_arch): Add .xsave. (md_show_usage): Add .xsave. * doc/c-i386.texi: Add xsave to -march=. gas/testsuite/ 2008-02-11 H.J. Lu <hongjiu.lu@intel.com> * gas/i386/arch-10.s: Add xgetbv. * gas/i386/arch-10.d: Updated. * gas/i386/arch-10-1.l: Likewise. * gas/i386/arch-10-2.l: Likewise. * gas/i386/arch-10-3.l: Likewise. * gas/i386/arch-10-4.l: Likewise. * gas/i386/x86-64-arch-10.d: Likewise. opcodes/ 2008-02-11 H.J. Lu <hongjiu.lu@intel.com> * i386-gen.c (cpu_flag_init): Add CPU_XSAVE_FLAGS. * i386-init.h: Updated.
-rw-r--r--gas/ChangeLog7
-rw-r--r--gas/config/tc-i386.c6
-rw-r--r--gas/doc/c-i386.texi1
-rw-r--r--gas/testsuite/ChangeLog11
-rw-r--r--gas/testsuite/gas/i386/arch-10-1.l31
-rw-r--r--gas/testsuite/gas/i386/arch-10-2.l31
-rw-r--r--gas/testsuite/gas/i386/arch-10-3.l31
-rw-r--r--gas/testsuite/gas/i386/arch-10-4.l31
-rw-r--r--gas/testsuite/gas/i386/arch-10.d3
-rw-r--r--gas/testsuite/gas/i386/arch-10.s2
-rw-r--r--gas/testsuite/gas/i386/x86-64-arch-10.d3
-rw-r--r--opcodes/ChangeLog5
-rw-r--r--opcodes/i386-gen.c2
-rw-r--r--opcodes/i386-init.h4
14 files changed, 108 insertions, 60 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 1286b3a524..c55b1928d6 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,10 @@
+2008-02-11 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/tc-i386.c (cpu_arch): Add .xsave.
+ (md_show_usage): Add .xsave.
+
+ * doc/c-i386.texi: Add xsave to -march=.
+
2008-02-07 Alan Modra <amodra@bigpond.net.au>
* read.c (s_weakref): Don't pass unadorned NULL to concat.
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index c68fde75a4..2170aed787 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -623,6 +623,8 @@ static const arch_entry cpu_arch[] =
CPU_VMX_FLAGS },
{ ".smx", PROCESSOR_UNKNOWN,
CPU_SMX_FLAGS },
+ { ".xsave", PROCESSOR_UNKNOWN,
+ CPU_XSAVE_FLAGS },
{ ".3dnow", PROCESSOR_UNKNOWN,
CPU_3DNOW_FLAGS },
{ ".3dnowa", PROCESSOR_UNKNOWN,
@@ -7408,8 +7410,8 @@ md_show_usage (stream)
generic32, generic64\n\
EXTENSION is combination of:\n\
mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, sse4,\n\
- vmx, smx, 3dnow, 3dnowa, sse4a, sse5, svme, abm,\n\
- padlock\n"));
+ vmx, smx, xsave, 3dnow, 3dnowa, sse4a, sse5, svme,\n\
+ abm, padlock\n"));
fprintf (stream, _("\
-mtune=CPU optimize for CPU, CPU is one of:\n\
i8086, i186, i286, i386, i486, pentium, pentiumpro,\n\
diff --git a/gas/doc/c-i386.texi b/gas/doc/c-i386.texi
index 721d857f65..838d72e0d7 100644
--- a/gas/doc/c-i386.texi
+++ b/gas/doc/c-i386.texi
@@ -122,6 +122,7 @@ accept various extension mnemonics. For example,
@code{sse4},
@code{vmx},
@code{smx},
+@code{xsave},
@code{3dnow},
@code{3dnowa},
@code{sse4a},
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index a24e8bc0d2..dde198707e 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,14 @@
+2008-02-11 H.J. Lu <hongjiu.lu@intel.com>
+
+ * gas/i386/arch-10.s: Add xgetbv.
+
+ * gas/i386/arch-10.d: Updated.
+ * gas/i386/arch-10-1.l: Likewise.
+ * gas/i386/arch-10-2.l: Likewise.
+ * gas/i386/arch-10-3.l: Likewise.
+ * gas/i386/arch-10-4.l: Likewise.
+ * gas/i386/x86-64-arch-10.d: Likewise.
+
2002-02-11 H.J. Lu <hongjiu.lu@intel.com>
* gas/i386/i386.exp: Run xsave, xsave-intel, x86-64-xsave
diff --git a/gas/testsuite/gas/i386/arch-10-1.l b/gas/testsuite/gas/i386/arch-10-1.l
index c5fc40e829..8feaf904a6 100644
--- a/gas/testsuite/gas/i386/arch-10-1.l
+++ b/gas/testsuite/gas/i386/arch-10-1.l
@@ -16,6 +16,7 @@
.*:32: Error: .*
.*:34: Error: .*
.*:36: Error: .*
+.*:38: Error: .*
GAS LISTING .*
@@ -42,17 +43,19 @@ GAS LISTING .*
[ ]*20[ ]+vmxoff
[ ]*21[ ]+\# SMX
[ ]*22[ ]+getsec
-[ ]*23[ ]+\# 3DNow
-[ ]*24[ ]+pmulhrw %mm4,%mm3
-[ ]*25[ ]+\# 3DNow Extensions
-[ ]*26[ ]+pswapd %mm4,%mm3
-[ ]*27[ ]+\# SSE4a
-[ ]*28[ ]+insertq %xmm2,%xmm1
-[ ]*29[ ]+\# SVME
-[ ]*30[ ]+vmload
-[ ]*31[ ]+\# ABM
-[ ]*32[ ]+lzcnt %ecx,%ebx
-[ ]*33[ ]+\# SSE5
-[ ]*34[ ]+frczss %xmm2, %xmm1
-[ ]*35[ ]+\# PadLock
-[ ]*36[ ]+xstorerng
+[ ]*23[ ]+\# Xsave
+[ ]*24[ ]+xgetbv
+[ ]*25[ ]+\# 3DNow
+[ ]*26[ ]+pmulhrw %mm4,%mm3
+[ ]*27[ ]+\# 3DNow Extensions
+[ ]*28[ ]+pswapd %mm4,%mm3
+[ ]*29[ ]+\# SSE4a
+[ ]*30[ ]+insertq %xmm2,%xmm1
+[ ]*31[ ]+\# SVME
+[ ]*32[ ]+vmload
+[ ]*33[ ]+\# ABM
+[ ]*34[ ]+lzcnt %ecx,%ebx
+[ ]*35[ ]+\# SSE5
+[ ]*36[ ]+frczss %xmm2, %xmm1
+[ ]*37[ ]+\# PadLock
+[ ]*38[ ]+xstorerng
diff --git a/gas/testsuite/gas/i386/arch-10-2.l b/gas/testsuite/gas/i386/arch-10-2.l
index 5c174dd8ad..430b0c2094 100644
--- a/gas/testsuite/gas/i386/arch-10-2.l
+++ b/gas/testsuite/gas/i386/arch-10-2.l
@@ -15,6 +15,7 @@
.*:32: Error: .*
.*:34: Error: .*
.*:36: Error: .*
+.*:38: Error: .*
GAS LISTING .*
@@ -41,17 +42,19 @@ GAS LISTING .*
[ ]*20[ ]+vmxoff
[ ]*21[ ]+\# SMX
[ ]*22[ ]+getsec
-[ ]*23[ ]+\# 3DNow
-[ ]*24[ ]+pmulhrw %mm4,%mm3
-[ ]*25[ ]+\# 3DNow Extensions
-[ ]*26[ ]+pswapd %mm4,%mm3
-[ ]*27[ ]+\# SSE4a
-[ ]*28[ ]+insertq %xmm2,%xmm1
-[ ]*29[ ]+\# SVME
-[ ]*30[ ]+vmload
-[ ]*31[ ]+\# ABM
-[ ]*32[ ]+lzcnt %ecx,%ebx
-[ ]*33[ ]+\# SSE5
-[ ]*34[ ]+frczss %xmm2, %xmm1
-[ ]*35[ ]+\# PadLock
-[ ]*36[ ]+xstorerng
+[ ]*23[ ]+\# Xsave
+[ ]*24[ ]+xgetbv
+[ ]*25[ ]+\# 3DNow
+[ ]*26[ ]+pmulhrw %mm4,%mm3
+[ ]*27[ ]+\# 3DNow Extensions
+[ ]*28[ ]+pswapd %mm4,%mm3
+[ ]*29[ ]+\# SSE4a
+[ ]*30[ ]+insertq %xmm2,%xmm1
+[ ]*31[ ]+\# SVME
+[ ]*32[ ]+vmload
+[ ]*33[ ]+\# ABM
+[ ]*34[ ]+lzcnt %ecx,%ebx
+[ ]*35[ ]+\# SSE5
+[ ]*36[ ]+frczss %xmm2, %xmm1
+[ ]*37[ ]+\# PadLock
+[ ]*38[ ]+xstorerng
diff --git a/gas/testsuite/gas/i386/arch-10-3.l b/gas/testsuite/gas/i386/arch-10-3.l
index e628e8b257..f7320e50b3 100644
--- a/gas/testsuite/gas/i386/arch-10-3.l
+++ b/gas/testsuite/gas/i386/arch-10-3.l
@@ -8,6 +8,7 @@
.*:32: Error: .*
.*:34: Error: .*
.*:36: Error: .*
+.*:38: Error: .*
GAS LISTING .*
@@ -37,17 +38,19 @@ GAS LISTING .*
[ ]*20[ ]+vmxoff
[ ]*21[ ]+\# SMX
[ ]*22[ ]+getsec
-[ ]*23[ ]+\# 3DNow
-[ ]*24[ ]+pmulhrw %mm4,%mm3
-[ ]*25[ ]+\# 3DNow Extensions
-[ ]*26[ ]+pswapd %mm4,%mm3
-[ ]*27[ ]+\# SSE4a
-[ ]*28[ ]+insertq %xmm2,%xmm1
-[ ]*29[ ]+\# SVME
-[ ]*30[ ]+vmload
-[ ]*31[ ]+\# ABM
-[ ]*32[ ]+lzcnt %ecx,%ebx
-[ ]*33[ ]+\# SSE5
-[ ]*34[ ]+frczss %xmm2, %xmm1
-[ ]*35[ ]+\# PadLock
-[ ]*36[ ]+xstorerng
+[ ]*23[ ]+\# Xsave
+[ ]*24[ ]+xgetbv
+[ ]*25[ ]+\# 3DNow
+[ ]*26[ ]+pmulhrw %mm4,%mm3
+[ ]*27[ ]+\# 3DNow Extensions
+[ ]*28[ ]+pswapd %mm4,%mm3
+[ ]*29[ ]+\# SSE4a
+[ ]*30[ ]+insertq %xmm2,%xmm1
+[ ]*31[ ]+\# SVME
+[ ]*32[ ]+vmload
+[ ]*33[ ]+\# ABM
+[ ]*34[ ]+lzcnt %ecx,%ebx
+[ ]*35[ ]+\# SSE5
+[ ]*36[ ]+frczss %xmm2, %xmm1
+[ ]*37[ ]+\# PadLock
+[ ]*38[ ]+xstorerng
diff --git a/gas/testsuite/gas/i386/arch-10-4.l b/gas/testsuite/gas/i386/arch-10-4.l
index 670f8e7035..3cda861ea5 100644
--- a/gas/testsuite/gas/i386/arch-10-4.l
+++ b/gas/testsuite/gas/i386/arch-10-4.l
@@ -6,6 +6,7 @@
.*:32: Error: .*
.*:34: Error: .*
.*:36: Error: .*
+.*:38: Error: .*
GAS LISTING .*
@@ -35,17 +36,19 @@ GAS LISTING .*
[ ]*20[ ]+\?\?\?\? 0F01C4 vmxoff
[ ]*21[ ]+\# SMX
[ ]*22[ ]+\?\?\?\? 0F37 getsec
-[ ]*23[ ]+\# 3DNow
-[ ]*24[ ]+pmulhrw %mm4,%mm3
-[ ]*25[ ]+\# 3DNow Extensions
-[ ]*26[ ]+pswapd %mm4,%mm3
-[ ]*27[ ]+\# SSE4a
-[ ]*28[ ]+insertq %xmm2,%xmm1
-[ ]*29[ ]+\# SVME
-[ ]*30[ ]+vmload
-[ ]*31[ ]+\# ABM
-[ ]*32[ ]+lzcnt %ecx,%ebx
-[ ]*33[ ]+\# SSE5
-[ ]*34[ ]+frczss %xmm2, %xmm1
-[ ]*35[ ]+\# PadLock
-[ ]*36[ ]+xstorerng
+[ ]*23[ ]+\# Xsave
+[ ]*24[ ]+xgetbv
+[ ]*25[ ]+\# 3DNow
+[ ]*26[ ]+pmulhrw %mm4,%mm3
+[ ]*27[ ]+\# 3DNow Extensions
+[ ]*28[ ]+pswapd %mm4,%mm3
+[ ]*29[ ]+\# SSE4a
+[ ]*30[ ]+insertq %xmm2,%xmm1
+[ ]*31[ ]+\# SVME
+[ ]*32[ ]+vmload
+[ ]*33[ ]+\# ABM
+[ ]*34[ ]+lzcnt %ecx,%ebx
+[ ]*35[ ]+\# SSE5
+[ ]*36[ ]+frczss %xmm2, %xmm1
+[ ]*37[ ]+\# PadLock
+[ ]*38[ ]+xstorerng
diff --git a/gas/testsuite/gas/i386/arch-10.d b/gas/testsuite/gas/i386/arch-10.d
index c089b76d7a..81e659895f 100644
--- a/gas/testsuite/gas/i386/arch-10.d
+++ b/gas/testsuite/gas/i386/arch-10.d
@@ -1,4 +1,4 @@
-#as: -march=i686+sse4+vmx+smx+sse5+3dnowa+svme+padlock
+#as: -march=i686+sse4+vmx+smx+xsave+sse5+3dnowa+svme+padlock
#objdump: -dw
#name: i386 arch 10
@@ -17,6 +17,7 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32l %ecx,%ebx
[ ]*[a-f0-9]+: 0f 01 c4 vmxoff
[ ]*[a-f0-9]+: 0f 37 getsec
+[ ]*[a-f0-9]+: 0f 01 d0 xgetbv
[ ]*[a-f0-9]+: 0f 0f dc b7 pmulhrw %mm4,%mm3
[ ]*[a-f0-9]+: 0f 0f dc bb pswapd %mm4,%mm3
[ ]*[a-f0-9]+: f2 0f 79 ca insertq %xmm2,%xmm1
diff --git a/gas/testsuite/gas/i386/arch-10.s b/gas/testsuite/gas/i386/arch-10.s
index 97478ed0d5..e5e799d584 100644
--- a/gas/testsuite/gas/i386/arch-10.s
+++ b/gas/testsuite/gas/i386/arch-10.s
@@ -20,6 +20,8 @@ crc32 %ecx,%ebx
vmxoff
# SMX
getsec
+# Xsave
+xgetbv
# 3DNow
pmulhrw %mm4,%mm3
# 3DNow Extensions
diff --git a/gas/testsuite/gas/i386/x86-64-arch-10.d b/gas/testsuite/gas/i386/x86-64-arch-10.d
index 1e1a31e720..dd4689d06a 100644
--- a/gas/testsuite/gas/i386/x86-64-arch-10.d
+++ b/gas/testsuite/gas/i386/x86-64-arch-10.d
@@ -1,5 +1,5 @@
#source: arch-10.s
-#as: -march=generic64+sse4+vmx+smx+sse5+3dnowa+svme+padlock
+#as: -march=generic64+sse4+vmx+smx+xsave+sse5+3dnowa+svme+padlock
#objdump: -dw
#name: x86-64 arch 10
@@ -18,6 +18,7 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32l %ecx,%ebx
[ ]*[a-f0-9]+: 0f 01 c4 vmxoff
[ ]*[a-f0-9]+: 0f 37 getsec
+[ ]*[a-f0-9]+: 0f 01 d0 xgetbv
[ ]*[a-f0-9]+: 0f 0f dc b7 pmulhrw %mm4,%mm3
[ ]*[a-f0-9]+: 0f 0f dc bb pswapd %mm4,%mm3
[ ]*[a-f0-9]+: f2 0f 79 ca insertq %xmm2,%xmm1
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 69a13a6a4b..1477e8cfbc 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,5 +1,10 @@
2008-02-11 H.J. Lu <hongjiu.lu@intel.com>
+ * i386-gen.c (cpu_flag_init): Add CPU_XSAVE_FLAGS.
+ * i386-init.h: Updated.
+
+2008-02-11 H.J. Lu <hongjiu.lu@intel.com>
+
* i386-gen.c (cpu_flags): Add CpuXsave.
* i386-opc.h (CpuXsave): New.
diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c
index d4acab1f5a..269759b8b3 100644
--- a/opcodes/i386-gen.c
+++ b/opcodes/i386-gen.c
@@ -100,6 +100,8 @@ static initializer cpu_flag_init [] =
"CpuVMX" },
{ "CPU_SMX_FLAGS",
"CpuSMX" },
+ { "CPU_XSAVE_FLAGS",
+ "CpuXsave" },
{ "CPU_3DNOW_FLAGS",
"CpuMMX|Cpu3dnow" },
{ "CPU_3DNOWA_FLAGS",
diff --git a/opcodes/i386-init.h b/opcodes/i386-init.h
index e338099937..831f7f843c 100644
--- a/opcodes/i386-init.h
+++ b/opcodes/i386-init.h
@@ -138,6 +138,10 @@
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+#define CPU_XSAVE_FLAGS \
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } }
+
#define CPU_3DNOW_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }