On Wed, Jan 03, 2018 at 05:25:57PM +0000, Michael Collison wrote:
> Hi All,
> 
> This patch adds support for the SM3/SM4 cryptographic instructions added in
> Armv8.4-a. Support for the new instructions is in the form of new ACLE
> intrinsics. A new command line feature modifier, +sm4, is added to enable the
> support.
> 
> Test cases were added to verify that the ACLE Intrinsics generate the
> appropriate SM3/SM4 assembly instructions.
> 
> Bootstrapped on aarch64-none-elf. Tested with new binutils and verified all
> instructions assembly correctly.
> 
> Okay for trunk?

OK.

Thanks,
James

> 2017-11-10  Michael Collison  <michael.colli...@arm.com>
> 
>       * config/aarch64/aarch64-builtins.c:
>       (aarch64_types_quadopu_imm_qualifiers, TYPES_QUADOPUI): New.
>       * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
>       (__ARM_FEATURE_SM3): Define if TARGET_SM4 is true.
>       (__ARM_FEATURE_SM4): Define if TARGET_SM4 is true.
>       * config/aarch64/aarch64.h (AARCH64_FL_SM4): New flags.
>       (AARCH64_ISA_SM4): New ISA flag.
>       (TARGET_SM4): New feature flag for sm4.
>       * config/aarch64/aarch64-simd-builtins.def
>       (aarch64_sm3ss1qv4si): Ditto.
>       (aarch64_sm3tt1aq4si): Ditto.
>       (aarch64_sm3tt1bq4si): Ditto.
>       (aarch64_sm3tt2aq4si): Ditto.
>       (aarch64_sm3tt2bq4si): Ditto.
>       (aarch64_sm3partw1qv4si): Ditto.
>       (aarch64_sm3partw2qv4si): Ditto.
>       (aarch64_sm4eqv4si): Ditto.
>       (aarch64_sm4ekeyqv4si): Ditto.
>       * config/aarch64/aarch64-simd.md:
>       (aarch64_sm3ss1qv4si): Ditto.
>       (aarch64_sm3tt<sm3tt_op>qv4si): Ditto.
>       (aarch64_sm3partw<sm3part_op>qv4si): Ditto.
>       (aarch64_sm4eqv4si): Ditto.
>       (aarch64_sm4ekeyqv4si): Ditto.
>       * config/aarch64/iterators.md (sm3tt_op): New int iterator.
>       (sm3part_op): Ditto.
>       (CRYPTO_SM3TT): Ditto.
>       (CRYPTO_SM3PART): Ditto.
>       (UNSPEC_SM3SS1): New unspec.
>       (UNSPEC_SM3TT1A): Ditto.
>       (UNSPEC_SM3TT1B): Ditto.
>       (UNSPEC_SM3TT2A): Ditto.
>       (UNSPEC_SM3TT2B): Ditto.
>       (UNSPEC_SM3PARTW1): Ditto.
>       (UNSPEC_SM3PARTW2): Ditto.
>       (UNSPEC_SM4E): Ditto.
>       (UNSPEC_SM4EKEY): Ditto.
>       * config/aarch64/constraints.md (Ui2): New constraint.
>       * config/aarch64/predicates.md (aarch64_imm2): New predicate.
>       * config/arm/types.md (crypto_sm3): New type attribute.
>       (crypto_sm4): Ditto.
>       * config/aarch64/arm_neon.h (vsm3ss1q_u32): New intrinsic.
>       (vsm3tt1aq_u32): Ditto.
>       (vsm3tt1bq_u32): Ditto.
>       (vsm3tt2aq_u32): Ditto.
>       (vsm3tt2bq_u32): Ditto.
>       (vsm3partw1q_u32): Ditto.
>       (vsm3partw2q_u32): Ditto.
>       (vsm4eq_u32): Ditto.
>       (vsm4ekeyq_u32): Ditto.
>       (doc/invoke.texi): Document new sm4 option.
>       gcc.target/aarch64/sm3_sm4.c: New testcase.


Reply via email to