target/ppc: Assert if MSR bits differ from msr_mask during exceptions
commitfce9fbafe910822be093abfbf5fa259d5931aa66
authorFabiano Rosas <farosas@linux.ibm.com>
Wed, 9 Feb 2022 08:08:56 +0000 (9 09:08 +0100)
committerCédric Le Goater <clg@kaod.org>
Wed, 9 Feb 2022 08:08:56 +0000 (9 09:08 +0100)
treec79b7e2e905895d98fb441d0e37e3836f5384362
parentc6eaac893af2baef30d3fcce790cbd89fee82a42
target/ppc: Assert if MSR bits differ from msr_mask during exceptions

We currently abort QEMU during the dispatch of an interrupt if we try
to set MSR_HV without having MSR_HVB in the msr_mask. I think we
should verify this for all MSR bits. There is no reason to ever have a
MSR bit set if the corresponding bit is not set in that CPU's
msr_mask.

Note that this is not about the emulated code setting reserved
bits. We clear the new_msr when starting to dispatch an exception, so
if we end up with bits not present in the msr_mask that is a QEMU
programming error.

I kept the HSRR verification for BookS because it is the only CPU
family that has HSRRs.

Signed-off-by: Fabiano Rosas <farosas@linux.ibm.com>
Message-Id: <20220207183036.1507882-4-farosas@linux.ibm.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
target/ppc/excp_helper.c