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