We have various places where we inject suppressing PGM exceptions,
but don't forward the PSW. Let's fix that by detecting whether to
forward the PSW using the interception code.
We can now get rid of ILEN_LATER/ILEN_LATER_INC and replace it by
ILEN_AUTO, to automatically detect the instruction length using the
current PSW.
ILEN_AUTO is also used with program_interrupt(), so let's add it at the
right place.
To correctly identify nullifying PER events (and also that the guest can
identify them), we have to set the PER flag PER_CODE_EVENT_NULLIFICATION
accordingly.
This e.g. fixes TB (TEST BLOCK) program interrupts in Thomas' interception
handler kvm-unit-test.
David Hildenbrand (2):
target/s390x: correctly indicate PER nullification
target/s390x: rework PGM interrupt psw.addr handling
target/s390x/cpu.h | 7 ++-----
target/s390x/helper.c | 46 +++++++++++++++++++++++++++++++++++-----------
target/s390x/misc_helper.c | 22 +++++++++-------------
target/s390x/mmu_helper.c | 6 +++---
target/s390x/translate.c | 3 +--
5 files changed, 50 insertions(+), 34 deletions(-)