How is the offset written for c.flw?
Use a byte offset from 0 through 124, in multiples of 4. For example, offset=16 adds 16 bytes to the address.
RV32FC compressed 32-bit floating-point load; base=x8–x15, destination=f8–f15.
The 3-bit fd′ field selects f8–f15; the 3-bit rs1′ field selects x8–x15 in a separate register file.
offset is already an unsigned byte offset: 0–124, in multiples of 4; the encoding implies 2 zero low bits.
RV32FC, with floating-point state enabled; a completed access loads 32 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 RV32FC CL load: add an unsigned byte offset (0–124, multiples of 4) to x[rs1']; on completion, load the 32-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.
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.
rs1'=010 -> x10; fd'=000 -> f8; uimm=4 × 4 = 16 bytes (assembly offset)
A 16-bit RV32FC CL load: add an unsigned byte offset (0–124, multiples of 4) to x[rs1']; on completion, load the 32-bit memory pattern into fd'.
RV32FC, FLEN=32, floating-point state enabled, x10=0x1000, assembled memory bits=0x7f800001, access completes: c.flw f8, 0(x10) writes those bits unchanged to f8; with FLEN=64, upper 32 bits are also set to ones.
Use a byte offset from 0 through 124, in multiples of 4. For example, offset=16 adds 16 bytes to the address.
This page uses RV32FC. Floating-point state must also be enabled and memory access permitted; an access exception does not commit an ordinary floating-point destination writeback.