aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Willemsen <dwillemsen@google.com>2016-05-10 14:30:51 -0700
committerDan Willemsen <dwillemsen@google.com>2016-05-10 15:29:33 -0700
commit8a35405d330ed9f69f6a34ca6d5e75ccc2c64540 (patch)
treea4671099e2d5dc2c96318babaa805214dd83bc75
parentf4449451b59dda4e8dfc92ffdffa9dd6aa569a19 (diff)
downloadbuild_soong-8a35405d330ed9f69f6a34ca6d5e75ccc2c64540.tar.gz
build_soong-8a35405d330ed9f69f6a34ca6d5e75ccc2c64540.tar.bz2
build_soong-8a35405d330ed9f69f6a34ca6d5e75ccc2c64540.zip
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
-rw-r--r--cc/x86_device.go9
-rw-r--r--common/arch.go3
2 files changed, 12 insertions, 0 deletions
diff --git a/cc/x86_device.go b/cc/x86_device.go
index c1bdfd55..4c0d6248 100644
--- a/cc/x86_device.go
+++ b/cc/x86_device.go
@@ -73,6 +73,9 @@ var (
"": []string{
"-march=prescott",
},
+ "x86_64": []string{
+ "-march=prescott",
+ },
"atom": []string{
"-march=atom",
"-mfpmath=sse",
@@ -110,6 +113,12 @@ const (
)
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 8ad50871..4176cd1a 100644
--- a/common/arch.go
+++ b/common/arch.go
@@ -186,6 +186,8 @@ type archProperties struct {
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 @@ func decodeMegaDevice() ([]Arch, error) {
{"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"}},