【问题标题】:How can I see the content of a float-point register on spike?如何在尖峰上查看浮点寄存器的内容?
【发布时间】:2015-10-11 06:10:52
【问题描述】:

我正在使用 riscv 代码,我想使用尖峰工具对其进行模拟。模拟的目的是查看一些浮点寄存器的内容。

所以,如果我想查看整数寄存器的内容,我使用下一个命令:

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格式和浮点寄存器有问题吗?

【问题讨论】:

    标签: riscv spike


    【解决方案1】:

    对于浮点寄存器,必须使用命令fregsfregd,具体取决于您希望将值表示为单精度还是双精度值。

    【讨论】:

    • 旁注:Spike 的 h 帮助命令为这些命令和其他命令提供了很好的快速参考。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2012-09-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多