On 6/26/25 09:20, Andrea Bolognani wrote:
On Mon, Jun 09, 2025 at 06:52:21AM -0700, Andrea Bolognani wrote:
On Tue, Apr 15, 2025 at 12:24:04PM -0700, Richard Henderson wrote:
Signed-off-by: Richard Henderson <richard.hender...@linaro.org>
---
  tcg/tcg.c                        | 20 +++++++++
  tcg/aarch64/tcg-target.c.inc     | 28 +++++++-----
  tcg/arm/tcg-target.c.inc         | 23 +++++-----
  tcg/i386/tcg-target.c.inc        | 77 +++++++++++++++++---------------
  tcg/loongarch64/tcg-target.c.inc | 33 +++++++-------
  tcg/mips/tcg-target.c.inc        | 35 +++++++--------
  tcg/ppc/tcg-target.c.inc         | 35 +++++++--------
  tcg/riscv/tcg-target.c.inc       | 54 +++++++++++-----------
  tcg/s390x/tcg-target.c.inc       | 14 +++---
  tcg/sparc64/tcg-target.c.inc     | 16 ++++---
  tcg/tci/tcg-target.c.inc         |  8 ++--
  11 files changed, 191 insertions(+), 152 deletions(-)

Hi Richard,

this seems to have introduced a regression when running on a riscv64
host.

Before the change:

   $ timeout --foreground 1 \
     ./build/qemu-system-riscv64 -machine virt,accel=tcg \
     -display none -serial stdio 2>&1 | grep -i opensbi
   OpenSBI v1.5.1

After the change, no output is produced.

This causes the

   qemu:func-quick+func-riscv64 / func-riscv64-riscv_opensbi

test to stall and eventually fail due to the built-in test suite
timeout kicking in.

Interestingly, I can't reproduce this by running the exact same
commands and using the exact same git commits on an x86_64 host.

Do you have any idea what could be going wrong? I'll happily
investigate further if you give me pointers.

Hi,

this is still an issue as of f9a3def17b2a.

Any idea where to look?

tcg/riscv/tcg-target.c.inc, tgen_extract(), must be at fault.

Oh, I see it:

--- a/tcg/riscv/tcg-target.c.inc
+++ b/tcg/riscv/tcg-target.c.inc
@@ -2502,7 +2502,7 @@ static void tgen_extract
         }
     }
     if (ofs + len == 32) {
-        tgen_shli(s, TCG_TYPE_I32, a0, a1, ofs);
+        tgen_shri(s, TCG_TYPE_I32, a0, a1, ofs);
         return;
     }
     if (len == 1) {


Please test.

r~

Reply via email to