Bug 1244: changes to description pospopcount
[libreriscv.git] / openpower / isans_letter.mdwn
index 744d40a742e5793ca1c9ec09e56a1001ca5f3e7b..be1ac31102e1ca1f07bec37d9ed03a21512e5e14 100644 (file)
@@ -1,10 +1,12 @@
 # Letter regarding ISAMUX / NS
 
+* [Full revision history](https://git.libre-soc.org/?p=libreriscv.git;a=history;f=openpower/isans_letter.mdwn)
 * Revision 0.0 draft: 03 Mar 2020
 * Revision 0.1 addw review: 16 Apr 2020
 * Revision 0.9 pre-final: 18 Apr 2020
 * Revision 0.91 mention dual ISA: 22 Apr 2020
 * Revision 0.92 mention countdown idea: 22 Apr 2020
+* Revision 0.93 illegal instruction trap: 27 Apr 2020
 
 ## Why has Libre-SOC chosen PowerPC ?
 
@@ -78,7 +80,9 @@ The available space in a suitably-chosen SPR to be formalised, and
 recommend the OpenPOWER Foundation be given the IANA-like role in
 atomically allocating mode bits.
 
-We also advocate to consider reserving some bits as a "countdown" where the new mode will be enabled only for a certain *number* of instructions. This avoids an explicit need to "flip back", reducing binary code size. Note that it is not a good idea to let the counter cross a branch or other change in PC (illegal instruction trap). However traps and exceptions will need to save (and restore) the counter just as the rest of the PCR and other modeswitching bits need to be saved.
+The IANA-like atomic role ensures that new PCR mode bits are allocated world-wide unique.  In combination with a mandatory illegal instruction exception to be thrown on any system not supporting any given mode, the opportunity exists for all systems to trap and emulate all other systems and thus retain some semblance of interoperability.  (*Contrast this with either allocating the same mode bit(s) to two (or more) designers, or not making illegal exceptions mandatory: binary interoperability becomes unachievable and the result is irrevocable damage to POWER's reputation.*)
+
+We also advocate to consider reserving some bits as a "countdown" where the new mode will be enabled only for a certain *number* of instructions. This avoids an explicit need to "flip back", reducing binary code size. Note that it is not a good idea to let the counter cross a branch or other change in PC (and to throw illegal instruction trap if attempted). However traps and exceptions themselves will need to save (and restore) the countdown, just as the rest of the PCR and other modeswitching bits need to be saved.
 
 Instructions that we need to add, which are a normal part of GPUs,
 include ATAN2, LOG, NORMALISE, YUV2RGB, Khronos Compliance FP mode