aboutsummaryrefslogtreecommitdiff
path: root/src/memory.tex
diff options
context:
space:
mode:
authorAndrew Waterman <andrew@sifive.com>2018-07-06 11:34:58 -0700
committerAndrew Waterman <andrew@sifive.com>2018-07-06 11:34:58 -0700
commitc1c5eaa1f606d9f41cd7fc6c4fddd0976ac39bda (patch)
tree3e8a89752e0365f3cc6f97e04e1ef46cb950fb53 /src/memory.tex
parent47bc098c27a315820f03cfcc9c8c0bbbb06f36d5 (diff)
parentc11b3909702dd7fea233976c6e2249148b7f177d (diff)
downloadriscv-isa-manual-c1c5eaa1f606d9f41cd7fc6c4fddd0976ac39bda.zip
riscv-isa-manual-c1c5eaa1f606d9f41cd7fc6c4fddd0976ac39bda.tar.gz
riscv-isa-manual-c1c5eaa1f606d9f41cd7fc6c4fddd0976ac39bda.tar.bz2
Merge branch 'misc-fixes' of https://github.com/tymcauley/riscv-isa-manual into tymcauley-misc-fixes
Diffstat (limited to 'src/memory.tex')
-rw-r--r--src/memory.tex2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/memory.tex b/src/memory.tex
index fcaa9c6..619bd38 100644
--- a/src/memory.tex
+++ b/src/memory.tex
@@ -889,7 +889,7 @@ The ordering guarantees in this section may not apply beyond a platform-specific
Table~\ref{tab:tsomappings} provides a mapping from TSO memory operations onto RISC-V memory instructions.
Normal x86 loads and stores are all inherently acquire-RCpc and release-RCpc operations: TSO enforces all load-load, load-store, and store-store ordering by default.
Therefore, under RVWMO, all TSO loads must be mapped onto a load followed by FENCE~R,RW, and all TSO stores must be mapped onto FENCE~RW,W followed by a store.
-TSO atomic read-modify-writes and x86 instructions using the LOCK prefix are fully-ordered and can be implemented either via an AMO with both {\em aq} and {\em rl} set, or via an LR with {\em aq} set, the aritmentic operation in question, an SC with both {\em aq} and {\em rl} set, and a conditional branch checking the success condition.
+TSO atomic read-modify-writes and x86 instructions using the LOCK prefix are fully-ordered and can be implemented either via an AMO with both {\em aq} and {\em rl} set, or via an LR with {\em aq} set, the arithmetic operation in question, an SC with both {\em aq} and {\em rl} set, and a conditional branch checking the success condition.
In the latter case, the {\em rl} annotation on the LR turns out (for non-obvious reasons) to be redundant and can be omitted.
Alternatives to Table~\ref{tab:tsomappings} are also possible.