From 87314d24c4f025df1ebf47dc527cc8a96bef354a Mon Sep 17 00:00:00 2001 From: Hongren Zheng Date: Fri, 26 Apr 2024 06:03:43 +0000 Subject: [PATCH] Implement riscv_vlen_asm for riscv32 riscvcap.c: undefined reference to 'riscv_vlen_asm' Reviewed-by: Paul Dale Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/24270) --- crypto/riscv32cpuid.pl | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/crypto/riscv32cpuid.pl b/crypto/riscv32cpuid.pl index 20694e7de7ef6..ac1c043ec91f3 100644 --- a/crypto/riscv32cpuid.pl +++ b/crypto/riscv32cpuid.pl @@ -84,5 +84,22 @@ ___ } +{ +my ($ret) = ('a0'); +$code .= <<___; +################################################################################ +# size_t riscv_vlen_asm(void) +# Return VLEN (i.e. the length of a vector register in bits). +.p2align 3 +.globl riscv_vlen_asm +.type riscv_vlen_asm,\@function +riscv_vlen_asm: + csrr $ret, vlenb + slli $ret, $ret, 3 + ret +.size riscv_vlen_asm,.-riscv_vlen_asm +___ +} + print $code; close STDOUT or die "error closing STDOUT: $!";