From 70f0895799289d7b1251015290fc3f6a477f5a5b Mon Sep 17 00:00:00 2001 From: Konstantinos Margaritis Date: Fri, 28 Apr 2023 11:26:11 +0000 Subject: [PATCH] Turns out DCTI-Form is another variant of A-Form --- openpower/isa/butterfly.mdwn | 6 +++--- openpower/isatables/fields.text | 19 ++++++++----------- openpower/isatables/minor_22.csv | 2 +- src/openpower/decoder/power_enums.py | 1 - 4 files changed, 12 insertions(+), 16 deletions(-) diff --git a/openpower/isa/butterfly.mdwn b/openpower/isa/butterfly.mdwn index 821df738..a3c745dc 100644 --- a/openpower/isa/butterfly.mdwn +++ b/openpower/isa/butterfly.mdwn @@ -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 diff --git a/openpower/isatables/fields.text b/openpower/isatables/fields.text index be8e44ac..b97946a4 100644 --- a/openpower/isatables/fields.text +++ b/openpower/isatables/fields.text @@ -143,10 +143,6 @@ |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 | / | @@ -222,6 +218,7 @@ | 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| @@ -768,11 +765,11 @@ 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. @@ -790,7 +787,7 @@ 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]. @@ -819,7 +816,7 @@ 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. @@ -857,9 +854,9 @@ 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. @@ -1088,7 +1085,7 @@ Formats: X, Z23 XO (25:30) Extended opcode field. - Formats: MM, TX, DCTI + Formats: MM, TX XO (26:27) Extended opcode field. Formats: XX4 diff --git a/openpower/isatables/minor_22.csv b/openpower/isatables/minor_22.csv index 5ac2e76f..7f82b29b 100644 --- a/openpower/isatables/minor_22.csv +++ b/openpower/isatables/minor_22.csv @@ -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 diff --git a/src/openpower/decoder/power_enums.py b/src/openpower/decoder/power_enums.py index 5db5e74b..a7b1f5b4 100644 --- a/src/openpower/decoder/power_enums.py +++ b/src/openpower/decoder/power_enums.py @@ -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/ -- 2.30.2