util/cpuinfo-riscv: Support OpenBSD signal frame

Reported-by: Brad Smith <brad@comstyle.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Acked-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
Richard Henderson 2024-06-27 15:13:31 +00:00
parent b86c6ba689
commit adc028428a
1 changed files with 7 additions and 0 deletions

View File

@ -13,7 +13,14 @@ static void sigill_handler(int signo, siginfo_t *si, void *data)
{
/* Skip the faulty instruction */
ucontext_t *uc = (ucontext_t *)data;
#ifdef __linux__
uc->uc_mcontext.__gregs[REG_PC] += 4;
#elif defined(__OpenBSD__)
uc->sc_sepc += 4;
#else
# error Unsupported OS
#endif
got_sigill = 1;
}