From: jsing Date: Wed, 21 Jun 2023 07:56:43 +0000 (+0000) Subject: Provide optimised bn_clzw() for aarch64. X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=7aa052b9ed5b31966692c38a17af20c28e5206ac;p=openbsd Provide optimised bn_clzw() for aarch64. --- 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