(no commit message)
authorlkcl <lkcl@web>
Sat, 2 Apr 2022 11:43:13 +0000 (12:43 +0100)
committerIkiWiki <ikiwiki.info>
Sat, 2 Apr 2022 11:43:13 +0000 (12:43 +0100)
openpower/sv/branches.mdwn

index b670c76e94d6565770da32fb9c2d9c2da80b2547..b5411a95b84d64d4149ff2185588453b10ec385d 100644 (file)
@@ -473,7 +473,10 @@ if LK then LR  <-iea  CIA + 4
 
 Simplified pseudocode including LRu and CTR skipping, which illustrates
 clearly that SVP64 Scalar Branches (VL=1) are **not** identical to
-v3.0B Scalar Branches.
+v3.0B Scalar Branches.  The key areas where differences occur are in
+when and why CTR is decremented (CTRtest Mode) and whether LR is
+updated (which is unconditional in v3.0B when LK=1, and conditional
+in SVP64 when LRu=1).
 
 ```
 if (mode_is_64bit) then M <- 0
@@ -492,6 +495,10 @@ if ctr_ok & cond_ok then
 if LK & lr_ok then LR <-iea CIA + 4
 ```
 
+Below is the pseudocode for SVP64 Branches, which is a little less
+obvious but identical to the above. The lack of obviousness is down
+to the early-exit opportunities.
+
 Pseudocode for Horizontal-First Mode:
 
 ```