mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-07 01:33:56 -06:00
target/arm: Overlap VECSTRIDE and XSCALE_CPAR TB flags
We are close to running out of TB flags for AArch32; we could start using the cs_base word, but before we do that we can economise on our usage by sharing the same bits for the VFP VECSTRIDE field and the XScale XSCALE_CPAR field. This works because no XScale CPU ever had VFP. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20190416125744.27770-18-peter.maydell@linaro.org
This commit is contained in:
parent
7fbb535f7a
commit
ea7ac69d12
4 changed files with 25 additions and 7 deletions
|
@ -3138,6 +3138,12 @@ FIELD(TBFLAG_ANY, BE_DATA, 23, 1)
|
|||
FIELD(TBFLAG_A32, THUMB, 0, 1)
|
||||
FIELD(TBFLAG_A32, VECLEN, 1, 3)
|
||||
FIELD(TBFLAG_A32, VECSTRIDE, 4, 2)
|
||||
/*
|
||||
* We store the bottom two bits of the CPAR as TB flags and handle
|
||||
* checks on the other bits at runtime. This shares the same bits as
|
||||
* VECSTRIDE, which is OK as no XScale CPU has VFP.
|
||||
*/
|
||||
FIELD(TBFLAG_A32, XSCALE_CPAR, 4, 2)
|
||||
/*
|
||||
* Indicates whether cp register reads and writes by guest code should access
|
||||
* the secure or nonsecure bank of banked registers; note that this is not
|
||||
|
@ -3147,10 +3153,6 @@ FIELD(TBFLAG_A32, NS, 6, 1)
|
|||
FIELD(TBFLAG_A32, VFPEN, 7, 1)
|
||||
FIELD(TBFLAG_A32, CONDEXEC, 8, 8)
|
||||
FIELD(TBFLAG_A32, SCTLR_B, 16, 1)
|
||||
/* We store the bottom two bits of the CPAR as TB flags and handle
|
||||
* checks on the other bits at runtime
|
||||
*/
|
||||
FIELD(TBFLAG_A32, XSCALE_CPAR, 17, 2)
|
||||
/* For M profile only, Handler (ie not Thread) mode */
|
||||
FIELD(TBFLAG_A32, HANDLER, 21, 1)
|
||||
/* For M profile only, whether we should generate stack-limit checks */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue