All of lore.kernel.org
 help / color / mirror / Atom feed
* [master][PATCH] ARMv8 32-bit & 64-bit compiler tunings
@ 2016-03-11 17:58 Daniel Dragomir
  2016-03-11 17:58 ` [PATCHv2][master] arch-armv8a.inc: Add tune for 32-bit ARMv8a Daniel Dragomir
  0 siblings, 1 reply; 11+ messages in thread
From: Daniel Dragomir @ 2016-03-11 17:58 UTC (permalink / raw)
  To: openembedded-core; +Cc: otavio.salvador


Hello!

This is a second version for the patch for 32-bit, against MASTER branch.

@Martin, I tested all the new tunes with your script, and I got no errors.

About 64-bit tunes, I need some guidance about the approach for adding 
specific tunes for aarch64.
I tried to inherit the ones from 32-bit and to add the aarch64 feature, but 
I got those errors when building libgcc-initial:

| aarch64_be-oe-linux-gcc: error: unrecognized command line option '-mfpu=crypto-neon-fp-armv8'
| aarch64_be-oe-linux-gcc: error: unrecognized command line option '-marm'
| aarch64_be-oe-linux-gcc: error: unrecognized command line option '-mfpu=neon'
| aarch64_be-oe-linux-gcc: error: unrecognized command line option '-mfloat-abi=hard'

I searched and I found that aarch64 didn't support thumb or neon options:
https://gcc.gnu.org/onlinedocs/gcc/AArch64-Options.html
It seems that AArch64 and ARM backends are completely separate in gcc.
  
For aarch64 I found just those options:
‘crc’
    Enable CRC extension. This is on by default for -march=armv8.1-a.
‘crypto’
    Enable Crypto extension. This also enables Advanced SIMD and floating-point instructions.
‘fp’
    Enable floating-point instructions. This is on by default for all possible values for options 
    -march and -mcpu.
‘simd’
    Enable Advanced SIMD instructions. This also enables floating-point instructions. 
    This is on by default for all possible values for options -march and -mcpu.
‘lse’
    Enable Large System Extension instructions. This is on by default for -march=armv8.1-a.

Any help will be highly appreciated!

Thanks,
Daniel

Daniel Dragomir (1):
  arch-armv8a.inc: Add tune for 32-bit ARMv8a

 meta/conf/machine/include/arm/arch-armv8a.inc      | 382 +++++++++++++++++++++
 .../conf/machine/include/arm/feature-arm-thumb.inc |   1 +
 2 files changed, 383 insertions(+)
 create mode 100644 meta/conf/machine/include/arm/arch-armv8a.inc

-- 
1.9.1



^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCHv2][master] arch-armv8a.inc: Add tune for 32-bit ARMv8a
  2016-03-11 17:58 [master][PATCH] ARMv8 32-bit & 64-bit compiler tunings Daniel Dragomir
@ 2016-03-11 17:58 ` Daniel Dragomir
  2016-03-11 18:36   ` Otavio Salvador
  2016-03-12  0:17   ` Khem Raj
  0 siblings, 2 replies; 11+ messages in thread
From: Daniel Dragomir @ 2016-03-11 17:58 UTC (permalink / raw)
  To: openembedded-core; +Cc: otavio.salvador

This patch adds tunes for 32-bit armv8a platforms. The user can select
little or big endian, hard or soft float, the vector floating-point
instruction set: vfpv4 or fp-armv8 and the thumb, neon, crc and crypto
extensions.

Signed-off-by: Daniel Dragomir <daniel.dragomir@windriver.com>
---
 meta/conf/machine/include/arm/arch-armv8a.inc      | 382 +++++++++++++++++++++
 .../conf/machine/include/arm/feature-arm-thumb.inc |   1 +
 2 files changed, 383 insertions(+)
 create mode 100644 meta/conf/machine/include/arm/arch-armv8a.inc

