aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAurelien Jarno <aurelien@aurel32.net>2015-05-25 01:47:22 +0200
committerAlexander Graf <agraf@suse.de>2015-06-05 01:37:58 +0200
commit9bebf9863bd16cc824231ad71959a338dc1819ac (patch)
treea0750a083f4ae79830c1334d45d59797c551f6c2
parentaa752a4afc2a4b7ede58a960a9d553b3fd9e6882 (diff)
target-s390x: fix PSW value on dynamical exception from helpers
runtime_exception computes the psw.addr value using the actual exception address and the instruction length computed by calling the get_ilen function. However as explained above the get_ilen code, it returns the actual instruction length, and not the ILC. Therefore there is no need to multiply the value by 2. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Alexander Graf <agraf@suse.de>
-rw-r--r--target-s390x/misc_helper.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/target-s390x/misc_helper.c b/target-s390x/misc_helper.c
index 3ec7268b72..b375ab724b 100644
--- a/target-s390x/misc_helper.c
+++ b/target-s390x/misc_helper.c
@@ -61,7 +61,7 @@ void QEMU_NORETURN runtime_exception(CPUS390XState *env, int excp,
/* Advance past the insn. */
t = cpu_ldub_code(env, env->psw.addr);
env->int_pgm_ilen = t = get_ilen(t);
- env->psw.addr += 2 * t;
+ env->psw.addr += t;
cpu_loop_exit(cs);
}