aboutsummaryrefslogtreecommitdiff
path: root/target
diff options
context:
space:
mode:
authorClément Chigot <chigot@adacore.com>2024-06-06 16:43:31 +0200
committerMichael Tokarev <mjt@tls.msk.ru>2024-06-20 15:22:47 +0300
commitc8fdbb5babf0cb201c88d55e7e543352352f26e7 (patch)
tree3cb4c6f0465717c8ba0f7cb1239007b90c63f43e /target
parent0556f5fc1356374b652dda5cd9deb85dfb08bd33 (diff)
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 <chigot@adacore.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20240606144331.698361-1-chigot@adacore.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> (cherry picked from commit 6b4965373e561b77f91cfbdf41353635c9661358) Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
Diffstat (limited to 'target')
-rw-r--r--target/sparc/helper.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/target/sparc/helper.c b/target/sparc/helper.c
index 2247e243b5..7846ddd6f6 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);