target/arm: Enforce that FPDSCR.LTPSIZE is 4 on inbound migration
authorPeter Maydell <peter.maydell@linaro.org>
Mon, 13 Sep 2021 09:54:30 +0000 (10:54 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 21 Sep 2021 15:28:27 +0000 (16:28 +0100)
commit85e7d1e9ff11e5df827cc7b81034b85efae7d315
tree5c14dd8f712571c7dec5c39e071e76e7d2159a02
parent84848481c3d2c1e1b7fb375894fa20dab56b4bde
target/arm: Enforce that FPDSCR.LTPSIZE is 4 on inbound migration

Architecturally, for an M-profile CPU with the LOB feature the
LTPSIZE field in FPDSCR is always constant 4.  QEMU's implementation
enforces this everywhere, except that we don't check that it is true
in incoming migration data.

We're going to add come in gen_update_fp_context() which relies on
the "always 4" property.  Since this is TCG-only, we don't actually
need to be robust to bogus incoming migration data, and the effect of
it being wrong would be wrong code generation rather than a QEMU
crash; but if it did ever happen somehow it would be very difficult
to track down the cause.  Add a check so that we fail the inbound
migration if the FPDSCR.LTPSIZE value is incorrect.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20210913095440.13462-3-peter.maydell@linaro.org
target/arm/machine.c