whitespace
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 5 Apr 2023 09:57:22 +0000 (10:57 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 5 Apr 2023 09:57:22 +0000 (10:57 +0100)
openpower/sv/ldst.mdwn

index 62b7d347015ea41b1d86d724fc089482048370fe..1623f513fd16cfc4c9f05df97ec0767f1a43b450 100644 (file)
@@ -447,34 +447,33 @@ FFirst where Vertical-First Mode is fully deterministic, not speculative.
 ## Data-Dependent Fail-First (not Fail/Fault-First)
 
 Not to be confused with Fail/Fault First, Data-Fail-First performs an
-additional check on the data into a Condition Register Field and if a test on
-the CR Field fails then VL is truncated and further looping terminates.
-This is precisely the same as Arithmetic Data-Dependent Fail-First, the
-only difference being that the result comes from the LD/ST.
+additional check on the data into a Condition Register Field and if a test
+on the CR Field fails then VL is truncated and further looping terminates.
+This is precisely the same as Arithmetic Data-Dependent Fail-First,
+the only difference being that the result comes from the LD/ST.
 
 In the case of Store operations there is a quirk when VLi (VL inclusive
 is "Valid") is clear. Bear in mind the criteria is that the truncated
-Vector of results,
-when VLi is clear, must all pass the "test", but when VLi is set the
-*current failed test* is permitted to be included.  Thus, the actual
-update (store) to Memory is **not permitted to take place** should the
-test fail. Therefore, on testing the value to be stored, and after updating
-the corresponding CR Field Element, when VLi=0 and finding that the
-test fails the Memory store must **not** occur.
+Vector of results, when VLi is clear, must all pass the "test", but when
+VLi is set the *current failed test* is permitted to be included.  Thus,
+the actual update (store) to Memory is **not permitted to take place**
+should the test fail. Therefore, on testing the value to be stored,
+and after updating the corresponding CR Field Element, when VLi=0 and
+finding that the test fails the Memory store must **not** occur.
 
 Additionally, when VLi=0 and a test fails then RA does **not** receive a
 copy of the Effective Address.  Hardware implementations with Out-of-Order
 Micro-Architectures should use speculative Shadow-Hold and Cancellation
 when the test fails.
 
-By contrast if VLi=1
-and the test fails, Store may proceed *and then* looping terminates.
-In this way, when non-Inclusive, the Vector of Truncated results contains
-only Stores that passed the test (and RA=EA updates if any), and when Inclusive the Vector of
-Truncated results contains the first-failed data.
+By contrast if VLi=1 and the test fails, Store may proceed *and then*
+looping terminates.  In this way, when non-Inclusive, the Vector of
+Truncated results contains only Stores that passed the test (and RA=EA
+updates if any), and when Inclusive the Vector of Truncated results
+contains the first-failed data.
 
-Below is an example of loading the starting addresses of Linked-List nodes.
-If VLi=1 it will load the NULL pointer into the Vector of results.
+Below is an example of loading the starting addresses of Linked-List
+nodes.  If VLi=1 it will load the NULL pointer into the Vector of results.
 If however VLi=0 it will *exclude* the NULL pointer by truncating VL to
 one Element earlier.