如何在 spike 上查看浮点寄存器的内容?
How can I see the content of a float-point register on spike?
我正在使用 riscv 代码,我想使用 spike 工具模拟它。模拟的目的是查看一些浮点寄存器的内容。
所以,如果我想查看整数寄存器的内容,我使用下一个命令:
reg 0 s0
但是如果我尝试对浮点寄存器使用相同的命令:
reg 0 ft0
它总是向我显示所有设置为零的位......
我附上了一些我正在使用的汇编代码....
10164: 0000f053 fadd.s ft0,ft1,ft0
10168: fe042227 fsw ft0,-28(s0)
在这段代码中,我使用命令 reg 查看浮点寄存器 ft1 和 ft0(reg 0 ft1 或 reg 0 ft0)的内容
fadd.s指令,结果为:
core 0: 0x0000000000010164 (0x0000f053) fadd.s ft0, ft1, ft0
: reg 0 ft0
0x0000000000000000
但是如果我在fsw指令执行后查找内存中保存的内容,结果不为零,是正确的
core 0: 0x0000000000010168 (0xfe042227) fsw ft0, -28(s0)
: mem 0 7fffff04
0x0000000040e00000
如您所见,问题是为什么使用 reg 命令查看浮点寄存器的内容总是将零作为寄存器的内容。 reg格式和浮点寄存器有问题吗?
对于浮点寄存器,必须使用命令 fregs
或 fregd
,具体取决于您希望看到表示为单精度值还是双精度值的值。
我正在使用 riscv 代码,我想使用 spike 工具模拟它。模拟的目的是查看一些浮点寄存器的内容。
所以,如果我想查看整数寄存器的内容,我使用下一个命令:
reg 0 s0
但是如果我尝试对浮点寄存器使用相同的命令:
reg 0 ft0
它总是向我显示所有设置为零的位......
我附上了一些我正在使用的汇编代码....
10164: 0000f053 fadd.s ft0,ft1,ft0
10168: fe042227 fsw ft0,-28(s0)
在这段代码中,我使用命令 reg 查看浮点寄存器 ft1 和 ft0(reg 0 ft1 或 reg 0 ft0)的内容 fadd.s指令,结果为:
core 0: 0x0000000000010164 (0x0000f053) fadd.s ft0, ft1, ft0
: reg 0 ft0
0x0000000000000000
但是如果我在fsw指令执行后查找内存中保存的内容,结果不为零,是正确的
core 0: 0x0000000000010168 (0xfe042227) fsw ft0, -28(s0)
: mem 0 7fffff04
0x0000000040e00000
如您所见,问题是为什么使用 reg 命令查看浮点寄存器的内容总是将零作为寄存器的内容。 reg格式和浮点寄存器有问题吗?
对于浮点寄存器,必须使用命令 fregs
或 fregd
,具体取决于您希望看到表示为单精度值还是双精度值的值。