bug 1155: add svshape4, SVI2-Form, and fields for SVI2
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sun, 18 Feb 2024 18:57:45 +0000 (18:57 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sun, 18 Feb 2024 18:57:45 +0000 (18:57 +0000)
openpower/isa/simplev.mdwn
openpower/isatables/fields.text
src/openpower/decoder/power_enums.py

index 33a02e6612065f290d840e15a596dfc2177de5e5..14cb10a2093b4c29be9dca170173fd645429402d 100644 (file)
@@ -475,3 +475,33 @@ Special Registers Altered:
 
     None
 
+# svshape4
+
+SVI2-Form
+
+* svshape4 SVxd,SVyd,SVo,SVyx,sk,sm2,sm,si
+
+Pseudo-code:
+
+    # set up template, then copy once location identified
+    shape <- [0]*32
+    shape[30:31] <- 0b11          # triangle/bigmul mode
+    shape[28:29] <- sm            # mode
+    shape[24:27] <- SVo           # offset
+    shape[23]    <- SVyx          # swap x/y priority
+    shape[22]    <- sk            # skipping
+    shape[19:20] <- sm2           # submode2
+    shape[18]    <- 0             # reserved
+    shape[12:17] <- 1             # zdim
+    shape[6:11]  <- (0b0 || SVyd) # xdim
+    shape[0:5]   <- (0b0 || SVxd) # xdim
+    # activate requested shape
+    if si = 0 then SVSHAPE0 <- shape
+    if si = 1 then SVSHAPE1 <- shape
+    if si = 2 then SVSHAPE2 <- shape
+    if si = 3 then SVSHAPE3 <- shape
+
+Special Registers Altered:
+
+    None
+
index 1edbb6a5ea5333e0eae3d1e9d4e0c66132c41e6c..cc9ee0a1bcaaa9cf03df98562c34fbea36fd3d54 100644 (file)
     |0     |6    |11    |16   |21 |23  |24|25|26    31|
     | PO   |  SVG|rmm   | SVd |ew |SVyx|mm|sk|   XO   |
 
+# 1.6.29.1 SVI2-FORM
+
+    |0     |6   |9   |11  |16  |21 |22  |24 |26  |27 31|
+    |PO    |SVo |si  |SVyd|SVxd|sk |sm2 |sm |SVyx|XO   |
+
 # 1.6.30 SVL-FORM
     |0     |6    |11    |16   |23 |24 |25 |26    |31 |
     | PO   |  RT |   RA | SVi |ms |vs |vf |   XO |Rc |
          Immediate field used to specify a 16-bit signed
          integer.
          Formats: D
+    si (9:10)
+        Field used to specify SVSHAPE0-3 to be set
+        Formats: SVI2
     SIM (11:15)
          Immediate field used to specify a 5-bit signed inte-
          ger.
     sk (25)
         Field used to specify dimensional skipping in svindex
         Formats: SVI, SVM2
+    sm (24:25)
+        submode for svindex4
+        Formats: SVI2
+    sm2 (22:23)
+        submode2 for svindex4
+        Formats: SVI2
     SP (11:12)
          Immediate field that specifies signed versus
          unsigned conversion.
          Formats: SVRM
     SVo (6:9)
         Field used by the svshape2 instruction as an offset
-        Formats: SVM2
+        Formats: SVM2, SVI2
     SVrm (21:24)
          Simple-V "REMAP" Mode
          Formats: SVM
     SVxd (6:10)
          Simple-V "REMAP" x-dimension size
-         Formats: SVM
+         Formats: SVM, SVI2
     SVyd (11:15)
          Simple-V "REMAP" y-dimension size
-         Formats: SVM
+         Formats: SVM, SVI2
     SVzd (16:20)
          Simple-V "REMAP" z-dimension size
          Formats: SVM
         Formats: MDS
     XO (27:31)
         Extended opcode field.
-        Formats: BM2
+        Formats: BM2, SVI2
     XO (29:31)
         Extended opcode field.
         Formats: DQ
index 2d1441766e396f0c45b099346d777d90e5cd88e7..56272546be387caa888ce2cac08c4bbe3bb5dd61 100644 (file)
@@ -178,6 +178,7 @@ class Form(Enum):
     CW = 44
     CW2 = 45
     DCT = 46 # fdmadds
+    SVI2 = 47 # bigmul REMAP
 
 # Simple-V svp64 fields https://libre-soc.org/openpower/sv/svp64/