diff options
author | Ilya Leoshkevich <iii@linux.ibm.com> | 2025-01-23 13:37:53 +0100 |
---|---|---|
committer | Thomas Huth <thuth@redhat.com> | 2025-01-30 10:39:37 +0100 |
commit | ba68dd7d475ee2f83e285a21cac3e5e8e8c54bff (patch) | |
tree | 00931cdcc204d3c141c997c97fa346d66fd4273e | |
parent | c8b2deb9214b45349c83e174dfc5edc6d58be434 (diff) | |
download | qemu-ba68dd7d475ee2f83e285a21cac3e5e8e8c54bff.zip qemu-ba68dd7d475ee2f83e285a21cac3e5e8e8c54bff.tar.gz qemu-ba68dd7d475ee2f83e285a21cac3e5e8e8c54bff.tar.bz2 |
target/s390x: Fix PPNO execution with icount
Executing PERFORM RANDOM NUMBER OPERATION makes QEMU exit with "Bad
icount read" when using record/replay. This is caused by
icount_get_raw_locked() if the current instruction is not the last one
in the respective translation block.
For the x86_64's rdrand this is resolved by calling
translator_io_start(). On s390x one uses IF_IO in order to make this
call happen automatically.
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20250123123808.194405-1-iii@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
-rw-r--r-- | target/s390x/tcg/insn-data.h.inc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/target/s390x/tcg/insn-data.h.inc b/target/s390x/tcg/insn-data.h.inc index e7d61cd..ec730ee 100644 --- a/target/s390x/tcg/insn-data.h.inc +++ b/target/s390x/tcg/insn-data.h.inc @@ -1012,7 +1012,7 @@ D(0xb92e, KM, RRE, MSA, 0, 0, 0, 0, msa, 0, S390_FEAT_TYPE_KM) D(0xb92f, KMC, RRE, MSA, 0, 0, 0, 0, msa, 0, S390_FEAT_TYPE_KMC) D(0xb929, KMA, RRF_b, MSA8, 0, 0, 0, 0, msa, 0, S390_FEAT_TYPE_KMA) - D(0xb93c, PPNO, RRE, MSA5, 0, 0, 0, 0, msa, 0, S390_FEAT_TYPE_PPNO) + E(0xb93c, PPNO, RRE, MSA5, 0, 0, 0, 0, msa, 0, S390_FEAT_TYPE_PPNO, IF_IO) D(0xb93e, KIMD, RRE, MSA, 0, 0, 0, 0, msa, 0, S390_FEAT_TYPE_KIMD) D(0xb93f, KLMD, RRE, MSA, 0, 0, 0, 0, msa, 0, S390_FEAT_TYPE_KLMD) |