Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Mozi
rt-thread
提交
ad8d95b1
R
rt-thread
项目概览
Mozi
/
rt-thread
与 Fork 源项目一致
Fork自
RT-Thread / rt-thread
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rt-thread
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
ad8d95b1
编写于
11月 22, 2020
作者:
B
Bernard Xiong
提交者:
GitHub
11月 22, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #4046 from balanceTWK/riscv_fpu_k210_20201120
[libcpu/risc-v][K210] add FPU support
上级
9dc0bbb8
62654ea9
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
237 addition
and
35 deletion
+237
-35
bsp/k210/.config
bsp/k210/.config
+28
-1
bsp/k210/Kconfig
bsp/k210/Kconfig
+1
-0
bsp/k210/rtconfig.h
bsp/k210/rtconfig.h
+2
-0
bsp/k210/rtconfig.py
bsp/k210/rtconfig.py
+1
-1
libcpu/Kconfig
libcpu/Kconfig
+8
-0
libcpu/risc-v/common/context_gcc.S
libcpu/risc-v/common/context_gcc.S
+77
-1
libcpu/risc-v/common/cpuport.c
libcpu/risc-v/common/cpuport.c
+35
-0
libcpu/risc-v/common/cpuport.h
libcpu/risc-v/common/cpuport.h
+16
-0
libcpu/risc-v/k210/interrupt_gcc.S
libcpu/risc-v/k210/interrupt_gcc.S
+37
-0
libcpu/risc-v/k210/startup_gcc.S
libcpu/risc-v/k210/startup_gcc.S
+32
-32
未找到文件。
bsp/k210/.config
浏览文件 @
ad8d95b1
...
...
@@ -70,6 +70,8 @@ CONFIG_RT_VER_NUM=0x40003
CONFIG_ARCH_CPU_64BIT
=
y
# CONFIG_RT_USING_CPU_FFS is not set
CONFIG_ARCH_RISCV
=
y
CONFIG_ARCH_RISCV_FPU
=
y
CONFIG_ARCH_RISCV_FPU_S
=
y
CONFIG_ARCH_RISCV64
=
y
# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set
...
...
@@ -150,8 +152,10 @@ CONFIG_RT_SERIAL_RB_BUFSZ=64
# CONFIG_RT_USING_HWTIMER is not set
# CONFIG_RT_USING_CPUTIME is not set
# CONFIG_RT_USING_I2C is not set
# CONFIG_RT_USING_PHY is not set
CONFIG_RT_USING_PIN
=
y
# CONFIG_RT_USING_ADC is not set
# CONFIG_RT_USING_DAC is not set
# CONFIG_RT_USING_PWM is not set
# CONFIG_RT_USING_MTD_NOR is not set
# CONFIG_RT_USING_MTD_NAND is not set
...
...
@@ -192,6 +196,7 @@ CONFIG_RT_USING_LIBC=y
CONFIG_RT_USING_POSIX
=
y
# CONFIG_RT_USING_POSIX_MMAP is not set
# CONFIG_RT_USING_POSIX_TERMIOS is not set
# CONFIG_RT_USING_POSIX_GETLINE is not set
# CONFIG_RT_USING_POSIX_AIO is not set
# CONFIG_RT_USING_MODULE is not set
...
...
@@ -262,7 +267,9 @@ CONFIG_ULOG_BACKEND_USING_CONSOLE=y
#
# IoT - internet of things
#
# CONFIG_PKG_USING_LORAWAN_DRIVER is not set
# CONFIG_PKG_USING_PAHOMQTT is not set
# CONFIG_PKG_USING_UMQTT is not set
# CONFIG_PKG_USING_WEBCLIENT is not set
# CONFIG_PKG_USING_WEBNET is not set
# CONFIG_PKG_USING_MONGOOSE is not set
...
...
@@ -308,7 +315,7 @@ CONFIG_ULOG_BACKEND_USING_CONSOLE=y
# CONFIG_PKG_USING_GAGENT_CLOUD is not set
# CONFIG_PKG_USING_ALI_IOTKIT is not set
# CONFIG_PKG_USING_AZURE is not set
# CONFIG_PKG_USING_TENCENT_IOT
HUB
is not set
# CONFIG_PKG_USING_TENCENT_IOT
_EXPLORER
is not set
# CONFIG_PKG_USING_JIOT-C-SDK is not set
# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
# CONFIG_PKG_USING_JOYLINK is not set
...
...
@@ -330,6 +337,9 @@ CONFIG_ULOG_BACKEND_USING_CONSOLE=y
# CONFIG_PKG_USING_CAPNP is not set
# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set
# CONFIG_PKG_USING_AGILE_TELNET is not set
# CONFIG_PKG_USING_NMEALIB is not set
# CONFIG_PKG_USING_AGILE_JSMN is not set
# CONFIG_PKG_USING_PDULIB is not set
#
# security packages
...
...
@@ -338,6 +348,7 @@ CONFIG_ULOG_BACKEND_USING_CONSOLE=y
# CONFIG_PKG_USING_libsodium is not set
# CONFIG_PKG_USING_TINYCRYPT is not set
# CONFIG_PKG_USING_TFM is not set
# CONFIG_PKG_USING_YD_CRYPTO is not set
#
# language packages
...
...
@@ -372,7 +383,9 @@ CONFIG_ULOG_BACKEND_USING_CONSOLE=y
# CONFIG_PKG_USING_CHINESE_FONT_LIBRARY is not set
# CONFIG_PKG_USING_LUNAR_CALENDAR is not set
# CONFIG_PKG_USING_BS8116A is not set
# CONFIG_PKG_USING_GPS_RMC is not set
# CONFIG_PKG_USING_URLENCODE is not set
# CONFIG_PKG_USING_UMCN is not set
#
# system packages
...
...
@@ -396,6 +409,10 @@ CONFIG_ULOG_BACKEND_USING_CONSOLE=y
# CONFIG_PKG_USING_SYSWATCH is not set
# CONFIG_PKG_USING_SYS_LOAD_MONITOR is not set
# CONFIG_PKG_USING_PLCCORE is not set
# CONFIG_PKG_USING_RAMDISK is not set
# CONFIG_PKG_USING_MININI is not set
# CONFIG_PKG_USING_QBOOT is not set
# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set
#
# peripheral libraries and drivers
...
...
@@ -441,6 +458,7 @@ CONFIG_PKG_KENDRYTE_SDK_VERNUM=0x0055
# CONFIG_PKG_USING_RPLIDAR is not set
# CONFIG_PKG_USING_AS608 is not set
# CONFIG_PKG_USING_RC522 is not set
# CONFIG_PKG_USING_WS2812B is not set
# CONFIG_PKG_USING_EMBARC_BSP is not set
# CONFIG_PKG_USING_EXTERN_RTC_DRIVERS is not set
# CONFIG_PKG_USING_MULTI_RTIMER is not set
...
...
@@ -450,6 +468,12 @@ CONFIG_PKG_KENDRYTE_SDK_VERNUM=0x0055
# CONFIG_PKG_USING_PMS_SERIES is not set
# CONFIG_PKG_USING_NUCLEI_SDK is not set
# CONFIG_PKG_USING_CAN_YMODEM is not set
# CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set
# CONFIG_PKG_USING_QLED is not set
# CONFIG_PKG_USING_PAJ7620 is not set
# CONFIG_PKG_USING_AGILE_CONSOLE is not set
# CONFIG_PKG_USING_LD3320 is not set
# CONFIG_PKG_USING_WK2124 is not set
#
# miscellaneous packages
...
...
@@ -486,6 +510,9 @@ CONFIG_PKG_KENDRYTE_SDK_VERNUM=0x0055
# CONFIG_PKG_USING_VT100 is not set
# CONFIG_PKG_USING_ULAPACK is not set
# CONFIG_PKG_USING_UKAL is not set
# CONFIG_PKG_USING_CRCLIB is not set
# CONFIG_PKG_USING_THREES is not set
# CONFIG_PKG_USING_2048 is not set
CONFIG_BOARD_K210_EVB
=
y
CONFIG_BSP_USING_UART_HS
=
y
...
...
bsp/k210/Kconfig
浏览文件 @
ad8d95b1
...
...
@@ -21,6 +21,7 @@ source "$PKGS_DIR/Kconfig"
config BOARD_K210_EVB
bool
select ARCH_RISCV64
select ARCH_RISCV_FPU_S
select PKG_USING_KENDRYTE_SDK
select RT_USING_COMPONENTS_INIT
select RT_USING_USER_MAIN
...
...
bsp/k210/rtconfig.h
浏览文件 @
ad8d95b1
...
...
@@ -48,6 +48,8 @@
#define RT_VER_NUM 0x40003
#define ARCH_CPU_64BIT
#define ARCH_RISCV
#define ARCH_RISCV_FPU
#define ARCH_RISCV_FPU_S
#define ARCH_RISCV64
/* RT-Thread Components */
...
...
bsp/k210/rtconfig.py
浏览文件 @
ad8d95b1
...
...
@@ -38,7 +38,7 @@ if PLATFORM == 'gcc':
OBJDUMP
=
PREFIX
+
'objdump'
OBJCPY
=
PREFIX
+
'objcopy'
DEVICE
=
' -mcmodel=medany -march=rv64imaf
dc -mabi=lp64d
'
DEVICE
=
' -mcmodel=medany -march=rv64imaf
c -mabi=lp64f -fsingle-precision-constant
'
CFLAGS
=
DEVICE
+
' -fno-common -ffunction-sections -fdata-sections -fstrict-volatile-bitfields'
AFLAGS
=
' -c'
+
DEVICE
+
' -x assembler-with-cpp'
LFLAGS
=
DEVICE
+
' -nostartfiles -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,_start -T link.lds'
...
...
libcpu/Kconfig
浏览文件 @
ad8d95b1
...
...
@@ -106,6 +106,14 @@ config ARCH_RISCV
config ARCH_RISCV_FPU
bool
config ARCH_RISCV_FPU_S
select ARCH_RISCV_FPU
bool
config ARCH_RISCV_FPU_D
select ARCH_RISCV_FPU
bool
config ARCH_RISCV32
select ARCH_RISCV
bool
...
...
libcpu/risc-v/common/context_gcc.S
浏览文件 @
ad8d95b1
...
...
@@ -7,6 +7,7 @@
*
Date
Author
Notes
*
2018
/
10
/
28
Bernard
The
unify
RISC
-
V
porting
implementation
*
2018
/
12
/
27
Jesven
Add
SMP
support
*
2020
/
11
/
20
BalanceTWK
Add
FPU
support
*/
#include "cpuport.h"
...
...
@@ -72,6 +73,43 @@ rt_hw_context_switch:
*
mstatus
.
mie
->
sp
(
2
)
*
x
(
i
)
->
sp
(
i
-
4
)
*/
#ifdef ARCH_RISCV_FPU
addi
sp
,
sp
,
-
32
*
FREGBYTES
FSTORE
f0
,
0
*
FREGBYTES
(
sp
)
FSTORE
f1
,
1
*
FREGBYTES
(
sp
)
FSTORE
f2
,
2
*
FREGBYTES
(
sp
)
FSTORE
f3
,
3
*
FREGBYTES
(
sp
)
FSTORE
f4
,
4
*
FREGBYTES
(
sp
)
FSTORE
f5
,
5
*
FREGBYTES
(
sp
)
FSTORE
f6
,
6
*
FREGBYTES
(
sp
)
FSTORE
f7
,
7
*
FREGBYTES
(
sp
)
FSTORE
f8
,
8
*
FREGBYTES
(
sp
)
FSTORE
f9
,
9
*
FREGBYTES
(
sp
)
FSTORE
f10
,
10
*
FREGBYTES
(
sp
)
FSTORE
f11
,
11
*
FREGBYTES
(
sp
)
FSTORE
f12
,
12
*
FREGBYTES
(
sp
)
FSTORE
f13
,
13
*
FREGBYTES
(
sp
)
FSTORE
f14
,
14
*
FREGBYTES
(
sp
)
FSTORE
f15
,
15
*
FREGBYTES
(
sp
)
FSTORE
f16
,
16
*
FREGBYTES
(
sp
)
FSTORE
f17
,
17
*
FREGBYTES
(
sp
)
FSTORE
f18
,
18
*
FREGBYTES
(
sp
)
FSTORE
f19
,
19
*
FREGBYTES
(
sp
)
FSTORE
f20
,
20
*
FREGBYTES
(
sp
)
FSTORE
f21
,
21
*
FREGBYTES
(
sp
)
FSTORE
f22
,
22
*
FREGBYTES
(
sp
)
FSTORE
f23
,
23
*
FREGBYTES
(
sp
)
FSTORE
f24
,
24
*
FREGBYTES
(
sp
)
FSTORE
f25
,
25
*
FREGBYTES
(
sp
)
FSTORE
f26
,
26
*
FREGBYTES
(
sp
)
FSTORE
f27
,
27
*
FREGBYTES
(
sp
)
FSTORE
f28
,
28
*
FREGBYTES
(
sp
)
FSTORE
f29
,
29
*
FREGBYTES
(
sp
)
FSTORE
f30
,
30
*
FREGBYTES
(
sp
)
FSTORE
f31
,
31
*
FREGBYTES
(
sp
)
#endif
addi
sp
,
sp
,
-
32
*
REGBYTES
STORE
sp
,
(
a0
)
...
...
@@ -174,7 +212,7 @@ rt_hw_context_switch_exit:
LOAD
x1
,
1
*
REGBYTES
(
sp
)
li
t0
,
0x0000
1
800
li
t0
,
0x0000
7
800
csrw
mstatus
,
t0
LOAD
a0
,
2
*
REGBYTES
(
sp
)
csrs
mstatus
,
a0
...
...
@@ -209,4 +247,42 @@ rt_hw_context_switch_exit:
LOAD
x31
,
31
*
REGBYTES
(
sp
)
addi
sp
,
sp
,
32
*
REGBYTES
#ifdef ARCH_RISCV_FPU
FLOAD
f0
,
0
*
FREGBYTES
(
sp
)
FLOAD
f1
,
1
*
FREGBYTES
(
sp
)
FLOAD
f2
,
2
*
FREGBYTES
(
sp
)
FLOAD
f3
,
3
*
FREGBYTES
(
sp
)
FLOAD
f4
,
4
*
FREGBYTES
(
sp
)
FLOAD
f5
,
5
*
FREGBYTES
(
sp
)
FLOAD
f6
,
6
*
FREGBYTES
(
sp
)
FLOAD
f7
,
7
*
FREGBYTES
(
sp
)
FLOAD
f8
,
8
*
FREGBYTES
(
sp
)
FLOAD
f9
,
9
*
FREGBYTES
(
sp
)
FLOAD
f10
,
10
*
FREGBYTES
(
sp
)
FLOAD
f11
,
11
*
FREGBYTES
(
sp
)
FLOAD
f12
,
12
*
FREGBYTES
(
sp
)
FLOAD
f13
,
13
*
FREGBYTES
(
sp
)
FLOAD
f14
,
14
*
FREGBYTES
(
sp
)
FLOAD
f15
,
15
*
FREGBYTES
(
sp
)
FLOAD
f16
,
16
*
FREGBYTES
(
sp
)
FLOAD
f17
,
17
*
FREGBYTES
(
sp
)
FLOAD
f18
,
18
*
FREGBYTES
(
sp
)
FLOAD
f19
,
19
*
FREGBYTES
(
sp
)
FLOAD
f20
,
20
*
FREGBYTES
(
sp
)
FLOAD
f21
,
21
*
FREGBYTES
(
sp
)
FLOAD
f22
,
22
*
FREGBYTES
(
sp
)
FLOAD
f23
,
23
*
FREGBYTES
(
sp
)
FLOAD
f24
,
24
*
FREGBYTES
(
sp
)
FLOAD
f25
,
25
*
FREGBYTES
(
sp
)
FLOAD
f26
,
26
*
FREGBYTES
(
sp
)
FLOAD
f27
,
27
*
FREGBYTES
(
sp
)
FLOAD
f28
,
28
*
FREGBYTES
(
sp
)
FLOAD
f29
,
29
*
FREGBYTES
(
sp
)
FLOAD
f30
,
30
*
FREGBYTES
(
sp
)
FLOAD
f31
,
31
*
FREGBYTES
(
sp
)
addi
sp
,
sp
,
32
*
FREGBYTES
#endif
mret
libcpu/risc-v/common/cpuport.c
浏览文件 @
ad8d95b1
...
...
@@ -6,6 +6,7 @@
* Change Logs:
* Date Author Notes
* 2018/10/28 Bernard The unify RISC-V porting code.
* 2020/11/20 BalanceTWK Add FPU support
*/
#include <rthw.h>
...
...
@@ -53,6 +54,40 @@ struct rt_hw_stack_frame
rt_ubase_t
t4
;
/* x29 - t4 - temporary register 4 */
rt_ubase_t
t5
;
/* x30 - t5 - temporary register 5 */
rt_ubase_t
t6
;
/* x31 - t6 - temporary register 6 */
#ifdef ARCH_RISCV_FPU
rv_floatreg_t
f0
;
/* f0 */
rv_floatreg_t
f1
;
/* f1 */
rv_floatreg_t
f2
;
/* f2 */
rv_floatreg_t
f3
;
/* f3 */
rv_floatreg_t
f4
;
/* f4 */
rv_floatreg_t
f5
;
/* f5 */
rv_floatreg_t
f6
;
/* f6 */
rv_floatreg_t
f7
;
/* f7 */
rv_floatreg_t
f8
;
/* f8 */
rv_floatreg_t
f9
;
/* f9 */
rv_floatreg_t
f10
;
/* f10 */
rv_floatreg_t
f11
;
/* f11 */
rv_floatreg_t
f12
;
/* f12 */
rv_floatreg_t
f13
;
/* f13 */
rv_floatreg_t
f14
;
/* f14 */
rv_floatreg_t
f15
;
/* f15 */
rv_floatreg_t
f16
;
/* f16 */
rv_floatreg_t
f17
;
/* f17 */
rv_floatreg_t
f18
;
/* f18 */
rv_floatreg_t
f19
;
/* f19 */
rv_floatreg_t
f20
;
/* f20 */
rv_floatreg_t
f21
;
/* f21 */
rv_floatreg_t
f22
;
/* f22 */
rv_floatreg_t
f23
;
/* f23 */
rv_floatreg_t
f24
;
/* f24 */
rv_floatreg_t
f25
;
/* f25 */
rv_floatreg_t
f26
;
/* f26 */
rv_floatreg_t
f27
;
/* f27 */
rv_floatreg_t
f28
;
/* f28 */
rv_floatreg_t
f29
;
/* f29 */
rv_floatreg_t
f30
;
/* f30 */
rv_floatreg_t
f31
;
/* f31 */
#endif
};
/**
...
...
libcpu/risc-v/common/cpuport.h
浏览文件 @
ad8d95b1
...
...
@@ -6,6 +6,7 @@
* Change Logs:
* Date Author Notes
* 2018-10-03 Bernard The first version
* 2020/11/20 BalanceTWK Add FPU support
*/
#ifndef CPUPORT_H__
...
...
@@ -24,4 +25,19 @@
#define REGBYTES 4
#endif
#ifdef ARCH_RISCV_FPU
#ifdef ARCH_RISCV_FPU_D
#define FSTORE fsd
#define FLOAD fld
#define FREGBYTES 8
#define rv_floatreg_t rt_int64_t
#endif
#ifdef ARCH_RISCV_FPU_S
#define FSTORE fsw
#define FLOAD flw
#define FREGBYTES 4
#define rv_floatreg_t rt_int32_t
#endif
#endif
#endif
libcpu/risc-v/k210/interrupt_gcc.S
浏览文件 @
ad8d95b1
...
...
@@ -15,6 +15,43 @@
.
align
2
.
global
trap_entry
trap_entry
:
#ifdef ARCH_RISCV_FPU
addi
sp
,
sp
,
-
32
*
FREGBYTES
FSTORE
f0
,
0
*
FREGBYTES
(
sp
)
FSTORE
f1
,
1
*
FREGBYTES
(
sp
)
FSTORE
f2
,
2
*
FREGBYTES
(
sp
)
FSTORE
f3
,
3
*
FREGBYTES
(
sp
)
FSTORE
f4
,
4
*
FREGBYTES
(
sp
)
FSTORE
f5
,
5
*
FREGBYTES
(
sp
)
FSTORE
f6
,
6
*
FREGBYTES
(
sp
)
FSTORE
f7
,
7
*
FREGBYTES
(
sp
)
FSTORE
f8
,
8
*
FREGBYTES
(
sp
)
FSTORE
f9
,
9
*
FREGBYTES
(
sp
)
FSTORE
f10
,
10
*
FREGBYTES
(
sp
)
FSTORE
f11
,
11
*
FREGBYTES
(
sp
)
FSTORE
f12
,
12
*
FREGBYTES
(
sp
)
FSTORE
f13
,
13
*
FREGBYTES
(
sp
)
FSTORE
f14
,
14
*
FREGBYTES
(
sp
)
FSTORE
f15
,
15
*
FREGBYTES
(
sp
)
FSTORE
f16
,
16
*
FREGBYTES
(
sp
)
FSTORE
f17
,
17
*
FREGBYTES
(
sp
)
FSTORE
f18
,
18
*
FREGBYTES
(
sp
)
FSTORE
f19
,
19
*
FREGBYTES
(
sp
)
FSTORE
f20
,
20
*
FREGBYTES
(
sp
)
FSTORE
f21
,
21
*
FREGBYTES
(
sp
)
FSTORE
f22
,
22
*
FREGBYTES
(
sp
)
FSTORE
f23
,
23
*
FREGBYTES
(
sp
)
FSTORE
f24
,
24
*
FREGBYTES
(
sp
)
FSTORE
f25
,
25
*
FREGBYTES
(
sp
)
FSTORE
f26
,
26
*
FREGBYTES
(
sp
)
FSTORE
f27
,
27
*
FREGBYTES
(
sp
)
FSTORE
f28
,
28
*
FREGBYTES
(
sp
)
FSTORE
f29
,
29
*
FREGBYTES
(
sp
)
FSTORE
f30
,
30
*
FREGBYTES
(
sp
)
FSTORE
f31
,
31
*
FREGBYTES
(
sp
)
#endif
/
*
save
thread
context
to
thread
stack
*/
addi
sp
,
sp
,
-
32
*
REGBYTES
...
...
libcpu/risc-v/k210/startup_gcc.S
浏览文件 @
ad8d95b1
...
...
@@ -67,38 +67,38 @@ _start:
csrs
mstatus
,
t0
fssr
x0
fmv.
d
.x
f0
,
x0
fmv.
d
.x
f1
,
x0
fmv.
d
.x
f2
,
x0
fmv.
d
.x
f3
,
x0
fmv.
d
.x
f4
,
x0
fmv.
d
.x
f5
,
x0
fmv.
d
.x
f6
,
x0
fmv.
d
.x
f7
,
x0
fmv.
d
.x
f8
,
x0
fmv.
d
.x
f9
,
x0
fmv.
d
.x
f10
,
x0
fmv.
d
.x
f11
,
x0
fmv.
d
.x
f12
,
x0
fmv.
d
.x
f13
,
x0
fmv.
d
.x
f14
,
x0
fmv.
d
.x
f15
,
x0
fmv.
d
.x
f16
,
x0
fmv.
d
.x
f17
,
x0
fmv.
d
.x
f18
,
x0
fmv.
d
.x
f19
,
x0
fmv.
d
.x
f20
,
x0
fmv.
d
.x
f21
,
x0
fmv.
d
.x
f22
,
x0
fmv.
d
.x
f23
,
x0
fmv.
d
.x
f24
,
x0
fmv.
d
.x
f25
,
x0
fmv.
d
.x
f26
,
x0
fmv.
d
.x
f27
,
x0
fmv.
d
.x
f28
,
x0
fmv.
d
.x
f29
,
x0
fmv.
d
.x
f30
,
x0
fmv.
d
.x
f31
,
x0
fmv.
w
.x
f0
,
x0
fmv.
w
.x
f1
,
x0
fmv.
w
.x
f2
,
x0
fmv.
w
.x
f3
,
x0
fmv.
w
.x
f4
,
x0
fmv.
w
.x
f5
,
x0
fmv.
w
.x
f6
,
x0
fmv.
w
.x
f7
,
x0
fmv.
w
.x
f8
,
x0
fmv.
w
.x
f9
,
x0
fmv.
w
.x
f10
,
x0
fmv.
w
.x
f11
,
x0
fmv.
w
.x
f12
,
x0
fmv.
w
.x
f13
,
x0
fmv.
w
.x
f14
,
x0
fmv.
w
.x
f15
,
x0
fmv.
w
.x
f16
,
x0
fmv.
w
.x
f17
,
x0
fmv.
w
.x
f18
,
x0
fmv.
w
.x
f19
,
x0
fmv.
w
.x
f20
,
x0
fmv.
w
.x
f21
,
x0
fmv.
w
.x
f22
,
x0
fmv.
w
.x
f23
,
x0
fmv.
w
.x
f24
,
x0
fmv.
w
.x
f25
,
x0
fmv.
w
.x
f26
,
x0
fmv.
w
.x
f27
,
x0
fmv.
w
.x
f28
,
x0
fmv.
w
.x
f29
,
x0
fmv.
w
.x
f30
,
x0
fmv.
w
.x
f31
,
x0
.
option
push
.
option
norelax
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录