diff options
author | Jessica Clarke <jrtc27@jrtc27.com> | 2021-03-14 23:51:13 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-14 16:51:13 -0700 |
commit | de5d0a52fd49a0b3feee3b0ff70e55e3a9aa4350 (patch) | |
tree | 4f4f716bfe7e8755b838fef0bbd0a9f9ca5db4e3 | |
parent | 0453d462a180927169656e6e3f7faf3042b23e5b (diff) | |
download | riscv-isa-manual-de5d0a52fd49a0b3feee3b0ff70e55e3a9aa4350.zip riscv-isa-manual-de5d0a52fd49a0b3feee3b0ff70e55e3a9aa4350.tar.gz riscv-isa-manual-de5d0a52fd49a0b3feee3b0ff70e55e3a9aa4350.tar.bz2 |
Clarify that AMOs use the original address when rd == rs1 (#632)
Currently due to the sequential description in use it technically says
that you should use the just-loaded value in that case, when that is of
course not what's intended, nor what implementations do.
-rw-r--r-- | src/a.tex | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -435,7 +435,7 @@ are encoded with an R-type instruction format. These AMO instructions atomically load a data value from the address in {\em rs1}, place the value into register {\em rd}, apply a binary operator to the loaded value and the original value in {\em rs2}, then store the result back -to the address in {\em rs1}. AMOs can either operate on 64-bit (RV64 +to the original address in {\em rs1}. AMOs can either operate on 64-bit (RV64 only) or 32-bit words in memory. For RV64, 32-bit AMOs always sign-extend the value placed in {\em rd}, and ignore the upper 32 bits of the original value of {\em rs2}. |