This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH][ARM][0/3] Implement crypto intrinsics in AArch32 ARMv8-A


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.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]