(no commit message)
authorlkcl <lkcl@web>
Sat, 25 Mar 2023 20:14:21 +0000 (20:14 +0000)
committerIkiWiki <ikiwiki.info>
Sat, 25 Mar 2023 20:14:21 +0000 (20:14 +0000)
openpower/sv/rfc/ls008.mdwn

index 4085785985b0bed6ace09bc05aeb4519eac2c75a..3fda6ee302cf6133aa9203d6b82bf312f7fa3009 100644 (file)
@@ -237,11 +237,20 @@ SVSTATE contains (and permits setting of):
    REMAPed: RA, RB, RC, RT and EA are the canonical (typical) register names
    associated with each bit, with RA being the LSB and EA being the MSB.
    See table below for ordering. When `SVme` is zero (0b00000) REMAP
-   is **fully disabled and inactive**.
+   is **fully disabled and inactive** regardless of the contents of
+  `SVSTATE`, `mi0-mi2/mo0-mo1`, or the four `SVSHAPEn` SPRs
 * mi0-mi2/mo0-mo1 - when the corresponding SVme bit is enabled, these
   indicate the SVSHAPE (0-3) that the corresponding register (RA etc)
   should use, as long as the register's corresponding SVme bit is set 
 
+Programmer's Note: the fact that REMAP is entirely dormant when `SVme` is zero
+allows establishment of REMAP context well in advance, followed by utilising `svremap`
+at a precise (or the very last) moment.  Some implementations may exploit this
+to cache (or take some time to prepare caches) in the background whilst other
+(unrelated) instructions are being executed. This is particularly important to
+bear in mind when using `svindex` which will require hardware to perform (and
+cache) additional GPR reads.
+
 Programmer's Note: when REMAP is activated it becomes necessary on any
 context-switch (Interrupt or Function call) to detect (or know in advance)
 that REMAP is enabled and to additionally save/restore the four SVSHAPE