From: Clément Chigot Date: Thu, 6 Jun 2024 14:43:31 +0000 (+0200) Subject: target/sparc: use signed denominator in sdiv helper X-Git-Tag: v9.0.2~19 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c8fdbb5babf0cb201c88d55e7e543352352f26e7;p=thirdparty%2Fqemu.git target/sparc: use signed denominator in sdiv helper The result has to be done with the signed denominator (b32) instead of the unsigned value passed in argument (b). Cc: qemu-stable@nongnu.org Fixes: 1326010322d6 ("target/sparc: Remove CC_OP_DIV") Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2319 Signed-off-by: Clément Chigot Reviewed-by: Richard Henderson Message-Id: <20240606144331.698361-1-chigot@adacore.com> Signed-off-by: Richard Henderson (cherry picked from commit 6b4965373e561b77f91cfbdf41353635c9661358) Signed-off-by: Michael Tokarev --- diff --git a/target/sparc/helper.c b/target/sparc/helper.c index 2247e243b5e..7846ddd6f62 100644 --- a/target/sparc/helper.c +++ b/target/sparc/helper.c @@ -121,7 +121,7 @@ uint64_t helper_sdiv(CPUSPARCState *env, target_ulong a, target_ulong b) return (uint32_t)(b32 < 0 ? INT32_MAX : INT32_MIN) | (-1ull << 32); } - a64 /= b; + a64 /= b32; r = a64; if (unlikely(r != a64)) { return (uint32_t)(a64 < 0 ? INT32_MIN : INT32_MAX) | (-1ull << 32);