unicorn/qemu/target
Peter Maydell 5063ca11ab
target/arm: Check for xPSR mismatch usage faults earlier for v8M
ARM v8M specifies that the INVPC usage fault for mismatched
xPSR exception field and handler mode bit should be checked
before updating the PSR and SP, so that the fault is taken
with the existing stack frame rather than by pushing a new one.
Perform this check in the right place for v8M.

Since v7M specifies in its pseudocode that this usage fault
check should happen later, we have to retain the original
code for that check rather than being able to merge the two.
(The distinction is architecturally visible but only in
very obscure corner cases like attempting an invalid exception
return with an exception frame in read only memory.)

Backports commit 224e0c300a0098fb577a03bd29d774d0769f632a from qemu
2018-03-05 01:39:39 -05:00
..
arm target/arm: Check for xPSR mismatch usage faults earlier for v8M 2018-03-05 01:39:39 -05:00
i386 i386/cpu/hyperv: support over 64 vcpus for windows guests 2018-03-05 00:00:53 -05:00
m68k target/m68k: Switch fpu_rom from make_floatx80() to make_floatx80_init() 2018-03-04 23:05:01 -05:00
mips mips: Improve macro parenthesization 2018-03-05 00:51:51 -05:00
sparc sparc: Fix typedef clash 2018-03-04 23:05:50 -05:00