On Mon, 18 Jul 2022 at 17:44, Helge Deller <del...@gmx.de> wrote:
>
> This program:
>
>     int main(void) { asm("bv %r0(%r0)"); return 0; }
>
> produces on real hppa hardware the expected segfault:
>
>     SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x3} ---
>     killed by SIGSEGV +++
>     Segmentation fault
>
> But when run on linux-user you get instead internal qemu errors:
>
> ERROR: linux-user/hppa/cpu_loop.c:172:cpu_loop: code should not be reached
> Bail out! ERROR: linux-user/hppa/cpu_loop.c:172:cpu_loop: code should not be 
> reached
> ERROR: accel/tcg/cpu-exec.c:933:cpu_exec: assertion failed: (cpu == 
> current_cpu)
> Bail out! ERROR: accel/tcg/cpu-exec.c:933:cpu_exec: assertion failed: (cpu == 
> current_cpu)
>
> Fix it by adding the missing case for the EXCP_IMP trap in
> cpu_loop() and raise a segfault.
>
> Signed-off-by: Helge Deller <del...@gmx.de>
> ---
> Changes:
>
> v2: Dropped the "+++" in the commit message - it confused b4 and git-am.
>     no functional changes.

Reviewed-by: Peter Maydell <peter.mayd...@linaro.org>

thanks
-- PMM

Reply via email to