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
This commit is contained in:
Dan Willemsen
2016-05-10 14:30:51 -07:00
parent f4449451b5
commit 8a35405d33
2 changed files with 12 additions and 0 deletions

View File

@@ -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")

View File

@@ -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"}},