From 7aa052b9ed5b31966692c38a17af20c28e5206ac Mon Sep 17 00:00:00 2001 From: jsing Date: Wed, 21 Jun 2023 07:56:43 +0000 Subject: [PATCH] Provide optimised bn_clzw() for aarch64. --- lib/libcrypto/bn/arch/aarch64/bn_arch.h | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/libcrypto/bn/arch/aarch64/bn_arch.h b/lib/libcrypto/bn/arch/aarch64/bn_arch.h index aa780e09e91..66de3682d4c 100644 --- a/lib/libcrypto/bn/arch/aarch64/bn_arch.h +++ b/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 -- 2.20.1