Message ID | 20230526181240.1425579-2-iii@linux.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Fix Fedora 38 Clang on s390x | expand |
On 5/26/23 11:12, Ilya Leoshkevich wrote: > LCBB is supposed to overwrite only the bottom 32 bits, but QEMU > erroneously overwrites the entire register. > > Fixes: 6d9303322ed9 ("s390x/tcg: Implement LOAD COUNT TO BLOCK BOUNDARY") > Cc: qemu-stable@nongnu.org > Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~ > --- > target/s390x/tcg/insn-data.h.inc | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/target/s390x/tcg/insn-data.h.inc b/target/s390x/tcg/insn-data.h.inc > index bcc70d99ba2..e41672684aa 100644 > --- a/target/s390x/tcg/insn-data.h.inc > +++ b/target/s390x/tcg/insn-data.h.inc > @@ -486,7 +486,7 @@ > F(0xb343, LCXBR, RRE, Z, x2h, x2l, new_P, x1_P, negf128, f128, IF_BFP) > F(0xb373, LCDFR, RRE, FPSSH, 0, f2, new, f1, negf64, 0, IF_AFP1 | IF_AFP2) > /* LOAD COUNT TO BLOCK BOUNDARY */ > - C(0xe727, LCBB, RXE, V, la2, 0, r1, 0, lcbb, 0) > + C(0xe727, LCBB, RXE, V, la2, 0, new, r1_32, lcbb, 0) > /* LOAD HALFWORD */ > C(0xb927, LHR, RRE, EI, 0, r2_16s, 0, r1_32, mov2, 0) > C(0xb907, LGHR, RRE, EI, 0, r2_16s, 0, r1, mov2, 0)
On 26.05.23 20:12, Ilya Leoshkevich wrote: > LCBB is supposed to overwrite only the bottom 32 bits, but QEMU > erroneously overwrites the entire register. > > Fixes: 6d9303322ed9 ("s390x/tcg: Implement LOAD COUNT TO BLOCK BOUNDARY") > Cc: qemu-stable@nongnu.org > Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> > --- > target/s390x/tcg/insn-data.h.inc | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/target/s390x/tcg/insn-data.h.inc b/target/s390x/tcg/insn-data.h.inc > index bcc70d99ba2..e41672684aa 100644 > --- a/target/s390x/tcg/insn-data.h.inc > +++ b/target/s390x/tcg/insn-data.h.inc > @@ -486,7 +486,7 @@ > F(0xb343, LCXBR, RRE, Z, x2h, x2l, new_P, x1_P, negf128, f128, IF_BFP) > F(0xb373, LCDFR, RRE, FPSSH, 0, f2, new, f1, negf64, 0, IF_AFP1 | IF_AFP2) > /* LOAD COUNT TO BLOCK BOUNDARY */ > - C(0xe727, LCBB, RXE, V, la2, 0, r1, 0, lcbb, 0) > + C(0xe727, LCBB, RXE, V, la2, 0, new, r1_32, lcbb, 0) > /* LOAD HALFWORD */ > C(0xb927, LHR, RRE, EI, 0, r2_16s, 0, r1_32, mov2, 0) > C(0xb907, LGHR, RRE, EI, 0, r2_16s, 0, r1, mov2, 0) Thanks! Reviewed-by: David Hildenbrand <david@redhat.com>
diff --git a/target/s390x/tcg/insn-data.h.inc b/target/s390x/tcg/insn-data.h.inc index bcc70d99ba2..e41672684aa 100644 --- a/target/s390x/tcg/insn-data.h.inc +++ b/target/s390x/tcg/insn-data.h.inc @@ -486,7 +486,7 @@ F(0xb343, LCXBR, RRE, Z, x2h, x2l, new_P, x1_P, negf128, f128, IF_BFP) F(0xb373, LCDFR, RRE, FPSSH, 0, f2, new, f1, negf64, 0, IF_AFP1 | IF_AFP2) /* LOAD COUNT TO BLOCK BOUNDARY */ - C(0xe727, LCBB, RXE, V, la2, 0, r1, 0, lcbb, 0) + C(0xe727, LCBB, RXE, V, la2, 0, new, r1_32, lcbb, 0) /* LOAD HALFWORD */ C(0xb927, LHR, RRE, EI, 0, r2_16s, 0, r1_32, mov2, 0) C(0xb907, LGHR, RRE, EI, 0, r2_16s, 0, r1, mov2, 0)
LCBB is supposed to overwrite only the bottom 32 bits, but QEMU erroneously overwrites the entire register. Fixes: 6d9303322ed9 ("s390x/tcg: Implement LOAD COUNT TO BLOCK BOUNDARY") Cc: qemu-stable@nongnu.org Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> --- target/s390x/tcg/insn-data.h.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)