start filling in svp64 insns
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 23 Dec 2020 15:54:22 +0000 (15:54 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 23 Dec 2020 15:54:22 +0000 (15:54 +0000)
openpower/opcode_regs_deduped.mdwn
openpower/sv_analysis.py

index 97d1698a767792b7ffcf2e865d4c8c46effeb4d0..953a0f539fee73bec2f2f04aa8ad95d7cd4d5945 100644 (file)
@@ -988,38 +988,38 @@ rldimi | 1P | EXTRA3 | TODO |  |  |  | RA |  | RS | RA | NONE | CR0 |
 
 [[!table  data="""
 insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
-isel | 1P | EXTRA2 |  |  |  |  | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
+isel | 1P | EXTRA2 | d:RT | s:RA | s:RB | s:BC | RA_OR_ZERO | RB | NONE | RT | BC | NONE |
 """]]
 
 ## 2R-1W-CRio (RM-1P-2S1D)
@@ -1043,14 +1043,14 @@ fmul | 1P | EXTRA3 | TODO |  |  |  | FRA | NONE | FRC | FRT | 0 | 0 |
 
 [[!table  data="""
 insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-fmsubs | 1P | EXTRA2 |  |  |  |  | FRA | FRB | FRC | FRT | 0 | 0 |
-fmadds | 1P | EXTRA2 |  |  |  |  | FRA | FRB | FRC | FRT | 0 | 0 |
-fnmsubs | 1P | EXTRA2 |  |  |  |  | FRA | FRB | FRC | FRT | 0 | 0 |
-fnmadds | 1P | EXTRA2 |  |  |  |  | FRA | FRB | FRC | FRT | 0 | 0 |
-fsel | 1P | EXTRA2 |  |  |  |  | FRA | FRB | FRC | FRT | 0 | 0 |
-fmsub | 1P | EXTRA2 |  |  |  |  | FRA | FRB | FRC | FRT | 0 | 0 |
-fmadd | 1P | EXTRA2 |  |  |  |  | FRA | FRB | FRC | FRT | 0 | 0 |
-fnmsub | 1P | EXTRA2 |  |  |  |  | FRA | FRB | FRC | FRT | 0 | 0 |
-fnmadd | 1P | EXTRA2 |  |  |  |  | FRA | FRB | FRC | FRT | 0 | 0 |
+fmsubs | 1P | EXTRA2 | d:FRT,d:CR1 | s:FRA | s:FRB | s:FRC | FRA | FRB | FRC | FRT | 0 | 0 |
+fmadds | 1P | EXTRA2 | d:FRT,d:CR1 | s:FRA | s:FRB | s:FRC | FRA | FRB | FRC | FRT | 0 | 0 |
+fnmsubs | 1P | EXTRA2 | d:FRT,d:CR1 | s:FRA | s:FRB | s:FRC | FRA | FRB | FRC | FRT | 0 | 0 |
+fnmadds | 1P | EXTRA2 | d:FRT,d:CR1 | s:FRA | s:FRB | s:FRC | FRA | FRB | FRC | FRT | 0 | 0 |
+fsel | 1P | EXTRA2 | d:FRT,d:CR1 | s:FRA | s:FRB | s:FRC | FRA | FRB | FRC | FRT | 0 | 0 |
+fmsub | 1P | EXTRA2 | d:FRT,d:CR1 | s:FRA | s:FRB | s:FRC | FRA | FRB | FRC | FRT | 0 | 0 |
+fmadd | 1P | EXTRA2 | d:FRT,d:CR1 | s:FRA | s:FRB | s:FRC | FRA | FRB | FRC | FRT | 0 | 0 |
+fnmsub | 1P | EXTRA2 | d:FRT,d:CR1 | s:FRA | s:FRB | s:FRC | FRA | FRB | FRC | FRT | 0 | 0 |
+fnmadd | 1P | EXTRA2 | d:FRT,d:CR1 | s:FRA | s:FRB | s:FRC | FRA | FRB | FRC | FRT | 0 | 0 |
 """]]
 
index 7e52f22734729237305b75c524a135b4529ae0e5..63a0580f8f19c5bc964104c9e2f5a553ea79ebb0 100644 (file)
@@ -435,6 +435,20 @@ def process_csvs():
                 else:
                     res['0'] = 'TODO'
 
+            elif value == 'RM-1P-3S1D':
+                res['Etype'] = 'EXTRA2' # RM EXTRA2 type
+                if insn_name == 'isel':
+                    res['0'] = 'd:RT' # RT: Rdest1_EXTRA2
+                    res['1'] = 's:RA' # RA: Rsrc1_EXTRA2
+                    res['2'] = 's:RB' # RT: Rsrc2_EXTRA2
+                    res['3'] = 's:BC' # BC: Rsrc3_EXTRA2
+                else:
+                    res['0'] = 'd:FRT,d:CR1' # FRT, CR1: Rdest1_EXTRA2
+                    res['1'] = 's:FRA' # FRA: Rsrc1_EXTRA2
+                    res['2'] = 's:FRB' # FRB: Rsrc2_EXTRA2
+                    res['3'] = 's:FRC' # FRC: Rsrc3_EXTRA2
+
+
             # print out the row
             print (tformat(res.values()))
             # add to svp64 csvs