X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb/blobdiff_plain/1da1ed6a5815deef6c33d74f1eb3c856793df3e5..f9fe99103a13da2d40aac5bd047297096807747f:/symm/salsa20.c?ds=sidebyside diff --git a/symm/salsa20.c b/symm/salsa20.c index 40f28fc0..92631b1d 100644 --- a/symm/salsa20.c +++ b/symm/salsa20.c @@ -42,11 +42,9 @@ const octet salsa20_keysz[] = { KSZ_SET, 32, 16, 10, 0 }; * the feedforward step. */ -CPU_DISPATCH(static, (void), - void, core, (unsigned r, const salsa20_matrix src, - salsa20_matrix dest), - (r, src, dest), - pick_core, simple_core); +CPU_DISPATCH(static, (void), void, core, + (unsigned r, const salsa20_matrix src, salsa20_matrix dest), + (r, src, dest), pick_core, simple_core); static void simple_core(unsigned r, const salsa20_matrix src, salsa20_matrix dest) @@ -56,12 +54,20 @@ static void simple_core(unsigned r, const salsa20_matrix src, extern core__functype salsa20_core_x86ish_sse2; #endif +#if CPUFAM_ARMEL +extern core__functype salsa20_core_arm_neon; +#endif + static core__functype *pick_core(void) { #if CPUFAM_X86 || CPUFAM_AMD64 DISPATCH_PICK_COND(salsa20_core, salsa20_core_x86ish_sse2, cpu_feature_p(CPUFEAT_X86_SSE2)); #endif +#if CPUFAM_ARMEL + DISPATCH_PICK_COND(salsa20_core, salsa20_core_arm_neon, + cpu_feature_p(CPUFEAT_ARM_NEON)); +#endif DISPATCH_PICK_FALLBACK(salsa20_core, simple_core); } @@ -701,7 +707,7 @@ static void grdestroy(grand *r) grand *SALSA20_DECOR(salsa20, rr, _rand) \ (const void *k, size_t ksz, const void *n) \ { \ - grctx *g = S_CREATE(g); \ + grctx *g = S_CREATE(grctx); \ g->r.r.ops = &grops_rand_##rr; \ g->r.ops = &grops_##rr; \ salsa20_init(&g->ctx, k, ksz, n); \ @@ -744,7 +750,7 @@ SALSA20_VARS(DEFGRAND) grand *SALSA20_DECOR(xsalsa20, rr, _rand) \ (const void *k, size_t ksz, const void *n) \ { \ - grxctx_##rr *g = S_CREATE(g); \ + grxctx_##rr *g = S_CREATE(grxctx_##rr); \ g->r.r.ops = &grxops_rand_##rr; \ g->r.ops = &grxops_##rr; \ XSALSA20_INIT(rr, &g->ctx, k, ksz, n); \