diff --git a/meta/conf/machine/include/arm/arch-armv8a.inc b/meta/conf/machine/include/arm/arch-armv8a.inc
new file mode 100644
index 0000000..6544f50
--- /dev/null
+++ b/meta/conf/machine/include/arm/arch-armv8a.inc
@@ -0,0 +1,382 @@
+DEFAULTTUNE ?= "armv8a"
+
+TUNEVALID[armv8a] = "Enable instructions for ARMv8-a"
+TUNECONFLICTS[armv8a] = "armv4 armv5 armv6 armv7 armv7a armv7ve"
+
+TUNEVALID[crc] = "Enable CRC instructions for ARMv8-a"
+ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "crc", "-crc", "", d)}"
+
+TUNEVALID[crypto] = "Enable ARMv8 crypto extension."
+ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "crypto", "-crypto", "", d)}"
+
+TUNEVALID[fp-armv8] = "Enable ARMv8 Vector Floating Point unit."
+ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "fp-armv8", "-fp-armv8", "", d)}"
+
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "armv8a", bb.utils.contains("TUNE_FEATURES", "crc", " -march=armv8-a+crc", " -march=armv8-a", d), "", d)}"
+
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "fp-armv8", bb.utils.contains("TUNE_FEATURES", "neon", bb.utils.contains("TUNE_FEATURES", "crypto", " -mfpu=crypto-neon-fp-armv8", " -mfpu=neon-fp-armv8", d), " -mfpu=fp-armv8", d), "", d)}"
+
+MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "armv8a", "armv8a:", "" ,d)}"
+
+require conf/machine/include/arm/arch-armv7ve.inc
+
+# Little Endian base configs
+AVAILTUNES += "armv8a armv8at armv8a-neon armv8at-neon armv8a-vfpv4 armv8at-vfpv4 armv8a-vfpv4-neon armv8at-vfpv4-neon armv8a-fp-armv8 armv8at-fp-armv8 armv8a-fp-armv8-neon armv8at-fp-armv8-neon armv8a-crypto-fp-armv8-neon armv8at-crypto-fp-armv8-neon"
+ARMPKGARCH_tune-armv8a                       ?= "armv8a"
+ARMPKGARCH_tune-armv8at                      ?= "armv8a"
+ARMPKGARCH_tune-armv8a-neon                  ?= "armv8a"
+ARMPKGARCH_tune-armv8at-neon                 ?= "armv8a"
+ARMPKGARCH_tune-armv8a-vfpv4                 ?= "armv8a"
+ARMPKGARCH_tune-armv8at-vfpv4                ?= "armv8a"
+ARMPKGARCH_tune-armv8a-vfpv4-neon            ?= "armv8a"
+ARMPKGARCH_tune-armv8at-vfpv4-neon           ?= "armv8a"
+ARMPKGARCH_tune-armv8a-fp-armv8              ?= "armv8a"
+ARMPKGARCH_tune-armv8at-fp-armv8             ?= "armv8a"
+ARMPKGARCH_tune-armv8a-fp-armv8-neon         ?= "armv8a"
+ARMPKGARCH_tune-armv8at-fp-armv8-neon        ?= "armv8a"
+ARMPKGARCH_tune-armv8a-crypto-fp-armv8-neon  ?= "armv8a"
+ARMPKGARCH_tune-armv8at-crypto-fp-armv8-neon ?= "armv8a"
+TUNE_FEATURES_tune-armv8a                       = "arm armv8a"
+TUNE_FEATURES_tune-armv8at                      = "${TUNE_FEATURES_tune-armv8a} thumb"
+TUNE_FEATURES_tune-armv8a-neon                  = "${TUNE_FEATURES_tune-armv8a} neon"
+TUNE_FEATURES_tune-armv8at-neon                 = "${TUNE_FEATURES_tune-armv8at} neon"
+TUNE_FEATURES_tune-armv8a-vfpv4                 = "${TUNE_FEATURES_tune-armv8a} vfpv4"
+TUNE_FEATURES_tune-armv8at-vfpv4                = "${TUNE_FEATURES_tune-armv8at} vfpv4"
+TUNE_FEATURES_tune-armv8a-vfpv4-neon            = "${TUNE_FEATURES_tune-armv8a-neon} vfpv4"
+TUNE_FEATURES_tune-armv8at-vfpv4-neon           = "${TUNE_FEATURES_tune-armv8at-neon} vfpv4"
+TUNE_FEATURES_tune-armv8a-fp-armv8              = "${TUNE_FEATURES_tune-armv8a} fp-armv8"
+TUNE_FEATURES_tune-armv8at-fp-armv8             = "${TUNE_FEATURES_tune-armv8at} fp-armv8"
+TUNE_FEATURES_tune-armv8a-fp-armv8-neon         = "${TUNE_FEATURES_tune-armv8a-neon} fp-armv8"
+TUNE_FEATURES_tune-armv8at-fp-armv8-neon        = "${TUNE_FEATURES_tune-armv8at-neon} fp-armv8"
+TUNE_FEATURES_tune-armv8a-crypto-fp-armv8-neon  = "${TUNE_FEATURES_tune-armv8a-fp-armv8-neon} crypto"
+TUNE_FEATURES_tune-armv8at-crypto-fp-armv8-neon = "${TUNE_FEATURES_tune-armv8at-fp-armv8-neon} crypto"
+PACKAGE_EXTRA_ARCHS_tune-armv8a                       = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve} armv8a"
+PACKAGE_EXTRA_ARCHS_tune-armv8at                      = "${PACKAGE_EXTRA_ARCHS_tune-armv7vet} armv8a"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-neon                  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8at-neon                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8at} armv8a-neon armv8at2-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-vfpv4"
+PACKAGE_EXTRA_ARCHS_tune-armv8at-vfpv4                = "${PACKAGE_EXTRA_ARCHS_tune-armv8at} armv8a-vfpv4 armv8at2-vfpv4"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4-neon            = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4} armv8a-neon armv8a-neon-vfpv4"
+PACKAGE_EXTRA_ARCHS_tune-armv8at-vfpv4-neon           = "${PACKAGE_EXTRA_ARCHS_tune-armv8at-vfpv4} armv8a-neon armv8at2-neon armv8a-neon-vfpv4 armv8at2-neon-vfpv4"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8              = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-fp-armv8"
+PACKAGE_EXTRA_ARCHS_tune-armv8at-fp-armv8             = "${PACKAGE_EXTRA_ARCHS_tune-armv8at} armv8a-fp-armv8 armv8at2-fp-armv8"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8-neon         = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8} armv8a-neon armv8a-fp-armv8-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8at-fp-armv8-neon        = "${PACKAGE_EXTRA_ARCHS_tune-armv8at-fp-armv8} armv8a-neon armv8at2-neon armv8a-fp-armv8-neon armv8at2-fp-armv8-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto-fp-armv8-neon  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8-neon} armv8a-crypto-fp-armv8-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8at-crypto-fp-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8at-fp-armv8-neon} armv8a-crypto-fp-armv8-neon armv8at2-crypto-fp-armv8-neon"
+
+# CRC configs
+AVAILTUNES += "armv8a-crc armv8at-crc armv8a-crc-neon armv8at-crc-neon armv8a-crc-vfpv4 armv8at-crc-vfpv4 armv8a-crc-vfpv4-neon armv8at-crc-vfpv4-neon armv8a-crc-fp-armv8 armv8at-crc-fp-armv8 armv8a-crc-fp-armv8-neon armv8at-crc-fp-armv8-neon armv8a-crc-crypto-fp-armv8-neon armv8at-crc-crypto-fp-armv8-neon"
+ARMPKGARCH_tune-armv8a-crc                       ?= "armv8a"
+ARMPKGARCH_tune-armv8at-crc                      ?= "armv8a"
+ARMPKGARCH_tune-armv8a-crc-neon                  ?= "armv8a"
+ARMPKGARCH_tune-armv8at-crc-neon                 ?= "armv8a"
+ARMPKGARCH_tune-armv8a-crc-vfpv4                 ?= "armv8a"
+ARMPKGARCH_tune-armv8at-crc-vfpv4                ?= "armv8a"
+ARMPKGARCH_tune-armv8a-crc-vfpv4-neon            ?= "armv8a"
+ARMPKGARCH_tune-armv8at-crc-vfpv4-neon           ?= "armv8a"
+ARMPKGARCH_tune-armv8a-crc-fp-armv8              ?= "armv8a"
+ARMPKGARCH_tune-armv8at-crc-fp-armv8             ?= "armv8a"
+ARMPKGARCH_tune-armv8a-crc-fp-armv8-neon         ?= "armv8a"
+ARMPKGARCH_tune-armv8at-crc-fp-armv8-neon        ?= "armv8a"
+ARMPKGARCH_tune-armv8a-crc-crypto-fp-armv8-neon  ?= "armv8a"
+ARMPKGARCH_tune-armv8at-crc-crypto-fp-armv8-neon ?= "armv8a"
+TUNE_FEATURES_tune-armv8a-crc                       = "${TUNE_FEATURES_tune-armv8a}                       crc"
+TUNE_FEATURES_tune-armv8at-crc                      = "${TUNE_FEATURES_tune-armv8at}                      crc"
+TUNE_FEATURES_tune-armv8a-crc-neon                  = "${TUNE_FEATURES_tune-armv8a-neon}                  crc"
+TUNE_FEATURES_tune-armv8at-crc-neon                 = "${TUNE_FEATURES_tune-armv8at-neon}                 crc"
+TUNE_FEATURES_tune-armv8a-crc-vfpv4                 = "${TUNE_FEATURES_tune-armv8a-vfpv4}                 crc"
+TUNE_FEATURES_tune-armv8at-crc-vfpv4                = "${TUNE_FEATURES_tune-armv8at-vfpv4}                crc"
+TUNE_FEATURES_tune-armv8a-crc-vfpv4-neon            = "${TUNE_FEATURES_tune-armv8a-vfpv4-neon}            crc"
+TUNE_FEATURES_tune-armv8at-crc-vfpv4-neon           = "${TUNE_FEATURES_tune-armv8at-vfpv4-neon}           crc"
+TUNE_FEATURES_tune-armv8a-crc-fp-armv8              = "${TUNE_FEATURES_tune-armv8a-fp-armv8}              crc"
+TUNE_FEATURES_tune-armv8at-crc-fp-armv8             = "${TUNE_FEATURES_tune-armv8at-fp-armv8}             crc"
+TUNE_FEATURES_tune-armv8a-crc-fp-armv8-neon         = "${TUNE_FEATURES_tune-armv8a-fp-armv8-neon}         crc"
+TUNE_FEATURES_tune-armv8at-crc-fp-armv8-neon        = "${TUNE_FEATURES_tune-armv8at-fp-armv8-neon}        crc"
+TUNE_FEATURES_tune-armv8a-crc-crypto-fp-armv8-neon  = "${TUNE_FEATURES_tune-armv8a-crypto-fp-armv8-neon}  crc"
+TUNE_FEATURES_tune-armv8at-crc-crypto-fp-armv8-neon = "${TUNE_FEATURES_tune-armv8at-crypto-fp-armv8-neon} crc"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-crc                       = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-crc"
+PACKAGE_EXTRA_ARCHS_tune-armv8at-crc                      = "${PACKAGE_EXTRA_ARCHS_tune-armv8at} armv8a-crc armv8at2-crc"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-neon                  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-neon} armv8a-crc-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8at-crc-neon                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8at-neon} armv8a-crc-neon armv8at2-crc-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4} armv8a-crc-vfpv4"
+PACKAGE_EXTRA_ARCHS_tune-armv8at-crc-vfpv4                = "${PACKAGE_EXTRA_ARCHS_tune-armv8at-vfpv4} armv8a-crc-vfpv4 armv8at2-crc-vfpv4"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4-neon            = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4-neon} armv8a-crc-neon armv8a-crc-vfpv4-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8at-crc-vfpv4-neon           = "${PACKAGE_EXTRA_ARCHS_tune-armv8at-vfpv4-neon} armv8a-crc-neon armv8at2-crc-neon armv8a-crc-vfpv4-neon armv8at2-crc-vfpv4-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8              = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8} armv8a-crc-fp-armv8"
+PACKAGE_EXTRA_ARCHS_tune-armv8at-crc-fp-armv8             = "${PACKAGE_EXTRA_ARCHS_tune-armv8at-fp-armv8} armv8a-crc-fp-armv8 armv8at2-crc-fp-armv8"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8-neon         = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8-neon} armv8a-crc-fp-armv8-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8at-crc-fp-armv8-neon        = "${PACKAGE_EXTRA_ARCHS_tune-armv8at-fp-armv8-neon} armv8a-crc-fp-armv8-neon armv8at2-crc-fp-armv8-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto-fp-armv8-neon  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto-fp-armv8-neon} armv8a-crc-crypto-fp-armv8-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8at-crc-crypto-fp-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8at-crypto-fp-armv8-neon} armv8a-crc-crypto-fp-armv8-neon armv8at2-crc-crypto-fp-armv8-neon"
+
+# HF configs
+AVAILTUNES += "armv8ahf armv8athf armv8ahf-neon armv8athf-neon armv8ahf-vfpv4 armv8athf-vfpv4 armv8ahf-vfpv4-neon armv8athf-vfpv4-neon armv8ahf-fp-armv8 armv8athf-fp-armv8 armv8ahf-fp-armv8-neon armv8athf-fp-armv8-neon armv8ahf-crypto-fp-armv8-neon armv8athf-crypto-fp-armv8-neon"
+ARMPKGARCH_tune-armv8ahf                       ?= "armv8a"
+ARMPKGARCH_tune-armv8athf                      ?= "armv8a"
+ARMPKGARCH_tune-armv8ahf-neon                  ?= "armv8a"
+ARMPKGARCH_tune-armv8athf-neon                 ?= "armv8a"
+ARMPKGARCH_tune-armv8ahf-vfpv4                 ?= "armv8a"
+ARMPKGARCH_tune-armv8athf-vfpv4                ?= "armv8a"
+ARMPKGARCH_tune-armv8ahf-vfpv4-neon            ?= "armv8a"
+ARMPKGARCH_tune-armv8athf-vfpv4-neon           ?= "armv8a"
+ARMPKGARCH_tune-armv8ahf-fp-armv8              ?= "armv8a"
+ARMPKGARCH_tune-armv8athf-fp-armv8             ?= "armv8a"
+ARMPKGARCH_tune-armv8ahf-fp-armv8-neon         ?= "armv8a"
+ARMPKGARCH_tune-armv8athf-fp-armv8-neon        ?= "armv8a"
+ARMPKGARCH_tune-armv8ahf-crypto-fp-armv8-neon  ?= "armv8a"
+ARMPKGARCH_tune-armv8athf-crypto-fp-armv8-neon ?= "armv8a"
+TUNE_FEATURES_tune-armv8ahf                       = "${TUNE_FEATURES_tune-armv8a}                       callconvention-hard"
+TUNE_FEATURES_tune-armv8athf                      = "${TUNE_FEATURES_tune-armv8at}                      callconvention-hard"
+TUNE_FEATURES_tune-armv8ahf-neon                  = "${TUNE_FEATURES_tune-armv8a-neon}                  callconvention-hard"
+TUNE_FEATURES_tune-armv8athf-neon                 = "${TUNE_FEATURES_tune-armv8at-neon}                 callconvention-hard"
+TUNE_FEATURES_tune-armv8ahf-vfpv4                 = "${TUNE_FEATURES_tune-armv8a-vfpv4}                 callconvention-hard"
+TUNE_FEATURES_tune-armv8athf-vfpv4                = "${TUNE_FEATURES_tune-armv8at-vfpv4}                callconvention-hard"
+TUNE_FEATURES_tune-armv8ahf-vfpv4-neon            = "${TUNE_FEATURES_tune-armv8a-vfpv4-neon}            callconvention-hard"
+TUNE_FEATURES_tune-armv8athf-vfpv4-neon           = "${TUNE_FEATURES_tune-armv8at-vfpv4-neon}           callconvention-hard"
+TUNE_FEATURES_tune-armv8ahf-fp-armv8              = "${TUNE_FEATURES_tune-armv8a-fp-armv8}              callconvention-hard"
+TUNE_FEATURES_tune-armv8athf-fp-armv8             = "${TUNE_FEATURES_tune-armv8at-fp-armv8}             callconvention-hard"
+TUNE_FEATURES_tune-armv8ahf-fp-armv8-neon         = "${TUNE_FEATURES_tune-armv8a-fp-armv8-neon}         callconvention-hard"
+TUNE_FEATURES_tune-armv8athf-fp-armv8-neon        = "${TUNE_FEATURES_tune-armv8at-fp-armv8-neon}        callconvention-hard"
+TUNE_FEATURES_tune-armv8ahf-crypto-fp-armv8-neon  = "${TUNE_FEATURES_tune-armv8a-crypto-fp-armv8-neon}  callconvention-hard"
+TUNE_FEATURES_tune-armv8athf-crypto-fp-armv8-neon = "${TUNE_FEATURES_tune-armv8at-crypto-fp-armv8-neon} callconvention-hard"
+PACKAGE_EXTRA_ARCHS_tune-armv8ahf                       = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf} armv8a armv8ahf"
+PACKAGE_EXTRA_ARCHS_tune-armv8athf                      = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf} armv8a armv8ahf armv8at2hf"
+PACKAGE_EXTRA_ARCHS_tune-armv8ahf-neon                  = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahf} armv8ahf-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8athf-neon                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8athf} armv8ahf-neon armv8at2hf-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8ahf-vfpv4                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahf} armv8ahf-vfpv4"
+PACKAGE_EXTRA_ARCHS_tune-armv8athf-vfpv4                = "${PACKAGE_EXTRA_ARCHS_tune-armv8athf} armv8ahf-vfpv4 armv8at2hf-vfpv4"
+PACKAGE_EXTRA_ARCHS_tune-armv8ahf-vfpv4-neon            = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahf-vfpv4} armv8ahf-neon armv8ahf-neon-vfpv4"
+PACKAGE_EXTRA_ARCHS_tune-armv8athf-vfpv4-neon           = "${PACKAGE_EXTRA_ARCHS_tune-armv8athf-vfpv4} armv8ahf-neon armv8at2hf-neon armv8ahf-neon-vfpv4 armv8at2hf-neon-vfpv4"
+PACKAGE_EXTRA_ARCHS_tune-armv8ahf-fp-armv8              = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahf} armv8ahf-fp-armv8"
+PACKAGE_EXTRA_ARCHS_tune-armv8athf-fp-armv8             = "${PACKAGE_EXTRA_ARCHS_tune-armv8athf} armv8ahf-fp-armv8 armv8at2hf-fp-armv8"
+PACKAGE_EXTRA_ARCHS_tune-armv8ahf-fp-armv8-neon         = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahf-fp-armv8} armv8ahf-neon armv8ahf-fp-armv8-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8athf-fp-armv8-neon        = "${PACKAGE_EXTRA_ARCHS_tune-armv8athf-fp-armv8} armv8ahf-neon armv8at2hf-neon armv8ahf-fp-armv8-neon armv8at2hf-fp-armv8-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8ahf-crypto-fp-armv8-neon  = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahf-fp-armv8-neon} armv8ahf-crypto-fp-armv8-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8athf-crypto-fp-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8athf-fp-armv8-neon} armv8ahf-crypto-fp-armv8-neon armv8at2hf-crypto-fp-armv8-neon"
+
+# HF + CRC
+AVAILTUNES += "armv8ahf-crc armv8athf-crc armv8ahf-crc-neon armv8athf-crc-neon armv8ahf-crc-vfpv4 armv8athf-crc-vfpv4 armv8ahf-crc-vfpv4-neon armv8athf-crc-vfpv4-neon armv8ahf-crc-fp-armv8 armv8athf-crc-fp-armv8 armv8ahf-crc-fp-armv8-neon armv8athf-crc-fp-armv8-neon armv8ahf-crc-crypto-fp-armv8-neon armv8athf-crc-crypto-fp-armv8-neon"
+ARMPKGARCH_tune-armv8ahf-crc                       ?= "armv8a"
+ARMPKGARCH_tune-armv8athf-crc                      ?= "armv8a"
+ARMPKGARCH_tune-armv8ahf-crc-neon                  ?= "armv8a"
+ARMPKGARCH_tune-armv8athf-crc-neon                 ?= "armv8a"
+ARMPKGARCH_tune-armv8ahf-crc-vfpv4                 ?= "armv8a"
+ARMPKGARCH_tune-armv8athf-crc-vfpv4                ?= "armv8a"
+ARMPKGARCH_tune-armv8ahf-crc-vfpv4-neon            ?= "armv8a"
+ARMPKGARCH_tune-armv8athf-crc-vfpv4-neon           ?= "armv8a"
+ARMPKGARCH_tune-armv8ahf-crc-fp-armv8              ?= "armv8a"
+ARMPKGARCH_tune-armv8athf-crc-fp-armv8             ?= "armv8a"
+ARMPKGARCH_tune-armv8ahf-crc-fp-armv8-neon         ?= "armv8a"
+ARMPKGARCH_tune-armv8athf-crc-fp-armv8-neon        ?= "armv8a"
+ARMPKGARCH_tune-armv8ahf-crc-crypto-fp-armv8-neon  ?= "armv8a"
+ARMPKGARCH_tune-armv8athf-crc-crypto-fp-armv8-neon ?= "armv8a"
+TUNE_FEATURES_tune-armv8ahf-crc                       = "${TUNE_FEATURES_tune-armv8ahf}                       crc"
+TUNE_FEATURES_tune-armv8athf-crc                      = "${TUNE_FEATURES_tune-armv8athf}                      crc"
+TUNE_FEATURES_tune-armv8ahf-crc-neon                  = "${TUNE_FEATURES_tune-armv8ahf-neon}                  crc"
+TUNE_FEATURES_tune-armv8athf-crc-neon                 = "${TUNE_FEATURES_tune-armv8athf-neon}                 crc"
+TUNE_FEATURES_tune-armv8ahf-crc-vfpv4                 = "${TUNE_FEATURES_tune-armv8ahf-vfpv4}                 crc"
+TUNE_FEATURES_tune-armv8athf-crc-vfpv4                = "${TUNE_FEATURES_tune-armv8athf-vfpv4}                crc"
+TUNE_FEATURES_tune-armv8ahf-crc-vfpv4-neon            = "${TUNE_FEATURES_tune-armv8ahf-vfpv4-neon}            crc"
+TUNE_FEATURES_tune-armv8athf-crc-vfpv4-neon           = "${TUNE_FEATURES_tune-armv8athf-vfpv4-neon}           crc"
+TUNE_FEATURES_tune-armv8ahf-crc-fp-armv8              = "${TUNE_FEATURES_tune-armv8ahf-fp-armv8}              crc"
+TUNE_FEATURES_tune-armv8athf-crc-fp-armv8             = "${TUNE_FEATURES_tune-armv8athf-fp-armv8}             crc"
+TUNE_FEATURES_tune-armv8ahf-crc-fp-armv8-neon         = "${TUNE_FEATURES_tune-armv8ahf-fp-armv8-neon}         crc"
+TUNE_FEATURES_tune-armv8athf-crc-fp-armv8-neon        = "${TUNE_FEATURES_tune-armv8athf-fp-armv8-neon}        crc"
+TUNE_FEATURES_tune-armv8ahf-crc-crypto-fp-armv8-neon  = "${TUNE_FEATURES_tune-armv8ahf-crypto-fp-armv8-neon}  crc"
+TUNE_FEATURES_tune-armv8athf-crc-crypto-fp-armv8-neon = "${TUNE_FEATURES_tune-armv8athf-crypto-fp-armv8-neon} crc"
+PACKAGE_EXTRA_ARCHS_tune-armv8ahf-crc                       = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahf} armv8ahf-crc"
+PACKAGE_EXTRA_ARCHS_tune-armv8athf-crc                      = "${PACKAGE_EXTRA_ARCHS_tune-armv8athf} armv8ahf-crc armv8at2hf-crc"
+PACKAGE_EXTRA_ARCHS_tune-armv8ahf-crc-neon                  = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahf-neon} armv8ahf-crc-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8athf-crc-neon                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8athf-neon} armv8ahf-crc-neon armv8at2hf-crc-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8ahf-crc-vfpv4                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahf-vfpv4} armv8ahf-crc-vfpv4"
+PACKAGE_EXTRA_ARCHS_tune-armv8athf-crc-vfpv4                = "${PACKAGE_EXTRA_ARCHS_tune-armv8athf-vfpv4} armv8ahf-crc-vfpv4 armv8at2hf-crc-vfpv4"
+PACKAGE_EXTRA_ARCHS_tune-armv8ahf-crc-vfpv4-neon            = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahf-vfpv4-neon} armv8ahf-crc-neon armv8ahf-crc-vfpv4-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8athf-crc-vfpv4-neon           = "${PACKAGE_EXTRA_ARCHS_tune-armv8athf-vfpv4-neon} armv8ahf-crc-neon armv8at2hf-crc-neon armv8ahf-crc-vfpv4-neon armv8at2hf-crc-vfpv4-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8ahf-crc-fp-armv8              = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahf-fp-armv8} armv8ahf-crc-fp-armv8"
+PACKAGE_EXTRA_ARCHS_tune-armv8athf-crc-fp-armv8             = "${PACKAGE_EXTRA_ARCHS_tune-armv8athf-fp-armv8} armv8ahf-crc-fp-armv8 armv8at2hf-crc-fp-armv8"
+PACKAGE_EXTRA_ARCHS_tune-armv8ahf-crc-fp-armv8-neon         = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahf-fp-armv8-neon} armv8ahf-crc-fp-armv8-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8athf-crc-fp-armv8-neon        = "${PACKAGE_EXTRA_ARCHS_tune-armv8athf-fp-armv8-neon} armv8ahf-crc-fp-armv8-neon armv8at2hf-crc-fp-armv8-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8ahf-crc-crypto-fp-armv8-neon  = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahf-crypto-fp-armv8-neon} armv8ahf-crc-crypto-fp-armv8-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8athf-crc-crypto-fp-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8athf-crypto-fp-armv8-neon} armv8ahf-crc-crypto-fp-armv8-neon armv8at2hf-crc-crypto-fp-armv8-neon"
+
+
+# Big Endian
+AVAILTUNES += "armv8ab armv8atb armv8ab-neon armv8atb-neon armv8ab-vfpv4 armv8atb-vfpv4 armv8ab-vfpv4-neon armv8atb-vfpv4-neon armv8ab-fp-armv8 armv8atb-fp-armv8 armv8ab-fp-armv8-neon armv8atb-fp-armv8-neon armv8ab-crypto-fp-armv8-neon armv8atb-crypto-fp-armv8-neon"
+ARMPKGARCH_tune-armv8ab                       ?= "armv8a"
+ARMPKGARCH_tune-armv8atb                      ?= "armv8a"
+ARMPKGARCH_tune-armv8ab-neon                  ?= "armv8a"
+ARMPKGARCH_tune-armv8atb-neon                 ?= "armv8a"
+ARMPKGARCH_tune-armv8ab-vfpv4                 ?= "armv8a"
+ARMPKGARCH_tune-armv8atb-vfpv4                ?= "armv8a"
+ARMPKGARCH_tune-armv8ab-vfpv4-neon            ?= "armv8a"
+ARMPKGARCH_tune-armv8atb-vfpv4-neon           ?= "armv8a"
+ARMPKGARCH_tune-armv8ab-fp-armv8              ?= "armv8a"
+ARMPKGARCH_tune-armv8atb-fp-armv8             ?= "armv8a"
+ARMPKGARCH_tune-armv8ab-fp-armv8-neon         ?= "armv8a"
+ARMPKGARCH_tune-armv8atb-fp-armv8-neon        ?= "armv8a"
+ARMPKGARCH_tune-armv8ab-crypto-fp-armv8-neon  ?= "armv8a"
+ARMPKGARCH_tune-armv8atb-crypto-fp-armv8-neon ?= "armv8a"
+TUNE_FEATURES_tune-armv8ab                       = "${TUNE_FEATURES_tune-armv8a}                       bigendian"
+TUNE_FEATURES_tune-armv8atb                      = "${TUNE_FEATURES_tune-armv8at}                      bigendian"
+TUNE_FEATURES_tune-armv8ab-neon                  = "${TUNE_FEATURES_tune-armv8a-neon}                  bigendian"
+TUNE_FEATURES_tune-armv8atb-neon                 = "${TUNE_FEATURES_tune-armv8at-neon}                 bigendian"
+TUNE_FEATURES_tune-armv8ab-vfpv4                 = "${TUNE_FEATURES_tune-armv8a-vfpv4}                 bigendian"
+TUNE_FEATURES_tune-armv8atb-vfpv4                = "${TUNE_FEATURES_tune-armv8at-vfpv4}                bigendian"
+TUNE_FEATURES_tune-armv8ab-vfpv4-neon            = "${TUNE_FEATURES_tune-armv8a-vfpv4-neon}            bigendian"
+TUNE_FEATURES_tune-armv8atb-vfpv4-neon           = "${TUNE_FEATURES_tune-armv8at-vfpv4-neon}           bigendian"
+TUNE_FEATURES_tune-armv8ab-fp-armv8              = "${TUNE_FEATURES_tune-armv8a-fp-armv8}              bigendian"
+TUNE_FEATURES_tune-armv8atb-fp-armv8             = "${TUNE_FEATURES_tune-armv8at-fp-armv8}             bigendian"
+TUNE_FEATURES_tune-armv8ab-fp-armv8-neon         = "${TUNE_FEATURES_tune-armv8a-fp-armv8-neon}         bigendian"
+TUNE_FEATURES_tune-armv8atb-fp-armv8-neon        = "${TUNE_FEATURES_tune-armv8at-fp-armv8-neon}        bigendian"
+TUNE_FEATURES_tune-armv8ab-crypto-fp-armv8-neon  = "${TUNE_FEATURES_tune-armv8a-crypto-fp-armv8-neon}  bigendian"
+TUNE_FEATURES_tune-armv8atb-crypto-fp-armv8-neon = "${TUNE_FEATURES_tune-armv8at-crypto-fp-armv8-neon} bigendian"
+PACKAGE_EXTRA_ARCHS_tune-armv8ab                       = "${PACKAGE_EXTRA_ARCHS_tune-armv7veb} armv8ab"
+PACKAGE_EXTRA_ARCHS_tune-armv8atb                      = "${PACKAGE_EXTRA_ARCHS_tune-armv7vetb} armv8ab"
+PACKAGE_EXTRA_ARCHS_tune-armv8ab-neon                  = "${PACKAGE_EXTRA_ARCHS_tune-armv8ab} armv8ab-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8atb-neon                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8atb} armv8ab-neon armv8at2b-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8ab-vfpv4                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8ab} armv8ab-vfpv4"
+PACKAGE_EXTRA_ARCHS_tune-armv8atb-vfpv4                = "${PACKAGE_EXTRA_ARCHS_tune-armv8atb} armv8ab-vfpv4 armv8at2b-vfpv4"
+PACKAGE_EXTRA_ARCHS_tune-armv8ab-vfpv4-neon            = "${PACKAGE_EXTRA_ARCHS_tune-armv8ab-vfpv4} armv8ab-neon armv8ab-neon-vfpv4"
+PACKAGE_EXTRA_ARCHS_tune-armv8atb-vfpv4-neon           = "${PACKAGE_EXTRA_ARCHS_tune-armv8atb-vfpv4} armv8ab-neon armv8at2b-neon armv8ab-neon-vfpv4 armv8at2b-neon-vfpv4"
+PACKAGE_EXTRA_ARCHS_tune-armv8ab-fp-armv8              = "${PACKAGE_EXTRA_ARCHS_tune-armv8ab} armv8ab-fp-armv8"
+PACKAGE_EXTRA_ARCHS_tune-armv8atb-fp-armv8             = "${PACKAGE_EXTRA_ARCHS_tune-armv8atb} armv8ab-fp-armv8 armv8at2b-fp-armv8"
+PACKAGE_EXTRA_ARCHS_tune-armv8ab-fp-armv8-neon         = "${PACKAGE_EXTRA_ARCHS_tune-armv8ab-fp-armv8} armv8ab-neon armv8ab-fp-armv8-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8atb-fp-armv8-neon        = "${PACKAGE_EXTRA_ARCHS_tune-armv8atb-fp-armv8} armv8ab-neon armv8at2b-neon armv8ab-fp-armv8-neon armv8at2b-fp-armv8-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8ab-crypto-fp-armv8-neon  = "${PACKAGE_EXTRA_ARCHS_tune-armv8ab-fp-armv8-neon} armv8ab-crypto-fp-armv8-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8atb-crypto-fp-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8atb-fp-armv8-neon} armv8ab-crypto-fp-armv8-neon armv8at2b-crypto-fp-armv8-neon"
+
+# Big Endian + CRC
+AVAILTUNES += "armv8ab-crc armv8atb-crc armv8ab-crc-neon armv8atb-crc-neon armv8ab-crc-vfpv4 armv8atb-crc-vfpv4 armv8ab-crc-vfpv4-neon armv8atb-crc-vfpv4-neon armv8ab-crc-fp-armv8 armv8atb-crc-fp-armv8 armv8ab-crc-fp-armv8-neon armv8atb-crc-fp-armv8-neon armv8ab-crc-crypto-fp-armv8-neon armv8atb-crc-crypto-fp-armv8-neon"
+ARMPKGARCH_tune-armv8ab-crc                       ?= "armv8a"
+ARMPKGARCH_tune-armv8atb-crc                      ?= "armv8a"
+ARMPKGARCH_tune-armv8ab-crc-neon                  ?= "armv8a"
+ARMPKGARCH_tune-armv8atb-crc-neon                 ?= "armv8a"
+ARMPKGARCH_tune-armv8ab-crc-vfpv4                 ?= "armv8a"
+ARMPKGARCH_tune-armv8atb-crc-vfpv4                ?= "armv8a"
+ARMPKGARCH_tune-armv8ab-crc-vfpv4-neon            ?= "armv8a"
+ARMPKGARCH_tune-armv8atb-crc-vfpv4-neon           ?= "armv8a"
+ARMPKGARCH_tune-armv8ab-crc-fp-armv8              ?= "armv8a"
+ARMPKGARCH_tune-armv8atb-crc-fp-armv8             ?= "armv8a"
+ARMPKGARCH_tune-armv8ab-crc-fp-armv8-neon         ?= "armv8a"
+ARMPKGARCH_tune-armv8atb-crc-fp-armv8-neon        ?= "armv8a"
+ARMPKGARCH_tune-armv8ab-crc-crypto-fp-armv8-neon  ?= "armv8a"
+ARMPKGARCH_tune-armv8atb-crc-crypto-fp-armv8-neon ?= "armv8a"
+TUNE_FEATURES_tune-armv8ab-crc                       = "${TUNE_FEATURES_tune-armv8ab}                       crc"
+TUNE_FEATURES_tune-armv8atb-crc                      = "${TUNE_FEATURES_tune-armv8atb}                      crc"
+TUNE_FEATURES_tune-armv8ab-crc-neon                  = "${TUNE_FEATURES_tune-armv8ab-neon}                  crc"
+TUNE_FEATURES_tune-armv8atb-crc-neon                 = "${TUNE_FEATURES_tune-armv8atb-neon}                 crc"
+TUNE_FEATURES_tune-armv8ab-crc-vfpv4                 = "${TUNE_FEATURES_tune-armv8ab-vfpv4}                 crc"
+TUNE_FEATURES_tune-armv8atb-crc-vfpv4                = "${TUNE_FEATURES_tune-armv8atb-vfpv4}                crc"
+TUNE_FEATURES_tune-armv8ab-crc-vfpv4-neon            = "${TUNE_FEATURES_tune-armv8ab-vfpv4-neon}            crc"
+TUNE_FEATURES_tune-armv8atb-crc-vfpv4-neon           = "${TUNE_FEATURES_tune-armv8atb-vfpv4-neon}           crc"
+TUNE_FEATURES_tune-armv8ab-crc-fp-armv8              = "${TUNE_FEATURES_tune-armv8ab-fp-armv8}              crc"
+TUNE_FEATURES_tune-armv8atb-crc-fp-armv8             = "${TUNE_FEATURES_tune-armv8atb-fp-armv8}             crc"
+TUNE_FEATURES_tune-armv8ab-crc-fp-armv8-neon         = "${TUNE_FEATURES_tune-armv8ab-fp-armv8-neon}         crc"
+TUNE_FEATURES_tune-armv8atb-crc-fp-armv8-neon        = "${TUNE_FEATURES_tune-armv8atb-fp-armv8-neon}        crc"
+TUNE_FEATURES_tune-armv8ab-crc-crypto-fp-armv8-neon  = "${TUNE_FEATURES_tune-armv8ab-crypto-fp-armv8-neon}  crc"
+TUNE_FEATURES_tune-armv8atb-crc-crypto-fp-armv8-neon = "${TUNE_FEATURES_tune-armv8atb-crypto-fp-armv8-neon} crc"
+PACKAGE_EXTRA_ARCHS_tune-armv8ab-crc                       = "${PACKAGE_EXTRA_ARCHS_tune-armv8ab} armv8ab-crc"
+PACKAGE_EXTRA_ARCHS_tune-armv8atb-crc                      = "${PACKAGE_EXTRA_ARCHS_tune-armv8atb} armv8ab-crc armv8at2b-crc"
+PACKAGE_EXTRA_ARCHS_tune-armv8ab-crc-neon                  = "${PACKAGE_EXTRA_ARCHS_tune-armv8ab-neon} armv8ab-crc-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8atb-crc-neon                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8atb-neon} armv8ab-crc-neon armv8at2b-crc-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8ab-crc-vfpv4                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8ab-vfpv4} armv8ab-crc-vfpv4"
+PACKAGE_EXTRA_ARCHS_tune-armv8atb-crc-vfpv4                = "${PACKAGE_EXTRA_ARCHS_tune-armv8atb-vfpv4} armv8ab-crc-vfpv4 armv8at2b-crc-vfpv4"
+PACKAGE_EXTRA_ARCHS_tune-armv8ab-crc-vfpv4-neon            = "${PACKAGE_EXTRA_ARCHS_tune-armv8ab-vfpv4-neon} armv8ab-crc-neon armv8ab-crc-vfpv4-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8atb-crc-vfpv4-neon           = "${PACKAGE_EXTRA_ARCHS_tune-armv8atb-vfpv4-neon} armv8ab-crc-neon armv8at2b-crc-neon armv8ab-crc-vfpv4-neon armv8at2b-crc-vfpv4-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8ab-crc-fp-armv8              = "${PACKAGE_EXTRA_ARCHS_tune-armv8ab-fp-armv8} armv8ab-crc-fp-armv8"
+PACKAGE_EXTRA_ARCHS_tune-armv8atb-crc-fp-armv8             = "${PACKAGE_EXTRA_ARCHS_tune-armv8atb-fp-armv8} armv8ab-crc-fp-armv8 armv8at2b-crc-fp-armv8"
+PACKAGE_EXTRA_ARCHS_tune-armv8ab-crc-fp-armv8-neon         = "${PACKAGE_EXTRA_ARCHS_tune-armv8ab-fp-armv8-neon} armv8ab-crc-fp-armv8-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8atb-crc-fp-armv8-neon        = "${PACKAGE_EXTRA_ARCHS_tune-armv8atb-fp-armv8-neon} armv8ab-crc-fp-armv8-neon armv8at2b-crc-fp-armv8-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8ab-crc-crypto-fp-armv8-neon  = "${PACKAGE_EXTRA_ARCHS_tune-armv8ab-crypto-fp-armv8-neon} armv8ab-crc-crypto-fp-armv8-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8atb-crc-crypto-fp-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8atb-crypto-fp-armv8-neon} armv8ab-crc-crypto-fp-armv8-neon armv8at2b-crc-crypto-fp-armv8-neon"
+
+# Big Endian + HF
+AVAILTUNES += "armv8ahfb armv8athfb armv8ahfb-neon armv8athfb-neon armv8ahfb-vfpv4 armv8athfb-vfpv4 armv8ahfb-vfpv4-neon armv8athfb-vfpv4-neon armv8ahfb-fp-armv8 armv8athfb-fp-armv8 armv8ahfb-fp-armv8-neon armv8athfb-fp-armv8-neon armv8ahfb-crypto-fp-armv8-neon armv8athfb-crypto-fp-armv8-neon"
+ARMPKGARCH_tune-armv8ahfb                       ?= "armv8a"
+ARMPKGARCH_tune-armv8athfb                      ?= "armv8a"
+ARMPKGARCH_tune-armv8ahfb-neon                  ?= "armv8a"
+ARMPKGARCH_tune-armv8athfb-neon                 ?= "armv8a"
+ARMPKGARCH_tune-armv8ahfb-vfpv4                 ?= "armv8a"
+ARMPKGARCH_tune-armv8athfb-vfpv4                ?= "armv8a"
+ARMPKGARCH_tune-armv8ahfb-vfpv4-neon            ?= "armv8a"
+ARMPKGARCH_tune-armv8athfb-vfpv4-neon           ?= "armv8a"
+ARMPKGARCH_tune-armv8ahfb-fp-armv8              ?= "armv8a"
+ARMPKGARCH_tune-armv8athfb-fp-armv8             ?= "armv8a"
+ARMPKGARCH_tune-armv8ahfb-fp-armv8-neon         ?= "armv8a"
+ARMPKGARCH_tune-armv8athfb-fp-armv8-neon        ?= "armv8a"
+ARMPKGARCH_tune-armv8ahfb-crypto-fp-armv8-neon  ?= "armv8a"
+ARMPKGARCH_tune-armv8athfb-crypto-fp-armv8-neon ?= "armv8a"
+TUNE_FEATURES_tune-armv8ahfb                       = "${TUNE_FEATURES_tune-armv8ab}                       callconvention-hard"
+TUNE_FEATURES_tune-armv8athfb                      = "${TUNE_FEATURES_tune-armv8atb}                      callconvention-hard"
+TUNE_FEATURES_tune-armv8ahfb-neon                  = "${TUNE_FEATURES_tune-armv8ab-neon}                  callconvention-hard"
+TUNE_FEATURES_tune-armv8athfb-neon                 = "${TUNE_FEATURES_tune-armv8atb-neon}                 callconvention-hard"
+TUNE_FEATURES_tune-armv8ahfb-vfpv4                 = "${TUNE_FEATURES_tune-armv8ab-vfpv4}                 callconvention-hard"
+TUNE_FEATURES_tune-armv8athfb-vfpv4                = "${TUNE_FEATURES_tune-armv8atb-vfpv4}                callconvention-hard"
+TUNE_FEATURES_tune-armv8ahfb-vfpv4-neon            = "${TUNE_FEATURES_tune-armv8ab-vfpv4-neon}            callconvention-hard"
+TUNE_FEATURES_tune-armv8athfb-vfpv4-neon           = "${TUNE_FEATURES_tune-armv8atb-vfpv4-neon}           callconvention-hard"
+TUNE_FEATURES_tune-armv8ahfb-fp-armv8              = "${TUNE_FEATURES_tune-armv8ab-fp-armv8}              callconvention-hard"
+TUNE_FEATURES_tune-armv8athfb-fp-armv8             = "${TUNE_FEATURES_tune-armv8atb-fp-armv8}             callconvention-hard"
+TUNE_FEATURES_tune-armv8ahfb-fp-armv8-neon         = "${TUNE_FEATURES_tune-armv8ab-fp-armv8-neon}         callconvention-hard"
+TUNE_FEATURES_tune-armv8athfb-fp-armv8-neon        = "${TUNE_FEATURES_tune-armv8atb-fp-armv8-neon}        callconvention-hard"
+TUNE_FEATURES_tune-armv8ahfb-crypto-fp-armv8-neon  = "${TUNE_FEATURES_tune-armv8ab-crypto-fp-armv8-neon}  callconvention-hard"
+TUNE_FEATURES_tune-armv8athfb-crypto-fp-armv8-neon = "${TUNE_FEATURES_tune-armv8atb-crypto-fp-armv8-neon} callconvention-hard"
+PACKAGE_EXTRA_ARCHS_tune-armv8ahfb                       = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehfb} armv8ab armv8ahfb"
+PACKAGE_EXTRA_ARCHS_tune-armv8athfb                      = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethfb} armv8ab armv8ahfb armv8at2hfb"
+PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-neon                  = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahfb} armv8ahfb-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8athfb-neon                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8athfb} armv8ahfb-neon armv8at2hfb-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-vfpv4                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahfb} armv8ahfb-vfpv4"
+PACKAGE_EXTRA_ARCHS_tune-armv8athfb-vfpv4                = "${PACKAGE_EXTRA_ARCHS_tune-armv8athfb} armv8ahfb-vfpv4 armv8at2hfb-vfpv4"
+PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-vfpv4-neon            = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-vfpv4} armv8ahfb-neon armv8ahfb-neon-vfpv4"
+PACKAGE_EXTRA_ARCHS_tune-armv8athfb-vfpv4-neon           = "${PACKAGE_EXTRA_ARCHS_tune-armv8athfb-vfpv4} armv8ahfb-neon armv8at2hfb-neon armv8ahfb-neon-vfpv4 armv8at2hfb-neon-vfpv4"
+PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-fp-armv8              = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahfb} armv8ahfb-fp-armv8"
+PACKAGE_EXTRA_ARCHS_tune-armv8athfb-fp-armv8             = "${PACKAGE_EXTRA_ARCHS_tune-armv8athfb} armv8ahfb-fp-armv8 armv8at2hfb-fp-armv8"
+PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-fp-armv8-neon         = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-fp-armv8} armv8ahfb-neon armv8ahfb-fp-armv8-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8athfb-fp-armv8-neon        = "${PACKAGE_EXTRA_ARCHS_tune-armv8athfb-fp-armv8} armv8ahfb-neon armv8at2hfb-neon armv8ahfb-fp-armv8-neon armv8at2hfb-fp-armv8-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-crypto-fp-armv8-neon  = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-fp-armv8-neon} armv8ahfb-crypto-fp-armv8-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8athfb-crypto-fp-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8athfb-fp-armv8-neon} armv8ahfb-crypto-fp-armv8-neon armv8at2hfb-crypto-fp-armv8-neon"
+
+# Big Endian + HF + CRC
+AVAILTUNES += "armv8ahfb-crc armv8athfb-crc armv8ahfb-crc-neon armv8athfb-crc-neon armv8ahfb-crc-vfpv4 armv8athfb-crc-vfpv4 armv8ahfb-crc-vfpv4-neon armv8athfb-crc-vfpv4-neon armv8ahfb-crc-fp-armv8 armv8athfb-crc-fp-armv8 armv8ahfb-crc-fp-armv8-neon armv8athfb-crc-fp-armv8-neon armv8ahfb-crc-crypto-fp-armv8-neon armv8athfb-crc-crypto-fp-armv8-neon"
+ARMPKGARCH_tune-armv8ahfb-crc                       ?= "armv8a"
+ARMPKGARCH_tune-armv8athfb-crc                      ?= "armv8a"
+ARMPKGARCH_tune-armv8ahfb-crc-neon                  ?= "armv8a"
+ARMPKGARCH_tune-armv8athfb-crc-neon                 ?= "armv8a"
+ARMPKGARCH_tune-armv8ahfb-crc-vfpv4                 ?= "armv8a"
+ARMPKGARCH_tune-armv8athfb-crc-vfpv4                ?= "armv8a"
+ARMPKGARCH_tune-armv8ahfb-crc-vfpv4-neon            ?= "armv8a"
+ARMPKGARCH_tune-armv8athfb-crc-vfpv4-neon           ?= "armv8a"
+ARMPKGARCH_tune-armv8ahfb-crc-fp-armv8              ?= "armv8a"
+ARMPKGARCH_tune-armv8athfb-crc-fp-armv8             ?= "armv8a"
+ARMPKGARCH_tune-armv8ahfb-crc-fp-armv8-neon         ?= "armv8a"
+ARMPKGARCH_tune-armv8athfb-crc-fp-armv8-neon        ?= "armv8a"
+ARMPKGARCH_tune-armv8ahfb-crc-crypto-fp-armv8-neon  ?= "armv8a"
+ARMPKGARCH_tune-armv8athfb-crc-crypto-fp-armv8-neon ?= "armv8a"
+TUNE_FEATURES_tune-armv8ahfb-crc                       = "${TUNE_FEATURES_tune-armv8ahfb}                       crc"
+TUNE_FEATURES_tune-armv8athfb-crc                      = "${TUNE_FEATURES_tune-armv8athfb}                      crc"
+TUNE_FEATURES_tune-armv8ahfb-crc-neon                  = "${TUNE_FEATURES_tune-armv8ahfb-neon}                  crc"
+TUNE_FEATURES_tune-armv8athfb-crc-neon                 = "${TUNE_FEATURES_tune-armv8athfb-neon}                 crc"
+TUNE_FEATURES_tune-armv8ahfb-crc-vfpv4                 = "${TUNE_FEATURES_tune-armv8ahfb-vfpv4}                 crc"
+TUNE_FEATURES_tune-armv8athfb-crc-vfpv4                = "${TUNE_FEATURES_tune-armv8athfb-vfpv4}                crc"
+TUNE_FEATURES_tune-armv8ahfb-crc-vfpv4-neon            = "${TUNE_FEATURES_tune-armv8ahfb-vfpv4-neon}            crc"
+TUNE_FEATURES_tune-armv8athfb-crc-vfpv4-neon           = "${TUNE_FEATURES_tune-armv8athfb-vfpv4-neon}           crc"
+TUNE_FEATURES_tune-armv8ahfb-crc-fp-armv8              = "${TUNE_FEATURES_tune-armv8ahfb-fp-armv8}              crc"
+TUNE_FEATURES_tune-armv8athfb-crc-fp-armv8             = "${TUNE_FEATURES_tune-armv8athfb-fp-armv8}             crc"
+TUNE_FEATURES_tune-armv8ahfb-crc-fp-armv8-neon         = "${TUNE_FEATURES_tune-armv8ahfb-fp-armv8-neon}         crc"
+TUNE_FEATURES_tune-armv8athfb-crc-fp-armv8-neon        = "${TUNE_FEATURES_tune-armv8athfb-fp-armv8-neon}        crc"
+TUNE_FEATURES_tune-armv8ahfb-crc-crypto-fp-armv8-neon  = "${TUNE_FEATURES_tune-armv8ahfb-crypto-fp-armv8-neon}  crc"
+TUNE_FEATURES_tune-armv8athfb-crc-crypto-fp-armv8-neon = "${TUNE_FEATURES_tune-armv8athfb-crypto-fp-armv8-neon} crc"
+PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-crc                       = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahfb} armv8ahfb-crc"
+PACKAGE_EXTRA_ARCHS_tune-armv8athfb-crc                      = "${PACKAGE_EXTRA_ARCHS_tune-armv8athfb} armv8ahfb-crc armv8at2hfb-crc"
+PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-crc-neon                  = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-neon} armv8ahfb-crc-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8athfb-crc-neon                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8athfb-neon} armv8ahfb-crc-neon armv8at2hfb-crc-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-crc-vfpv4                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-vfpv4} armv8ahfb-crc-vfpv4"
+PACKAGE_EXTRA_ARCHS_tune-armv8athfb-crc-vfpv4                = "${PACKAGE_EXTRA_ARCHS_tune-armv8athfb-vfpv4} armv8ahfb-crc-vfpv4 armv8at2hfb-crc-vfpv4"
+PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-crc-vfpv4-neon            = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-vfpv4-neon} armv8ahfb-crc-neon armv8ahfb-crc-vfpv4-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8athfb-crc-vfpv4-neon           = "${PACKAGE_EXTRA_ARCHS_tune-armv8athfb-vfpv4-neon} armv8ahfb-crc-neon armv8at2hfb-crc-neon armv8ahfb-crc-vfpv4-neon armv8at2hfb-crc-vfpv4-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-crc-fp-armv8              = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-fp-armv8} armv8ahfb-crc-fp-armv8"
+PACKAGE_EXTRA_ARCHS_tune-armv8athfb-crc-fp-armv8             = "${PACKAGE_EXTRA_ARCHS_tune-armv8athfb-fp-armv8} armv8ahfb-crc-fp-armv8 armv8at2hfb-crc-fp-armv8"
+PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-crc-fp-armv8-neon         = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-fp-armv8-neon} armv8ahfb-crc-fp-armv8-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8athfb-crc-fp-armv8-neon        = "${PACKAGE_EXTRA_ARCHS_tune-armv8athfb-fp-armv8-neon} armv8ahfb-crc-fp-armv8-neon armv8at2hfb-crc-fp-armv8-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-crc-crypto-fp-armv8-neon  = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-crypto-fp-armv8-neon} armv8ahfb-crc-crypto-fp-armv8-neon"
+PACKAGE_EXTRA_ARCHS_tune-armv8athfb-crc-crypto-fp-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8athfb-crypto-fp-armv8-neon} armv8ahfb-crc-crypto-fp-armv8-neon armv8at2hfb-crc-crypto-fp-armv8-neon"
diff --git a/meta/conf/machine/include/arm/feature-arm-thumb.inc b/meta/conf/machine/include/arm/feature-arm-thumb.inc
index 1faebf7..36bb510 100644
--- a/meta/conf/machine/include/arm/feature-arm-thumb.inc
+++ b/meta/conf/machine/include/arm/feature-arm-thumb.inc
@@ -7,6 +7,7 @@ ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7a', 't2', '', d
 ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7r', 't2', '', d)}"
 ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7m', 't2', '', d)}"
 ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7ve', 't2', '', d)}"
+ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8a', 't2', '', d)}"
 
 # If the device supports ARM, then respect ARM_THUMB_OPT (which can be "arm" or "thumb")
 # If the defice doesn't support ARM, then always set "thumb" even when
-- 
1.9.1



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCHv2][master] arch-armv8a.inc: Add tune for 32-bit ARMv8a
  2016-03-11 17:58 ` [PATCHv2][master] arch-armv8a.inc: Add tune for 32-bit ARMv8a Daniel Dragomir
@ 2016-03-11 18:36   ` Otavio Salvador
  2016-03-12  0:17   ` Khem Raj
  1 sibling, 0 replies; 11+ messages in thread
From: Otavio Salvador @ 2016-03-11 18:36 UTC (permalink / raw)
  To: Daniel Dragomir; +Cc: Patches and discussions about the oe-core layer

On Fri, Mar 11, 2016 at 2:58 PM, Daniel Dragomir
<daniel.dragomir@windriver.com> wrote:
>
> This patch adds tunes for 32-bit armv8a platforms. The user can select
> little or big endian, hard or soft float, the vector floating-point
> instruction set: vfpv4 or fp-armv8 and the thumb, neon, crc and crypto
> extensions.
>
> Signed-off-by: Daniel Dragomir <daniel.dragomir@windriver.com>

As we were in touch and testing this together I am confortable to give:

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Tested-by: Otavio Salvador <otavio@ossystems.com.br>

-- 
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCHv2][master] arch-armv8a.inc: Add tune for 32-bit ARMv8a
  2016-03-11 17:58 ` [PATCHv2][master] arch-armv8a.inc: Add tune for 32-bit ARMv8a Daniel Dragomir
  2016-03-11 18:36   ` Otavio Salvador
@ 2016-03-12  0:17   ` Khem Raj
  2016-03-12 11:41     ` Otavio Salvador
  1 sibling, 1 reply; 11+ messages in thread
From: Khem Raj @ 2016-03-12  0:17 UTC (permalink / raw)
  To: Daniel Dragomir; +Cc: Otavio Salvador, OE-core

[-- Attachment #1: Type: text/plain, Size: 43039 bytes --]


> On Mar 12, 2016, at 12:58 AM, Daniel Dragomir <daniel.dragomir@windriver.com> wrote:
> 
> This patch adds tunes for 32-bit armv8a platforms. The user can select
> little or big endian, hard or soft float, the vector floating-point
> instruction set: vfpv4 or fp-armv8 and the thumb, neon, crc and crypto
> extensions.

This does not feel right to me. Look at how thunderX looks like
ARMv8 is the time to fix this tune explodes on arm, this patch is not helping
it.

Do we need the hf/neon/vfp/thumb2 variants?

Only crc, crypto probably are needed.

It is not leveraging existing arm64 tune includes as well. I would rather have
no further tunes for aarch64 at this point.

choose a sane default and lets live with it.
> 
> Signed-off-by: Daniel Dragomir <daniel.dragomir@windriver.com>
> ---
> meta/conf/machine/include/arm/arch-armv8a.inc      | 382 +++++++++++++++++++++
> .../conf/machine/include/arm/feature-arm-thumb.inc |   1 +
> 2 files changed, 383 insertions(+)
> create mode 100644 meta/conf/machine/include/arm/arch-armv8a.inc
> 
> diff --git a/meta/conf/machine/include/arm/arch-armv8a.inc b/meta/conf/machine/include/arm/arch-armv8a.inc
> new file mode 100644
> index 0000000..6544f50
> --- /dev/null
> +++ b/meta/conf/machine/include/arm/arch-armv8a.inc
> @@ -0,0 +1,382 @@
> +DEFAULTTUNE ?= "armv8a"
> +
> +TUNEVALID[armv8a] = "Enable instructions for ARMv8-a"
> +TUNECONFLICTS[armv8a] = "armv4 armv5 armv6 armv7 armv7a armv7ve"
> +
> +TUNEVALID[crc] = "Enable CRC instructions for ARMv8-a"
> +ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "crc", "-crc", "", d)}"
> +
> +TUNEVALID[crypto] = "Enable ARMv8 crypto extension."
> +ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "crypto", "-crypto", "", d)}"
> +
> +TUNEVALID[fp-armv8] = "Enable ARMv8 Vector Floating Point unit."
> +ARMPKGSFX_FPU .= "${@bb.utils.contains("TUNE_FEATURES", "fp-armv8", "-fp-armv8", "", d)}"
> +
> +TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "armv8a", bb.utils.contains("TUNE_FEATURES", "crc", " -march=armv8-a+crc", " -march=armv8-a", d), "", d)}"
> +
> +TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "fp-armv8", bb.utils.contains("TUNE_FEATURES", "neon", bb.utils.contains("TUNE_FEATURES", "crypto", " -mfpu=crypto-neon-fp-armv8", " -mfpu=neon-fp-armv8", d), " -mfpu=fp-armv8", d), "", d)}"
> +
> +MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "armv8a", "armv8a:", "" ,d)}"
> +
> +require conf/machine/include/arm/arch-armv7ve.inc
> +
> +# Little Endian base configs
> +AVAILTUNES += "armv8a armv8at armv8a-neon armv8at-neon armv8a-vfpv4 armv8at-vfpv4 armv8a-vfpv4-neon armv8at-vfpv4-neon armv8a-fp-armv8 armv8at-fp-armv8 armv8a-fp-armv8-neon armv8at-fp-armv8-neon armv8a-crypto-fp-armv8-neon armv8at-crypto-fp-armv8-neon"
> +ARMPKGARCH_tune-armv8a                       ?= "armv8a"
> +ARMPKGARCH_tune-armv8at                      ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-neon                  ?= "armv8a"
> +ARMPKGARCH_tune-armv8at-neon                 ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-vfpv4                 ?= "armv8a"
> +ARMPKGARCH_tune-armv8at-vfpv4                ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-vfpv4-neon            ?= "armv8a"
> +ARMPKGARCH_tune-armv8at-vfpv4-neon           ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-fp-armv8              ?= "armv8a"
> +ARMPKGARCH_tune-armv8at-fp-armv8             ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-fp-armv8-neon         ?= "armv8a"
> +ARMPKGARCH_tune-armv8at-fp-armv8-neon        ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crypto-fp-armv8-neon  ?= "armv8a"
> +ARMPKGARCH_tune-armv8at-crypto-fp-armv8-neon ?= "armv8a"
> +TUNE_FEATURES_tune-armv8a                       = "arm armv8a"
> +TUNE_FEATURES_tune-armv8at                      = "${TUNE_FEATURES_tune-armv8a} thumb"
> +TUNE_FEATURES_tune-armv8a-neon                  = "${TUNE_FEATURES_tune-armv8a} neon"
> +TUNE_FEATURES_tune-armv8at-neon                 = "${TUNE_FEATURES_tune-armv8at} neon"
> +TUNE_FEATURES_tune-armv8a-vfpv4                 = "${TUNE_FEATURES_tune-armv8a} vfpv4"
> +TUNE_FEATURES_tune-armv8at-vfpv4                = "${TUNE_FEATURES_tune-armv8at} vfpv4"
> +TUNE_FEATURES_tune-armv8a-vfpv4-neon            = "${TUNE_FEATURES_tune-armv8a-neon} vfpv4"
> +TUNE_FEATURES_tune-armv8at-vfpv4-neon           = "${TUNE_FEATURES_tune-armv8at-neon} vfpv4"
> +TUNE_FEATURES_tune-armv8a-fp-armv8              = "${TUNE_FEATURES_tune-armv8a} fp-armv8"
> +TUNE_FEATURES_tune-armv8at-fp-armv8             = "${TUNE_FEATURES_tune-armv8at} fp-armv8"
> +TUNE_FEATURES_tune-armv8a-fp-armv8-neon         = "${TUNE_FEATURES_tune-armv8a-neon} fp-armv8"
> +TUNE_FEATURES_tune-armv8at-fp-armv8-neon        = "${TUNE_FEATURES_tune-armv8at-neon} fp-armv8"
> +TUNE_FEATURES_tune-armv8a-crypto-fp-armv8-neon  = "${TUNE_FEATURES_tune-armv8a-fp-armv8-neon} crypto"
> +TUNE_FEATURES_tune-armv8at-crypto-fp-armv8-neon = "${TUNE_FEATURES_tune-armv8at-fp-armv8-neon} crypto"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a                       = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve} armv8a"
> +PACKAGE_EXTRA_ARCHS_tune-armv8at                      = "${PACKAGE_EXTRA_ARCHS_tune-armv7vet} armv8a"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-neon                  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8at-neon                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8at} armv8a-neon armv8at2-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-vfpv4"
> +PACKAGE_EXTRA_ARCHS_tune-armv8at-vfpv4                = "${PACKAGE_EXTRA_ARCHS_tune-armv8at} armv8a-vfpv4 armv8at2-vfpv4"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4-neon            = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4} armv8a-neon armv8a-neon-vfpv4"
> +PACKAGE_EXTRA_ARCHS_tune-armv8at-vfpv4-neon           = "${PACKAGE_EXTRA_ARCHS_tune-armv8at-vfpv4} armv8a-neon armv8at2-neon armv8a-neon-vfpv4 armv8at2-neon-vfpv4"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8              = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-fp-armv8"
> +PACKAGE_EXTRA_ARCHS_tune-armv8at-fp-armv8             = "${PACKAGE_EXTRA_ARCHS_tune-armv8at} armv8a-fp-armv8 armv8at2-fp-armv8"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8-neon         = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8} armv8a-neon armv8a-fp-armv8-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8at-fp-armv8-neon        = "${PACKAGE_EXTRA_ARCHS_tune-armv8at-fp-armv8} armv8a-neon armv8at2-neon armv8a-fp-armv8-neon armv8at2-fp-armv8-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto-fp-armv8-neon  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8-neon} armv8a-crypto-fp-armv8-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8at-crypto-fp-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8at-fp-armv8-neon} armv8a-crypto-fp-armv8-neon armv8at2-crypto-fp-armv8-neon"
> +
> +# CRC configs
> +AVAILTUNES += "armv8a-crc armv8at-crc armv8a-crc-neon armv8at-crc-neon armv8a-crc-vfpv4 armv8at-crc-vfpv4 armv8a-crc-vfpv4-neon armv8at-crc-vfpv4-neon armv8a-crc-fp-armv8 armv8at-crc-fp-armv8 armv8a-crc-fp-armv8-neon armv8at-crc-fp-armv8-neon armv8a-crc-crypto-fp-armv8-neon armv8at-crc-crypto-fp-armv8-neon"
> +ARMPKGARCH_tune-armv8a-crc                       ?= "armv8a"
> +ARMPKGARCH_tune-armv8at-crc                      ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crc-neon                  ?= "armv8a"
> +ARMPKGARCH_tune-armv8at-crc-neon                 ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crc-vfpv4                 ?= "armv8a"
> +ARMPKGARCH_tune-armv8at-crc-vfpv4                ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crc-vfpv4-neon            ?= "armv8a"
> +ARMPKGARCH_tune-armv8at-crc-vfpv4-neon           ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crc-fp-armv8              ?= "armv8a"
> +ARMPKGARCH_tune-armv8at-crc-fp-armv8             ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crc-fp-armv8-neon         ?= "armv8a"
> +ARMPKGARCH_tune-armv8at-crc-fp-armv8-neon        ?= "armv8a"
> +ARMPKGARCH_tune-armv8a-crc-crypto-fp-armv8-neon  ?= "armv8a"
> +ARMPKGARCH_tune-armv8at-crc-crypto-fp-armv8-neon ?= "armv8a"
> +TUNE_FEATURES_tune-armv8a-crc                       = "${TUNE_FEATURES_tune-armv8a}                       crc"
> +TUNE_FEATURES_tune-armv8at-crc                      = "${TUNE_FEATURES_tune-armv8at}                      crc"
> +TUNE_FEATURES_tune-armv8a-crc-neon                  = "${TUNE_FEATURES_tune-armv8a-neon}                  crc"
> +TUNE_FEATURES_tune-armv8at-crc-neon                 = "${TUNE_FEATURES_tune-armv8at-neon}                 crc"
> +TUNE_FEATURES_tune-armv8a-crc-vfpv4                 = "${TUNE_FEATURES_tune-armv8a-vfpv4}                 crc"
> +TUNE_FEATURES_tune-armv8at-crc-vfpv4                = "${TUNE_FEATURES_tune-armv8at-vfpv4}                crc"
> +TUNE_FEATURES_tune-armv8a-crc-vfpv4-neon            = "${TUNE_FEATURES_tune-armv8a-vfpv4-neon}            crc"
> +TUNE_FEATURES_tune-armv8at-crc-vfpv4-neon           = "${TUNE_FEATURES_tune-armv8at-vfpv4-neon}           crc"
> +TUNE_FEATURES_tune-armv8a-crc-fp-armv8              = "${TUNE_FEATURES_tune-armv8a-fp-armv8}              crc"
> +TUNE_FEATURES_tune-armv8at-crc-fp-armv8             = "${TUNE_FEATURES_tune-armv8at-fp-armv8}             crc"
> +TUNE_FEATURES_tune-armv8a-crc-fp-armv8-neon         = "${TUNE_FEATURES_tune-armv8a-fp-armv8-neon}         crc"
> +TUNE_FEATURES_tune-armv8at-crc-fp-armv8-neon        = "${TUNE_FEATURES_tune-armv8at-fp-armv8-neon}        crc"
> +TUNE_FEATURES_tune-armv8a-crc-crypto-fp-armv8-neon  = "${TUNE_FEATURES_tune-armv8a-crypto-fp-armv8-neon}  crc"
> +TUNE_FEATURES_tune-armv8at-crc-crypto-fp-armv8-neon = "${TUNE_FEATURES_tune-armv8at-crypto-fp-armv8-neon} crc"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc                       = "${PACKAGE_EXTRA_ARCHS_tune-armv8a} armv8a-crc"
> +PACKAGE_EXTRA_ARCHS_tune-armv8at-crc                      = "${PACKAGE_EXTRA_ARCHS_tune-armv8at} armv8a-crc armv8at2-crc"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-neon                  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-neon} armv8a-crc-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8at-crc-neon                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8at-neon} armv8a-crc-neon armv8at2-crc-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4} armv8a-crc-vfpv4"
> +PACKAGE_EXTRA_ARCHS_tune-armv8at-crc-vfpv4                = "${PACKAGE_EXTRA_ARCHS_tune-armv8at-vfpv4} armv8a-crc-vfpv4 armv8at2-crc-vfpv4"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-vfpv4-neon            = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-vfpv4-neon} armv8a-crc-neon armv8a-crc-vfpv4-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8at-crc-vfpv4-neon           = "${PACKAGE_EXTRA_ARCHS_tune-armv8at-vfpv4-neon} armv8a-crc-neon armv8at2-crc-neon armv8a-crc-vfpv4-neon armv8at2-crc-vfpv4-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8              = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8} armv8a-crc-fp-armv8"
> +PACKAGE_EXTRA_ARCHS_tune-armv8at-crc-fp-armv8             = "${PACKAGE_EXTRA_ARCHS_tune-armv8at-fp-armv8} armv8a-crc-fp-armv8 armv8at2-crc-fp-armv8"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-fp-armv8-neon         = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-fp-armv8-neon} armv8a-crc-fp-armv8-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8at-crc-fp-armv8-neon        = "${PACKAGE_EXTRA_ARCHS_tune-armv8at-fp-armv8-neon} armv8a-crc-fp-armv8-neon armv8at2-crc-fp-armv8-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto-fp-armv8-neon  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crypto-fp-armv8-neon} armv8a-crc-crypto-fp-armv8-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8at-crc-crypto-fp-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8at-crypto-fp-armv8-neon} armv8a-crc-crypto-fp-armv8-neon armv8at2-crc-crypto-fp-armv8-neon"
> +
> +# HF configs
> +AVAILTUNES += "armv8ahf armv8athf armv8ahf-neon armv8athf-neon armv8ahf-vfpv4 armv8athf-vfpv4 armv8ahf-vfpv4-neon armv8athf-vfpv4-neon armv8ahf-fp-armv8 armv8athf-fp-armv8 armv8ahf-fp-armv8-neon armv8athf-fp-armv8-neon armv8ahf-crypto-fp-armv8-neon armv8athf-crypto-fp-armv8-neon"
> +ARMPKGARCH_tune-armv8ahf                       ?= "armv8a"
> +ARMPKGARCH_tune-armv8athf                      ?= "armv8a"
> +ARMPKGARCH_tune-armv8ahf-neon                  ?= "armv8a"
> +ARMPKGARCH_tune-armv8athf-neon                 ?= "armv8a"
> +ARMPKGARCH_tune-armv8ahf-vfpv4                 ?= "armv8a"
> +ARMPKGARCH_tune-armv8athf-vfpv4                ?= "armv8a"
> +ARMPKGARCH_tune-armv8ahf-vfpv4-neon            ?= "armv8a"
> +ARMPKGARCH_tune-armv8athf-vfpv4-neon           ?= "armv8a"
> +ARMPKGARCH_tune-armv8ahf-fp-armv8              ?= "armv8a"
> +ARMPKGARCH_tune-armv8athf-fp-armv8             ?= "armv8a"
> +ARMPKGARCH_tune-armv8ahf-fp-armv8-neon         ?= "armv8a"
> +ARMPKGARCH_tune-armv8athf-fp-armv8-neon        ?= "armv8a"
> +ARMPKGARCH_tune-armv8ahf-crypto-fp-armv8-neon  ?= "armv8a"
> +ARMPKGARCH_tune-armv8athf-crypto-fp-armv8-neon ?= "armv8a"
> +TUNE_FEATURES_tune-armv8ahf                       = "${TUNE_FEATURES_tune-armv8a}                       callconvention-hard"
> +TUNE_FEATURES_tune-armv8athf                      = "${TUNE_FEATURES_tune-armv8at}                      callconvention-hard"
> +TUNE_FEATURES_tune-armv8ahf-neon                  = "${TUNE_FEATURES_tune-armv8a-neon}                  callconvention-hard"
> +TUNE_FEATURES_tune-armv8athf-neon                 = "${TUNE_FEATURES_tune-armv8at-neon}                 callconvention-hard"
> +TUNE_FEATURES_tune-armv8ahf-vfpv4                 = "${TUNE_FEATURES_tune-armv8a-vfpv4}                 callconvention-hard"
> +TUNE_FEATURES_tune-armv8athf-vfpv4                = "${TUNE_FEATURES_tune-armv8at-vfpv4}                callconvention-hard"
> +TUNE_FEATURES_tune-armv8ahf-vfpv4-neon            = "${TUNE_FEATURES_tune-armv8a-vfpv4-neon}            callconvention-hard"
> +TUNE_FEATURES_tune-armv8athf-vfpv4-neon           = "${TUNE_FEATURES_tune-armv8at-vfpv4-neon}           callconvention-hard"
> +TUNE_FEATURES_tune-armv8ahf-fp-armv8              = "${TUNE_FEATURES_tune-armv8a-fp-armv8}              callconvention-hard"
> +TUNE_FEATURES_tune-armv8athf-fp-armv8             = "${TUNE_FEATURES_tune-armv8at-fp-armv8}             callconvention-hard"
> +TUNE_FEATURES_tune-armv8ahf-fp-armv8-neon         = "${TUNE_FEATURES_tune-armv8a-fp-armv8-neon}         callconvention-hard"
> +TUNE_FEATURES_tune-armv8athf-fp-armv8-neon        = "${TUNE_FEATURES_tune-armv8at-fp-armv8-neon}        callconvention-hard"
> +TUNE_FEATURES_tune-armv8ahf-crypto-fp-armv8-neon  = "${TUNE_FEATURES_tune-armv8a-crypto-fp-armv8-neon}  callconvention-hard"
> +TUNE_FEATURES_tune-armv8athf-crypto-fp-armv8-neon = "${TUNE_FEATURES_tune-armv8at-crypto-fp-armv8-neon} callconvention-hard"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ahf                       = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf} armv8a armv8ahf"
> +PACKAGE_EXTRA_ARCHS_tune-armv8athf                      = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf} armv8a armv8ahf armv8at2hf"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ahf-neon                  = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahf} armv8ahf-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8athf-neon                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8athf} armv8ahf-neon armv8at2hf-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ahf-vfpv4                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahf} armv8ahf-vfpv4"
> +PACKAGE_EXTRA_ARCHS_tune-armv8athf-vfpv4                = "${PACKAGE_EXTRA_ARCHS_tune-armv8athf} armv8ahf-vfpv4 armv8at2hf-vfpv4"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ahf-vfpv4-neon            = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahf-vfpv4} armv8ahf-neon armv8ahf-neon-vfpv4"
> +PACKAGE_EXTRA_ARCHS_tune-armv8athf-vfpv4-neon           = "${PACKAGE_EXTRA_ARCHS_tune-armv8athf-vfpv4} armv8ahf-neon armv8at2hf-neon armv8ahf-neon-vfpv4 armv8at2hf-neon-vfpv4"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ahf-fp-armv8              = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahf} armv8ahf-fp-armv8"
> +PACKAGE_EXTRA_ARCHS_tune-armv8athf-fp-armv8             = "${PACKAGE_EXTRA_ARCHS_tune-armv8athf} armv8ahf-fp-armv8 armv8at2hf-fp-armv8"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ahf-fp-armv8-neon         = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahf-fp-armv8} armv8ahf-neon armv8ahf-fp-armv8-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8athf-fp-armv8-neon        = "${PACKAGE_EXTRA_ARCHS_tune-armv8athf-fp-armv8} armv8ahf-neon armv8at2hf-neon armv8ahf-fp-armv8-neon armv8at2hf-fp-armv8-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ahf-crypto-fp-armv8-neon  = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahf-fp-armv8-neon} armv8ahf-crypto-fp-armv8-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8athf-crypto-fp-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8athf-fp-armv8-neon} armv8ahf-crypto-fp-armv8-neon armv8at2hf-crypto-fp-armv8-neon"
> +
> +# HF + CRC
> +AVAILTUNES += "armv8ahf-crc armv8athf-crc armv8ahf-crc-neon armv8athf-crc-neon armv8ahf-crc-vfpv4 armv8athf-crc-vfpv4 armv8ahf-crc-vfpv4-neon armv8athf-crc-vfpv4-neon armv8ahf-crc-fp-armv8 armv8athf-crc-fp-armv8 armv8ahf-crc-fp-armv8-neon armv8athf-crc-fp-armv8-neon armv8ahf-crc-crypto-fp-armv8-neon armv8athf-crc-crypto-fp-armv8-neon"
> +ARMPKGARCH_tune-armv8ahf-crc                       ?= "armv8a"
> +ARMPKGARCH_tune-armv8athf-crc                      ?= "armv8a"
> +ARMPKGARCH_tune-armv8ahf-crc-neon                  ?= "armv8a"
> +ARMPKGARCH_tune-armv8athf-crc-neon                 ?= "armv8a"
> +ARMPKGARCH_tune-armv8ahf-crc-vfpv4                 ?= "armv8a"
> +ARMPKGARCH_tune-armv8athf-crc-vfpv4                ?= "armv8a"
> +ARMPKGARCH_tune-armv8ahf-crc-vfpv4-neon            ?= "armv8a"
> +ARMPKGARCH_tune-armv8athf-crc-vfpv4-neon           ?= "armv8a"
> +ARMPKGARCH_tune-armv8ahf-crc-fp-armv8              ?= "armv8a"
> +ARMPKGARCH_tune-armv8athf-crc-fp-armv8             ?= "armv8a"
> +ARMPKGARCH_tune-armv8ahf-crc-fp-armv8-neon         ?= "armv8a"
> +ARMPKGARCH_tune-armv8athf-crc-fp-armv8-neon        ?= "armv8a"
> +ARMPKGARCH_tune-armv8ahf-crc-crypto-fp-armv8-neon  ?= "armv8a"
> +ARMPKGARCH_tune-armv8athf-crc-crypto-fp-armv8-neon ?= "armv8a"
> +TUNE_FEATURES_tune-armv8ahf-crc                       = "${TUNE_FEATURES_tune-armv8ahf}                       crc"
> +TUNE_FEATURES_tune-armv8athf-crc                      = "${TUNE_FEATURES_tune-armv8athf}                      crc"
> +TUNE_FEATURES_tune-armv8ahf-crc-neon                  = "${TUNE_FEATURES_tune-armv8ahf-neon}                  crc"
> +TUNE_FEATURES_tune-armv8athf-crc-neon                 = "${TUNE_FEATURES_tune-armv8athf-neon}                 crc"
> +TUNE_FEATURES_tune-armv8ahf-crc-vfpv4                 = "${TUNE_FEATURES_tune-armv8ahf-vfpv4}                 crc"
> +TUNE_FEATURES_tune-armv8athf-crc-vfpv4                = "${TUNE_FEATURES_tune-armv8athf-vfpv4}                crc"
> +TUNE_FEATURES_tune-armv8ahf-crc-vfpv4-neon            = "${TUNE_FEATURES_tune-armv8ahf-vfpv4-neon}            crc"
> +TUNE_FEATURES_tune-armv8athf-crc-vfpv4-neon           = "${TUNE_FEATURES_tune-armv8athf-vfpv4-neon}           crc"
> +TUNE_FEATURES_tune-armv8ahf-crc-fp-armv8              = "${TUNE_FEATURES_tune-armv8ahf-fp-armv8}              crc"
> +TUNE_FEATURES_tune-armv8athf-crc-fp-armv8             = "${TUNE_FEATURES_tune-armv8athf-fp-armv8}             crc"
> +TUNE_FEATURES_tune-armv8ahf-crc-fp-armv8-neon         = "${TUNE_FEATURES_tune-armv8ahf-fp-armv8-neon}         crc"
> +TUNE_FEATURES_tune-armv8athf-crc-fp-armv8-neon        = "${TUNE_FEATURES_tune-armv8athf-fp-armv8-neon}        crc"
> +TUNE_FEATURES_tune-armv8ahf-crc-crypto-fp-armv8-neon  = "${TUNE_FEATURES_tune-armv8ahf-crypto-fp-armv8-neon}  crc"
> +TUNE_FEATURES_tune-armv8athf-crc-crypto-fp-armv8-neon = "${TUNE_FEATURES_tune-armv8athf-crypto-fp-armv8-neon} crc"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ahf-crc                       = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahf} armv8ahf-crc"
> +PACKAGE_EXTRA_ARCHS_tune-armv8athf-crc                      = "${PACKAGE_EXTRA_ARCHS_tune-armv8athf} armv8ahf-crc armv8at2hf-crc"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ahf-crc-neon                  = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahf-neon} armv8ahf-crc-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8athf-crc-neon                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8athf-neon} armv8ahf-crc-neon armv8at2hf-crc-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ahf-crc-vfpv4                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahf-vfpv4} armv8ahf-crc-vfpv4"
> +PACKAGE_EXTRA_ARCHS_tune-armv8athf-crc-vfpv4                = "${PACKAGE_EXTRA_ARCHS_tune-armv8athf-vfpv4} armv8ahf-crc-vfpv4 armv8at2hf-crc-vfpv4"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ahf-crc-vfpv4-neon            = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahf-vfpv4-neon} armv8ahf-crc-neon armv8ahf-crc-vfpv4-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8athf-crc-vfpv4-neon           = "${PACKAGE_EXTRA_ARCHS_tune-armv8athf-vfpv4-neon} armv8ahf-crc-neon armv8at2hf-crc-neon armv8ahf-crc-vfpv4-neon armv8at2hf-crc-vfpv4-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ahf-crc-fp-armv8              = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahf-fp-armv8} armv8ahf-crc-fp-armv8"
> +PACKAGE_EXTRA_ARCHS_tune-armv8athf-crc-fp-armv8             = "${PACKAGE_EXTRA_ARCHS_tune-armv8athf-fp-armv8} armv8ahf-crc-fp-armv8 armv8at2hf-crc-fp-armv8"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ahf-crc-fp-armv8-neon         = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahf-fp-armv8-neon} armv8ahf-crc-fp-armv8-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8athf-crc-fp-armv8-neon        = "${PACKAGE_EXTRA_ARCHS_tune-armv8athf-fp-armv8-neon} armv8ahf-crc-fp-armv8-neon armv8at2hf-crc-fp-armv8-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ahf-crc-crypto-fp-armv8-neon  = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahf-crypto-fp-armv8-neon} armv8ahf-crc-crypto-fp-armv8-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8athf-crc-crypto-fp-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8athf-crypto-fp-armv8-neon} armv8ahf-crc-crypto-fp-armv8-neon armv8at2hf-crc-crypto-fp-armv8-neon"
> +
> +
> +# Big Endian
> +AVAILTUNES += "armv8ab armv8atb armv8ab-neon armv8atb-neon armv8ab-vfpv4 armv8atb-vfpv4 armv8ab-vfpv4-neon armv8atb-vfpv4-neon armv8ab-fp-armv8 armv8atb-fp-armv8 armv8ab-fp-armv8-neon armv8atb-fp-armv8-neon armv8ab-crypto-fp-armv8-neon armv8atb-crypto-fp-armv8-neon"
> +ARMPKGARCH_tune-armv8ab                       ?= "armv8a"
> +ARMPKGARCH_tune-armv8atb                      ?= "armv8a"
> +ARMPKGARCH_tune-armv8ab-neon                  ?= "armv8a"
> +ARMPKGARCH_tune-armv8atb-neon                 ?= "armv8a"
> +ARMPKGARCH_tune-armv8ab-vfpv4                 ?= "armv8a"
> +ARMPKGARCH_tune-armv8atb-vfpv4                ?= "armv8a"
> +ARMPKGARCH_tune-armv8ab-vfpv4-neon            ?= "armv8a"
> +ARMPKGARCH_tune-armv8atb-vfpv4-neon           ?= "armv8a"
> +ARMPKGARCH_tune-armv8ab-fp-armv8              ?= "armv8a"
> +ARMPKGARCH_tune-armv8atb-fp-armv8             ?= "armv8a"
> +ARMPKGARCH_tune-armv8ab-fp-armv8-neon         ?= "armv8a"
> +ARMPKGARCH_tune-armv8atb-fp-armv8-neon        ?= "armv8a"
> +ARMPKGARCH_tune-armv8ab-crypto-fp-armv8-neon  ?= "armv8a"
> +ARMPKGARCH_tune-armv8atb-crypto-fp-armv8-neon ?= "armv8a"
> +TUNE_FEATURES_tune-armv8ab                       = "${TUNE_FEATURES_tune-armv8a}                       bigendian"
> +TUNE_FEATURES_tune-armv8atb                      = "${TUNE_FEATURES_tune-armv8at}                      bigendian"
> +TUNE_FEATURES_tune-armv8ab-neon                  = "${TUNE_FEATURES_tune-armv8a-neon}                  bigendian"
> +TUNE_FEATURES_tune-armv8atb-neon                 = "${TUNE_FEATURES_tune-armv8at-neon}                 bigendian"
> +TUNE_FEATURES_tune-armv8ab-vfpv4                 = "${TUNE_FEATURES_tune-armv8a-vfpv4}                 bigendian"
> +TUNE_FEATURES_tune-armv8atb-vfpv4                = "${TUNE_FEATURES_tune-armv8at-vfpv4}                bigendian"
> +TUNE_FEATURES_tune-armv8ab-vfpv4-neon            = "${TUNE_FEATURES_tune-armv8a-vfpv4-neon}            bigendian"
> +TUNE_FEATURES_tune-armv8atb-vfpv4-neon           = "${TUNE_FEATURES_tune-armv8at-vfpv4-neon}           bigendian"
> +TUNE_FEATURES_tune-armv8ab-fp-armv8              = "${TUNE_FEATURES_tune-armv8a-fp-armv8}              bigendian"
> +TUNE_FEATURES_tune-armv8atb-fp-armv8             = "${TUNE_FEATURES_tune-armv8at-fp-armv8}             bigendian"
> +TUNE_FEATURES_tune-armv8ab-fp-armv8-neon         = "${TUNE_FEATURES_tune-armv8a-fp-armv8-neon}         bigendian"
> +TUNE_FEATURES_tune-armv8atb-fp-armv8-neon        = "${TUNE_FEATURES_tune-armv8at-fp-armv8-neon}        bigendian"
> +TUNE_FEATURES_tune-armv8ab-crypto-fp-armv8-neon  = "${TUNE_FEATURES_tune-armv8a-crypto-fp-armv8-neon}  bigendian"
> +TUNE_FEATURES_tune-armv8atb-crypto-fp-armv8-neon = "${TUNE_FEATURES_tune-armv8at-crypto-fp-armv8-neon} bigendian"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ab                       = "${PACKAGE_EXTRA_ARCHS_tune-armv7veb} armv8ab"
> +PACKAGE_EXTRA_ARCHS_tune-armv8atb                      = "${PACKAGE_EXTRA_ARCHS_tune-armv7vetb} armv8ab"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ab-neon                  = "${PACKAGE_EXTRA_ARCHS_tune-armv8ab} armv8ab-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8atb-neon                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8atb} armv8ab-neon armv8at2b-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ab-vfpv4                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8ab} armv8ab-vfpv4"
> +PACKAGE_EXTRA_ARCHS_tune-armv8atb-vfpv4                = "${PACKAGE_EXTRA_ARCHS_tune-armv8atb} armv8ab-vfpv4 armv8at2b-vfpv4"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ab-vfpv4-neon            = "${PACKAGE_EXTRA_ARCHS_tune-armv8ab-vfpv4} armv8ab-neon armv8ab-neon-vfpv4"
> +PACKAGE_EXTRA_ARCHS_tune-armv8atb-vfpv4-neon           = "${PACKAGE_EXTRA_ARCHS_tune-armv8atb-vfpv4} armv8ab-neon armv8at2b-neon armv8ab-neon-vfpv4 armv8at2b-neon-vfpv4"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ab-fp-armv8              = "${PACKAGE_EXTRA_ARCHS_tune-armv8ab} armv8ab-fp-armv8"
> +PACKAGE_EXTRA_ARCHS_tune-armv8atb-fp-armv8             = "${PACKAGE_EXTRA_ARCHS_tune-armv8atb} armv8ab-fp-armv8 armv8at2b-fp-armv8"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ab-fp-armv8-neon         = "${PACKAGE_EXTRA_ARCHS_tune-armv8ab-fp-armv8} armv8ab-neon armv8ab-fp-armv8-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8atb-fp-armv8-neon        = "${PACKAGE_EXTRA_ARCHS_tune-armv8atb-fp-armv8} armv8ab-neon armv8at2b-neon armv8ab-fp-armv8-neon armv8at2b-fp-armv8-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ab-crypto-fp-armv8-neon  = "${PACKAGE_EXTRA_ARCHS_tune-armv8ab-fp-armv8-neon} armv8ab-crypto-fp-armv8-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8atb-crypto-fp-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8atb-fp-armv8-neon} armv8ab-crypto-fp-armv8-neon armv8at2b-crypto-fp-armv8-neon"
> +
> +# Big Endian + CRC
> +AVAILTUNES += "armv8ab-crc armv8atb-crc armv8ab-crc-neon armv8atb-crc-neon armv8ab-crc-vfpv4 armv8atb-crc-vfpv4 armv8ab-crc-vfpv4-neon armv8atb-crc-vfpv4-neon armv8ab-crc-fp-armv8 armv8atb-crc-fp-armv8 armv8ab-crc-fp-armv8-neon armv8atb-crc-fp-armv8-neon armv8ab-crc-crypto-fp-armv8-neon armv8atb-crc-crypto-fp-armv8-neon"
> +ARMPKGARCH_tune-armv8ab-crc                       ?= "armv8a"
> +ARMPKGARCH_tune-armv8atb-crc                      ?= "armv8a"
> +ARMPKGARCH_tune-armv8ab-crc-neon                  ?= "armv8a"
> +ARMPKGARCH_tune-armv8atb-crc-neon                 ?= "armv8a"
> +ARMPKGARCH_tune-armv8ab-crc-vfpv4                 ?= "armv8a"
> +ARMPKGARCH_tune-armv8atb-crc-vfpv4                ?= "armv8a"
> +ARMPKGARCH_tune-armv8ab-crc-vfpv4-neon            ?= "armv8a"
> +ARMPKGARCH_tune-armv8atb-crc-vfpv4-neon           ?= "armv8a"
> +ARMPKGARCH_tune-armv8ab-crc-fp-armv8              ?= "armv8a"
> +ARMPKGARCH_tune-armv8atb-crc-fp-armv8             ?= "armv8a"
> +ARMPKGARCH_tune-armv8ab-crc-fp-armv8-neon         ?= "armv8a"
> +ARMPKGARCH_tune-armv8atb-crc-fp-armv8-neon        ?= "armv8a"
> +ARMPKGARCH_tune-armv8ab-crc-crypto-fp-armv8-neon  ?= "armv8a"
> +ARMPKGARCH_tune-armv8atb-crc-crypto-fp-armv8-neon ?= "armv8a"
> +TUNE_FEATURES_tune-armv8ab-crc                       = "${TUNE_FEATURES_tune-armv8ab}                       crc"
> +TUNE_FEATURES_tune-armv8atb-crc                      = "${TUNE_FEATURES_tune-armv8atb}                      crc"
> +TUNE_FEATURES_tune-armv8ab-crc-neon                  = "${TUNE_FEATURES_tune-armv8ab-neon}                  crc"
> +TUNE_FEATURES_tune-armv8atb-crc-neon                 = "${TUNE_FEATURES_tune-armv8atb-neon}                 crc"
> +TUNE_FEATURES_tune-armv8ab-crc-vfpv4                 = "${TUNE_FEATURES_tune-armv8ab-vfpv4}                 crc"
> +TUNE_FEATURES_tune-armv8atb-crc-vfpv4                = "${TUNE_FEATURES_tune-armv8atb-vfpv4}                crc"
> +TUNE_FEATURES_tune-armv8ab-crc-vfpv4-neon            = "${TUNE_FEATURES_tune-armv8ab-vfpv4-neon}            crc"
> +TUNE_FEATURES_tune-armv8atb-crc-vfpv4-neon           = "${TUNE_FEATURES_tune-armv8atb-vfpv4-neon}           crc"
> +TUNE_FEATURES_tune-armv8ab-crc-fp-armv8              = "${TUNE_FEATURES_tune-armv8ab-fp-armv8}              crc"
> +TUNE_FEATURES_tune-armv8atb-crc-fp-armv8             = "${TUNE_FEATURES_tune-armv8atb-fp-armv8}             crc"
> +TUNE_FEATURES_tune-armv8ab-crc-fp-armv8-neon         = "${TUNE_FEATURES_tune-armv8ab-fp-armv8-neon}         crc"
> +TUNE_FEATURES_tune-armv8atb-crc-fp-armv8-neon        = "${TUNE_FEATURES_tune-armv8atb-fp-armv8-neon}        crc"
> +TUNE_FEATURES_tune-armv8ab-crc-crypto-fp-armv8-neon  = "${TUNE_FEATURES_tune-armv8ab-crypto-fp-armv8-neon}  crc"
> +TUNE_FEATURES_tune-armv8atb-crc-crypto-fp-armv8-neon = "${TUNE_FEATURES_tune-armv8atb-crypto-fp-armv8-neon} crc"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ab-crc                       = "${PACKAGE_EXTRA_ARCHS_tune-armv8ab} armv8ab-crc"
> +PACKAGE_EXTRA_ARCHS_tune-armv8atb-crc                      = "${PACKAGE_EXTRA_ARCHS_tune-armv8atb} armv8ab-crc armv8at2b-crc"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ab-crc-neon                  = "${PACKAGE_EXTRA_ARCHS_tune-armv8ab-neon} armv8ab-crc-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8atb-crc-neon                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8atb-neon} armv8ab-crc-neon armv8at2b-crc-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ab-crc-vfpv4                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8ab-vfpv4} armv8ab-crc-vfpv4"
> +PACKAGE_EXTRA_ARCHS_tune-armv8atb-crc-vfpv4                = "${PACKAGE_EXTRA_ARCHS_tune-armv8atb-vfpv4} armv8ab-crc-vfpv4 armv8at2b-crc-vfpv4"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ab-crc-vfpv4-neon            = "${PACKAGE_EXTRA_ARCHS_tune-armv8ab-vfpv4-neon} armv8ab-crc-neon armv8ab-crc-vfpv4-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8atb-crc-vfpv4-neon           = "${PACKAGE_EXTRA_ARCHS_tune-armv8atb-vfpv4-neon} armv8ab-crc-neon armv8at2b-crc-neon armv8ab-crc-vfpv4-neon armv8at2b-crc-vfpv4-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ab-crc-fp-armv8              = "${PACKAGE_EXTRA_ARCHS_tune-armv8ab-fp-armv8} armv8ab-crc-fp-armv8"
> +PACKAGE_EXTRA_ARCHS_tune-armv8atb-crc-fp-armv8             = "${PACKAGE_EXTRA_ARCHS_tune-armv8atb-fp-armv8} armv8ab-crc-fp-armv8 armv8at2b-crc-fp-armv8"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ab-crc-fp-armv8-neon         = "${PACKAGE_EXTRA_ARCHS_tune-armv8ab-fp-armv8-neon} armv8ab-crc-fp-armv8-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8atb-crc-fp-armv8-neon        = "${PACKAGE_EXTRA_ARCHS_tune-armv8atb-fp-armv8-neon} armv8ab-crc-fp-armv8-neon armv8at2b-crc-fp-armv8-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ab-crc-crypto-fp-armv8-neon  = "${PACKAGE_EXTRA_ARCHS_tune-armv8ab-crypto-fp-armv8-neon} armv8ab-crc-crypto-fp-armv8-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8atb-crc-crypto-fp-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8atb-crypto-fp-armv8-neon} armv8ab-crc-crypto-fp-armv8-neon armv8at2b-crc-crypto-fp-armv8-neon"
> +
> +# Big Endian + HF
> +AVAILTUNES += "armv8ahfb armv8athfb armv8ahfb-neon armv8athfb-neon armv8ahfb-vfpv4 armv8athfb-vfpv4 armv8ahfb-vfpv4-neon armv8athfb-vfpv4-neon armv8ahfb-fp-armv8 armv8athfb-fp-armv8 armv8ahfb-fp-armv8-neon armv8athfb-fp-armv8-neon armv8ahfb-crypto-fp-armv8-neon armv8athfb-crypto-fp-armv8-neon"
> +ARMPKGARCH_tune-armv8ahfb                       ?= "armv8a"
> +ARMPKGARCH_tune-armv8athfb                      ?= "armv8a"
> +ARMPKGARCH_tune-armv8ahfb-neon                  ?= "armv8a"
> +ARMPKGARCH_tune-armv8athfb-neon                 ?= "armv8a"
> +ARMPKGARCH_tune-armv8ahfb-vfpv4                 ?= "armv8a"
> +ARMPKGARCH_tune-armv8athfb-vfpv4                ?= "armv8a"
> +ARMPKGARCH_tune-armv8ahfb-vfpv4-neon            ?= "armv8a"
> +ARMPKGARCH_tune-armv8athfb-vfpv4-neon           ?= "armv8a"
> +ARMPKGARCH_tune-armv8ahfb-fp-armv8              ?= "armv8a"
> +ARMPKGARCH_tune-armv8athfb-fp-armv8             ?= "armv8a"
> +ARMPKGARCH_tune-armv8ahfb-fp-armv8-neon         ?= "armv8a"
> +ARMPKGARCH_tune-armv8athfb-fp-armv8-neon        ?= "armv8a"
> +ARMPKGARCH_tune-armv8ahfb-crypto-fp-armv8-neon  ?= "armv8a"
> +ARMPKGARCH_tune-armv8athfb-crypto-fp-armv8-neon ?= "armv8a"
> +TUNE_FEATURES_tune-armv8ahfb                       = "${TUNE_FEATURES_tune-armv8ab}                       callconvention-hard"
> +TUNE_FEATURES_tune-armv8athfb                      = "${TUNE_FEATURES_tune-armv8atb}                      callconvention-hard"
> +TUNE_FEATURES_tune-armv8ahfb-neon                  = "${TUNE_FEATURES_tune-armv8ab-neon}                  callconvention-hard"
> +TUNE_FEATURES_tune-armv8athfb-neon                 = "${TUNE_FEATURES_tune-armv8atb-neon}                 callconvention-hard"
> +TUNE_FEATURES_tune-armv8ahfb-vfpv4                 = "${TUNE_FEATURES_tune-armv8ab-vfpv4}                 callconvention-hard"
> +TUNE_FEATURES_tune-armv8athfb-vfpv4                = "${TUNE_FEATURES_tune-armv8atb-vfpv4}                callconvention-hard"
> +TUNE_FEATURES_tune-armv8ahfb-vfpv4-neon            = "${TUNE_FEATURES_tune-armv8ab-vfpv4-neon}            callconvention-hard"
> +TUNE_FEATURES_tune-armv8athfb-vfpv4-neon           = "${TUNE_FEATURES_tune-armv8atb-vfpv4-neon}           callconvention-hard"
> +TUNE_FEATURES_tune-armv8ahfb-fp-armv8              = "${TUNE_FEATURES_tune-armv8ab-fp-armv8}              callconvention-hard"
> +TUNE_FEATURES_tune-armv8athfb-fp-armv8             = "${TUNE_FEATURES_tune-armv8atb-fp-armv8}             callconvention-hard"
> +TUNE_FEATURES_tune-armv8ahfb-fp-armv8-neon         = "${TUNE_FEATURES_tune-armv8ab-fp-armv8-neon}         callconvention-hard"
> +TUNE_FEATURES_tune-armv8athfb-fp-armv8-neon        = "${TUNE_FEATURES_tune-armv8atb-fp-armv8-neon}        callconvention-hard"
> +TUNE_FEATURES_tune-armv8ahfb-crypto-fp-armv8-neon  = "${TUNE_FEATURES_tune-armv8ab-crypto-fp-armv8-neon}  callconvention-hard"
> +TUNE_FEATURES_tune-armv8athfb-crypto-fp-armv8-neon = "${TUNE_FEATURES_tune-armv8atb-crypto-fp-armv8-neon} callconvention-hard"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ahfb                       = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehfb} armv8ab armv8ahfb"
> +PACKAGE_EXTRA_ARCHS_tune-armv8athfb                      = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethfb} armv8ab armv8ahfb armv8at2hfb"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-neon                  = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahfb} armv8ahfb-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8athfb-neon                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8athfb} armv8ahfb-neon armv8at2hfb-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-vfpv4                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahfb} armv8ahfb-vfpv4"
> +PACKAGE_EXTRA_ARCHS_tune-armv8athfb-vfpv4                = "${PACKAGE_EXTRA_ARCHS_tune-armv8athfb} armv8ahfb-vfpv4 armv8at2hfb-vfpv4"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-vfpv4-neon            = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-vfpv4} armv8ahfb-neon armv8ahfb-neon-vfpv4"
> +PACKAGE_EXTRA_ARCHS_tune-armv8athfb-vfpv4-neon           = "${PACKAGE_EXTRA_ARCHS_tune-armv8athfb-vfpv4} armv8ahfb-neon armv8at2hfb-neon armv8ahfb-neon-vfpv4 armv8at2hfb-neon-vfpv4"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-fp-armv8              = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahfb} armv8ahfb-fp-armv8"
> +PACKAGE_EXTRA_ARCHS_tune-armv8athfb-fp-armv8             = "${PACKAGE_EXTRA_ARCHS_tune-armv8athfb} armv8ahfb-fp-armv8 armv8at2hfb-fp-armv8"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-fp-armv8-neon         = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-fp-armv8} armv8ahfb-neon armv8ahfb-fp-armv8-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8athfb-fp-armv8-neon        = "${PACKAGE_EXTRA_ARCHS_tune-armv8athfb-fp-armv8} armv8ahfb-neon armv8at2hfb-neon armv8ahfb-fp-armv8-neon armv8at2hfb-fp-armv8-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-crypto-fp-armv8-neon  = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-fp-armv8-neon} armv8ahfb-crypto-fp-armv8-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8athfb-crypto-fp-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8athfb-fp-armv8-neon} armv8ahfb-crypto-fp-armv8-neon armv8at2hfb-crypto-fp-armv8-neon"
> +
> +# Big Endian + HF + CRC
> +AVAILTUNES += "armv8ahfb-crc armv8athfb-crc armv8ahfb-crc-neon armv8athfb-crc-neon armv8ahfb-crc-vfpv4 armv8athfb-crc-vfpv4 armv8ahfb-crc-vfpv4-neon armv8athfb-crc-vfpv4-neon armv8ahfb-crc-fp-armv8 armv8athfb-crc-fp-armv8 armv8ahfb-crc-fp-armv8-neon armv8athfb-crc-fp-armv8-neon armv8ahfb-crc-crypto-fp-armv8-neon armv8athfb-crc-crypto-fp-armv8-neon"
> +ARMPKGARCH_tune-armv8ahfb-crc                       ?= "armv8a"
> +ARMPKGARCH_tune-armv8athfb-crc                      ?= "armv8a"
> +ARMPKGARCH_tune-armv8ahfb-crc-neon                  ?= "armv8a"
> +ARMPKGARCH_tune-armv8athfb-crc-neon                 ?= "armv8a"
> +ARMPKGARCH_tune-armv8ahfb-crc-vfpv4                 ?= "armv8a"
> +ARMPKGARCH_tune-armv8athfb-crc-vfpv4                ?= "armv8a"
> +ARMPKGARCH_tune-armv8ahfb-crc-vfpv4-neon            ?= "armv8a"
> +ARMPKGARCH_tune-armv8athfb-crc-vfpv4-neon           ?= "armv8a"
> +ARMPKGARCH_tune-armv8ahfb-crc-fp-armv8              ?= "armv8a"
> +ARMPKGARCH_tune-armv8athfb-crc-fp-armv8             ?= "armv8a"
> +ARMPKGARCH_tune-armv8ahfb-crc-fp-armv8-neon         ?= "armv8a"
> +ARMPKGARCH_tune-armv8athfb-crc-fp-armv8-neon        ?= "armv8a"
> +ARMPKGARCH_tune-armv8ahfb-crc-crypto-fp-armv8-neon  ?= "armv8a"
> +ARMPKGARCH_tune-armv8athfb-crc-crypto-fp-armv8-neon ?= "armv8a"
> +TUNE_FEATURES_tune-armv8ahfb-crc                       = "${TUNE_FEATURES_tune-armv8ahfb}                       crc"
> +TUNE_FEATURES_tune-armv8athfb-crc                      = "${TUNE_FEATURES_tune-armv8athfb}                      crc"
> +TUNE_FEATURES_tune-armv8ahfb-crc-neon                  = "${TUNE_FEATURES_tune-armv8ahfb-neon}                  crc"
> +TUNE_FEATURES_tune-armv8athfb-crc-neon                 = "${TUNE_FEATURES_tune-armv8athfb-neon}                 crc"
> +TUNE_FEATURES_tune-armv8ahfb-crc-vfpv4                 = "${TUNE_FEATURES_tune-armv8ahfb-vfpv4}                 crc"
> +TUNE_FEATURES_tune-armv8athfb-crc-vfpv4                = "${TUNE_FEATURES_tune-armv8athfb-vfpv4}                crc"
> +TUNE_FEATURES_tune-armv8ahfb-crc-vfpv4-neon            = "${TUNE_FEATURES_tune-armv8ahfb-vfpv4-neon}            crc"
> +TUNE_FEATURES_tune-armv8athfb-crc-vfpv4-neon           = "${TUNE_FEATURES_tune-armv8athfb-vfpv4-neon}           crc"
> +TUNE_FEATURES_tune-armv8ahfb-crc-fp-armv8              = "${TUNE_FEATURES_tune-armv8ahfb-fp-armv8}              crc"
> +TUNE_FEATURES_tune-armv8athfb-crc-fp-armv8             = "${TUNE_FEATURES_tune-armv8athfb-fp-armv8}             crc"
> +TUNE_FEATURES_tune-armv8ahfb-crc-fp-armv8-neon         = "${TUNE_FEATURES_tune-armv8ahfb-fp-armv8-neon}         crc"
> +TUNE_FEATURES_tune-armv8athfb-crc-fp-armv8-neon        = "${TUNE_FEATURES_tune-armv8athfb-fp-armv8-neon}        crc"
> +TUNE_FEATURES_tune-armv8ahfb-crc-crypto-fp-armv8-neon  = "${TUNE_FEATURES_tune-armv8ahfb-crypto-fp-armv8-neon}  crc"
> +TUNE_FEATURES_tune-armv8athfb-crc-crypto-fp-armv8-neon = "${TUNE_FEATURES_tune-armv8athfb-crypto-fp-armv8-neon} crc"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-crc                       = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahfb} armv8ahfb-crc"
> +PACKAGE_EXTRA_ARCHS_tune-armv8athfb-crc                      = "${PACKAGE_EXTRA_ARCHS_tune-armv8athfb} armv8ahfb-crc armv8at2hfb-crc"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-crc-neon                  = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-neon} armv8ahfb-crc-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8athfb-crc-neon                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8athfb-neon} armv8ahfb-crc-neon armv8at2hfb-crc-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-crc-vfpv4                 = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-vfpv4} armv8ahfb-crc-vfpv4"
> +PACKAGE_EXTRA_ARCHS_tune-armv8athfb-crc-vfpv4                = "${PACKAGE_EXTRA_ARCHS_tune-armv8athfb-vfpv4} armv8ahfb-crc-vfpv4 armv8at2hfb-crc-vfpv4"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-crc-vfpv4-neon            = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-vfpv4-neon} armv8ahfb-crc-neon armv8ahfb-crc-vfpv4-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8athfb-crc-vfpv4-neon           = "${PACKAGE_EXTRA_ARCHS_tune-armv8athfb-vfpv4-neon} armv8ahfb-crc-neon armv8at2hfb-crc-neon armv8ahfb-crc-vfpv4-neon armv8at2hfb-crc-vfpv4-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-crc-fp-armv8              = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-fp-armv8} armv8ahfb-crc-fp-armv8"
> +PACKAGE_EXTRA_ARCHS_tune-armv8athfb-crc-fp-armv8             = "${PACKAGE_EXTRA_ARCHS_tune-armv8athfb-fp-armv8} armv8ahfb-crc-fp-armv8 armv8at2hfb-crc-fp-armv8"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-crc-fp-armv8-neon         = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-fp-armv8-neon} armv8ahfb-crc-fp-armv8-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8athfb-crc-fp-armv8-neon        = "${PACKAGE_EXTRA_ARCHS_tune-armv8athfb-fp-armv8-neon} armv8ahfb-crc-fp-armv8-neon armv8at2hfb-crc-fp-armv8-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-crc-crypto-fp-armv8-neon  = "${PACKAGE_EXTRA_ARCHS_tune-armv8ahfb-crypto-fp-armv8-neon} armv8ahfb-crc-crypto-fp-armv8-neon"
> +PACKAGE_EXTRA_ARCHS_tune-armv8athfb-crc-crypto-fp-armv8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv8athfb-crypto-fp-armv8-neon} armv8ahfb-crc-crypto-fp-armv8-neon armv8at2hfb-crc-crypto-fp-armv8-neon"
> diff --git a/meta/conf/machine/include/arm/feature-arm-thumb.inc b/meta/conf/machine/include/arm/feature-arm-thumb.inc
> index 1faebf7..36bb510 100644
> --- a/meta/conf/machine/include/arm/feature-arm-thumb.inc
> +++ b/meta/conf/machine/include/arm/feature-arm-thumb.inc
> @@ -7,6 +7,7 @@ ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7a', 't2', '', d
> ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7r', 't2', '', d)}"
> ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7m', 't2', '', d)}"
> ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7ve', 't2', '', d)}"
> +ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv8a', 't2', '', d)}"
> 
> # If the device supports ARM, then respect ARM_THUMB_OPT (which can be "arm" or "thumb")
> # If the defice doesn't support ARM, then always set "thumb" even when
> --
> 1.9.1
> 
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 211 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCHv2][master] arch-armv8a.inc: Add tune for 32-bit ARMv8a
  2016-03-12  0:17   ` Khem Raj
