replace "Defined word" with "Defined Word-instruction"
[libreriscv.git] / openpower / sv / rfc / ls001.mdwn
index ea0942180f39bd8eecaa9d21a07d989fe2a67184..b3c6ebb3131eba6376bd09aceb4b9f4607bffc99 100644 (file)
@@ -649,7 +649,7 @@ With Simple-V being a type of
 [Zero-Overhead Loop](https://en.m.wikipedia.org/wiki/Zero-overhead_looping)
 Engine on top of
 Scalar operations some clear guidelines are needed on how both
-existing "Defined Words" (Public v3.1 Section 1.6.3 term) and future
+existing "Defined Word-instructions" (Public v3.1 Section 1.6.3 term) and future
 Scalar operations are added within the 64-bit space.  Examples of
 legal and illegal allocations are given later.
 
@@ -663,7 +663,7 @@ being added in the Scalar space, and vice-versa, *even if Unvectorizeable*.
 This is extremely important because the worst possible situation
 is if a conflicting Scalar instruction is added by another Stakeholder,
 which then turns out to be Vectorizeable: it would then have to be
-added to the Vector Space with a *completely different Defined Word*
+added to the Vector Space with a *completely different Defined Word-instruction*
 and things go rapidly downhill in the Decode Phase from there.
 Setting a simple inviolate rule helps avoid this scenario but does
 need to be borne in mind when discussing potential allocation
@@ -784,7 +784,7 @@ that is as follows:
 * EXT009, like EXT001 of Public v3.1, is **defined** as a 64-bit
   encoding. This makes Multi-Issue Length-identification trivial.
 * bit 6 if 0b1 is 100% for Simple-V augmentation of (Public v3.1 1.6.3)
-  "Defined Words" (aka EXT000-063), with the exception of 0x26000000
+  "Defined Word-instructions" (aka EXT000-063), with the exception of 0x26000000
   as a Prefix, which is a new RESERVED encoding.
 * when bit 6 is 0b0 and bits 32-33 are 0b11 are **defined** as also
   allocated to Simple-V
@@ -833,7 +833,7 @@ and reserved areas, QTY 1of 32-bit, and QTY 3of 55-bit, are:
   which **must** be granted corresponding space
   in SVP64.
 * Anything Vectorized-EXT000-063 is **automatically** being
-  requested as 100% Reserved for every single "Defined Word"
+  requested as 100% Reserved for every single "Defined Word-instruction"
   (Public v3.1 1.6.3 definition). Vectorized-EXT001 or EXT009
   is defined as illegal.
 * Any **future** instruction
@@ -877,16 +877,16 @@ on their merits.
 **EXT000-EXT063**
 
 These are Scalar word-encodings. Often termed "v3.0 Scalar" in this document
-Power ISA v3.1 Section 1.6.3 Book I calls it a "defined word".
+Power ISA v3.1 Section 1.6.3 Book I calls it a "Defined Word-instruction".
 
 | 0-5    | 6-31   |
 |--------|--------|
-| PO     | EXT000-063 "Defined word" |
+| PO     | EXT000-063 "Defined Word-instruction" |
 
 **SVP64Single:{EXT000-063}** bit6=old  bit7=scalar
 
 This encoding, identical to SVP64Single:{EXT248-263},
-introduces SVP64Single Augmentation of Scalar "defined words".
+introduces SVP64Single Augmentation of Scalar "Defined Word-instructions".
 All meanings must be identical to EXT000-063, and is is likewise
 prohibited to add an instruction in this area without also adding
 the exact same (non-Augmented) instruction in EXT000-063 with the
@@ -1048,7 +1048,7 @@ EXT300-363.
 the use of 0x12345678 for fredmv in scalar but fishmv in Vector is
 illegal.  the suffix in both 64-bit locations
 must be allocated to a Vectorizeable EXT000-063
-"Defined Word" (Public v3.1 Section 1.6.3 definition)
+"Defined Word-instruction" (Public v3.1 Section 1.6.3 definition)
 or not at all.
 
 \newpage{}
@@ -1070,7 +1070,7 @@ and:
 | 64bit | sv.fishmv | 0x25nnnnnn   | 0x12345678| vector SVP64:EXT2nn |
 
 Both of these Simple-V operations are illegally-allocated. The fact that
-there does not exist a scalar "Defined Word" (even for EXT200-263) - the
+there does not exist a scalar "Defined Word-instruction" (even for EXT200-263) - the
 unallocated block - means that the instruction may **not** be allocated in
 the Simple-V space.
 
@@ -1082,7 +1082,7 @@ the Simple-V space.
 | 64bit | ss.fishmv | 0x24!zero    | 0x10345678| scalar SVP64Single:EXT2nn |
 | 64bit | sv.fishmv | 0x25nnnnnn   | 0x10345678| vector SVP64:EXT2nn |
 
-This is an illegal attempt to place an EXT004 "Defined Word"
+This is an illegal attempt to place an EXT004 "Defined Word-instruction"
 (Public v3.1 Section 1.6.3) into the EXT2nn Vector space.
 This is not just illegal it is not even possible to achieve.
 If attempted, by dropping EXT004 into bits 32-37, the top two
@@ -1341,7 +1341,7 @@ of elements copied (VL), rather than decrementing simply by one.
 [^likeext001]: SVP64-Single is remarkably similar to the "bit 1" of EXT001 being set to indicate that the 64-bits is to be allocated in full to a new encoding, but in fact SVP64-single still embeds v3.0 Scalar operations.
 [^pseudorewrite]: elwidth overrides does however mean that all SFS / SFFS pseudocode will need rewriting to be in terms of XLEN. This has the indirect side-effect of automatically making a 32-bit Scalar Power ISA Specification possible, as well as a future 128-bit one (Cross-reference: RISC-V RV32 and RV128
 [^only2]: reminder that this proposal only needs 75% of two POs for Scalar instructions. The rest of EXT200-263 is for general use.
-[^ext001]: Recall that EXT100 to EXT163 is for Public v3.1 64-bit-augmented Operations prefixed by EXT001, for which, from Section 1.6.3, bit 6 is set to 1.  This concept is where the above scheme originated. Section 1.6.3 uses the term "defined word" to refer to pre-existing EXT000-EXT063 32-bit instructions so prefixed to create the new numbering EXT100-EXT163, respectively
+[^ext001]: Recall that EXT100 to EXT163 is for Public v3.1 64-bit-augmented Operations prefixed by EXT001, for which, from Section 1.6.3, bit 6 is set to 1.  This concept is where the above scheme originated. Section 1.6.3 uses the term "Defined Word-instruction" to refer to pre-existing EXT000-EXT063 32-bit instructions so prefixed to create the new numbering EXT100-EXT163, respectively
 [^futurevsx]: A future version or other Stakeholder *may* wish to drop Simple-V onto VSX: this would be a separate RFC
 [^vsx256]: imagine a hypothetical future VSX-256 using the exact same instructions as VSX. the binary incompatibility introducrd would catastrophically **and retroactively** damage existing IBM POWER8,9,10 hardware's reputation and that of Power ISA overall.
 [^autovec]: Compiler auto-vectorization for best exploitation of SIMD and Vector ISAs on Scalar programming languages (c, c++) is an Indusstry-wide known-hard decades-long problem. Cross-reference the number of hand-optimised assembler algorithms.