Merge "Add missing pieces of ARMv9.2-A support." into main

This commit is contained in:
Krzysztof Kosiński
2024-09-11 16:04:44 +00:00
committed by Gerrit Code Review
3 changed files with 10 additions and 25 deletions

View File

@@ -26,6 +26,7 @@ var archVariants = map[ArchType][]string{
"armv8-2a", "armv8-2a",
"armv8-2a-dotprod", "armv8-2a-dotprod",
"armv9-a", "armv9-a",
"armv9-2a",
}, },
X86: { X86: {
"amberlake", "amberlake",

View File

@@ -118,11 +118,9 @@ func init() {
pctx.StaticVariable("Arm64Cppflags", strings.Join(arm64Cppflags, " ")) pctx.StaticVariable("Arm64Cppflags", strings.Join(arm64Cppflags, " "))
pctx.StaticVariable("Arm64Armv8ACflags", strings.Join(arm64ArchVariantCflags["armv8-a"], " ")) for variant, cflags := range arm64ArchVariantCflags {
pctx.StaticVariable("Arm64Armv8ABranchProtCflags", strings.Join(arm64ArchVariantCflags["armv8-a-branchprot"], " ")) pctx.StaticVariable("Arm64"+variant+"VariantCflags", strings.Join(cflags, " "))
pctx.StaticVariable("Arm64Armv82ACflags", strings.Join(arm64ArchVariantCflags["armv8-2a"], " ")) }
pctx.StaticVariable("Arm64Armv82ADotprodCflags", strings.Join(arm64ArchVariantCflags["armv8-2a-dotprod"], " "))
pctx.StaticVariable("Arm64Armv9ACflags", strings.Join(arm64ArchVariantCflags["armv9-a"], " "))
pctx.StaticVariable("Arm64CortexA53Cflags", strings.Join(arm64CpuVariantCflags["cortex-a53"], " ")) pctx.StaticVariable("Arm64CortexA53Cflags", strings.Join(arm64CpuVariantCflags["cortex-a53"], " "))
pctx.StaticVariable("Arm64CortexA55Cflags", strings.Join(arm64CpuVariantCflags["cortex-a55"], " ")) pctx.StaticVariable("Arm64CortexA55Cflags", strings.Join(arm64CpuVariantCflags["cortex-a55"], " "))
@@ -134,14 +132,6 @@ func init() {
} }
var ( var (
arm64ArchVariantCflagsVar = map[string]string{
"armv8-a": "${config.Arm64Armv8ACflags}",
"armv8-a-branchprot": "${config.Arm64Armv8ABranchProtCflags}",
"armv8-2a": "${config.Arm64Armv82ACflags}",
"armv8-2a-dotprod": "${config.Arm64Armv82ADotprodCflags}",
"armv9-a": "${config.Arm64Armv9ACflags}",
}
arm64CpuVariantCflagsVar = map[string]string{ arm64CpuVariantCflagsVar = map[string]string{
"cortex-a53": "${config.Arm64CortexA53Cflags}", "cortex-a53": "${config.Arm64CortexA53Cflags}",
"cortex-a55": "${config.Arm64CortexA55Cflags}", "cortex-a55": "${config.Arm64CortexA55Cflags}",
@@ -211,18 +201,12 @@ func (toolchainArm64) LibclangRuntimeLibraryArch() string {
} }
func arm64ToolchainFactory(arch android.Arch) Toolchain { func arm64ToolchainFactory(arch android.Arch) Toolchain {
switch arch.ArchVariant { // Error now rather than having a confusing Ninja error
case "armv8-a": if _, ok := arm64ArchVariantCflags[arch.ArchVariant]; !ok {
case "armv8-a-branchprot": panic(fmt.Sprintf("Unknown ARM64 architecture version: %q", arch.ArchVariant))
case "armv8-2a":
case "armv8-2a-dotprod":
case "armv9-a":
// Nothing extra for armv8-a/armv8-2a
default:
panic(fmt.Sprintf("Unknown ARM architecture version: %q", arch.ArchVariant))
} }
toolchainCflags := []string{arm64ArchVariantCflagsVar[arch.ArchVariant]} toolchainCflags := []string{"${config.Arm64" + arch.ArchVariant + "VariantCflags}"}
toolchainCflags = append(toolchainCflags, toolchainCflags = append(toolchainCflags,
variantOrDefault(arm64CpuVariantCflagsVar, arch.CpuVariant)) variantOrDefault(arm64CpuVariantCflagsVar, arch.CpuVariant))

View File

@@ -87,8 +87,8 @@ func (toolchainLinuxBionicArm64) CrtBeginSharedBinary() []string {
} }
func linuxBionicArm64ToolchainFactory(arch android.Arch) Toolchain { func linuxBionicArm64ToolchainFactory(arch android.Arch) Toolchain {
archVariant := "armv8-a" // for host, default to armv8-a // for host, default to armv8-a
toolchainCflags := []string{arm64ArchVariantCflagsVar[archVariant]} toolchainCflags := []string{"-march=armv8-a"}
// We don't specify CPU architecture for host. Conservatively assume // We don't specify CPU architecture for host. Conservatively assume
// the host CPU needs the fix // the host CPU needs the fix