@ 2016-03-12 11:41     ` Otavio Salvador
  2016-03-12 11:57       ` Khem Raj
  0 siblings, 1 reply; 11+ messages in thread
From: Otavio Salvador @ 2016-03-12 11:41 UTC (permalink / raw)
  To: Khem Raj; +Cc: OE-core

On Fri, Mar 11, 2016 at 9:17 PM, Khem Raj <raj.khem@gmail.com> wrote:
>
>> On Mar 12, 2016, at 12:58 AM, Daniel Dragomir <daniel.dragomir@windriver.com> wrote:
>>
>> This patch adds tunes for 32-bit armv8a platforms. The user can select
>> little or big endian, hard or soft float, the vector floating-point
>> instruction set: vfpv4 or fp-armv8 and the thumb, neon, crc and crypto
>> extensions.
>
> This does not feel right to me. Look at how thunderX looks like
> ARMv8 is the time to fix this tune explodes on arm, this patch is not helping
> it.
>
> Do we need the hf/neon/vfp/thumb2 variants?

Do you mean we ought to use hf+neon+thumb2+fp-armv8 for everyone and
just have optional features in and out?


-- 
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCHv2][master] arch-armv8a.inc: Add tune for 32-bit ARMv8a
  2016-03-12 11:41     ` Otavio Salvador
@ 2016-03-12 11:57       ` Khem Raj
  2016-03-12 12:02         ` Otavio Salvador
  0 siblings, 1 reply; 11+ messages in thread
From: Khem Raj @ 2016-03-12 11:57 UTC (permalink / raw)
  To: Otavio Salvador; +Cc: OE-core

On Sat, Mar 12, 2016 at 7:41 PM, Otavio Salvador
<otavio.salvador@ossystems.com.br> wrote:
> On Fri, Mar 11, 2016 at 9:17 PM, Khem Raj <raj.khem@gmail.com> wrote:
>>
>>> On Mar 12, 2016, at 12:58 AM, Daniel Dragomir <daniel.dragomir@windriver.com> wrote:
>>>
>>> This patch adds tunes for 32-bit armv8a platforms. The user can select
>>> little or big endian, hard or soft float, the vector floating-point
>>> instruction set: vfpv4 or fp-armv8 and the thumb, neon, crc and crypto
>>> extensions.
>>
>> This does not feel right to me. Look at how thunderX looks like
>> ARMv8 is the time to fix this tune explodes on arm, this patch is not helping
>> it.
>>
>> Do we need the hf/neon/vfp/thumb2 variants?
>
> Do you mean we ought to use hf+neon+thumb2+fp-armv8 for everyone and
> just have optional features in and out?

something like that yes. Just aarch64 and aarch32 make it simple as that

>
>
> --
> Otavio Salvador                             O.S. Systems
> http://www.ossystems.com.br        http://code.ossystems.com.br
> Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCHv2][master] arch-armv8a.inc: Add tune for 32-bit ARMv8a
  2016-03-12 11:57       ` Khem Raj
