This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
PATCH: Add xsave to -march=
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: binutils at sources dot redhat dot com
- Date: Mon, 11 Feb 2008 20:14:12 -0800
- Subject: PATCH: Add xsave to -march=
I am checking this patch to add xsave to -march=
H.J.
----
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.
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.
--- binutils/gas/config/tc-i386.c.xsave 2008-02-08 05:46:40.000000000 -0800
+++ binutils/gas/config/tc-i386.c 2008-02-11 19:44:46.000000000 -0800
@@ -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\
--- binutils/gas/doc/c-i386.texi.xsave 2008-01-22 12:28:57.000000000 -0800
+++ binutils/gas/doc/c-i386.texi 2008-02-11 19:42:29.000000000 -0800
@@ -122,6 +122,7 @@ accept various extension mnemonics. For
@code{sse4},
@code{vmx},
@code{smx},
+@code{xsave},
@code{3dnow},
@code{3dnowa},
@code{sse4a},
--- binutils/gas/testsuite/gas/i386/arch-10-1.l.xsave 2008-01-22 11:16:44.000000000 -0800
+++ binutils/gas/testsuite/gas/i386/arch-10-1.l 2008-02-11 19:55:54.000000000 -0800
@@ -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
--- binutils/gas/testsuite/gas/i386/arch-10-2.l.xsave 2008-01-22 11:16:45.000000000 -0800
+++ binutils/gas/testsuite/gas/i386/arch-10-2.l 2008-02-11 19:56:15.000000000 -0800
@@ -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
--- binutils/gas/testsuite/gas/i386/arch-10-3.l.xsave 2008-01-22 11:16:45.000000000 -0800
+++ binutils/gas/testsuite/gas/i386/arch-10-3.l 2008-02-11 19:56:27.000000000 -0800
@@ -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
--- binutils/gas/testsuite/gas/i386/arch-10-4.l.xsave 2008-01-22 11:16:45.000000000 -0800
+++ binutils/gas/testsuite/gas/i386/arch-10-4.l 2008-02-11 19:56:39.000000000 -0800
@@ -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
--- binutils/gas/testsuite/gas/i386/arch-10.d.xsave 2008-01-22 11:16:45.000000000 -0800
+++ binutils/gas/testsuite/gas/i386/arch-10.d 2008-02-11 19:59:26.000000000 -0800
@@ -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
--- binutils/gas/testsuite/gas/i386/arch-10.s.xsave 2008-01-22 11:16:45.000000000 -0800
+++ binutils/gas/testsuite/gas/i386/arch-10.s 2008-02-11 19:43:12.000000000 -0800
@@ -20,6 +20,8 @@ crc32 %ecx,%ebx
vmxoff
# SMX
getsec
+# Xsave
+xgetbv
# 3DNow
pmulhrw %mm4,%mm3
# 3DNow Extensions
--- binutils/gas/testsuite/gas/i386/x86-64-arch-10.d.xsave 2008-01-23 11:05:12.000000000 -0800
+++ binutils/gas/testsuite/gas/i386/x86-64-arch-10.d 2008-02-11 20:03:44.000000000 -0800
@@ -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
--- binutils/opcodes/i386-gen.c.xsave 2008-02-11 19:03:26.000000000 -0800
+++ binutils/opcodes/i386-gen.c 2008-02-11 19:45:14.000000000 -0800
@@ -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",
--- binutils/opcodes/i386-init.h.xsave 2008-02-11 19:03:26.000000000 -0800
+++ binutils/opcodes/i386-init.h 2008-02-11 19:45:49.000000000 -0800
@@ -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 } }