qemu-e2k/target/s390x
David Hildenbrand becf8217de target/s390x: rework PGM interrupt psw.addr handling
We can tell from the program interrupt code, whether a program interrupt
has to forward the address in the PGM new PSW
(suppressing/terminated/completed) to point at the next instruction, or
if it is nullifying and the PSW address does not have to be incremented.

So let's not modify the PSW address outside of the injection path and
handle this internally. We just have to handle instruction length
auto detection if no valid instruction length can be provided.

This should fix various program interrupt injection paths, where the
PSW was not properly forwarded.

Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20170609142156.18767-3-david@redhat.com>
Signed-off-by: Richard Henderson <rth@twiddle.net>
2017-06-13 11:09:39 -07:00
..
Makefile.objs makefile: merge GENERATED_HEADERS & GENERATED_SOURCES variables 2017-03-16 11:51:15 +08:00
arch_dump.c s390x/arch_dump: pass cpuid into notes sections 2017-02-24 10:15:18 +01:00
cc_helper.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
cpu-qom.h Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
cpu.c migration: Remove unneeded includes of migration/vmstate.h 2017-06-01 18:49:22 +02:00
cpu.h target/s390x: rework PGM interrupt psw.addr handling 2017-06-13 11:09:39 -07:00
cpu_features.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
cpu_features.h Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
cpu_features_def.h Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
cpu_models.c s390x: misc fixes 2017-06-13 09:27:17 +01:00
cpu_models.h s390x/cpumodel: take care of the cpuid format bit for KVM 2017-06-06 10:50:40 +02:00
fpu_helper.c target/s390x: implement COMPARE AND SIGNAL 2017-06-06 15:20:38 -07:00
gdbstub.c * QOM interface fix (Eduardo) 2017-01-20 16:42:07 +00:00
gen-features.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
helper.c target/s390x: rework PGM interrupt psw.addr handling 2017-06-13 11:09:39 -07:00
helper.h target/s390x: implement STORE PAIR TO QUADWORD 2017-06-06 15:25:14 -07:00
insn-data.def target/s390x: implement STORE PAIR TO QUADWORD 2017-06-06 15:25:14 -07:00
insn-format.def Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
int_helper.c target-s390x: Avoid a loop for popcnt 2017-01-10 08:48:57 -08:00
interrupt.c Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
ioinst.c s390x/css: fence off MIDA 2017-06-06 10:17:11 +02:00
kvm.c s390x/cpumodel: take care of the cpuid format bit for KVM 2017-06-06 10:50:40 +02:00
machine.c target/s390x: Implement EXECUTE via new TranslationBlock 2017-06-06 14:34:32 -07:00
mem_helper.c target/s390x: check alignment in CDSG in the !CONFIG_ATOMIC128 case 2017-06-06 15:25:14 -07:00
misc_helper.c target/s390x: rework PGM interrupt psw.addr handling 2017-06-13 11:09:39 -07:00
mmu_helper.c target/s390x: rework PGM interrupt psw.addr handling 2017-06-13 11:09:39 -07:00
trace-events Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
translate.c target/s390x: rework PGM interrupt psw.addr handling 2017-06-13 11:09:39 -07:00