@ 2016-03-12 12:02         ` Otavio Salvador
  2016-03-12 13:23           ` Richard Purdie
  2016-03-12 13:23           ` Khem Raj
  0 siblings, 2 replies; 11+ messages in thread
From: Otavio Salvador @ 2016-03-12 12:02 UTC (permalink / raw)
  To: Khem Raj; +Cc: OE-core

On Sat, Mar 12, 2016 at 8:57 AM, Khem Raj <raj.khem@gmail.com> wrote:
> On Sat, Mar 12, 2016 at 7:41 PM, Otavio Salvador
> <otavio.salvador@ossystems.com.br> wrote:
>> On Fri, Mar 11, 2016 at 9:17 PM, Khem Raj <raj.khem@gmail.com> wrote:
>>>
>>>> On Mar 12, 2016, at 12:58 AM, Daniel Dragomir <daniel.dragomir@windriver.com> wrote:
>>>>
>>>> This patch adds tunes for 32-bit armv8a platforms. The user can select
>>>> little or big endian, hard or soft float, the vector floating-point
>>>> instruction set: vfpv4 or fp-armv8 and the thumb, neon, crc and crypto
>>>> extensions.
>>>
>>> This does not feel right to me. Look at how thunderX looks like
>>> ARMv8 is the time to fix this tune explodes on arm, this patch is not helping
>>> it.
>>>
>>> Do we need the hf/neon/vfp/thumb2 variants?
>>
>> Do you mean we ought to use hf+neon+thumb2+fp-armv8 for everyone and
>> just have optional features in and out?
>
> something like that yes. Just aarch64 and aarch32 make it simple as that

ARMv8.1a has different semantics, how does we handle this?

-- 
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCHv2][master] arch-armv8a.inc: Add tune for 32-bit ARMv8a
  2016-03-12 12:02         ` Otavio Salvador
