mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 08:13:54 -06:00
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
This commit is contained in:
parent
84d2e3e2ae
commit
d33abe82c7
4 changed files with 180 additions and 0 deletions
|
@ -305,6 +305,21 @@ static const VMStateDescription vmstate_m_v8m = {
|
|||
}
|
||||
};
|
||||
|
||||
static const VMStateDescription vmstate_m_fp = {
|
||||
.name = "cpu/m/fp",
|
||||
.version_id = 1,
|
||||
.minimum_version_id = 1,
|
||||
.needed = vfp_needed,
|
||||
.fields = (VMStateField[]) {
|
||||
VMSTATE_UINT32_ARRAY(env.v7m.fpcar, ARMCPU, M_REG_NUM_BANKS),
|
||||
VMSTATE_UINT32_ARRAY(env.v7m.fpccr, ARMCPU, M_REG_NUM_BANKS),
|
||||
VMSTATE_UINT32_ARRAY(env.v7m.fpdscr, ARMCPU, M_REG_NUM_BANKS),
|
||||
VMSTATE_UINT32_ARRAY(env.v7m.cpacr, ARMCPU, M_REG_NUM_BANKS),
|
||||
VMSTATE_UINT32(env.v7m.nsacr, ARMCPU),
|
||||
VMSTATE_END_OF_LIST()
|
||||
}
|
||||
};
|
||||
|
||||
static const VMStateDescription vmstate_m = {
|
||||
.name = "cpu/m",
|
||||
.version_id = 4,
|
||||
|
@ -330,6 +345,7 @@ static const VMStateDescription vmstate_m = {
|
|||
&vmstate_m_scr,
|
||||
&vmstate_m_other_sp,
|
||||
&vmstate_m_v8m,
|
||||
&vmstate_m_fp,
|
||||
NULL
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue