rename SVRM *field* to SVrm to avoid a name-clash with
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sun, 26 Jun 2022 17:23:35 +0000 (18:23 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sun, 26 Jun 2022 17:23:35 +0000 (18:23 +0100)
SVRM-*Form*

openpower/isa/simplev.mdwn
openpower/isatables/fields.text
src/openpower/sv/trans/svp64.py

index 8a21f038075e94668fcb344cff1260db8cc1162b..6752a98a151c8beac5c480e713fec9d8b6c565dd 100644 (file)
@@ -84,7 +84,7 @@ Special Registers Altered:
 
 SVM-Form
 
-* svshape SVxd,SVyd,SVzd,SVRM,vf
+* svshape SVxd,SVyd,SVzd,SVrm,vf
 
 Pseudo-code:
 
@@ -108,7 +108,7 @@ Pseudo-code:
     SVSHAPE2[0:31] <- [0] * 32
     SVSHAPE3[0:31] <- [0] * 32
     # set schedule up for multiply
-    if (SVRM = 0b0000) then
+    if (SVrm = 0b0000) then
         # VL in Matrix Multiply is xd*yd*zd
         n <- (0b00 || SVxd) * (0b00 || SVyd) * (0b00 || SVzd)
         vlen[0:6] <- n[14:20]
@@ -128,7 +128,7 @@ Pseudo-code:
         SVSHAPE2[18:20] <- 0b001          # permute x,z,y
         SVSHAPE2[28:29] <- 0b11           # skip y
     # set schedule up for FFT butterfly
-    if (SVRM = 0b0001) then
+    if (SVrm = 0b0001) then
         # calculate O(N log2 N)
         n <- [0] * 3
         do while n < 5
@@ -149,10 +149,10 @@ Pseudo-code:
         # FRC (coefficients)
         SVSHAPE2[28:29] <- 0b10           # k schedule
     # set schedule up for (i)DCT Inner butterfly
-    # SVRM Mode 2 (Mode 6 for iDCT) is for pre-calculated coefficients,
-    # SVRM Mode 4 (Mode 12 for iDCT) is for on-the-fly (Vertical-First Mode)
-    if ((SVRM = 0b0010) | (SVRM = 0b0100) |
-        (SVRM = 0b1010) | (SVRM = 0b1100)) then
+    # SVrm Mode 2 (Mode 6 for iDCT) is for pre-calculated coefficients,
+    # SVrm Mode 4 (Mode 12 for iDCT) is for on-the-fly (Vertical-First Mode)
+    if ((SVrm = 0b0010) | (SVrm = 0b0100) |
+        (SVrm = 0b1010) | (SVrm = 0b1100)) then
         # calculate O(N log2 N)
         n <- [0] * 3
         do while n < 5
@@ -164,30 +164,30 @@ Pseudo-code:
         # set up template in SVSHAPE0, then copy to 1-3
         # set up FRB and FRS
         SVSHAPE0[0:5] <- (0b0 || SVxd)   # xdim
-        if (SVRM = 0b1010) | (SVRM = 0b1100) then
+        if (SVrm = 0b1010) | (SVrm = 0b1100) then
             SVSHAPE0[30:31] <- 0b11          # iDCT mode
             SVSHAPE0[18:20] <- 0b011         # iDCT Inner Butterfly sub-mode
         else
             SVSHAPE0[30:31] <- 0b01          # DCT mode
             SVSHAPE0[18:20] <- 0b001         # DCT Inner Butterfly sub-mode
             SVSHAPE0[21:23] <- 0b001         # "inverse" on outer loop
-        if (SVRM = 0b1100) | (SVRM = 0b0100) then
+        if (SVrm = 0b1100) | (SVrm = 0b0100) then
             SVSHAPE0[6:11] <- 0b000011       # (i)DCT Inner Butterfly mode 4
         else
             SVSHAPE0[6:11] <- 0b000001       # (i)DCT Inner Butterfly mode 2
         # copy
         SVSHAPE1[0:31] <- SVSHAPE0[0:31]
         SVSHAPE2[0:31] <- SVSHAPE0[0:31]
-        if (SVRM != 0b0100) & (SVRM != 0b1100) then
+        if (SVrm != 0b0100) & (SVrm != 0b1100) then
             SVSHAPE3[0:31] <- SVSHAPE0[0:31]
         # for FRA and FRT
         SVSHAPE0[28:29] <- 0b01           # j+halfstep schedule
         # for cos coefficient
         SVSHAPE2[28:29] <- 0b10           # ci (k for mode 4) schedule
-        if (SVRM != 0b0100) & (SVRM != 0b1100) then
+        if (SVrm != 0b0100) & (SVrm != 0b1100) then
             SVSHAPE3[28:29] <- 0b11           # size schedule
     # set schedule up for (i)DCT Outer butterfly
-    if (SVRM = 0b0011) | (SVRM = 0b1011) then
+    if (SVrm = 0b0011) | (SVrm = 0b1011) then
         # calculate O(N log2 N) number of outer butterfly overlapping adds
         vlen[0:6] <- [0] * 7
         n <- 0b000
@@ -205,7 +205,7 @@ Pseudo-code:
         # set up template in SVSHAPE0, then copy to 1-3
         # set up FRB and FRS
         SVSHAPE0[0:5] <- (0b0 || SVxd)   # xdim
-        if (SVRM = 0b1011) then
+        if (SVrm = 0b1011) then
             SVSHAPE0[30:31] <- 0b11      # iDCT mode
             SVSHAPE0[18:20] <- 0b011     # iDCT Outer Butterfly sub-mode
             SVSHAPE0[21:23] <- 0b101     # "inverse" on outer and inner loop
@@ -219,7 +219,7 @@ Pseudo-code:
         # for FRA and FRT
         SVSHAPE1[28:29] <- 0b01           # j+halfstep schedule
     # set schedule up for DCT COS table generation
-    if (SVRM = 0b0101) | (SVRM = 0b1101) then
+    if (SVrm = 0b0101) | (SVrm = 0b1101) then
         # calculate O(N log2 N)
         vlen[0:6] <- [0] * 7
         itercount[0:6] <- (0b00 || SVxd) + 0b0000001
@@ -236,7 +236,7 @@ Pseudo-code:
         SVSHAPE0[0:5] <- (0b0 || SVxd)   # xdim
         SVSHAPE0[30:31] <- 0b01          # DCT/FFT mode
         SVSHAPE0[6:11] <- 0b000100       # DCT Inner Butterfly COS-gen mode
-        if (SVRM = 0b0101) then
+        if (SVrm = 0b0101) then
             SVSHAPE0[21:23] <- 0b001     # "inverse" on outer loop for DCT
         # copy
         SVSHAPE1[0:31] <- SVSHAPE0[0:31]
@@ -245,13 +245,13 @@ Pseudo-code:
         SVSHAPE1[28:29] <- 0b10           # ci schedule
         SVSHAPE2[28:29] <- 0b11           # size schedule
     # set schedule up for iDCT / DCT inverse of half-swapped ordering
-    if (SVRM = 0b0110) | (SVRM = 0b1110) | (SVRM = 0b1111) then
+    if (SVrm = 0b0110) | (SVrm = 0b1110) | (SVrm = 0b1111) then
         vlen[0:6] <- (0b00 || SVxd) + 0b0000001
         # set up template in SVSHAPE0
         SVSHAPE0[0:5] <- (0b0 || SVxd)   # xdim
-        if (SVRM = 0b1110) then
+        if (SVrm = 0b1110) then
             SVSHAPE0[18:20] <- 0b001     # DCT opposite half-swap
-        if (SVRM = 0b1111) then
+        if (SVrm = 0b1111) then
             SVSHAPE0[30:31] <- 0b01          # FFT mode
         else
             SVSHAPE0[30:31] <- 0b11          # DCT mode
index 493d6c91fb3719ad081e103c514bd27da97e4708..35ccb90b1727bb2354bb0813c287482116771b77 100644 (file)
 
 # 1.6.33 SVM-FORM
    |0     |6        |11      |16    |21    |25 |26    |31  |
-   | PO   |  SVxd   |   SVyd | SVzd | SVRM |vf |   XO      |
+   | PO   |  SVxd   |   SVyd | SVzd | SVrm |vf |   XO      |
 
 # 1.6.34 SVRM-FORM
    |0     |6     |11  |13   |15   |17   |19   |21  |22   |26     |31 |
     SVme (6:10)
          Simple-V "REMAP" map-enable bits (0-4)
          Formats: SVRM
-    SVRM (21:24)
+    SVrm (21:24)
          Simple-V "REMAP" Mode
          Formats: SVM
     SVxd (6:10)
index 70f632d029e89b3705bb99e9a854b4be1563cccb..faedfb31bd2ed8398da838a5b24241823f6bd993 100644 (file)
@@ -123,16 +123,16 @@ def svshape(fields):
     It is *not* a 64-bit-prefixed Vector instruction (no sv.svshape, yet),
     it is a Vector *control* instruction.
 
-    * svshape SVxd,SVyd,SVzd,SVRM,vf
+    * svshape SVxd,SVyd,SVzd,SVrm,vf
 
     # 1.6.33 SVM-FORM from fields.txt
     # |0     |6        |11      |16    |21    |25 |26    |31  |
-    # | PO   |  SVxd   |   SVyd | SVzd | SVRM |vf |   XO      |
+    # | PO   |  SVxd   |   SVyd | SVzd | SVrm |vf |   XO      |
 
     """
     PO = 22
     XO = 0b011001
-    (SVxd, SVyd, SVzd, SVRM, vf) = fields
+    (SVxd, SVyd, SVzd, SVrm, vf) = fields
     SVxd -= 1
     SVyd -= 1
     SVzd -= 1
@@ -141,7 +141,7 @@ def svshape(fields):
         (SVxd, 6 , 10),
         (SVyd, 11, 15),
         (SVzd, 16, 20),
-        (SVRM, 21, 24),
+        (SVrm, 21, 24),
         (vf  , 25, 25),
         (XO  , 26, 31),
     )