diff options
| author | Jon Mason <jdmason@kudzu.us> | 2021-08-18 22:52:20 -0400 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2021-08-20 08:53:03 +0100 |
| commit | ff0ea5633a8f1d9e5d709cae9b16482c6be4adcf (patch) | |
| tree | 822c29ffc23f869a738f0f9ea1c1fcf2433d76e8 /meta/conf/machine/include/arm/arch-armv8m-main.inc | |
| parent | a3c1be72af66ba8dd1b1393f10dd1c13c7cb9509 (diff) | |
| download | poky-ff0ea5633a8f1d9e5d709cae9b16482c6be4adcf.tar.gz | |
arch-arm*: add better support for gcc march extensions
GCC has the ability to pass extensions to the march parameter, which
expand the funcationality of the march. For example
"-march=armv7ve+simd" adds SIMD to ARMv7. Currently, there is no way to
expand the march setting without modifying each instance, as you can't
guarantee the ordering when using the existing TUNE_CCARGS. By
introducing two new variables, TUNE_CCARGS_MARCH and
TUNE_CCARGS_MARCH_OPT, we can enforce that these two go together.
Also, expand existing and create new feature files that use these
variables to expand the functionality.
(From OE-Core rev: 794eb617bfd1997e7a3498812c63a20c58a10554)
Signed-off-by: Jon Mason <jdmason@kudzu.us>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/conf/machine/include/arm/arch-armv8m-main.inc')
| -rw-r--r-- | meta/conf/machine/include/arm/arch-armv8m-main.inc | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/meta/conf/machine/include/arm/arch-armv8m-main.inc b/meta/conf/machine/include/arm/arch-armv8m-main.inc index 4dbe401c19..01bef35428 100644 --- a/meta/conf/machine/include/arm/arch-armv8m-main.inc +++ b/meta/conf/machine/include/arm/arch-armv8m-main.inc | |||
| @@ -4,23 +4,15 @@ | |||
| 4 | DEFAULTTUNE ?= "armv8m-main" | 4 | DEFAULTTUNE ?= "armv8m-main" |
| 5 | 5 | ||
| 6 | require conf/machine/include/arm/arch-armv8m-base.inc | 6 | require conf/machine/include/arm/arch-armv8m-base.inc |
| 7 | require conf/machine/include/arm/feature-arm-dsp.inc | ||
| 8 | require conf/machine/include/arm/feature-arm-neon.inc | ||
| 7 | 9 | ||
| 8 | TUNEVALID[armv8m-main] = "Enable instructions for ARMv8-m.main" | 10 | TUNEVALID[armv8m-main] = "Enable instructions for ARMv8-m.main" |
| 9 | TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8m-main', ' -march=armv8-m.main${MARCH_DSP}${MARCH_FPU}', '', d)}" | 11 | TUNE_CCARGS_MARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8m-main', ' -march=armv8-m.main', '', d)}" |
| 10 | MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8m-main', 'armv8m-main:', '', d)}" | 12 | MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv8m-main', 'armv8m-main:', '', d)}" |
| 11 | 13 | ||
| 12 | TUNECONFLICTS[armv8m-main] = "armv4 armv5 armv6 armv7a" | 14 | TUNECONFLICTS[armv8m-main] = "armv4 armv5 armv6 armv7a" |
| 13 | 15 | ||
| 14 | # FIXME - below taken from meta/conf/machine/include/arm/arch-armv5-dsp.inc and should be put into something more generic | ||
| 15 | TUNEVALID[dsp] = "ARM DSP functionality" | ||
| 16 | ARMPKGSFX_DSP = "${@bb.utils.contains('TUNE_FEATURES', [ 'dsp' ], 'e', '', d)}" | ||
| 17 | MARCH_DSP = "${@bb.utils.contains('TUNE_FEATURES', [ 'dsp' ], '+dsp', '+nodsp', d)}" | ||
| 18 | |||
| 19 | # FIXME - Below belongs in meta/conf/machine/include/arm/feature-arm-neon.inc | ||
| 20 | TUNEVALID[vfpv5spd16] = "Enable Vector Floating Point Version 5, Single Precision. with 16 registers (fpv5-sp-d16) unit." | ||
| 21 | TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfpv5spd16', 'fpv5-sp-d16', '', d)}" | ||
| 22 | MARCH_FPU = "${@bb.utils.contains('TUNE_FEATURES', [ 'vfpv5spd16' ], '+fp', '+nofp', d)}" | ||
| 23 | |||
| 24 | AVAILTUNES += "armv8m-main armv8m-maine armv8m-main-vfpv5spd16 armv8m-maine-vfpv5spd16" | 16 | AVAILTUNES += "armv8m-main armv8m-maine armv8m-main-vfpv5spd16 armv8m-maine-vfpv5spd16" |
| 25 | ARMPKGARCH:tune-armv8m-main = "armv8m-main" | 17 | ARMPKGARCH:tune-armv8m-main = "armv8m-main" |
| 26 | ARMPKGARCH:tune-armv8m-maine = "armv8m-main" | 18 | ARMPKGARCH:tune-armv8m-maine = "armv8m-main" |
