X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb/blobdiff_plain/0f23f75ff53acadf80e9d3dfd2dfd14cb526074f..1a3849032ebf2e7d17b7ee421af28b17f4de1407:/symm/chacha.c?ds=sidebyside diff --git a/symm/chacha.c b/symm/chacha.c index 80a84c17..abcc1bd4 100644 --- a/symm/chacha.c +++ b/symm/chacha.c @@ -62,11 +62,9 @@ const octet chacha_keysz[] = { KSZ_SET, 32, 16, 10, 0 }; * the feedforward step. */ -CPU_DISPATCH(static, (void), - void, core, (unsigned r, const chacha_matrix src, - chacha_matrix dest), - (r, src, dest), - pick_core, simple_core); +CPU_DISPATCH(static, (void), void, core, + (unsigned r, const chacha_matrix src, chacha_matrix dest), + (r, src, dest), pick_core, simple_core); static void simple_core(unsigned r, const chacha_matrix src, chacha_matrix dest) @@ -76,12 +74,20 @@ static void simple_core(unsigned r, const chacha_matrix src, extern core__functype chacha_core_x86ish_sse2; #endif +#if CPUFAM_ARMEL +extern core__functype chacha_core_arm_neon; +#endif + static core__functype *pick_core(void) { #if CPUFAM_X86 || CPUFAM_AMD64 DISPATCH_PICK_COND(chacha_core, chacha_core_x86ish_sse2, cpu_feature_p(CPUFEAT_X86_SSE2)); #endif +#if CPUFAM_ARMEL + DISPATCH_PICK_COND(chacha_core, chacha_core_arm_neon, + cpu_feature_p(CPUFEAT_ARM_NEON)); +#endif DISPATCH_PICK_FALLBACK(chacha_core, simple_core); } @@ -695,7 +701,7 @@ static void grdestroy(grand *r) static const grand_ops grops_rand_##rr = { \ "chacha" #rr, GRAND_CRYPTO, 0, \ grmisc, grdestroy, grword, \ - grbyte, grword, grand_range, grfill \ + grbyte, grword, grand_defaultrange, grfill \ }; \ \ grand *chacha##rr##_rand(const void *k, size_t ksz, const void *n) \ @@ -737,7 +743,7 @@ CHACHA_VARS(DEFGRAND) static const grand_ops grxops_rand_##rr = { \ "xchacha" #rr, GRAND_CRYPTO, 0, \ grmisc, grxdestroy_##rr, grword, \ - grbyte, grword, grand_range, grfill \ + grbyte, grword, grand_defaultrange, grfill \ }; \ \ grand *xchacha##rr##_rand(const void *k, size_t ksz, const void *n) \