updating sv_analys.py svp64 table
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 23 Dec 2020 23:50:25 +0000 (23:50 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 23 Dec 2020 23:50:25 +0000 (23:50 +0000)
openpower/opcode_regs_deduped.mdwn
openpower/sv_analysis.py

index 0dd0f6c8c81bddc29237f8c1456458d1eecd2f4d..78c3993fc58eddade02be3f5624445404822524a 100644 (file)
@@ -752,7 +752,7 @@ cror | 1P | EXTRA3 | d:BT | s:BA | s:BB |  | NONE | NONE | NONE | NONE | BA_BB |
 
 [[!table  data="""
 insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-mfcr/mfocrf | 2P | EXTRA3 | TODO |  |  |  | NONE | NONE | NONE | RT | WHOLE_REG | NONE |
+mfcr/mfocrf | 2P | EXTRA3 | d:RT | s:CR |  |  | NONE | NONE | NONE | RT | WHOLE_REG | NONE |
 setb | 2P | EXTRA3 | d:RT | s:BFA |  |  | NONE | NONE | NONE | RT | BFA | NONE |
 """]]
 
@@ -778,13 +778,13 @@ darn | 2P | EXTRA2 | TODO |  |  |  |  |  | RT |  |  |  |
 
 [[!table  data="""
 insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-neg | 2P | EXTRA3 | TODO |  |  |  | RA | NONE | NONE | RT | NONE | NONE |
-popcntb | 2P | EXTRA3 | TODO |  |  |  | RS | NONE | NONE | RA | NONE | NONE |
-prtyw | 2P | EXTRA3 | TODO |  |  |  | RS | NONE | NONE | RA | NONE | NONE |
-prtyd | 2P | EXTRA3 | TODO |  |  |  | RS | NONE | NONE | RA | NONE | NONE |
-popcntw | 2P | EXTRA3 | TODO |  |  |  | RS | NONE | NONE | RA | NONE | NONE |
-popcntd | 2P | EXTRA3 | TODO |  |  |  | RS | NONE | NONE | RA | NONE | NONE |
-nego | 2P | EXTRA3 | TODO |  |  |  | RA | NONE | NONE | RT | NONE | NONE |
+neg | 2P | EXTRA3 | d:RT | s:RA |  |  | RA | NONE | NONE | RT | NONE | NONE |
+popcntb | 2P | EXTRA3 | d:RS | s:RA |  |  | RS | NONE | NONE | RA | NONE | NONE |
+prtyw | 2P | EXTRA3 | d:RS | s:RA |  |  | RS | NONE | NONE | RA | NONE | NONE |
+prtyd | 2P | EXTRA3 | d:RS | s:RA |  |  | RS | NONE | NONE | RA | NONE | NONE |
+popcntw | 2P | EXTRA3 | d:RS | s:RA |  |  | RS | NONE | NONE | RA | NONE | NONE |
+popcntd | 2P | EXTRA3 | d:RS | s:RA |  |  | RS | NONE | NONE | RA | NONE | NONE |
+nego | 2P | EXTRA3 | d:RT | s:RA |  |  | RA | NONE | NONE | RT | NONE | NONE |
 """]]
 
 ## 1R-1W-imm (RM-2P-1S1D)
index e716b807b61b7afe06b31c9d1dd782380aa86883..3a01a1798e5bf73f475036966941a7e3d4d3fef5 100644 (file)
@@ -400,12 +400,22 @@ def process_csvs():
                 if name == 'CRio' and insn_name == 'mcrf':
                     res['0'] = 'd:BF' # BFA: Rdest1_EXTRA3
                     res['1'] = 's:BFA' # BFA: Rsrc1_EXTRA3
+                elif 'mfcr' in insn_name or 'mfocrf' in insn_name:
+                    res['0'] = 'd:RT' # RT: Rdest1_EXTRA3
+                    res['1'] = 's:CR' # CR: Rsrc1_EXTRA3
                 elif insn_name == 'setb':
                     res['0'] = 'd:RT' # RT: Rdest1_EXTRA3
                     res['1'] = 's:BFA' # BFA: Rsrc1_EXTRA3
                 elif insn_name.startswith('cmp'): # cmpi
                     res['0'] = 'd:BF' # BF: Rdest1_EXTRA3
                     res['1'] = 's:RA' # RA: Rsrc1_EXTRA3
+                elif insn_name.startswith('neg'): # neg*
+                    res['0'] = 'd:RT' # RT: Rdest1_EXTRA3
+                    res['1'] = 's:RA' # RA: Rsrc1_EXTRA3
+                elif (insn_name.startswith('prty') or # prty*
+                      insn_name.startswith('popcnt')): # popcnt*
+                    res['0'] = 'd:RS' # RS: Rdest1_EXTRA3
+                    res['1'] = 's:RA' # RA: Rsrc1_EXTRA3
                 else:
                     res['0'] = 'TODO'