Is the address register an FP register?
No. The base rs1 is an integer register; only the data source/destination is an FP register.
Store 64-bit double-precision FP from f register to memory.
FSD uses opcode 0100111 (0x27), funct3 011. The rs1 field holds the base address, rs2 holds the store data, and the 12-bit immediate split across imm[11:5] and imm[4:0] provides the offset.
FSD stores a 64-bit double-precision FP value from f[rs2] to memory using base+offset addressing (S-type format). May be a NaN-boxed value. Only guaranteed atomic when naturally aligned and XLEN≥64. Bits transferred unmodified.
FSD is a floating-point load/store instruction. It forms the effective address from integer register rs1 plus a signed 12-bit offset and transfers the bit pattern between memory and an FP register.
Understand this scenario with real code like «fsd f0, 0(x10)».
No. The base rs1 is an integer register; only the data source/destination is an FP register.
The offset is a signed 12-bit immediate, encoding -2048 to 2047 bytes.