diff options
author | Andrew Waterman <andrew@sifive.com> | 2021-09-30 01:10:13 -0700 |
---|---|---|
committer | Andrew Waterman <andrew@sifive.com> | 2021-09-30 01:12:42 -0700 |
commit | e511c4664368355e6d85b8e487fdfdc5d7de44e4 (patch) | |
tree | cc9121047bc732c5d89bb5e46ebc8bfb0b3c8def /src/rv32.tex | |
parent | d29cb13885d7dfaae9aaa27b45e44733254ead37 (diff) | |
download | riscv-isa-manual-e511c4664368355e6d85b8e487fdfdc5d7de44e4.zip riscv-isa-manual-e511c4664368355e6d85b8e487fdfdc5d7de44e4.tar.gz riscv-isa-manual-e511c4664368355e6d85b8e487fdfdc5d7de44e4.tar.bz2 |
Improve description of FENCE.TSO
The description of FENCE.TSO as "optional" was incorrect. It has always
been a mandatory instruction (because of the requirement that unused
patterns in the fm field be treated as though fm=0).
Diffstat (limited to 'src/rv32.tex')
-rw-r--r-- | src/rv32.tex | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/rv32.tex b/src/rv32.tex index 99d58f7..70e27d6 100644 --- a/src/rv32.tex +++ b/src/rv32.tex @@ -1266,7 +1266,7 @@ The fence mode field {\em fm} defines the semantics of the FENCE. A FENCE with {\em fm}=0000 orders all memory operations in its predecessor set before all memory operations in its successor set. -The optional FENCE.TSO instruction is encoded as a FENCE instruction +The FENCE.TSO instruction is encoded as a FENCE instruction with {\em fm}=1000, {\em predecessor}=RW, and {\em successor}=RW. FENCE.TSO orders all load operations in its predecessor set before all memory operations in its @@ -1276,10 +1276,9 @@ operations in the FENCE.TSO's predecessor set unordered with non-AMO loads in its successor set. \begin{commentary} - The FENCE.TSO encoding was added as an optional extension to the - original base FENCE instruction encoding. The base definition - requires that implementations ignore any set bits and treat the - FENCE as global, and so this is a backwards-compatible extension. + Because \mbox{FENCE RW,RW} imposes a superset of the orderings that + FENCE.TSO imposes, it is correct to ignore the {\em fm} field and + implement FENCE.TSO as \mbox{FENCE RW,RW}. \end{commentary} The unused fields in the FENCE instructions---{\em rs1} and {\em rd}---are |