From: marcfedorow Date: Tue, 19 Jul 2022 16:15:44 +0000 (+0300) Subject: Emit rev8 on __riscv_zbkb as on __riscv_zbb X-Git-Tag: openssl-3.2.0-alpha1~2352 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=48b6776678d794406c625dcb5767102b73081962;p=thirdparty%2Fopenssl.git Emit rev8 on __riscv_zbkb as on __riscv_zbb Also add early clobber for two-insn bswap. Reviewed-by: Tomas Mraz Reviewed-by: Paul Dale Reviewed-by: Hugo Landau (Merged from https://github.com/openssl/openssl/pull/18827) --- diff --git a/include/crypto/modes.h b/include/crypto/modes.h index f98b7056559..90c9861011e 100644 --- a/include/crypto/modes.h +++ b/include/crypto/modes.h @@ -74,13 +74,13 @@ typedef unsigned char u8; asm ("rev %0,%1" \ : "=r"(ret_) : "r"((u32)(x))); \ ret_; }) -# elif defined(__riscv_zbb) && __riscv_xlen == 64 +# elif (defined(__riscv_zbb) || defined(__riscv_zbkb)) && __riscv_xlen == 64 # define BSWAP8(x) ({ u64 ret_=(x); \ asm ("rev8 %0,%0" \ : "+r"(ret_)); ret_; }) # define BSWAP4(x) ({ u32 ret_=(x); \ asm ("rev8 %0,%0; srli %0,%0,32"\ - : "+r"(ret_)); ret_; }) + : "+&r"(ret_)); ret_; }) # endif # elif defined(_MSC_VER) # if _MSC_VER>=1300