[libcpu][risc-v][common] Avoid using t0 before being saved

- Fixed the issue that t0 was modified unexpectedly before being saved

Signed-off-by: Fan YANG <fan.yang@hpmicro.com>
This commit is contained in:
Fan YANG 2023-08-09 10:51:32 +08:00 committed by Meco Man
parent c6a2f5b7bd
commit 5ac509b6d0
1 changed files with 4 additions and 5 deletions

View File

@ -1,12 +1,13 @@
/* /*
* Copyright (c) 2006-2018, RT-Thread Development Team * Copyright (c) 2006-2023, RT-Thread Development Team
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
* *
* Change Logs: * Change Logs:
* Date Author Notes * Date Author Notes
* 2023/01/17 WangShun The first version * 2023/01/17 WangShun The first version
* 2023/03/19 Flyingcys Add riscv_32e support * 2023/03/19 Flyingcys Add riscv_32e support
* 2023/08/09 HPMicro Fix the issue t0 was modified unexpectedly before being saved
*/ */
#define __ASSEMBLY__ #define __ASSEMBLY__
#include "cpuport.h" #include "cpuport.h"
@ -20,9 +21,7 @@
.global SW_handler .global SW_handler
SW_handler: SW_handler:
li t0, 0x08 csrci mstatus, 0x8
csrc mstatus, t0
#ifdef ARCH_RISCV_FPU #ifdef ARCH_RISCV_FPU
addi sp, sp, -32 * FREGBYTES addi sp, sp, -32 * FREGBYTES
FSTORE f0, 0 * FREGBYTES(sp) FSTORE f0, 0 * FREGBYTES(sp)