diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2019-02-15 17:16:39 +0100 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2019-02-26 09:21:24 +1100 |
commit | 154c69f2b8512bdbfcd48a82bfd902e9449a895a (patch) | |
tree | f8504ff710e4110a1a6460ce5d19857af7380268 /hw/ppc | |
parent | ef80b99ce7ffbd66b3efd493f4ca99f8abf59e79 (diff) | |
download | qemu-154c69f2b8512bdbfcd48a82bfd902e9449a895a.zip qemu-154c69f2b8512bdbfcd48a82bfd902e9449a895a.tar.gz qemu-154c69f2b8512bdbfcd48a82bfd902e9449a895a.tar.bz2 |
target/ppc: Fix nip on power management instructions
Those instructions currently raise an exception from within
the helper. This tends to result in a bogus nip value in
the env context (typically the beginning of the TB). Such
a helper needs a gen_update_nip() first.
This fixes it with a different approach which is to throw the
exception from translate.c instead of the helper using
gen_exception_nip() which does the right thing. Exception
EXCP_HLT is also used instead of POWERPC_EXCP_STOP to effectively
exit from the CPU execution loop.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
[clg : modified the commit log to comment the use of EXCP_HLT instead
of POWERPC_EXCP_STOP]
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20190215161648.9600-2-clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'hw/ppc')
0 files changed, 0 insertions, 0 deletions