aboutsummaryrefslogtreecommitdiff
path: root/src/a.tex
diff options
context:
space:
mode:
authorAndrew Waterman <andrew@sifive.com>2018-02-07 20:12:45 -0800
committerAndrew Waterman <andrew@sifive.com>2018-02-07 20:13:07 -0800
commit936150c05957ff6ab99047f70695417aff1cfb29 (patch)
treec4e96fd673ece9c9e287c97b82bc13e5e59608a6 /src/a.tex
parentac2fe91755833a226cd11fef0e32e391bb5fecd1 (diff)
downloadriscv-isa-manual-936150c05957ff6ab99047f70695417aff1cfb29.zip
riscv-isa-manual-936150c05957ff6ab99047f70695417aff1cfb29.tar.gz
riscv-isa-manual-936150c05957ff6ab99047f70695417aff1cfb29.tar.bz2
Add commentary about LR/SC forward-progress guarantee
Diffstat (limited to 'src/a.tex')
-rw-r--r--src/a.tex5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/a.tex b/src/a.tex
index c0e466b..e4eb185 100644
--- a/src/a.tex
+++ b/src/a.tex
@@ -202,6 +202,11 @@ that can be spent in the sequence. Floating-point operations and
integer multiply/divide were disallowed to simplify the operating
system's emulation of these instructions on implementations lacking
appropriate hardware support.
+
+Although software is not forbidden from using LR/SC sequences that do not meet
+the forward-progress constraints, portable software must detect the case that
+the sequence repeatedly fails, then fall back to an alternate code sequence
+that does not run afoul of the forward-progress constraints.
\end{commentary}
An implementation can reserve an arbitrary subset of the memory space