Message ID | 20230724082032.66864-2-iii@linux.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | target/s390x: Miscellaneous TCG fixes, part 2 | expand |
On 7/24/23 09:15, Ilya Leoshkevich wrote: > R2 designates an even-odd register pair; the instruction should raise > a specification exception when R2 is not even. > > Cc:qemu-stable@nongnu.org > Fixes: e023e832d0ac ("s390x: translate engine for s390x CPU") > Signed-off-by: Ilya Leoshkevich<iii@linux.ibm.com> > --- > target/s390x/tcg/insn-data.h.inc | 2 +- > target/s390x/tcg/translate.c | 6 ++++++ > 2 files changed, 7 insertions(+), 1 deletion(-) Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
On 24.07.23 10:15, Ilya Leoshkevich wrote: > R2 designates an even-odd register pair; the instruction should raise > a specification exception when R2 is not even. > > Cc: qemu-stable@nongnu.org > Fixes: e023e832d0ac ("s390x: translate engine for s390x CPU") > Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> > --- 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 457ed25d2fa..86a509b0ac8 100644 --- a/target/s390x/tcg/insn-data.h.inc +++ b/target/s390x/tcg/insn-data.h.inc @@ -157,7 +157,7 @@ C(0xb2fa, NIAI, E, EH, 0, 0, 0, 0, 0, 0) /* CHECKSUM */ - C(0xb241, CKSM, RRE, Z, r1_o, ra2, new, r1_32, cksm, 0) + C(0xb241, CKSM, RRE, Z, r1_o, ra2_E, new, r1_32, cksm, 0) /* COPY SIGN */ F(0xb372, CPSDR, RRF_b, FPSSH, f3, f2, new, f1, cps, 0, IF_AFP1 | IF_AFP2 | IF_AFP3) diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c index 6661b27efa4..d6e8acee995 100644 --- a/target/s390x/tcg/translate.c +++ b/target/s390x/tcg/translate.c @@ -5779,6 +5779,12 @@ static void in2_ra2(DisasContext *s, DisasOps *o) } #define SPEC_in2_ra2 0 +static void in2_ra2_E(DisasContext *s, DisasOps *o) +{ + return in2_ra2(s, o); +} +#define SPEC_in2_ra2_E SPEC_r2_even + static void in2_a2(DisasContext *s, DisasOps *o) { int x2 = have_field(s, x2) ? get_field(s, x2) : 0;
R2 designates an even-odd register pair; the instruction should raise a specification exception when R2 is not even. Cc: qemu-stable@nongnu.org Fixes: e023e832d0ac ("s390x: translate engine for s390x CPU") Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> --- target/s390x/tcg/insn-data.h.inc | 2 +- target/s390x/tcg/translate.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-)