How is the offset written for c.fsd?
Use a byte offset from 0 through 248 in multiples of 8. offset=16 adds 16 bytes without modifying the base.
RV32DC/RV64DC 16-bit CS floating-point store, transferring 64 bits; base=x8–x15, source=f8–f15.
The 3-bit fs2′ field maps to f8–f15; the 3-bit rs1′ field maps to x8–x15 in the separate integer register file.
offset is already an unsigned byte offset: 0–248, in multiples of 8, with 3 implied zero low bits. Do not scale it again.
RV32DC/RV64DC, floating-point state enabled, access permitted; store the low 64 source bits, preserving NaN payloads and leaving source and base unchanged.
Address is base plus offset, wrapping at XLEN. Natural alignment raises no address-misaligned exception; misaligned outcomes are EEI-defined and an exception is not shown as a completed access.
RV32DC/RV64DC: add an unsigned byte offset (0–248, multiples of 8) to x[rs1']. On completion, store the low 64 bits of fs2'; source and base stay unchanged.
Shows only manual-defined 16-bit fields, operands, and ISA-visible results; it does not model a pipeline, cache, timing, or an implementation's memory-fault handling.
RV32DC/RV64DC; floating-point state enabled, ordinary address calculation (no address-transforming extensions), and memory bits already assembled using the environment's byte order.
The store transfers 64 bits; with a wider FLEN, FSW transfers the low 32 bits and ignores upper bits, while FSD transfers the low 64 bits. Transfers do not modify NaN payloads.
Naturally aligned accesses do not raise an address-misaligned exception; whether a misaligned access completes or raises an address-misaligned/access-fault exception is EEI-defined. This control displays only the selected outcome branch.
rs1'=010 -> x10; fs2'=000 -> f8; uimm=2 × 8 = 16 bytes (assembly offset)
RV32DC/RV64DC: add an unsigned byte offset (0–248, multiples of 8) to x[rs1']. On completion, store the low 64 bits of fs2'; source and base stay unchanged.
RV64DC, floating-point state enabled, x10=0x1000, low 64 bits of f8=0x7ff0000000000001, access completes: c.fsd f8, 0(x10) stores these 64 bits unchanged, leaving source and base unchanged.
Use a byte offset from 0 through 248 in multiples of 8. offset=16 adds 16 bytes without modifying the base.
This page uses RV32DC/RV64DC, with floating-point state enabled and memory access permitted. C+D implies Zcd; Zcd depends on Zca and D, and D also depends on F.