target/sh4/translate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
This fixes bug #1735384 while running java under qemu-sh4. When debug
was enabled it showed a problem with TCG temps. Once fixed I was able
to run java -version normally.
Reported-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
target/sh4/translate.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/target/sh4/translate.c b/target/sh4/translate.c
index 703020fe87..b4b5c822d0 100644
--- a/target/sh4/translate.c
+++ b/target/sh4/translate.c
@@ -2189,7 +2189,7 @@ static int decode_gusa(DisasContext *ctx, CPUSH4State *env, int *pmax_insns)
}
/* If op_src is not a valid register, then op_arg was a constant. */
- if (op_src < 0) {
+ if (op_src < 0 && !TCGV_IS_UNUSED(op_arg)) {
tcg_temp_free_i32(op_arg);
}
--
2.15.1
--
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1735384
Title:
OpenJDK JVM segfaults on qemu-sh4 (regression)
Status in QEMU:
New
Bug description:
Some of the recent changes introduced a regression which makes the
OpenJDK JVM crash on qemu-sh4:
(sid-sh4-sbuild)root@nofan:/# java -version
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
Segmentation fault
(sid-sh4-sbuild)root@nofan:/#
An older version works fine:
(sid-sh4-sbuild)root@nofan:/# java -version
openjdk version "9.0.1"
OpenJDK Runtime Environment (build 9.0.1+11-Debian-1)
OpenJDK Zero VM (build 9.0.1+11-Debian-1, interpreted mode)
(sid-sh4-sbuild)root@nofan:/#
Haven't had time for bisecting this yet.
Adrian
To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1735384/+subscriptions
On 12/06/2017 01:30 AM, Alex Bennée wrote: > This fixes bug #1735384 while running java under qemu-sh4. When debug > was enabled it showed a problem with TCG temps. Once fixed I was able > to run java -version normally. > > Reported-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> > Suggested-by: Richard Henderson <richard.henderson@linaro.org> > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > --- Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Cc: stable, as the bug is present in 2.10 too. r~ > target/sh4/translate.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/target/sh4/translate.c b/target/sh4/translate.c > index 703020fe87..b4b5c822d0 100644 > --- a/target/sh4/translate.c > +++ b/target/sh4/translate.c > @@ -2189,7 +2189,7 @@ static int decode_gusa(DisasContext *ctx, CPUSH4State *env, int *pmax_insns) > } > > /* If op_src is not a valid register, then op_arg was a constant. */ > - if (op_src < 0) { > + if (op_src < 0 && !TCGV_IS_UNUSED(op_arg)) { > tcg_temp_free_i32(op_arg); > } > >
On 2017-12-06 09:30, Alex Bennée wrote: > This fixes bug #1735384 while running java under qemu-sh4. When debug > was enabled it showed a problem with TCG temps. Once fixed I was able > to run java -version normally. > > Reported-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> > Suggested-by: Richard Henderson <richard.henderson@linaro.org> > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > --- > target/sh4/translate.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/target/sh4/translate.c b/target/sh4/translate.c > index 703020fe87..b4b5c822d0 100644 > --- a/target/sh4/translate.c > +++ b/target/sh4/translate.c > @@ -2189,7 +2189,7 @@ static int decode_gusa(DisasContext *ctx, CPUSH4State *env, int *pmax_insns) > } > > /* If op_src is not a valid register, then op_arg was a constant. */ > - if (op_src < 0) { > + if (op_src < 0 && !TCGV_IS_UNUSED(op_arg)) { > tcg_temp_free_i32(op_arg); > } I guess this happens when trying to match the exchange pattern, so this looks correct to me. Reviewed-by: Aurelien Jarno <aurelien@aurel32.net> -- Aurelien Jarno GPG: 4096R/1DDD8C9B aurelien@aurel32.net http://www.aurel32.net
© 2016 - 2024 Red Hat, Inc.