summaryrefslogtreecommitdiffstats
path: root/target/s390x/interrupt.c
diff options
context:
space:
mode:
authorRichard Henderson2019-10-01 19:15:57 +0200
committerDavid Hildenbrand2019-10-09 12:49:01 +0200
commitc87ff4d108efce2546150be057721cb41ca1f74d (patch)
treedb62356435d1150aadb4a53e6909462625b29169 /target/s390x/interrupt.c
parents390x/cpumodel: Add new TCG features to QEMU cpu model (diff)
downloadqemu-c87ff4d108efce2546150be057721cb41ca1f74d.tar.gz
qemu-c87ff4d108efce2546150be057721cb41ca1f74d.tar.xz
qemu-c87ff4d108efce2546150be057721cb41ca1f74d.zip
target/s390x: Add ilen to unwind data
Use ILEN_UNWIND to signal that we have in fact that cpu_restore_state will have been called by the time we arrive in do_program_interrupt. Signed-off-by: Richard Henderson <rth@twiddle.net> Message-Id: <20191001171614.8405-2-richard.henderson@linaro.org> Reviewed-by: David Hildenbrand <david@redhat.com> Signed-off-by: David Hildenbrand <david@redhat.com>
Diffstat (limited to 'target/s390x/interrupt.c')
-rw-r--r--target/s390x/interrupt.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/target/s390x/interrupt.c b/target/s390x/interrupt.c
index a841f7187d..30a9fb8852 100644
--- a/target/s390x/interrupt.c
+++ b/target/s390x/interrupt.c
@@ -28,7 +28,10 @@ void trigger_pgm_exception(CPUS390XState *env, uint32_t code, uint32_t ilen)
cs->exception_index = EXCP_PGM;
env->int_pgm_code = code;
- env->int_pgm_ilen = ilen;
+ /* If ILEN_UNWIND, int_pgm_ilen already has the correct value. */
+ if (ilen != ILEN_UNWIND) {
+ env->int_pgm_ilen = ilen;
+ }
}
void s390_program_interrupt(CPUS390XState *env, uint32_t code, int ilen,