PATCH: Fix -march=generic64

H.J. Lu hjl.tools@gmail.com
Thu Jan 24 23:20:00 GMT 2008


I am checking this patch to add CpuLM to CPU_GENERIC64_FLAGS so
that -march=generic64 will work.


H.J.
---
gas/

2008-01-23  H.J. Lu  <hongjiu.lu@intel.com>

	* config/tc-i386.c (md_show_usage): Replace tabs with spaces.

gas/testsuite/

2008-01-23  H.J. Lu  <hongjiu.lu@intel.com>

	* gas/i386/i386.exp : Run x86-64-arch-1 and x86-64-arch-10.

	* gas/i386/x86-64-arch-1.d: New.
	* gas/i386/x86-64-arch-1.s: Likewise.
	* gas/i386/x86-64-arch-10.d: Likewise.

opcodes/

2008-01-23  H.J. Lu  <hongjiu.lu@intel.com>

	* i386-gen.c (cpu_flag_init): Add CpuLM to CPU_GENERIC64_FLAGS.
	* i386-init.h: Regenerated.

--- binutils/gas/config/tc-i386.c.64	2008-01-23 10:45:35.000000000 -0800
+++ binutils/gas/config/tc-i386.c	2008-01-23 10:47:13.000000000 -0800
@@ -7406,10 +7406,10 @@ md_show_usage (stream)
                            pentiumii, pentiumiii, pentium4, prescott, nocona,\n\
                            core, core2, k6, k6_2, athlon, k8, amdfam10,\n\
                            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"));
+                          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"));
   fprintf (stream, _("\
   -mtune=CPU              optimize for CPU, CPU is one of:\n\
                            i8086, i186, i286, i386, i486, pentium, pentiumpro,\n\
--- binutils/gas/testsuite/gas/i386/i386.exp.64	2008-01-22 11:57:43.000000000 -0800
+++ binutils/gas/testsuite/gas/i386/i386.exp	2008-01-23 10:48:27.000000000 -0800
@@ -224,6 +224,8 @@ if [expr ([istarget "i*86-*-*"] || [ista
     run_dump_test "x86-64-opcode-inval"
     run_dump_test "x86-64-opcode-inval-intel"
     run_dump_test "rexw"
+    run_dump_test "x86-64-arch-1"
+    run_dump_test "x86-64-arch-10"
 
     if { ![istarget "*-*-aix*"]
       && ![istarget "*-*-beos*"]
--- binutils/gas/testsuite/gas/i386/x86-64-arch-1.d.64	2008-01-23 10:52:22.000000000 -0800
+++ binutils/gas/testsuite/gas/i386/x86-64-arch-1.d	2008-01-23 10:49:17.000000000 -0800
@@ -0,0 +1,15 @@
+#objdump: -dw
+#name: x86-64 arch 1
+
+.*:     file format .*
+
+Disassembly of section .text:
+
+0+ <.text>:
+[ 	]*[a-f0-9]+:	66 0f 38 17 c1       	ptest  %xmm1,%xmm0
+[ 	]*[a-f0-9]+:	66 0f 3a 09 c1 00    	roundpd \$0x0,%xmm1,%xmm0
+[ 	]*[a-f0-9]+:	66 0f 3a 08 c1 00    	roundps \$0x0,%xmm1,%xmm0
+[ 	]*[a-f0-9]+:	66 0f 3a 0b c1 00    	roundsd \$0x0,%xmm1,%xmm0
+[ 	]*[a-f0-9]+:	66 0f 3a 0a c1 00    	roundss \$0x0,%xmm1,%xmm0
+[ 	]*[a-f0-9]+:	66 0f 38 41 d9       	phminposuw %xmm1,%xmm3
+#pass
--- binutils/gas/testsuite/gas/i386/x86-64-arch-1.s.64	2008-01-23 10:52:24.000000000 -0800
+++ binutils/gas/testsuite/gas/i386/x86-64-arch-1.s	2008-01-23 10:48:57.000000000 -0800
@@ -0,0 +1,9 @@
+# Test .arch .sse4.1
+.arch generic64
+.arch .sse4.1
+ptest		%xmm1,%xmm0
+roundpd		$0,%xmm1,%xmm0
+roundps		$0,%xmm1,%xmm0
+roundsd		$0,%xmm1,%xmm0
+roundss		$0,%xmm1,%xmm0
+phminposuw	%xmm1,%xmm3
--- binutils/gas/testsuite/gas/i386/x86-64-arch-10.d.64	2008-01-23 10:52:19.000000000 -0800
+++ binutils/gas/testsuite/gas/i386/x86-64-arch-10.d	2008-01-23 10:50:36.000000000 -0800
@@ -0,0 +1,28 @@
+#source: arch-10.s
+#as: -march=generic64+sse4+vmx+smx+sse5+3dnowa+svme+padlock
+#objdump: -dw
+#name: x86-64 arch 10
+
+.*:     file format .*
+
+Disassembly of section .text:
+
+0+ <.text>:
+[ 	]*[a-f0-9]+:	0f 44 d8             	cmove  %eax,%ebx
+[ 	]*[a-f0-9]+:	0f fc dc             	paddb  %mm4,%mm3
+[ 	]*[a-f0-9]+:	f3 0f 58 dc          	addss  %xmm4,%xmm3
+[ 	]*[a-f0-9]+:	f2 0f 58 dc          	addsd  %xmm4,%xmm3
+[ 	]*[a-f0-9]+:	66 0f d0 dc          	addsubpd %xmm4,%xmm3
+[ 	]*[a-f0-9]+:	66 0f 38 01 dc       	phaddw %xmm4,%xmm3
+[ 	]*[a-f0-9]+:	66 0f 38 41 d9       	phminposuw %xmm1,%xmm3
+[ 	]*[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 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
+[ 	]*[a-f0-9]+:	0f 01 da             	vmload 
+[ 	]*[a-f0-9]+:	f3 0f bd d9          	lzcnt  %ecx,%ebx
+[ 	]*[a-f0-9]+:	0f 7a 12 ca          	frczss %xmm2,%xmm1
+[ 	]*[a-f0-9]+:	0f a7 c0             	xstore-rng 
+#pass
--- binutils/opcodes/i386-gen.c.64	2008-01-22 11:57:43.000000000 -0800
+++ binutils/opcodes/i386-gen.c	2008-01-23 10:55:30.000000000 -0800
@@ -45,7 +45,7 @@ static initializer cpu_flag_init [] =
   { "CPU_GENERIC32_FLAGS",
     "Cpu186|Cpu286|Cpu386" },
   { "CPU_GENERIC64_FLAGS", 
-    "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuMMX|CpuSSE|CpuSSE2" },
+    "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686|CpuP4|CpuMMX|CpuSSE|CpuSSE2|CpuLM" },
   { "CPU_NONE_FLAGS",
    "0" },
   { "CPU_I186_FLAGS",
--- binutils/opcodes/i386-init.h.64	2008-01-22 11:57:43.000000000 -0800
+++ binutils/opcodes/i386-init.h	2008-01-23 10:56:09.000000000 -0800
@@ -28,7 +28,7 @@
 
 #define CPU_GENERIC64_FLAGS \
   { { 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 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 } }
 
 #define CPU_NONE_FLAGS \
   { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  \



More information about the Binutils mailing list