FCLASS.D 会设置 NV 吗?
不会。官方 FCLASS 语义说明该指令不设置浮点异常标志。
检查双精度浮点值,把官方 10 类 one-hot 掩码写入整数寄存器 rd。
语法 fclass.d rd, rs1;rd 为整数 x0–x31,rs1 为浮点 f0–f31;没有 rs2 或舍入操作数。D 2.2 依赖 F,适用 RV32/RV64。
32 位 OP-FP:funct7=1110001(funct5=11100、fmt=01),rs2=00000、funct3=001、opcode=1010011。
双精度分类结果为10位 one-hot 掩码,其他位清零;rd=x0 丢弃结果。包括 sNaN 在内均不设置 fflags,不舍入。
FLEN>64 时要求正确 NaN-boxing,否则按双精度 canonical NaN 分类为 bit9。动画固定 FLEN=64、初始 fflags=0;文本转 binary64 不是指令的舍入操作。
FCLASS.D 检查 f[rs1] 中的双精度浮点编码,并把 10 位 one-hot 分类掩码写入 x[rd]。位 0..9 依次表示负无穷、负正规、负非正规、负零、正零、正非正规、正正规、正无穷、signaling NaN、quiet NaN;其它 rd 位清零,且不设置浮点异常标志。
展示 D 扩展双精度 OP-FP 指令的 ISA 可见流程:解析编码字段,读取浮点寄存器,执行 FCLASS 语义并写回 rd。
机器码按 R-type OP-FP 字段切分;双精度浮点 OP-FP 指令使用 opcode 1010011。
FCLASS 写入 10 位 one-hot 分类掩码,除位 0..9 外其它 rd 位清零;分类 NaN 也不设置浮点异常标志。文本 NaN 示例按 quiet NaN 显示,signaling NaN 的官方位为 bit 8。
FCLASS 写入 10 位 one-hot 分类掩码,除位 0..9 外其它 rd 位清零;分类 NaN 也不设置浮点异常标志。文本 NaN 示例按 quiet NaN 显示,signaling NaN 的官方位为 bit 8。
假定 D 与 FS 已启用,固定 FLEN=64、初始 fflags=0。十进制文本先表示为 binary64 源值;支持有限值、正负零、无穷、qNaN 和 sNaN。FCLASS.D 不舍入、不改变 fflags;结果写入整数 rd,rd=x0 时丢弃掩码且 x0 保持为零。步骤是教学视图。
该动画只展示 RISC-V D 扩展的 ISA 可见 OP-FP 编码、示例数值结果和 fflags 关系;不模拟具体 FPU 流水线、延迟、完整 IEEE 754 边界组合或微架构实现。
FCLASS.D 用一个整数掩码描述浮点值类别,适合在软件中区分零、非正规数、无穷和 NaN。
fclass.d x10, f0 # f0 = -0.0 => x10 = 0x008; fflags unchanged。预置示例所述源值,并启用本页扩展与相关状态;示例注释给出按本页规则推导的结果。
fclass.d x10, f0 # f0 = -0.0 => x10 = 0x008; fflags unchanged。预置示例所述源值,并启用本页扩展与相关状态;示例注释给出按本页规则推导的结果。
不会。官方 FCLASS 语义说明该指令不设置浮点异常标志。
不是。结果是 10 位 one-hot 分类掩码,用于表示具体浮点类别。
不是。rd 是整数寄存器,保存分类掩码。