- cvm : bug fix for undefined reference to 'virtcca_cvm_allowed' while compiling - cvm : bug-fix for incorrect device name check for vhost-user-fs - target/i386: add control bits support for LAM - target/i386: add support for LAM in CPUID enumeration - Add support for the virtcca cvm feature. - target/sparc: use signed denominator in sdiv helper - crypto: Introduce SM4 symmetric cipher algorithm - ppc/vof: Fix unaligned FDT property access - vl: fix "type is NULL" in -vga help - hw/display/bcm2835_fb: fix fb_use_offsets condition - aspeed/smc: Fix possible integer overflow - hw/nvme: fix number of PIDs for FDP RUH update - hw/nvme: fix memory leak in nvme_dsm - hvf: arm: Do not advance PC when raising an exception - physmem: Bail out qemu_ram_block_from_host() for invalid ram addrs Signed-off-by: Jiabo Feng <fengjiabo1@huawei.com>
42 lines
1.6 KiB
Diff
42 lines
1.6 KiB
Diff
From a222f9c1eea20db470c55f534d85987df27a1654 Mon Sep 17 00:00:00 2001
|
|
From: Xu Zheng <xuzheng_yewu@cmss.chinamobile.com>
|
|
Date: Fri, 19 Jul 2024 22:45:21 +0800
|
|
Subject: [PATCH] target/sparc: use signed denominator in sdiv helper
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
The result has to be done with the signed denominator (b32) instead of
|
|
the unsigned value passed in argument (b).
|
|
|
|
cherry-pick from 6b4965373e561b77f91cfbdf41353635c9661358
|
|
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>
|
|
Signed-off-by: Xu Zheng <xuzheng_yewu@cmss.chinamobile.com>
|
|
---
|
|
target/sparc/helper.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/target/sparc/helper.c b/target/sparc/helper.c
|
|
index bd10b60e4b..8820c59e7c 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);
|
|
--
|
|
2.41.0.windows.1
|
|
|