diff options
author | Aurelien Jarno <aurelien@aurel32.net> | 2015-05-25 01:47:22 +0200 |
---|---|---|
committer | Alexander Graf <agraf@suse.de> | 2015-06-05 01:37:58 +0200 |
commit | 9bebf9863bd16cc824231ad71959a338dc1819ac (patch) | |
tree | a0750a083f4ae79830c1334d45d59797c551f6c2 | |
parent | aa752a4afc2a4b7ede58a960a9d553b3fd9e6882 (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.c | 2 |
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); } |