Turns out DCTI-Form is another variant of A-Form
authorKonstantinos Margaritis <konstantinos.margaritis@vectorcamp.gr>
Fri, 28 Apr 2023 11:26:11 +0000 (11:26 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Fri, 2 Jun 2023 18:51:17 +0000 (19:51 +0100)
openpower/isa/butterfly.mdwn
openpower/isatables/fields.text
openpower/isatables/minor_22.csv
src/openpower/decoder/power_enums.py

index 821df73844fc2fe2bc4652431869c4e3df30d07c..a3c745dc16d21af259a457b3cd4701500984eb47 100644 (file)
@@ -4,7 +4,7 @@
 
 # [DRAFT] Integer Butterfly Multiply Add/Sub FFT/DCT
 
-DCTI-Form
+A-Form
 
 * maddsubrs  RT,RA,RB,SH
 
@@ -15,8 +15,8 @@ Pseudo-code:
     diff <- (RT) - (RA)
     prod1 <- MUL(RB, sum)
     prod2 <- MUL(RB, diff)
-    res1 <- ROTL64(prod1, n)
-    res2 <- ROTL64(prod2, n)
+    res1 <- prod1[XLEN/2-SH:XLEN-1-SH]
+    res2 <- prod2[XLEN/2-SH:XLEN-1-SH]
     RT <- (RT) + res1
     RS <- (RS) + res2
 
index be8e44ac7330dfae1a22c9c4edced7f6810cc0e8..b97946a4c40f1c3bad83862fa175b09c82fa18f1 100644 (file)
     |0     |6     |11      |16     |21      |26    |31 |
     | PO   |  FRT |   FRA  |   FRB |   //   |   XO | Rc |
 
-# 1.6.7.2 DCTI-FORM
-    |0     | 6    |11      |16     |21    |25      |31  |
-    | PO   |  RT  |   RA   |   RB  |   SH |   XO   | Rc |
-
 # 1.6.8 XL-FORM
     |0     |6    |9  |11  |14   |16    |19|20|21    |31 |
     | PO   |   BT    |     BA   |    BB      |   XO | / |
     | PO   |  FRT |   FRA  |   /// |   FRC  |   XO |Rc |
     | PO   |  FRT |    /// | FRB   |    /// |   XO |Rc |
     | PO   |   RT |   RA   |   RB  |    BC  |   XO |  /|
+    | PO   |  RT  |   RA   |   RB  |   SH   |   XO |Rc |
 
 # 1.6.18 M-FORM
     |0     |6    |11    |16    |21    |26    |31|
     RA (11:15)
         Field used to specify a GPR to be used as a
         source or as a target.
-        Formats: A, BM2, D, DQ, DQE, DS, M, MD, MDS, MM, TX, VA, VA2, VX, X, XO, XS, SVL, XB, TLI, Z23, DCTI
+        Formats: A, BM2, D, DQ, DQE, DS, M, MD, MDS, MM, TX, VA, VA2, VX, X, XO, XS, SVL, XB, TLI, Z23
     RB (16:20)
         Field used to specify a GPR to be used as a
         source.
-        Formats: A, BM2, M, MDS, MM, VA, VA2, X, XO, TLI, Z23, DCTI
+        Formats: A, BM2, M, MDS, MM, VA, VA2, X, XO, TLI, Z23
     Rc (21)
         RECORD bit.
         0    Do not alter the Condition Register.
         1    Set Condition Register Field 0 or Field 1 as
              described in Section 2.3.1, 'Condition Regis-
              ter' on page 30.
-        Formats: A, M, MD, MDS, MM, VA2, X, XFL, XO, XS, Z22, Z23, SVL, XB, TLI, DCT, DCTI 
+        Formats: A, M, MD, MDS, MM, VA2, X, XFL, XO, XS, Z22, Z23, SVL, XB, TLI, DCT
     RIC (12:13)
         Field used to specify what types of entries to inval-
         idate for tlbie[l].
         Formats: DS, X
     RT (6:10)
         Field used to specify a GPR to be used as a target.
-        Formats: A, BM2, D, DQE, DS, DX, MM, VA, VA2, VX, X, XFX, XO, XX2, SVL, XB, TLI, Z23, DCTI
+        Formats: A, BM2, D, DQE, DS, DX, MM, VA, VA2, VX, X, XFX, XO, XX2, SVL, XB, TLI, Z23
     RTp (6:10)
         Field used to specify an even/odd pair of GPRs to
         be concatenated and used as a target.
     SH (16:21)
         Field used to specify a shift amount.
         Formats: Z22
-    SH (21:24)
+    SH (21:25)
         Field used to specify a shift amount.
-        Formats: DCTI
+        Formats: A
     sh (30,16:20)
         Fields that are concatenated to specify a shift
         amount.
         Formats: X, Z23
     XO (25:30)
         Extended opcode field.
-        Formats: MM, TX, DCTI 
+        Formats: MM, TX
     XO (26:27)
         Extended opcode field.
         Formats: XX4
index 5ac2e76f40deefabc6ab5db1585bb1d2434730c6..7f82b29bad6985c9bc6a5232bb690f397bce5f7d 100644 (file)
@@ -40,4 +40,4 @@ opcode,unit,internal op,in1,in2,in3,out,CR in,CR out,inv A,inv out,cry in,cry ou
 ------10001,ALU,OP_BMASK,RA,RB,NONE,RT,NONE,NONE,0,0,ZERO,0,NONE,0,0,0,0,0,0,NONE,0,0,bmask,BM2,,1,unofficial until submitted and approved/renumbered by the opf isa wg
 -----00011-,ALU,OP_FMVIS,NONE,CONST_UI,NONE,FRS,NONE,NONE,0,0,ZERO,0,NONE,0,0,0,0,0,0,NONE,0,0,fmvis,DX,,1,unofficial until submitted and approved/renumbered by the opf isa wg
 -----01011-,ALU,OP_FISHMV,FRS,CONST_UI,NONE,FRS,NONE,NONE,0,0,ZERO,0,NONE,0,0,0,0,0,0,NONE,0,0,fishmv,DX,,1,unofficial until submitted and approved/renumbered by the opf isa wg
-------01000,ALU,OP_MADDSUBRS,RT,CONST_SH,RB,RT,NONE,CR0,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC_ONLY,0,0,maddsubrs,DCTI,,1,unofficial until submitted and approved/renumbered by the opf isa wg
+------01000,ALU,OP_MADDSUBRS,RT,CONST_SH,RB,RT,NONE,CR0,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC_ONLY,0,0,maddsubrs,A,,1,unofficial until submitted and approved/renumbered by the opf isa wg
index 5db5e74b8f8dd730f57eaa3c65a274ce82775a0c..a7b1f5b4d3a195f8dded2f82b14c950df55e8cb3 100644 (file)
@@ -172,7 +172,6 @@ class Form(Enum):
     CW = 44
     CW2 = 45
     DCT = 46 # fdmadds
-    DCTI = 47 # maddsubrs
 
 # Simple-V svp64 fields https://libre-soc.org/openpower/sv/svp64/