xref: /aosp_15_r20/external/openscreen/build/config/arm.gni (revision 3f982cf4871df8771c9d4abe6e9a6f8d829b2736)
1*3f982cf4SFabien Sanglard# Copyright 2019 The Chromium Authors. All rights reserved.
2*3f982cf4SFabien Sanglard# Use of this source code is governed by a BSD-style license that can be
3*3f982cf4SFabien Sanglard# found in the LICENSE file.
4*3f982cf4SFabien Sanglard
5*3f982cf4SFabien Sanglarddeclare_args() {
6*3f982cf4SFabien Sanglard  # Version of the ARM processor when compiling on ARM. Ignored on non-ARM
7*3f982cf4SFabien Sanglard  # platforms.
8*3f982cf4SFabien Sanglard  arm_version = 7
9*3f982cf4SFabien Sanglard
10*3f982cf4SFabien Sanglard  # The ARM architecture. This will be a string like "armv6" or "armv7-a".
11*3f982cf4SFabien Sanglard  # An empty string means to use the default for the arm_version. Getting
12*3f982cf4SFabien Sanglard  # a proper list of supported architectures is challenging for clang, but
13*3f982cf4SFabien Sanglard  # can be found in the triple.h header in the LLVM source, under the
14*3f982cf4SFabien Sanglard  # SubArchType enum.
15*3f982cf4SFabien Sanglard  arm_arch = "armv7-a"
16*3f982cf4SFabien Sanglard
17*3f982cf4SFabien Sanglard  # The ARM floating point hardware. This will be a string like "neon" or
18*3f982cf4SFabien Sanglard  # "vfpv3".
19*3f982cf4SFabien Sanglard  arm_fpu = "vfpv3-d16"
20*3f982cf4SFabien Sanglard
21*3f982cf4SFabien Sanglard  # The ARM floating point mode. This is either the string "hard", "soft", or
22*3f982cf4SFabien Sanglard  # "softfp".
23*3f982cf4SFabien Sanglard  arm_float_abi = "hard"
24*3f982cf4SFabien Sanglard
25*3f982cf4SFabien Sanglard  # The ARM variant-specific tuning mode. This will be a string like "armv6"
26*3f982cf4SFabien Sanglard  # or "cortex-a15". Each cpu-type has a different tuning value.
27*3f982cf4SFabien Sanglard  arm_tune = "generic-armv7-a"
28*3f982cf4SFabien Sanglard}
29*3f982cf4SFabien Sanglard
30*3f982cf4SFabien Sanglarddeclare_args() {
31*3f982cf4SFabien Sanglard  # Whether to use the neon FPU instruction set or not. Actual value is set
32*3f982cf4SFabien Sanglard  # below, based on the arm_fpu argument.
33*3f982cf4SFabien Sanglard  arm_use_neon = arm_fpu == "neon"
34*3f982cf4SFabien Sanglard}
35*3f982cf4SFabien Sanglard
36*3f982cf4SFabien Sanglardif (current_cpu == "arm64") {
37*3f982cf4SFabien Sanglard  # arm64 supports only "hard".
38*3f982cf4SFabien Sanglard  arm_float_abi = "hard"
39*3f982cf4SFabien Sanglard  arm_fpu = "neon"
40*3f982cf4SFabien Sanglard  arm_use_neon = true
41*3f982cf4SFabien Sanglard}
42*3f982cf4SFabien Sanglard
43*3f982cf4SFabien Sanglardassert(arm_float_abi == "hard" || arm_float_abi == "soft" ||
44*3f982cf4SFabien Sanglard       arm_float_abi == "softfp")
45*3f982cf4SFabien Sanglardassert(arm_version == 6 || arm_version == 7 || arm_version == 8)
46