@ 2016-03-12 13:23           ` Richard Purdie
  2016-03-12 13:23           ` Khem Raj
  1 sibling, 0 replies; 11+ messages in thread
From: Richard Purdie @ 2016-03-12 13:23 UTC (permalink / raw)
  To: Otavio Salvador, Khem Raj; +Cc: OE-core

On Sat, 2016-03-12 at 09:02 -0300, Otavio Salvador wrote:
> On Sat, Mar 12, 2016 at 8:57 AM, Khem Raj <raj.khem@gmail.com> wrote:
> > On Sat, Mar 12, 2016 at 7:41 PM, Otavio Salvador
> > <otavio.salvador@ossystems.com.br> wrote:
> > > On Fri, Mar 11, 2016 at 9:17 PM, Khem Raj <raj.khem@gmail.com>
> > > wrote:
> > > > 
> > > > > On Mar 12, 2016, at 12:58 AM, Daniel Dragomir <
> > > > > daniel.dragomir@windriver.com> wrote:
> > > > > 
> > > > > This patch adds tunes for 32-bit armv8a platforms. The user
> > > > > can select
> > > > > little or big endian, hard or soft float, the vector floating
> > > > > -point
> > > > > instruction set: vfpv4 or fp-armv8 and the thumb, neon, crc
> > > > > and crypto
> > > > > extensions.
> > > > 
> > > > This does not feel right to me. Look at how thunderX looks like
> > > > ARMv8 is the time to fix this tune explodes on arm, this patch
> > > > is not helping
> > > > it.
> > > > 
> > > > Do we need the hf/neon/vfp/thumb2 variants?
> > > 
> > > Do you mean we ought to use hf+neon+thumb2+fp-armv8 for everyone
> > > and
> > > just have optional features in and out?
> > 
> > something like that yes. Just aarch64 and aarch32 make it simple as
> > that
> 
> ARMv8.1a has different semantics, how does we handle this?

