Add a 32-bit x86_64 arch variant
In make, the current 32-bit configuration for generic x86_64 targets
inherits some variables (SSE4 support) from the 64-bit configuration,
and overrides the make variables used for other configurations (SSSE3).
We don't have that problem in Soong, but this is the configuration
matching what Make is using.
Change-Id: Ia934ff40f9388f9c202a0fe0608e7b45b77a2714
diff --git a/cc/x86_device.go b/cc/x86_device.go
index c1bdfd5..4c0d624 100644
--- a/cc/x86_device.go
+++ b/cc/x86_device.go
@@ -73,6 +73,9 @@
"": []string{
"-march=prescott",
},
+ "x86_64": []string{
+ "-march=prescott",
+ },
"atom": []string{
"-march=atom",
"-mfpmath=sse",
@@ -110,6 +113,12 @@
)
func init() {
+ common.RegisterArchFeatures(common.X86, "x86_64",
+ "ssse3",
+ "sse4",
+ "sse4_1",
+ "sse4_2",
+ "popcnt")
common.RegisterArchFeatures(common.X86, "atom",
"ssse3",
"movbe")
diff --git a/common/arch.go b/common/arch.go
index 8ad5087..4176cd1 100644
--- a/common/arch.go
+++ b/common/arch.go
@@ -186,6 +186,8 @@
Ivybridge interface{} `blueprint:"filter(android:\"arch_variant\")"`
Sandybridge interface{} `blueprint:"filter(android:\"arch_variant\")"`
Silvermont interface{} `blueprint:"filter(android:\"arch_variant\")"`
+ // Generic variant for X86 on X86_64
+ X86_64 interface{} `blueprint:"filter(android:\"arch_variant\")"`
// X86 arch features
Ssse3 interface{} `blueprint:"filter(android:\"arch_variant\")"`
@@ -955,6 +957,7 @@
{"x86", "ivybridge", "", []string{"x86"}},
{"x86", "sandybridge", "", []string{"x86"}},
{"x86", "silvermont", "", []string{"x86"}},
+ {"x86", "x86_64", "", []string{"x86"}},
{"x86_64", "", "", []string{"x86_64"}},
{"x86_64", "haswell", "", []string{"x86_64"}},
{"x86_64", "ivybridge", "", []string{"x86_64"}},