From 4c0df1809176af2c27699157cf128a4348f6daa5 Mon Sep 17 00:00:00 2001 From: jsing <> Date: Wed, 21 Jun 2023 07:56:43 +0000 Subject: Provide optimised bn_clzw() for aarch64. --- src/lib/libcrypto/bn/arch/aarch64/bn_arch.h | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/lib/libcrypto/bn/arch/aarch64/bn_arch.h b/src/lib/libcrypto/bn/arch/aarch64/bn_arch.h index aa780e09e9..66de3682d4 100644 --- a/src/lib/libcrypto/bn/arch/aarch64/bn_arch.h +++ b/src/lib/libcrypto/bn/arch/aarch64/bn_arch.h @@ -1,4 +1,4 @@ -/* $OpenBSD: bn_arch.h,v 1.11 2023/06/17 15:40:46 jsing Exp $ */ +/* $OpenBSD: bn_arch.h,v 1.12 2023/06/21 07:56:43 jsing Exp $ */ /* * Copyright (c) 2023 Joel Sing * @@ -24,6 +24,20 @@ #if defined(__GNUC__) +#define HAVE_BN_CLZW + +static inline int +bn_clzw(BN_ULONG w) +{ + BN_ULONG n; + + __asm__ ("clz %[n], %[w]" + : [n]"=r"(n) + : [w]"r"(w)); + + return n; +} + #define HAVE_BN_ADDW static inline void -- cgit v1.2.3-55-g6feb