I do think Khem has a point here, there are way too many tunes in this
class and I've very much doubt they all make sense, there are likely
only a handful of key ones and it would be ideal just to filter the
class down to those.

The trouble I face is I don't really know all the details of armv8 so
I'm reliant on others with more knowledge of which ones make sense to
make the call...

Cheers,

Richard


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCHv2][master] arch-armv8a.inc: Add tune for 32-bit ARMv8a
  2016-03-12 12:02         ` Otavio Salvador
  2016-03-12 13:23           ` Richard Purdie
@ 2016-03-12 13:23           ` Khem Raj
  2016-03-12 14:06             ` Otavio Salvador
  1 sibling, 1 reply; 11+ messages in thread
From: Khem Raj @ 2016-03-12 13:23 UTC (permalink / raw)
  To: Otavio Salvador; +Cc: OE-core

On Sat, Mar 12, 2016 at 8:02 PM, Otavio Salvador
<otavio.salvador@ossystems.com.br> wrote:
> On Sat, Mar 12, 2016 at 8:57 AM, Khem Raj <raj.khem@gmail.com> wrote:
>> On Sat, Mar 12, 2016 at 7:41 PM, Otavio Salvador
>> <otavio.salvador@ossystems.com.br> wrote:
>>> On Fri, Mar 11, 2016 at 9:17 PM, Khem Raj <raj.khem@gmail.com> wrote:
>>>>
>>>>> On Mar 12, 2016, at 12:58 AM, Daniel Dragomir <daniel.dragomir@windriver.com> wrote:
>>>>>
>>>>> This patch adds tunes for 32-bit armv8a platforms. The user can select
>>>>> little or big endian, hard or soft float, the vector floating-point
>>>>> instruction set: vfpv4 or fp-armv8 and the thumb, neon, crc and crypto
>>>>> extensions.
>>>>
>>>> This does not feel right to me. Look at how thunderX looks like
>>>> ARMv8 is the time to fix this tune explodes on arm, this patch is not helping
>>>> it.
>>>>
>>>> Do we need the hf/neon/vfp/thumb2 variants?
>>>
>>> Do you mean we ought to use hf+neon+thumb2+fp-armv8 for everyone and
>>> just have optional features in and out?
>>
>> something like that yes. Just aarch64 and aarch32 make it simple as that
>
> ARMv8.1a has different semantics, how does we handle this?

