Merge "Add a new x86(_64) arch variant "goldmont-without-xsaves"" into main

This commit is contained in:
Vladimír Marko 2024-01-05 12:29:33 +00:00 committed by Gerrit Code Review
commit 80abaa85e8
5 changed files with 52 additions and 19 deletions

View file

@ -34,6 +34,11 @@ var archVariants = map[ArchType][]string{
"broadwell",
"goldmont",
"goldmont-plus",
// Target arch is goldmont, but without xsaves support.
// This ensures efficient execution on a broad range of Intel/AMD CPUs used
// in Chromebooks, including those lacking xsaves support.
// (e.g. Kaby Lake, Gemini Lake, Alder Lake and AMD Zen series)
"goldmont-without-xsaves",
"haswell",
"icelake",
"ivybridge",
@ -52,6 +57,7 @@ var archVariants = map[ArchType][]string{
"broadwell",
"goldmont",
"goldmont-plus",
"goldmont-without-xsaves",
"haswell",
"icelake",
"ivybridge",
@ -197,6 +203,15 @@ var androidArchFeatureMap = map[ArchType]map[string][]string{
"popcnt",
"movbe",
},
"goldmont-without-xsaves": {
"ssse3",
"sse4",
"sse4_1",
"sse4_2",
"aes_ni",
"popcnt",
"movbe",
},
"haswell": {
"ssse3",
"sse4",
@ -358,6 +373,14 @@ var androidArchFeatureMap = map[ArchType]map[string][]string{
"aes_ni",
"popcnt",
},
"goldmont-without-xsaves": {
"ssse3",
"sse4",
"sse4_1",
"sse4_2",
"aes_ni",
"popcnt",
},
"haswell": {
"ssse3",
"sse4",

View file

@ -49,6 +49,10 @@ var (
"goldmont-plus": []string{
"-march=goldmont-plus",
},
"goldmont-without-xsaves": []string{
"-march=goldmont",
"-mno-xsaves",
},
"haswell": []string{
"-march=core-avx2",
},

View file

@ -56,6 +56,10 @@ var (
"goldmont-plus": []string{
"-march=goldmont-plus",
},
"goldmont-without-xsaves": []string{
"-march=goldmont",
"-mno-xsaves",
},
"haswell": []string{
"-march=core-avx2",
},

View file

@ -28,15 +28,16 @@ var (
x86_64LinkFlags = []string{}
x86_64ArchVariantRustFlags = map[string][]string{
"": []string{},
"broadwell": []string{"-C target-cpu=broadwell"},
"goldmont": []string{"-C target-cpu=goldmont"},
"goldmont-plus": []string{"-C target-cpu=goldmont-plus"},
"haswell": []string{"-C target-cpu=haswell"},
"ivybridge": []string{"-C target-cpu=ivybridge"},
"sandybridge": []string{"-C target-cpu=sandybridge"},
"silvermont": []string{"-C target-cpu=silvermont"},
"skylake": []string{"-C target-cpu=skylake"},
"": []string{},
"broadwell": []string{"-C target-cpu=broadwell"},
"goldmont": []string{"-C target-cpu=goldmont"},
"goldmont-plus": []string{"-C target-cpu=goldmont-plus"},
"goldmont-without-xsaves": []string{"-C target-cpu=goldmont", "-C target-feature=-xsaves"},
"haswell": []string{"-C target-cpu=haswell"},
"ivybridge": []string{"-C target-cpu=ivybridge"},
"sandybridge": []string{"-C target-cpu=sandybridge"},
"silvermont": []string{"-C target-cpu=silvermont"},
"skylake": []string{"-C target-cpu=skylake"},
//TODO: Add target-cpu=stoneyridge when rustc supports it.
"stoneyridge": []string{""},
"tremont": []string{"-C target-cpu=tremont"},

View file

@ -26,16 +26,17 @@ var (
x86LinkFlags = []string{}
x86ArchVariantRustFlags = map[string][]string{
"": []string{},
"atom": []string{"-C target-cpu=atom"},
"broadwell": []string{"-C target-cpu=broadwell"},
"goldmont": []string{"-C target-cpu=goldmont"},
"goldmont-plus": []string{"-C target-cpu=goldmont-plus"},
"haswell": []string{"-C target-cpu=haswell"},
"ivybridge": []string{"-C target-cpu=ivybridge"},
"sandybridge": []string{"-C target-cpu=sandybridge"},
"silvermont": []string{"-C target-cpu=silvermont"},
"skylake": []string{"-C target-cpu=skylake"},
"": []string{},
"atom": []string{"-C target-cpu=atom"},
"broadwell": []string{"-C target-cpu=broadwell"},
"goldmont": []string{"-C target-cpu=goldmont"},
"goldmont-plus": []string{"-C target-cpu=goldmont-plus"},
"goldmont-without-xsaves": []string{"-C target-cpu=goldmont", "-C target-feature=-xsaves"},
"haswell": []string{"-C target-cpu=haswell"},
"ivybridge": []string{"-C target-cpu=ivybridge"},
"sandybridge": []string{"-C target-cpu=sandybridge"},
"silvermont": []string{"-C target-cpu=silvermont"},
"skylake": []string{"-C target-cpu=skylake"},
//TODO: Add target-cpu=stoneyridge when rustc supports it.
"stoneyridge": []string{""},
"tremont": []string{"-C target-cpu=tremont"},