fsrmi
RISC-V fsrmi 伪指令详解
汇编器伪指令RISC-V fsrmi 是访问 frm 的汇编器伪指令:fsrmi rd, imm 展开为 csrrwi rd, frm, imm;fsrmi imm 展开为 csrrwi x0, frm, imm。CSR 立即数字段为五位。
你写下的是
fsrmi rd, imm
fsrmi imm
各写法对应的展开
- fsrmi rd, imm
- csrrwi rd, frm, imm
- fsrmi imm
- csrrwi x0, frm, imm
这条伪指令到底在帮你省什么
RISC-V Assembly Programmer's Manual 为使用 CSRRWI 访问 frm 的两种形式定义了这些写法。
两种写法的区别
形式 1
fsrmi rd, imm 展开为 csrrwi rd, frm, imm;仅在 rd 不是 x0 时读取旧 frm 值并返回到 rd。
形式 2
fsrmi imm 展开为 csrrwi x0, frm, imm;不读取 frm,也不产生 CSR 读取副作用。
汇编写法与真实指令
按页面所列的 CSRRWI 展开阅读该写法。
官方依据与阅读顺序
本页把伪指令当作汇编器层面的别名或宏来解释:先看它会展开成哪些真实指令,再回到官方 ISA 手册理解真实指令的行为。涉及 ABI、重定位或链接器松弛时,以 psABI 文档为准。
什么时候优先想到它
需要取得旧 frm 值时使用 fsrmi rd, imm,并指定非 x0 的 rd。
只写入时使用 fsrmi imm,其展开的 rd 为 x0。
容易混淆 / 常见误区
CSR 立即数字段为零扩展的五位值。
frm 是 fcsr 的位 7 至位 5;动态舍入模式值 101 至 111 为保留值。
两操作数形式也可指定 rd=x0;此时 CSRRWI 不读取 frm,也不产生 CSR 读取副作用。
常见问题
fsrmi 有哪些标准形式?
fsrmi rd, imm 和 fsrmi imm 分别展开为目的寄存器是 rd 与 x0 的 CSRRWI。两操作数形式只有在 rd 不是 x0 时才读取并返回旧 frm 值;rd=x0 时不读取 CSR。