On 7/14/26 12:02, Ilya Leoshkevich wrote:
helper_divs32() divides the 64-bit dividend by the 32-bit divisor as a 64-bit
host operation, guarding only against a zero divisor. INT64_MIN / -1 therefore
overflows the host division before the representability check runs; on hosts
that trap this, QEMU is killed with SIGFPE instead of raising the
fixed-point-divide exception the guest expects:

     qemu-s390x: QEMU internal SIGFPE {code=INTDIV, addr=...}

helper_divs64() already guards the same case; add the missing check to
helper_divs32().

Reported-by: Christian Borntraeger<[email protected]>
Fixes: b4e2bd3563af ("target-s390: Send signals for divide")
Cc:[email protected]
Signed-off-by: Ilya Leoshkevich<[email protected]>
---
  target/s390x/tcg/int_helper.c | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)

Reviewed-by: Richard Henderson <[email protected]>

r~

Reply via email to