Dynamically generate arch struct
Now we don't need to hardcode the list of OS/Arch/Variant/Features in
android/arch.go.
Change-Id: I0f9cc35d55baa31f036825fdf5b9dd30d076e56e
diff --git a/cc/config/x86_device.go b/cc/config/x86_device.go
index 4667caa..6b55564 100644
--- a/cc/config/x86_device.go
+++ b/cc/config/x86_device.go
@@ -113,16 +113,14 @@
)
func init() {
- android.RegisterArchFeatures(android.X86, "x86_64",
- "ssse3",
- "sse4",
- "sse4_1",
- "sse4_2",
- "popcnt")
- android.RegisterArchFeatures(android.X86, "atom",
- "ssse3",
- "movbe")
- android.RegisterArchFeatures(android.X86, "haswell",
+ android.RegisterArchVariants(android.X86,
+ "atom",
+ "haswell",
+ "ivybridge",
+ "sandybridge",
+ "silvermont",
+ "x86_64")
+ android.RegisterArchFeatures(android.X86,
"ssse3",
"sse4",
"sse4_1",
@@ -131,7 +129,25 @@
"avx",
"popcnt",
"movbe")
- android.RegisterArchFeatures(android.X86, "ivybridge",
+ android.RegisterArchVariantFeatures(android.X86, "x86_64",
+ "ssse3",
+ "sse4",
+ "sse4_1",
+ "sse4_2",
+ "popcnt")
+ android.RegisterArchVariantFeatures(android.X86, "atom",
+ "ssse3",
+ "movbe")
+ android.RegisterArchVariantFeatures(android.X86, "haswell",
+ "ssse3",
+ "sse4",
+ "sse4_1",
+ "sse4_2",
+ "aes_ni",
+ "avx",
+ "popcnt",
+ "movbe")
+ android.RegisterArchVariantFeatures(android.X86, "ivybridge",
"ssse3",
"sse4",
"sse4_1",
@@ -139,13 +155,13 @@
"aes_ni",
"avx",
"popcnt")
- android.RegisterArchFeatures(android.X86, "sandybridge",
+ android.RegisterArchVariantFeatures(android.X86, "sandybridge",
"ssse3",
"sse4",
"sse4_1",
"sse4_2",
"popcnt")
- android.RegisterArchFeatures(android.X86, "silvermont",
+ android.RegisterArchVariantFeatures(android.X86, "silvermont",
"ssse3",
"sse4",
"sse4_1",