OSDN Git Service

target/arm: Implement dummy versions of M-profile FP-related registers
authorPeter Maydell <peter.maydell@linaro.org>
Mon, 29 Apr 2019 16:35:58 +0000 (17:35 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Mon, 29 Apr 2019 16:35:58 +0000 (17:35 +0100)
commitd33abe82c7c9847284a23e575e1078cccab540b5
tree9878dcce1f87a2ac46c0e89044829392c240e64b
parent84d2e3e2ae76fdb0c8f3063fa8c46c8ce14ab201
target/arm: Implement dummy versions of M-profile FP-related registers

The M-profile floating point support has three associated config
registers: FPCAR, FPCCR and FPDSCR. It also makes the registers
CPACR and NSACR have behaviour other than reads-as-zero.
Add support for all of these as simple reads-as-written registers.
We will hook up actual functionality later.

The main complexity here is handling the FPCCR register, which
has a mix of banked and unbanked bits.

Note that we don't share storage with the A-profile
cpu->cp15.nsacr and cpu->cp15.cpacr_el1, though the behaviour
is quite similar, for two reasons:
 * the M profile CPACR is banked between security states
 * it preserves the invariant that M profile uses no state
   inside the cp15 substruct

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20190416125744.27770-4-peter.maydell@linaro.org
hw/intc/armv7m_nvic.c
target/arm/cpu.c
target/arm/cpu.h
target/arm/machine.c