riscv: Add FPU state in TCB
Add FPU state storage in TCB and increase TCB size bits when FPU is enabled. Signed-off-by: Yanyan Shen <yanyan.shen@data61.csiro.au>
This commit is contained in:
parent
b8aa983e31
commit
4006310e68
2 changed files with 26 additions and 0 deletions
|
|
@ -89,8 +89,30 @@ extern const register_t msgRegisters[] VISIBLE;
|
|||
extern const register_t frameRegisters[] VISIBLE;
|
||||
extern const register_t gpRegisters[] VISIBLE;
|
||||
|
||||
#ifdef CONFIG_HAVE_FPU
|
||||
|
||||
#define RISCV_NUM_FP_REGS 32
|
||||
|
||||
#if defined(CONFIG_RISCV_EXT_D)
|
||||
typedef uint64_t fp_reg_t;
|
||||
#elif defined(CONFIG_RISCV_EXT_F)
|
||||
typedef uint32_t fp_reg_t;
|
||||
#else
|
||||
#error Unknown RISCV FPU extension
|
||||
#endif
|
||||
|
||||
typedef struct user_fpu_state {
|
||||
fp_reg_t regs[RISCV_NUM_FP_REGS];
|
||||
uint32_t fcsr;
|
||||
} user_fpu_state_t;
|
||||
|
||||
#endif
|
||||
|
||||
struct user_context {
|
||||
word_t registers[n_contextRegisters];
|
||||
#ifdef CONFIG_HAVE_FPU
|
||||
user_fpu_state_t fpuState;
|
||||
#endif
|
||||
};
|
||||
typedef struct user_context user_context_t;
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,11 @@
|
|||
#endif
|
||||
#define seL4_EndpointBits 4
|
||||
#define seL4_IPCBufferSizeBits 10
|
||||
#ifdef CONFIG_HAVE_FPU
|
||||
#define seL4_TCBBits 11
|
||||
#else
|
||||
#define seL4_TCBBits 10
|
||||
#endif
|
||||
|
||||
/* Sv39/Sv48 pages/ptes sizes */
|
||||
#define seL4_PageTableEntryBits 3
|
||||
|
|
|
|||
Loading…
Reference in a new issue