]> git.proxmox.com Git - mirror_qemu.git/commitdiff
linux-user/mips: fix abort on integer overflow
authorMikulas Patocka <mpatocka@redhat.com>
Thu, 28 Sep 2023 19:55:20 +0000 (21:55 +0200)
committerRichard Henderson <richard.henderson@linaro.org>
Wed, 18 Oct 2023 22:32:16 +0000 (15:32 -0700)
QEMU mips userspace emulation crashes with "qemu: unhandled CPU exception
0x15 - aborting" when one of the integer arithmetic instructions detects
an overflow.

This patch fixes it so that it delivers SIGFPE with FPE_INTOVF instead.

Cc: qemu-stable@nongnu.org
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Message-Id: <3ef979a8-3ee1-eb2d-71f7-d788ff88dd11@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
linux-user/mips/cpu_loop.c

index 8735e58bada082f2163534d72cf416070c96bbfb..990b03e727bf480a7a5df95689ee9e8ae579e54d 100644 (file)
@@ -180,7 +180,9 @@ done_syscall:
             }
             force_sig_fault(TARGET_SIGFPE, si_code, env->active_tc.PC);
             break;
-
+       case EXCP_OVERFLOW:
+            force_sig_fault(TARGET_SIGFPE, TARGET_FPE_INTOVF, env->active_tc.PC);
+            break;
         /* The code below was inspired by the MIPS Linux kernel trap
          * handling code in arch/mips/kernel/traps.c.
          */