How is the offset written for c.fldsp?
Use a byte offset from 0 through 504, in multiples of 8. For example, offset=16 adds 16 bytes to the address.
RV32DC/RV64DC compressed 64-bit floating-point load; fixed x2/sp base, fd=f0–f31.
fd selects any f0–f31; f0 is not integer zero register x0. The base is fixed x2/sp.
offset is already an unsigned byte offset: 0–504, in multiples of 8; the encoding implies 3 zero low bits.
RV32DC/RV64DC, with floating-point state enabled; a completed access loads 64 raw bits and sets upper bits to ones when FLEN is wider.
The effective address is base plus offset. Natural alignment raises no address-misaligned exception; misaligned outcomes are EEI-defined, and faults do not commit ordinary floating-point destination writeback.
A 16-bit RV32DC/RV64DC CI load: add an unsigned byte offset (0–504, multiples of 8) to x2/sp; on completion, load the 64-bit memory pattern into fd.
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.
This load teaching environment fixes FLEN=64. With a wider FLEN, the 64-bit transfer writes ones to the upper f-register bits, creating a valid NaN-boxed value.
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.
base = x2/sp; fd=00000 -> f0; uimm=2 × 8 = 16 bytes (assembly offset)
A 16-bit RV32DC/RV64DC CI load: add an unsigned byte offset (0–504, multiples of 8) to x2/sp; on completion, load the 64-bit memory pattern into fd.
RV64DC, FLEN=64, floating-point state enabled, sp=0x1000, assembled memory bits at 0x1010=0x3ff0000000000000, access completes: c.fldsp f0, 16(sp) writes those bits to f0 and leaves sp unchanged.
Use a byte offset from 0 through 504, in multiples of 8. For example, offset=16 adds 16 bytes to the address.
This page uses RV32DC/RV64DC. Floating-point state must also be enabled and memory access permitted; an access exception does not commit an ordinary floating-point destination writeback.