arch/risc-v: Use fs status definition from csr.h
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
This commit is contained in:
parent
09b3fb25ab
commit
a94c865791
@ -25,21 +25,12 @@
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <arch/arch.h>
|
||||
#include <arch/csr.h>
|
||||
#include <arch/irq.h>
|
||||
#include <arch/mode.h>
|
||||
|
||||
#ifdef CONFIG_ARCH_FPU
|
||||
|
||||
/************************************************************************************
|
||||
* Pre-processor Definitions
|
||||
************************************************************************************/
|
||||
|
||||
#define FS_MASK 0x6000
|
||||
#define FS_OFF 0x0000
|
||||
#define FS_INITIAL 0x2000
|
||||
#define FS_CLEAN 0x4000
|
||||
#define FS_DIRTY 0x6000
|
||||
|
||||
/************************************************************************************
|
||||
* Public Symbols
|
||||
************************************************************************************/
|
||||
@ -74,7 +65,7 @@
|
||||
.type riscv_fpuconfig, function
|
||||
|
||||
riscv_fpuconfig:
|
||||
li a0, FS_INITIAL
|
||||
li a0, MSTATUS_FS_INIT
|
||||
csrs CSR_STATUS, a0
|
||||
csrwi fcsr, 0
|
||||
ret
|
||||
@ -102,13 +93,13 @@ riscv_fpuconfig:
|
||||
|
||||
riscv_savefpu:
|
||||
REGLOAD t0, REG_INT_CTX(a0)
|
||||
li t1, FS_MASK
|
||||
li t1, MSTATUS_FS
|
||||
and t2, t0, t1
|
||||
li t1, FS_DIRTY
|
||||
li t1, MSTATUS_FS_DIRTY
|
||||
bne t2, t1, 1f
|
||||
li t1, ~FS_MASK
|
||||
li t1, ~MSTATUS_FS
|
||||
and t0, t0, t1
|
||||
li t1, FS_CLEAN
|
||||
li t1, MSTATUS_FS_CLEAN
|
||||
or t0, t0, t1
|
||||
REGSTORE t0, REG_INT_CTX(a0)
|
||||
|
||||
@ -177,9 +168,9 @@ riscv_savefpu:
|
||||
|
||||
riscv_restorefpu:
|
||||
REGLOAD t0, REG_INT_CTX(a0)
|
||||
li t1, FS_MASK
|
||||
li t1, MSTATUS_FS
|
||||
and t2, t0, t1
|
||||
li t1, FS_INITIAL
|
||||
li t1, MSTATUS_FS_INIT
|
||||
ble t2, t1, 1f
|
||||
|
||||
/* Load all floating point registers */
|
||||
|
Loading…
Reference in New Issue
Block a user