This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH][ARM][0/3] Implement crypto intrinsics in AArch32 ARMv8-A
- From: Kyrill Tkachov <kyrylo dot tkachov at arm dot com>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Cc: Ramana Radhakrishnan <Ramana dot Radhakrishnan at arm dot com>, Richard Earnshaw <Richard dot Earnshaw at arm dot com>
- Date: Wed, 04 Dec 2013 15:14:43 +0000
- Subject: [PATCH][ARM][0/3] Implement crypto intrinsics in AArch32 ARMv8-A
- Authentication-results: sourceware.org; auth=none
Hi all,
This patch series implements the new arm_neon.h intrinsics that map down to the
ARMv8-A cryptographic instructions. The instructions are considered to be part
of NEON and they can be enabled by specifying -mfpu=crypto-neon-fp-armv8 (of
course we still need the hard or softfp float ABI).
Two of the intrinsics: vmull_p64 and vmull_high_p64 use the new poly64_t and
poly128_t types and therefore these patches also add support for these types and
most of the intrinsics associated with creating, reinterpreting, loading,
storing and extracting these types. Most of these auxiliary intrinsics are
autogenerated from the neon.ml scripts in the arm backend, but some had to be
hardcoded because they don't follow a regular pattern.
Note that these types and intrinsics are not available unless you specify the
crypto-neon-fp-armv8 FPU.
The __ARM_FEATURE_CRYPTO feature test macro is defined and is used throughout
arm_neon.h to gate the new types and intrinsics.
Patches 2 and 3 add the testsuite and documentation respectively. Most of it is
autogenerated.
Bootstrapped on arm-none-linux-gnueabihf and tested on a model.
Note, this patch series' context depends on the CRC32 intrinsics patch that is
in review at:
http://gcc.gnu.org/ml/gcc-patches/2013-11/msg02351.html
Thanks,
Kyrill
P.S. These patches only touch the arm backend and do not affect any other parts
of the compiler.