@@ -818,6 +818,14 @@ static SimdIntrinsic crc32_methods [] = {
818
818
{SN_get_IsSupported }
819
819
};
820
820
821
+ static SimdIntrinsic crypto_aes_methods [] = {
822
+ {SN_Decrypt , OP_XOP_X_X_X , SIMD_OP_AES_DEC },
823
+ {SN_Encrypt , OP_XOP_X_X_X , SIMD_OP_AES_ENC },
824
+ {SN_InverseMixColumns , OP_XOP_X_X , SIMD_OP_AES_IMC },
825
+ {SN_MixColumns , OP_XOP_X_X , SIMD_OP_ARM64_AES_AESMC },
826
+ {SN_get_IsSupported }
827
+ };
828
+
821
829
static SimdIntrinsic sha1_methods [] = {
822
830
{SN_FixedRotate , OP_XOP_X_X , SIMD_OP_ARM64_SHA1H },
823
831
{SN_HashUpdateChoose , OP_XOP_X_X_X_X , SIMD_OP_ARM64_SHA1C },
@@ -930,6 +938,12 @@ emit_arm64_intrinsics (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSignatur
930
938
intrinsics_size = sizeof (sha1_methods );
931
939
}
932
940
941
+ if (is_hw_intrinsics_class (klass , "Aes" , & is_64bit )) {
942
+ feature = MONO_CPU_ARM64_CRYPTO ;
943
+ intrinsics = crypto_aes_methods ;
944
+ intrinsics_size = sizeof (crypto_aes_methods );
945
+ }
946
+
933
947
/*
934
948
* Common logic for all instruction sets
935
949
*/
0 commit comments