Can LD.AQ use offset(rs1)?
No. The syntax is ld.aq rd, (rs1); rs1 supplies the address, with no offset field.
Zalasr atomic load of 8 bytes with acquire-RCsc ordering (RV64-only).
rd: receives all 64 loaded bits, on RV64 only; rd=x0 discards only writeback while retaining load exceptions and side effects.
rs1: supplies the pre-execution address directly, with no offset immediate. rs1=x0 gives address zero; rd=rs1 still uses the address before writeback.
The rs2 field is fixed to 00000 and is not an assembly operand. aq=1, while .aq or .aqrl selects rl; both bits specify ordering annotations only.
LD.AQ is an RV64-only atomic load in Zalasr 1.0. On a successful access, it atomically reads 8 bytes at x[rs1] and writes all 64 bits to x[rd]; the source width equals XLEN, so no widening is needed. There is no offset field. Use 8-byte alignment unless all accessed bytes lie in one misaligned atomicity-granule PMA.
Shows the Zalasr standalone load-acquire AMO encoding, no-offset address syntax, 64-bit data transfer, and aq/rl ordering annotation.
For an address not naturally aligned to 8 bytes, the checkbox only asserts that all accessed bytes lie in one misaligned atomicity-granule PMA. Without that assertion, the model shows the permitted address-misaligned or access-fault branch; it does not determine a platform's PMA.
Assume implemented Zalasr and successful permitted fetch/data access except for the shown alignment exception. Address samples are nonnegative safe integers (at most 2^53−1), also fitting 32 bits on RV32; this is a demo input limit. rd=x0 still performs the load and its side effects, discarding only the result; rd=rs1 uses the address before writeback.
LD.AQ loads all 64 bits into rd; the width equals XLEN, so no additional sign bits are needed.
This animation shows ISA-visible Zalasr atomic load/store behavior and aq/rl ordering annotations; it does not model LR/SC reservations, AMO read-modify-write old-value return, caches, buses, or pipeline timing.
LD.AQ uses x[rs1] as the address, atomically reads 8 bytes, and writes all 64 bits into rd. It is RV64-only; aq/rl specify ordering annotations.
Understand this scenario with real code like «ld.aq x5, (x6)».
Understand this scenario with real code like «ld.aq x5, (x6)».
No. The syntax is ld.aq rd, (rs1); rs1 supplies the address, with no offset field.
No. It is an atomic load, with neither a reservation nor a read-modify-write.
No. aq/rl are ordering annotations; the complete 64-bit LD value is unchanged, with only writeback discarded for rd=x0.