question is do we need to handle this with tunes at all ?
what advantages are we looking for.


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCHv2][master] arch-armv8a.inc: Add tune for 32-bit ARMv8a
  2016-03-12 13:23           ` Khem Raj
@ 2016-03-12 14:06             ` Otavio Salvador
  2016-03-12 14:15               ` Khem Raj
  0 siblings, 1 reply; 11+ messages in thread
From: Otavio Salvador @ 2016-03-12 14:06 UTC (permalink / raw)
  To: Khem Raj; +Cc: OE-core

On Sat, Mar 12, 2016 at 10:23 AM, Khem Raj <raj.khem@gmail.com> wrote:
> On Sat, Mar 12, 2016 at 8:02 PM, Otavio Salvador
> <otavio.salvador@ossystems.com.br> wrote:
>> On Sat, Mar 12, 2016 at 8:57 AM, Khem Raj <raj.khem@gmail.com> wrote:
>>> On Sat, Mar 12, 2016 at 7:41 PM, Otavio Salvador
>>> <otavio.salvador@ossystems.com.br> wrote:
>>>> On Fri, Mar 11, 2016 at 9:17 PM, Khem Raj <raj.khem@gmail.com> wrote:
>>>>>
>>>>>> On Mar 12, 2016, at 12:58 AM, Daniel Dragomir <daniel.dragomir@windriver.com> wrote:
>>>>>>
>>>>>> This patch adds tunes for 32-bit armv8a platforms. The user can select
>>>>>> little or big endian, hard or soft float, the vector floating-point
>>>>>> instruction set: vfpv4 or fp-armv8 and the thumb, neon, crc and crypto
>>>>>> extensions.
>>>>>
>>>>> This does not feel right to me. Look at how thunderX looks like
>>>>> ARMv8 is the time to fix this tune explodes on arm, this patch is not helping
>>>>> it.
>>>>>
>>>>> Do we need the hf/neon/vfp/thumb2 variants?
>>>>
>>>> Do you mean we ought to use hf+neon+thumb2+fp-armv8 for everyone and
>>>> just have optional features in and out?
>>>
>>> something like that yes. Just aarch64 and aarch32 make it simple as that
>>
>> ARMv8.1a has different semantics, how does we handle this?
>
> question is do we need to handle this with tunes at all ?
> what advantages are we looking for.

I don't know but this was my main design doubt.

To be honest, I think hf, neon, thumb2 and fp-armv8 can be default.
Crypto and crc seem to be optional and need to be enabled if the core
offers it. But those are required for ARMv8.1 SoCs ... AFAIK.

-- 
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCHv2][master] arch-armv8a.inc: Add tune for 32-bit ARMv8a
  2016-03-12 14:06             ` Otavio Salvador
@ 2016-03-12 14:15               ` Khem Raj
  0 siblings, 0 replies; 11+ messages in thread
From: Khem Raj @ 2016-03-12 14:15 UTC (permalink / raw)
  To: Otavio Salvador; +Cc: OE-core

On Sat, Mar 12, 2016 at 10:06 PM, Otavio Salvador
<otavio.salvador@ossystems.com.br> wrote:
> On Sat, Mar 12, 2016 at 10:23 AM, Khem Raj <raj.khem@gmail.com> wrote:
>> On Sat, Mar 12, 2016 at 8:02 PM, Otavio Salvador
>> <otavio.salvador@ossystems.com.br> wrote:
>>> On Sat, Mar 12, 2016 at 8:57 AM, Khem Raj <raj.khem@gmail.com> wrote:
>>>> On Sat, Mar 12, 2016 at 7:41 PM, Otavio Salvador
>>>> <otavio.salvador@ossystems.com.br> wrote:
>>>>> On Fri, Mar 11, 2016 at 9:17 PM, Khem Raj <raj.khem@gmail.com> wrote:
>>>>>>
>>>>>>> On Mar 12, 2016, at 12:58 AM, Daniel Dragomir <daniel.dragomir@windriver.com> wrote:
>>>>>>>
>>>>>>> This patch adds tunes for 32-bit armv8a platforms. The user can select
>>>>>>> little or big endian, hard or soft float, the vector floating-point
>>>>>>> instruction set: vfpv4 or fp-armv8 and the thumb, neon, crc and crypto
>>>>>>> extensions.
>>>>>>
>>>>>> This does not feel right to me. Look at how thunderX looks like
>>>>>> ARMv8 is the time to fix this tune explodes on arm, this patch is not helping
>>>>>> it.
>>>>>>
>>>>>> Do we need the hf/neon/vfp/thumb2 variants?
>>>>>
>>>>> Do you mean we ought to use hf+neon+thumb2+fp-armv8 for everyone and
>>>>> just have optional features in and out?
>>>>
>>>> something like that yes. Just aarch64 and aarch32 make it simple as that
>>>
>>> ARMv8.1a has different semantics, how does we handle this?
>>
>> question is do we need to handle this with tunes at all ?
>> what advantages are we looking for.
>
> I don't know but this was my main design doubt.
>
> To be honest, I think hf, neon, thumb2 and fp-armv8 can be default.
> Crypto and crc seem to be optional and need to be enabled if the core
> offers it. But those are required for ARMv8.1 SoCs ... AFAIK.

exactly, so lets see if crypto and crc can actually we offerred
differently via CCARGS instead


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2016-03-12 14:15 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-03-11 17:58 [master][PATCH] ARMv8 32-bit & 64-bit compiler tunings Daniel Dragomir
2016-03-11 17:58 ` [PATCHv2][master] arch-armv8a.inc: Add tune for 32-bit ARMv8a Daniel Dragomir
2016-03-11 18:36   ` Otavio Salvador
2016-03-12  0:17   ` Khem Raj
2016-03-12 11:41     ` Otavio Salvador
2016-03-12 11:57       ` Khem Raj
2016-03-12 12:02         ` Otavio Salvador
2016-03-12 13:23           ` Richard Purdie
2016-03-12 13:23           ` Khem Raj
2016-03-12 14:06             ` Otavio Salvador
2016-03-12 14:15               ` Khem Raj

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.