How is the offset written for c.flwsp?
Use a byte offset from 0 through 252 in multiples of 4. offset=16 adds 16 bytes without modifying the base.
RV32FC 16-bit CI floating-point load, transferring 32 bits; base is x2/sp.
The 5-bit fd field selects f0–f31; the base is fixed x2/sp. f0 is not integer zero.
offset is already an unsigned byte offset: 0–252, in multiples of 4, with 2 implied zero low bits. Do not scale it again.
RV32FC, floating-point state enabled, access permitted; load 32 raw bits, with upper bits set to ones when FLEN is wider.
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.
RV32FC: add an unsigned byte offset (0–252, multiples of 4) to x2/sp. On completion, load 32 memory bits 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.
RV32FC; 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=32. With a wider FLEN, the 32-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=4 × 4 = 16 bytes (assembly offset)
RV32FC: add an unsigned byte offset (0–252, multiples of 4) to x2/sp. On completion, load 32 memory bits into fd.
RV32FC, FLEN=32, floating-point state enabled, sp=0x1000, mem32[0x1010]=0x7f800001, access completes: c.flwsp f0, 16(sp) writes the raw pattern into f0 and leaves sp unchanged. With FLEN=64, upper 32 bits are ones.
Use a byte offset from 0 through 252 in multiples of 4. offset=16 adds 16 bytes without modifying the base.
This page uses RV32FC, with floating-point state enabled and memory access permitted. C+F implies Zcf on RV32; Zcf depends on Zca and F.