Update Symbiflow description
[libreriscv.git] / openpower / opcode_regs_deduped.mdwn
index c4e5999aadafd042b916544015908566a095d924..dcb3bcdebcd154860b2c34d7d161d65becb4da3f 100644 (file)
@@ -17,8 +17,7 @@ LDST-3R-CRo | LDSTRM-2P-3S  |
 LDST-3R-1W | LDSTRM-2P-2S1D  |
  | non-SV  |
 imm | non-SV  |
-CRi | non-SV  |
-CRi | non-SV  |
+CRo | -  |
 CRio | RM-2P-1S1D  |
 CR=2R1W | RM-1P-2S1D  |
 1W | non-SV  |
@@ -26,20 +25,19 @@ CR=2R1W | RM-1P-2S1D  |
 1R | non-SV  |
 1R-imm | non-SV  |
 1R-CRo | RM-2P-1S1D  |
+1R-CRo | RM-2P-1S1D  |
 1R-CRio | RM-2P-2S1D  |
 1R-1W | RM-2P-1S1D  |
 1R-1W-imm | RM-2P-1S1D  |
 1R-1W-CRo | RM-2P-1S1D  |
 1R-1W-CRo | RM-2P-1S1D  |
-1R-1W-CRio | RM-2P-1S1D  |
 2R | non-SV  |
 2R-CRo | RM-1P-2S1D  |
-2R-CRio | RM-1P-2S1D  |
 2R-1W | RM-1P-2S1D  |
 2R-1W-CRo | RM-1P-2S1D  |
 2R-1W-CRo | RM-1P-2S1D  |
 2R-1W-CRi | RM-1P-3S1D  |
-2R-1W-CRio | RM-1P-2S1D  |
+3R-1W-CRo | -  |
 3R-1W-CRio | RM-1P-3S1D  |
 """]]
 
@@ -58,29 +56,27 @@ LDST | 3 | 0 | 0 | 1 |  |  |  LDST-3R-CRo |
 LDST | 3 | 1 | 0 | 0 |  |  |  LDST-3R-1W |
 OTHER | 0 | 0 | 0 | 0 |  |  |   |
 OTHER | 0 | 0 | 0 | 0 | 1 | LI |  imm |
-OTHER | 0 | 0 | 1 | 0 |  |  |  CRi |
-OTHER | 0 | 0 | 1 | 0 | 1 | BD |  CRi |
+OTHER | 0 | 0 | 0 | 1 |  |  |  CRo |
 OTHER | 0 | 0 | 1 | 1 |  |  |  CRio |
 OTHER | 0 | 0 | 1 | 1 | 1 |  |  |  CR=2R1W |
 OTHER | 0 | 1 | 0 | 0 |  |  |  1W |
 OTHER | 0 | 1 | 1 | 0 |  |  |  1W-CRi |
 OTHER | 1 | 0 | 0 | 0 |  |  |  1R |
 OTHER | 1 | 0 | 0 | 0 | 1 | SI |  1R-imm |
+OTHER | 1 | 0 | 0 | 1 |  |  |  1R-CRo |
 OTHER | 1 | 0 | 0 | 1 | 1 | SI/UI |  1R-CRo |
 OTHER | 1 | 0 | 1 | 1 |  |  |  1R-CRio |
 OTHER | 1 | 1 | 0 | 0 |  |  |  1R-1W |
 OTHER | 1 | 1 | 0 | 0 | 1 | SI/UI |  1R-1W-imm |
 OTHER | 1 | 1 | 0 | 1 |  |  |  1R-1W-CRo |
 OTHER | 1 | 1 | 0 | 1 | 1 | M1/SH/SH32/SI/UI |  1R-1W-CRo |
-OTHER | 1 | 1 | 1 | 1 |  |  |  1R-1W-CRio |
 OTHER | 2 | 0 | 0 | 0 |  |  |  2R |
 OTHER | 2 | 0 | 0 | 1 |  |  |  2R-CRo |
-OTHER | 2 | 0 | 1 | 1 |  |  |  2R-CRio |
 OTHER | 2 | 1 | 0 | 0 |  |  |  2R-1W |
 OTHER | 2 | 1 | 0 | 1 |  |  |  2R-1W-CRo |
 OTHER | 2 | 1 | 0 | 1 | 1 | SH/SH32 |  2R-1W-CRo |
 OTHER | 2 | 1 | 1 | 0 |  |  |  2R-1W-CRi |
-OTHER | 2 | 1 | 1 | 1 |  |  |  2R-1W-CRio |
+OTHER | 3 | 1 | 0 | 1 |  |  |  3R-1W-CRo |
 OTHER | 3 | 1 | 1 | 1 |  |  |  3R-1W-CRio |
 """]]
 
@@ -206,9 +202,7 @@ CSV | opcode | asm | form |
 extra.csv | 000000---------------0100000000- | attn | NONE-Form |
 extra.csv | 01100000000000000000000000000000 | nop | D-Form |
 major.csv | 17 | sc | SC-Form |
-minor_19.csv | 0b0000010010 | rfid | XL-Form |
 minor_19.csv | 0b0010010110 | isync | XL-Form |
-minor_19.csv | 0b0100010010 | hrfid | XL-Form |
 minor_19_00000.csv | 0b00010 | add pcis not implemented yet | DX-Form |
 minor_31.csv | 0b0000010110 | icbt | X-Form |
 minor_31.csv | 0b0000110110 | dcbst | X-Form |
@@ -227,20 +221,14 @@ CSV | opcode | asm | form |
 major.csv | 18 | b | I-Form |
 """]]
 
-## CRi (non-SV)
-
-[[!table  data="""
-CSV | opcode | asm | form |
-minor_19.csv | 0b0000010000 | bclr | XL-Form |
-minor_19.csv | 0b1000010000 | bcctr | XL-Form |
-minor_19.csv | 0b1000110000 | bctar | XL-Form |
-"""]]
-
-## CRi (non-SV)
+## CRo (-)
 
 [[!table  data="""
 CSV | opcode | asm | form |
-major.csv | 16 | bc | B-Form |
+minor_63l.csv | 0b000000010 | 2/0=mcrfs | -Form |
+minor_63l.csv | 0b011000001 | 1/6=mtfsb1 | -Form |
+minor_63l.csv | 0b011000010 | 2/6=mtfsb0 | -Form |
+minor_63l.csv | 0b011000100 | 4/6=mtfsfi | -Form |
 """]]
 
 ## CRio (RM-2P-1S1D)
@@ -248,10 +236,6 @@ major.csv | 16 | bc | B-Form |
 [[!table  data="""
 CSV | opcode | asm | form |
 minor_19.csv | 0b0000000000 | mcrf | XL-Form |
-minor_63l.csv | 0b000000010 | 2/0=mcrfs | -Form |
-minor_63l.csv | 0b011000001 | 1/6=mtfsb1 | -Form |
-minor_63l.csv | 0b011000010 | 2/6=mtfsb0 | -Form |
-minor_63l.csv | 0b011000100 | 4/6=mtfsfi | -Form |
 """]]
 
 ## CR=2R1W (RM-1P-2S1D)
@@ -274,7 +258,6 @@ minor_19.csv | 0b0111000001 | cror | XL-Form |
 CSV | opcode | asm | form |
 extra.csv | 000001---------------0000000011- | sim_cfg | NONE-Form |
 minor_31.csv | 0b0001010011 | mfmsr | X-Form |
-minor_31.csv | 0b0101010011 | mfspr | XFX-Form |
 """]]
 
 ## 1W-CRi (RM-2P-1S1D)
@@ -293,7 +276,6 @@ minor_31.csv | 0b0010010010 | mtmsr | X-Form |
 minor_31.csv | 0b0010110010 | mtmsrd | X-Form |
 minor_31.csv | 0b0100010010 | tlbiel | X-Form |
 minor_31.csv | 0b0100110010 | tlbie | X-Form |
-minor_31.csv | 0b0111010011 | mtspr | XFX-Form |
 """]]
 
 ## 1R-imm (non-SV)
@@ -306,6 +288,14 @@ major.csv | 3 | twi | D-Form |
 
 ## 1R-CRo (RM-2P-1S1D)
 
+[[!table  data="""
+CSV | opcode | asm | form |
+minor_63l.csv | 0b000000101 | 5/0=ftsqrt | -Form |
+minor_63l.csv | 0b011110110 | 22/7=mtfsf | -Form |
+"""]]
+
+## 1R-CRo (RM-2P-1S1D)
+
 [[!table  data="""
 CSV | opcode | asm | form |
 major.csv | 10 | cmpli | D-Form |
@@ -317,8 +307,6 @@ major.csv | 11 | cmpi | D-Form |
 [[!table  data="""
 CSV | opcode | asm | form |
 minor_31.csv | 0b0010010000 | mtcrf/mtocrf | XFX-Form |
-minor_63l.csv | 0b000000101 | 5/0=ftsqrt | -Form |
-minor_63l.csv | 0b011110110 | 22/7=mtfsf | -Form |
 """]]
 
 ## 1R-1W (RM-2P-1S1D)
@@ -329,7 +317,9 @@ minor_31.csv | 0b0001101000 | neg | XO-Form |
 minor_31.csv | 0b0001111010 | popcntb | X-Form |
 minor_31.csv | 0b0010011010 | prtyw | X-Form |
 minor_31.csv | 0b0010111010 | prtyd | X-Form |
+minor_31.csv | 0b0101010011 | mfspr | XFX-Form |
 minor_31.csv | 0b0101111010 | popcntw | X-Form |
+minor_31.csv | 0b0111010011 | mtspr | XFX-Form |
 minor_31.csv | 0b0111111010 | popcntd | X-Form |
 minor_31.csv | 0b1001101000 | nego | XO-Form |
 """]]
@@ -363,38 +353,6 @@ minor_31.csv | 0b1011001010 | addzeo | XO-Form |
 minor_31.csv | 0b1110011010 | extsh | X-Form |
 minor_31.csv | 0b1110111010 | extsb | X-Form |
 minor_31.csv | 0b1111011010 | extsw | X-Form |
-"""]]
-
-## 1R-1W-CRo (RM-2P-1S1D)
-
-[[!table  data="""
-CSV | opcode | asm | form |
-major.csv | 13 | addic. | D-Form |
-major.csv | 21 | rlwinm | M-Form |
-major.csv | 28 | andi. | B-Form |
-major.csv | 29 | andis. | B-Form |
-major.csv | 7 | mulli | D-Form |
-minor_30.csv | 0b0000 | rldicl | MDS-Form |
-minor_30.csv | 0b0001 | rldicl | MDS-Form |
-minor_30.csv | 0b0010 | rldicr | MD-Form |
-minor_30.csv | 0b0011 | rldicr | MD-Form |
-minor_30.csv | 0b0100 | rldic | MD-Form |
-minor_30.csv | 0b0101 | rldic | MD-Form |
-minor_31.csv | 0b0011101000 | subfme | XO-Form |
-minor_31.csv | 0b0011101010 | addme | XO-Form |
-minor_31.csv | 0b1011101000 | subfmeo | XO-Form |
-minor_31.csv | 0b1011101010 | addmeo | XO-Form |
-minor_31.csv | 0b1100111000 | srawi | X-Form |
-minor_31.csv | 0b1100111010 | sradi | XS-Form |
-minor_31.csv | 0b1100111011 | sradi | XS-Form |
-minor_31.csv | 0b1101111010 | extswsli | XS-Form |
-minor_31.csv | 0b1101111011 | extswsli | XS-Form |
-"""]]
-
-## 1R-1W-CRio (RM-2P-1S1D)
-
-[[!table  data="""
-CSV | opcode | asm | form |
 minor_59.csv | 0b01110 | fcfid[u]s | -Form |
 minor_59.csv | 0b10110 | fsqrts | -Form |
 minor_59.csv | 0b11000 | fres | -Form |
@@ -424,6 +382,32 @@ minor_63l.csv | 0b111111001 | 25/15=fctidz | -Form |
 minor_63l.csv | 0b111111101 | 29/15=fctiduz | -Form |
 """]]
 
+## 1R-1W-CRo (RM-2P-1S1D)
+
+[[!table  data="""
+CSV | opcode | asm | form |
+major.csv | 13 | addic. | D-Form |
+major.csv | 21 | rlwinm | M-Form |
+major.csv | 28 | andi. | B-Form |
+major.csv | 29 | andis. | B-Form |
+major.csv | 7 | mulli | D-Form |
+minor_30.csv | 0b0000 | rldicl | MDS-Form |
+minor_30.csv | 0b0001 | rldicl | MDS-Form |
+minor_30.csv | 0b0010 | rldicr | MD-Form |
+minor_30.csv | 0b0011 | rldicr | MD-Form |
+minor_30.csv | 0b0100 | rldic | MD-Form |
+minor_30.csv | 0b0101 | rldic | MD-Form |
+minor_31.csv | 0b0011101000 | subfme | XO-Form |
+minor_31.csv | 0b0011101010 | addme | XO-Form |
+minor_31.csv | 0b1011101000 | subfmeo | XO-Form |
+minor_31.csv | 0b1011101010 | addmeo | XO-Form |
+minor_31.csv | 0b1100111000 | srawi | X-Form |
+minor_31.csv | 0b1100111010 | sradi | XS-Form |
+minor_31.csv | 0b1100111011 | sradi | XS-Form |
+minor_31.csv | 0b1101111010 | extswsli | XS-Form |
+minor_31.csv | 0b1101111011 | extswsli | XS-Form |
+"""]]
+
 ## 2R (non-SV)
 
 [[!table  data="""
@@ -441,12 +425,6 @@ minor_31.csv | 0b0000000000 | cmp | X-Form |
 minor_31.csv | 0b0000100000 | cmpl | X-Form |
 minor_31.csv | 0b0011000000 | cmprb | X-Form |
 minor_31.csv | 0b0011100000 | cmpeqb | X-Form |
-"""]]
-
-## 2R-CRio (RM-1P-2S1D)
-
-[[!table  data="""
-CSV | opcode | asm | form |
 minor_63l.csv | 0b000000000 | 0/0=fcmpu | -Form |
 minor_63l.csv | 0b000000001 | 1/0=fcmpo | -Form |
 minor_63l.csv | 0b000000100 | 4/0=ftdiv | -Form |
@@ -462,6 +440,8 @@ minor_31.csv | 0b0100001011 | moduw | X-Form |
 minor_31.csv | 0b0111111100 | cmpb | X-Form |
 minor_31.csv | 0b1100001001 | modsd | X-Form |
 minor_31.csv | 0b1100001011 | modsw | X-Form |
+minor_63l.csv | 0b011011010 | 26/6=fmrgow | -Form |
+minor_63l.csv | 0b011011110 | 30/6=fmrgew | -Form |
 """]]
 
 ## 2R-1W-CRo (RM-1P-2S1D)
@@ -525,6 +505,15 @@ minor_31.csv | 0b1111001001 | divduo | XO-Form |
 minor_31.csv | 0b1111001011 | divwuo | XO-Form |
 minor_31.csv | 0b1111101001 | divdo | XO-Form |
 minor_31.csv | 0b1111101011 | divwo | XO-Form |
+minor_59.csv | 0b10010 | fdivs | -Form |
+minor_59.csv | 0b10100 | fsubs | -Form |
+minor_59.csv | 0b10101 | fadds | -Form |
+minor_59.csv | 0b11001 | fmuls | -Form |
+minor_63h.csv | 0b0010 | fdiv | -Form |
+minor_63h.csv | 0b0100 | fsub | -Form |
+minor_63h.csv | 0b0101 | fadd | -Form |
+minor_63h.csv | 0b1001 | fmul | -Form |
+minor_63l.csv | 0b100000000 | 0/8=fcpsgn | -Form |
 """]]
 
 ## 2R-1W-CRo (RM-1P-2S1D)
@@ -574,21 +563,15 @@ minor_31.csv | 0b1111001111 | isel | A-Form |
 minor_31.csv | 0b1111101111 | isel | A-Form |
 """]]
 
-## 2R-1W-CRio (RM-1P-2S1D)
+## 3R-1W-CRo (-)
 
 [[!table  data="""
 CSV | opcode | asm | form |
-minor_59.csv | 0b10010 | fdivs | -Form |
-minor_59.csv | 0b10100 | fsubs | -Form |
-minor_59.csv | 0b10101 | fadds | -Form |
-minor_59.csv | 0b11001 | fmuls | -Form |
-minor_63h.csv | 0b0010 | fdiv | -Form |
-minor_63h.csv | 0b0100 | fsub | -Form |
-minor_63h.csv | 0b0101 | fadd | -Form |
-minor_63h.csv | 0b1001 | fmul | -Form |
-minor_63l.csv | 0b011011010 | 26/6=fmrgow | -Form |
-minor_63l.csv | 0b011011110 | 30/6=fmrgew | -Form |
-minor_63l.csv | 0b100000000 | 0/8=fcpsgn | -Form |
+minor_63h.csv | 0b0111 | fsel | -Form |
+minor_63h.csv | 0b1100 | fmsub | -Form |
+minor_63h.csv | 0b1101 | fmadd | -Form |
+minor_63h.csv | 0b1110 | fnmsub | -Form |
+minor_63h.csv | 0b1111 | fnmadd | -Form |
 """]]
 
 ## 3R-1W-CRio (RM-1P-3S1D)
@@ -599,452 +582,74 @@ minor_59.csv | 0b11100 | fmsubs | -Form |
 minor_59.csv | 0b11101 | fmadds | -Form |
 minor_59.csv | 0b11110 | fnmsubs | -Form |
 minor_59.csv | 0b11111 | fnmadds | -Form |
-minor_63h.csv | 0b0111 | fsel | -Form |
-minor_63h.csv | 0b1100 | fmsub | -Form |
-minor_63h.csv | 0b1101 | fmadd | -Form |
-minor_63h.csv | 0b1110 | fnmsub | -Form |
-minor_63h.csv | 0b1111 | fnmadd | -Form |
 """]]
 
 # svp64 remaps
-## LDST-1R-1W-imm (LDSTRM-2P-1S1D)
-
-[[!table  data="""
-insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-lwz | 2P | EXTRA3 | d:RT | s:RA |  |  | RA_OR_ZERO |  | NONE | RT | NONE | NONE |
-lbz | 2P | EXTRA3 | d:RT | s:RA |  |  | RA_OR_ZERO |  | NONE | RT | NONE | NONE |
-lhz | 2P | EXTRA3 | d:RT | s:RA |  |  | RA_OR_ZERO |  | NONE | RT | NONE | NONE |
-lha | 2P | EXTRA3 | d:RT | s:RA |  |  | RA_OR_ZERO |  | NONE | RT | NONE | NONE |
-ld | 2P | EXTRA3 | d:RT | s:RA |  |  | RA_OR_ZERO |  | NONE | RT | NONE | NONE |
-lwa | 2P | EXTRA3 | d:RT | s:RA |  |  | RA_OR_ZERO |  | NONE | RT | NONE | NONE |
-"""]]
-
-## LDST-1R-2W-imm (LDSTRM-2P-1S2D)
-
-[[!table  data="""
-insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-lwzu | 2P | EXTRA2 | d:RT | s:RA | d:RA |  | RA_OR_ZERO |  | NONE | RT | NONE | NONE |
-lbzu | 2P | EXTRA2 | d:RT | s:RA | d:RA |  | RA_OR_ZERO |  | NONE | RT | NONE | NONE |
-lhzu | 2P | EXTRA2 | d:RT | s:RA | d:RA |  | RA_OR_ZERO |  | NONE | RT | NONE | NONE |
-lhau | 2P | EXTRA2 | d:RT | s:RA | d:RA |  | RA_OR_ZERO |  | NONE | RT | NONE | NONE |
-ldu | 2P | EXTRA2 | d:RT | s:RA | d:RA |  | RA_OR_ZERO |  | NONE | RT | NONE | NONE |
-"""]]
-
-## LDST-2R-imm (LDSTRM-2P-2S)
-
-[[!table  data="""
-insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-stw | 2P | EXTRA3 | d:RS | s:RA |  |  | RA_OR_ZERO |  | RS | NONE | NONE | NONE |
-stb | 2P | EXTRA3 | d:RS | s:RA |  |  | RA_OR_ZERO |  | RS | NONE | NONE | NONE |
-sth | 2P | EXTRA3 | d:RS | s:RA |  |  | RA_OR_ZERO |  | RS | NONE | NONE | NONE |
-std | 2P | EXTRA3 | d:RS | s:RA |  |  | RA_OR_ZERO |  | RS | NONE | NONE | NONE |
-"""]]
-
-## LDST-2R-1W (LDSTRM-2P-2S1D)
-
-[[!table  data="""
-insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-lwarx | 2P | EXTRA2 | d:RT | s:RA | s:RB |  | RA_OR_ZERO | RB | NONE | RT | NONE | NONE |
-ldx | 2P | EXTRA2 | d:RT | s:RA | s:RB |  | RA_OR_ZERO | RB | NONE | RT | NONE | NONE |
-lwzx | 2P | EXTRA2 | d:RT | s:RA | s:RB |  | RA_OR_ZERO | RB | NONE | RT | NONE | NONE |
-lbarx | 2P | EXTRA2 | d:RT | s:RA | s:RB |  | RA_OR_ZERO | RB | NONE | RT | NONE | NONE |
-ldarx | 2P | EXTRA2 | d:RT | s:RA | s:RB |  | RA_OR_ZERO | RB | NONE | RT | NONE | NONE |
-lbzx | 2P | EXTRA2 | d:RT | s:RA | s:RB |  | RA_OR_ZERO | RB | NONE | RT | NONE | NONE |
-lharx | 2P | EXTRA2 | d:RT | s:RA | s:RB |  | RA_OR_ZERO | RB | NONE | RT | NONE | NONE |
-lhzx | 2P | EXTRA2 | d:RT | s:RA | s:RB |  | RA_OR_ZERO | RB | NONE | RT | NONE | NONE |
-lwax | 2P | EXTRA2 | d:RT | s:RA | s:RB |  | RA_OR_ZERO | RB | NONE | RT | NONE | NONE |
-lhax | 2P | EXTRA2 | d:RT | s:RA | s:RB |  | RA_OR_ZERO | RB | NONE | RT | NONE | NONE |
-ldbrx | 2P | EXTRA2 | d:RT | s:RA | s:RB |  | RA_OR_ZERO | RB | NONE | RT | NONE | NONE |
-lwbrx | 2P | EXTRA2 | d:RT | s:RA | s:RB |  | RA_OR_ZERO | RB | NONE | RT | NONE | NONE |
-lwzcix | 2P | EXTRA2 | d:RT | s:RA | s:RB |  | RA_OR_ZERO | RB | NONE | RT | NONE | NONE |
-lhbrx | 2P | EXTRA2 | d:RT | s:RA | s:RB |  | RA_OR_ZERO | RB | NONE | RT | NONE | NONE |
-lhzcix | 2P | EXTRA2 | d:RT | s:RA | s:RB |  | RA_OR_ZERO | RB | NONE | RT | NONE | NONE |
-lbzcix | 2P | EXTRA2 | d:RT | s:RA | s:RB |  | RA_OR_ZERO | RB | NONE | RT | NONE | NONE |
-ldcix | 2P | EXTRA2 | d:RT | s:RA | s:RB |  | RA_OR_ZERO | RB | NONE | RT | NONE | NONE |
-"""]]
-
-## LDST-2R-1W-imm (LDSTRM-2P-2S1D)
-
-[[!table  data="""
-insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-stwu | 2P | EXTRA2 | d:RA | s:RS | s:RA |  | RA_OR_ZERO |  | RS | NONE | NONE | NONE |
-stbu | 2P | EXTRA2 | d:RA | s:RS | s:RA |  | RA_OR_ZERO |  | RS | NONE | NONE | NONE |
-sthu | 2P | EXTRA2 | d:RA | s:RS | s:RA |  | RA_OR_ZERO |  | RS | NONE | NONE | NONE |
-stdu | 2P | EXTRA2 | d:RA | s:RS | s:RA |  | RA_OR_ZERO |  | RS | NONE | NONE | NONE |
-"""]]
-
-## LDST-2R-2W (LDSTRM-2P-2S1D)
-
-[[!table  data="""
-insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-ldux | 2P | EXTRA2 | d:RT | d:RA | s:RB |  | RA_OR_ZERO | RB | NONE | RT | NONE | NONE |
-lwzux | 2P | EXTRA2 | d:RT | d:RA | s:RB |  | RA_OR_ZERO | RB | NONE | RT | NONE | NONE |
-lbzux | 2P | EXTRA2 | d:RT | d:RA | s:RB |  | RA_OR_ZERO | RB | NONE | RT | NONE | NONE |
-lhzux | 2P | EXTRA2 | d:RT | d:RA | s:RB |  | RA_OR_ZERO | RB | NONE | RT | NONE | NONE |
-lwaux | 2P | EXTRA2 | d:RT | d:RA | s:RB |  | RA_OR_ZERO | RB | NONE | RT | NONE | NONE |
-lhaux | 2P | EXTRA2 | d:RT | d:RA | s:RB |  | RA_OR_ZERO | RB | NONE | RT | NONE | NONE |
-"""]]
-
-## LDST-3R (LDSTRM-2P-3S)
-
-[[!table  data="""
-insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-stdx | 2P | EXTRA2 | s:RS | s:RA | s:RB |  | RA_OR_ZERO | RB | RS | NONE | NONE | NONE |
-stwx | 2P | EXTRA2 | s:RS | s:RA | s:RB |  | RA_OR_ZERO | RB | RS | NONE | NONE | NONE |
-stbx | 2P | EXTRA2 | s:RS | s:RA | s:RB |  | RA_OR_ZERO | RB | RS | NONE | NONE | NONE |
-sthx | 2P | EXTRA2 | s:RS | s:RA | s:RB |  | RA_OR_ZERO | RB | RS | NONE | NONE | NONE |
-stdbrx | 2P | EXTRA2 | s:RS | s:RA | s:RB |  | RA_OR_ZERO | RB | RS | NONE | NONE | NONE |
-stwbrx | 2P | EXTRA2 | s:RS | s:RA | s:RB |  | RA_OR_ZERO | RB | RS | NONE | NONE | NONE |
-stwcix | 2P | EXTRA2 | s:RS | s:RA | s:RB |  | RA_OR_ZERO | RB | RS | NONE | NONE | NONE |
-sthbrx | 2P | EXTRA2 | s:RS | s:RA | s:RB |  | RA_OR_ZERO | RB | RS | NONE | NONE | NONE |
-sthcix | 2P | EXTRA2 | s:RS | s:RA | s:RB |  | RA_OR_ZERO | RB | RS | NONE | NONE | NONE |
-stbcix | 2P | EXTRA2 | s:RS | s:RA | s:RB |  | RA_OR_ZERO | RB | RS | NONE | NONE | NONE |
-stdcix | 2P | EXTRA2 | s:RS | s:RA | s:RB |  | RA_OR_ZERO | RB | RS | NONE | NONE | NONE |
-"""]]
-
-## LDST-3R-CRo (LDSTRM-2P-3S)
-
-[[!table  data="""
-insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-stwcx | 2P | EXTRA2 | s:RS,d:CR0 | s:RA | s:RB |  | RA_OR_ZERO | RB | RS | NONE | NONE | CR0 |
-stdcx | 2P | EXTRA2 | s:RS,d:CR0 | s:RA | s:RB |  | RA_OR_ZERO | RB | RS | NONE | NONE | CR0 |
-stbcx | 2P | EXTRA2 | s:RS,d:CR0 | s:RA | s:RB |  | RA_OR_ZERO | RB | RS | NONE | NONE | CR0 |
-sthcx | 2P | EXTRA2 | s:RS,d:CR0 | s:RA | s:RB |  | RA_OR_ZERO | RB | RS | NONE | NONE | CR0 |
-"""]]
-
-## LDST-3R-1W (LDSTRM-2P-2S1D)
-
-[[!table  data="""
-insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-stdux | 2P | EXTRA2 | d:RA | s:RS,s:RA | s:RB |  | RA_OR_ZERO | RB | RS | NONE | NONE | NONE |
-stwux | 2P | EXTRA2 | d:RA | s:RS,s:RA | s:RB |  | RA_OR_ZERO | RB | RS | NONE | NONE | NONE |
-stbux | 2P | EXTRA2 | d:RA | s:RS,s:RA | s:RB |  | RA_OR_ZERO | RB | RS | NONE | NONE | NONE |
-sthux | 2P | EXTRA2 | d:RA | s:RS,s:RA | s:RB |  | RA_OR_ZERO | RB | RS | NONE | NONE | NONE |
-"""]]
-
-## CRio (RM-2P-1S1D)
-
-[[!table  data="""
-insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-mcrf | 2P | EXTRA3 | d:BF | s:BFA |  |  | NONE | NONE | NONE | NONE | BFA | BF |
-2/0=mcrfs | 2P | EXTRA3 | TODO |  |  |  | NONE | NONE | NONE | NONE | 0 | 1 |
-1/6=mtfsb1 | 2P | EXTRA3 | TODO |  |  |  | NONE | NONE | NONE | NONE | 0 | 0 |
-2/6=mtfsb0 | 2P | EXTRA3 | TODO |  |  |  | NONE | NONE | NONE | NONE | 0 | 0 |
-4/6=mtfsfi | 2P | EXTRA3 | TODO |  |  |  | NONE | NONE | NONE | NONE | 0 | 0 |
-"""]]
-
-## CR=2R1W (RM-1P-2S1D)
-
-[[!table  data="""
-insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-crnor | 1P | EXTRA3 | d:BT | s:BA | s:BB |  | NONE | NONE | NONE | NONE | BA_BB | BT |
-crandc | 1P | EXTRA3 | d:BT | s:BA | s:BB |  | NONE | NONE | NONE | NONE | BA_BB | BT |
-crxor | 1P | EXTRA3 | d:BT | s:BA | s:BB |  | NONE | NONE | NONE | NONE | BA_BB | BT |
-crnand | 1P | EXTRA3 | d:BT | s:BA | s:BB |  | NONE | NONE | NONE | NONE | BA_BB | BT |
-crand | 1P | EXTRA3 | d:BT | s:BA | s:BB |  | NONE | NONE | NONE | NONE | BA_BB | BT |
-creqv | 1P | EXTRA3 | d:BT | s:BA | s:BB |  | NONE | NONE | NONE | NONE | BA_BB | BT |
-crorc | 1P | EXTRA3 | d:BT | s:BA | s:BB |  | NONE | NONE | NONE | NONE | BA_BB | BT |
-cror | 1P | EXTRA3 | d:BT | s:BA | s:BB |  | NONE | NONE | NONE | NONE | BA_BB | BT |
-"""]]
-
-## 1W-CRi (RM-2P-1S1D)
-
-[[!table  data="""
-insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-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 |
-"""]]
-
-## 1R-CRo (RM-2P-1S1D)
-
-[[!table  data="""
-insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-cmpli | 2P | EXTRA3 | d:BF | s:RA |  |  | RA |  | NONE | NONE | NONE | BF |
-cmpi | 2P | EXTRA3 | d:BF | s:RA |  |  | RA |  | NONE | NONE | NONE | BF |
-"""]]
-
-## 1R-CRio (RM-2P-2S1D)
-
-[[!table  data="""
-insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-mtcrf/mtocrf | 2P | EXTRA2 | d:CR | s:RS | s:CR |  | RS | NONE | NONE | NONE | WHOLE_REG | WHOLE_REG |
-5/0=ftsqrt | 2P | EXTRA2 | TODO |  |  |  | NONE | FRB | NONE | NONE | 0 | 1 |
-22/7=mtfsf | 2P | EXTRA2 | TODO |  |  |  | NONE | FRB | NONE | NONE | 0 | 0 |
-"""]]
-
-## 1R-1W (RM-2P-1S1D)
-
-[[!table  data="""
-insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-neg | 2P | EXTRA3 | d:RT | s:RA |  |  | RA | NONE | NONE | RT | NONE | NONE |
-popcntb | 2P | EXTRA3 | d:RA | s:RS |  |  | RS | NONE | NONE | RA | NONE | NONE |
-prtyw | 2P | EXTRA3 | d:RA | s:RS |  |  | RS | NONE | NONE | RA | NONE | NONE |
-prtyd | 2P | EXTRA3 | d:RA | s:RS |  |  | RS | NONE | NONE | RA | NONE | NONE |
-popcntw | 2P | EXTRA3 | d:RA | s:RS |  |  | RS | NONE | NONE | RA | NONE | NONE |
-popcntd | 2P | EXTRA3 | d:RA | s:RS |  |  | 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)
-
-[[!table  data="""
-insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-addic | 2P | EXTRA3 | d:RT | s:RA |  |  | RA |  | NONE | RT | NONE | NONE |
-addi | 2P | EXTRA3 | d:RT | s:RA |  |  | RA_OR_ZERO |  | NONE | RT | NONE | NONE |
-addis | 2P | EXTRA3 | d:RT | s:RA |  |  | RA_OR_ZERO |  | NONE | RT | NONE | NONE |
-ori | 2P | EXTRA3 | d:RA | s:RS |  |  | RS |  | NONE | RA | NONE | NONE |
-oris | 2P | EXTRA3 | d:RA | s:RS |  |  | RS |  | NONE | RA | NONE | NONE |
-xori | 2P | EXTRA3 | d:RA | s:RS |  |  | RS |  | NONE | RA | NONE | NONE |
-xoris | 2P | EXTRA3 | d:RA | s:RS |  |  | RS |  | NONE | RA | NONE | NONE |
-subfic | 2P | EXTRA3 | d:RT | s:RA |  |  | RA |  | NONE | RT | NONE | NONE |
-"""]]
-
-## 1R-1W-CRo (RM-2P-1S1D)
-
-[[!table  data="""
-insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-cntlzw | 2P | EXTRA3 | d:RA,d:CR0 | s:RS |  |  | RS | NONE | NONE | RA | NONE | CR0 |
-cntlzd | 2P | EXTRA3 | d:RA,d:CR0 | s:RS |  |  | RS | NONE | NONE | RA | NONE | CR0 |
-subfze | 2P | EXTRA3 | d:RT,d:CR0 | s:RA |  |  | RA | NONE | NONE | RT | NONE | CR0 |
-addze | 2P | EXTRA3 | d:RT,d:CR0 | s:RA |  |  | RA | NONE | NONE | RT | NONE | CR0 |
-cnttzw | 2P | EXTRA3 | d:RA,d:CR0 | s:RS |  |  | RS | NONE | NONE | RA | NONE | CR0 |
-cnttzd | 2P | EXTRA3 | d:RA,d:CR0 | s:RS |  |  | RS | NONE | NONE | RA | NONE | CR0 |
-subfzeo | 2P | EXTRA3 | d:RT,d:CR0 | s:RA |  |  | RA | NONE | NONE | RT | NONE | CR0 |
-addzeo | 2P | EXTRA3 | d:RT,d:CR0 | s:RA |  |  | RA | NONE | NONE | RT | NONE | CR0 |
-extsh | 2P | EXTRA3 | d:RA,d:CR0 | s:RS |  |  | RS | NONE | NONE | RA | NONE | CR0 |
-extsb | 2P | EXTRA3 | d:RA,d:CR0 | s:RS |  |  | RS | NONE | NONE | RA | NONE | CR0 |
-extsw | 2P | EXTRA3 | d:RA,d:CR0 | s:RS |  |  | RS | NONE | NONE | RA | NONE | CR0 |
-"""]]
+* **LDST-1R-1W-imm**: LDSTRM-2P-1S1D
+* **LDST-1R-2W-imm**: LDSTRM-2P-1S2D
+* **LDST-2R-imm**: LDSTRM-2P-2S
+* **LDST-2R-1W**: LDSTRM-2P-2S1D
+* **LDST-2R-1W-imm**: LDSTRM-2P-2S1D
+* **LDST-2R-2W**: LDSTRM-2P-2S1D
+* **LDST-3R**: LDSTRM-2P-3S
+* **LDST-3R-CRo**: LDSTRM-2P-3S
+* **LDST-3R-1W**: LDSTRM-2P-2S1D
+* **CRo**: -
+* **CRio**: RM-2P-1S1D
+* **CR=2R1W**: RM-1P-2S1D
+* **1W-CRi**: RM-2P-1S1D
+* **1R-CRo**: RM-2P-1S1D
+* **1R-CRo**: RM-2P-1S1D
+* **1R-CRio**: RM-2P-2S1D
+* **1R-1W**: RM-2P-1S1D
+* **1R-1W-imm**: RM-2P-1S1D
+* **1R-1W-CRo**: RM-2P-1S1D
+* **1R-1W-CRo**: RM-2P-1S1D
+* **2R-CRo**: RM-1P-2S1D
+* **2R-1W**: RM-1P-2S1D
+* **2R-1W-CRo**: RM-1P-2S1D
+* **2R-1W-CRo**: RM-1P-2S1D
+* **2R-1W-CRi**: RM-1P-3S1D
+* **3R-1W-CRo**: -
+* **3R-1W-CRio**: RM-1P-3S1D
 
-## 1R-1W-CRo (RM-2P-1S1D)
+## LDSTRM-2P-1S1D
 
-[[!table  data="""
-insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-addic. | 2P | EXTRA3 | d:RT,d:CR0 | s:RA |  |  | RA |  | NONE | RT | NONE | CR0 |
-rlwinm | 2P | EXTRA3 | d:RA,d:CR0 | s:RS |  |  | NONE |  | RS | RA | NONE | CR0 |
-andi. | 2P | EXTRA3 | d:RA,d:CR0 | s:RS |  |  | RS |  | NONE | RA | NONE | CR0 |
-andis. | 2P | EXTRA3 | d:RA,d:CR0 | s:RS |  |  | RS |  | NONE | RA | NONE | CR0 |
-mulli | 2P | EXTRA3 | d:RT,d:CR0 | s:RA |  |  | RA |  | NONE | RT | NONE | CR0 |
-rldicl | 2P | EXTRA3 | d:RA,d:CR0 | s:RS |  |  | NONE |  | RS | RA | NONE | CR0 |
-rldicl | 2P | EXTRA3 | d:RA,d:CR0 | s:RS |  |  | NONE |  | RS | RA | NONE | CR0 |
-rldicr | 2P | EXTRA3 | d:RA,d:CR0 | s:RS |  |  | NONE |  | RS | RA | NONE | CR0 |
-rldicr | 2P | EXTRA3 | d:RA,d:CR0 | s:RS |  |  | NONE |  | RS | RA | NONE | CR0 |
-rldic | 2P | EXTRA3 | d:RA,d:CR0 | s:RS |  |  | NONE |  | RS | RA | NONE | CR0 |
-rldic | 2P | EXTRA3 | d:RA,d:CR0 | s:RS |  |  | NONE |  | RS | RA | NONE | CR0 |
-subfme | 2P | EXTRA3 | d:RT,d:CR0 | s:RA |  |  | RA |  | NONE | RT | NONE | CR0 |
-addme | 2P | EXTRA3 | d:RT,d:CR0 | s:RA |  |  | RA |  | NONE | RT | NONE | CR0 |
-subfmeo | 2P | EXTRA3 | d:RT,d:CR0 | s:RA |  |  | RA |  | NONE | RT | NONE | CR0 |
-addmeo | 2P | EXTRA3 | d:RT,d:CR0 | s:RA |  |  | RA |  | NONE | RT | NONE | CR0 |
-srawi | 2P | EXTRA3 | d:RA,d:CR0 | s:RS |  |  | NONE |  | RS | RA | NONE | CR0 |
-sradi | 2P | EXTRA3 | d:RA,d:CR0 | s:RS |  |  | NONE |  | RS | RA | NONE | CR0 |
-sradi | 2P | EXTRA3 | d:RA,d:CR0 | s:RS |  |  | NONE |  | RS | RA | NONE | CR0 |
-extswsli | 2P | EXTRA3 | d:RA,d:CR0 | s:RS |  |  | NONE |  | RS | RA | NONE | CR0 |
-extswsli | 2P | EXTRA3 | d:RA,d:CR0 | s:RS |  |  | NONE |  | RS | RA | NONE | CR0 |
-"""]]
+[[!table format=csv file="openpower/isatables/LDSTRM-2P-1S1D.csv"]]
 
-## 1R-1W-CRio (RM-2P-1S1D)
+## LDSTRM-2P-1S2D
 
-[[!table  data="""
-insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-fcfid[u]s | 2P | EXTRA3 | TODO |  |  |  | NONE | FRB | NONE | FRT | 0 | 0 |
-fsqrts | 2P | EXTRA3 | TODO |  |  |  | NONE | FRB | NONE | FRT | 0 | 0 |
-fres | 2P | EXTRA3 | TODO |  |  |  | NONE | FRB | NONE | FRT | 0 | 0 |
-frsqrtes | 2P | EXTRA3 | TODO |  |  |  | NONE | FRB | NONE | FRT | 0 | 0 |
-fsqrt | 2P | EXTRA3 | TODO |  |  |  | NONE | FRB | NONE | FRT | 0 | 0 |
-fre | 2P | EXTRA3 | TODO |  |  |  | NONE | FRB | NONE | FRT | 0 | 0 |
-frsqrte | 2P | EXTRA3 | TODO |  |  |  | NONE | FRB | NONE | FRT | 0 | 0 |
-18/7=mffsfamily | 2P | EXTRA3 | TODO |  |  |  | NONE | FRB | NONE | FRT | 0 | 0 |
-1/8=fneg | 2P | EXTRA3 | TODO |  |  |  | NONE | FRB | NONE | FRT | 0 | 0 |
-2/8=fmr | 2P | EXTRA3 | TODO |  |  |  | NONE | FRB | NONE | FRT | 0 | 0 |
-4/8=fnabs | 2P | EXTRA3 | TODO |  |  |  | NONE | FRB | NONE | FRT | 0 | 0 |
-8/8=fabs | 2P | EXTRA3 | TODO |  |  |  | NONE | FRB | NONE | FRT | 0 | 0 |
-12/8=frin | 2P | EXTRA3 | TODO |  |  |  | NONE | FRB | NONE | FRT | 0 | 0 |
-13/8=friz | 2P | EXTRA3 | TODO |  |  |  | NONE | FRB | NONE | FRT | 0 | 0 |
-14/8=frip | 2P | EXTRA3 | TODO |  |  |  | NONE | FRB | NONE | FRT | 0 | 0 |
-15/8=frim | 2P | EXTRA3 | TODO |  |  |  | NONE | FRB | NONE | FRT | 0 | 0 |
-0/12=frsp | 2P | EXTRA3 | TODO |  |  |  | NONE | FRB | NONE | FRT | 0 | 0 |
-0/14=fctiw | 2P | EXTRA3 | TODO |  |  |  | NONE | FRB | NONE | FRT | 0 | 0 |
-4/14=fctiwu | 2P | EXTRA3 | TODO |  |  |  | NONE | FRB | NONE | FRT | 0 | 0 |
-25/14=fctid | 2P | EXTRA3 | TODO |  |  |  | NONE | FRB | NONE | FRT | 0 | 0 |
-26/14=fcfid | 2P | EXTRA3 | TODO |  |  |  | NONE | FRB | NONE | FRT | 0 | 0 |
-29/14=fctidu | 2P | EXTRA3 | TODO |  |  |  | NONE | FRB | NONE | FRT | 0 | 0 |
-30/14=fcfidu | 2P | EXTRA3 | TODO |  |  |  | NONE | FRB | NONE | FRT | 0 | 0 |
-0/15=fctiwz | 2P | EXTRA3 | TODO |  |  |  | NONE | FRB | NONE | FRT | 0 | 0 |
-4/15=fctiwuz | 2P | EXTRA3 | TODO |  |  |  | NONE | FRB | NONE | FRT | 0 | 0 |
-25/15=fctidz | 2P | EXTRA3 | TODO |  |  |  | NONE | FRB | NONE | FRT | 0 | 0 |
-29/15=fctiduz | 2P | EXTRA3 | TODO |  |  |  | NONE | FRB | NONE | FRT | 0 | 0 |
-"""]]
+[[!table format=csv file="openpower/isatables/LDSTRM-2P-1S2D.csv"]]
 
-## 2R-CRo (RM-1P-2S1D)
+## LDSTRM-2P-2S
 
-[[!table  data="""
-insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-cmp | 1P | EXTRA3 | d:BF | s:RA | s:RB |  | RA | RB | NONE | NONE | NONE | BF |
-cmpl | 1P | EXTRA3 | d:BF | s:RA | s:RB |  | RA | RB | NONE | NONE | NONE | BF |
-cmprb | 1P | EXTRA3 | d:BF | s:RA | s:RB |  | RA | RB | NONE | NONE | NONE | BF |
-cmpeqb | 1P | EXTRA3 | d:BF | s:RA | s:RB |  | RA | RB | NONE | NONE | NONE | BF |
-"""]]
+[[!table format=csv file="openpower/isatables/LDSTRM-2P-2S.csv"]]
 
-## 2R-CRio (RM-1P-2S1D)
+## LDSTRM-2P-2S1D
 
-[[!table  data="""
-insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-0/0=fcmpu | 1P | EXTRA3 | TODO |  |  |  | FRA | FRB | NONE | NONE | 0 | 1 |
-1/0=fcmpo | 1P | EXTRA3 | TODO |  |  |  | FRA | FRB | NONE | NONE | 0 | 1 |
-4/0=ftdiv | 1P | EXTRA3 | TODO |  |  |  | FRA | FRB | NONE | NONE | 0 | 1 |
-"""]]
+[[!table format=csv file="openpower/isatables/LDSTRM-2P-2S1D.csv"]]
 
-## 2R-1W (RM-1P-2S1D)
+## LDSTRM-2P-3S
 
-[[!table  data="""
-insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-bpermd | 1P | EXTRA3 | d:RA | s:RS | s:RB |  | RS | RB | NONE | RA | NONE | NONE |
-modud | 1P | EXTRA3 | d:RT | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | NONE |
-moduw | 1P | EXTRA3 | d:RT | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | NONE |
-cmpb | 1P | EXTRA3 | d:RA | s:RS | s:RB |  | RS | RB | NONE | RA | NONE | NONE |
-modsd | 1P | EXTRA3 | d:RT | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | NONE |
-modsw | 1P | EXTRA3 | d:RT | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | NONE |
-"""]]
+[[!table format=csv file="openpower/isatables/LDSTRM-2P-3S.csv"]]
 
-## 2R-1W-CRo (RM-1P-2S1D)
+## -
 
-[[!table  data="""
-insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-rlwnm | 1P | EXTRA3 | d:RA,d:CR0 | s:RB | s:RS |  | NONE | RB | RS | RA | NONE | CR0 |
-rldcl | 1P | EXTRA3 | d:RA,d:CR0 | s:RB | s:RS |  | NONE | RB | RS | RA | NONE | CR0 |
-rldcr | 1P | EXTRA3 | d:RA,d:CR0 | s:RB | s:RS |  | NONE | RB | RS | RA | NONE | CR0 |
-subfc | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-mulhdu | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-addc | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-mulhwu | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-slw | 1P | EXTRA3 | d:RA,d:CR0 | s:RB | s:RS |  | NONE | RB | RS | RA | NONE | CR0 |
-sld | 1P | EXTRA3 | d:RA,d:CR0 | s:RB | s:RS |  | NONE | RB | RS | RA | NONE | CR0 |
-and | 1P | EXTRA3 | d:RA,d:CR0 | s:RB | s:RS |  | RS | RB | NONE | RA | NONE | CR0 |
-subf | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-andc | 1P | EXTRA3 | d:RA,d:CR0 | s:RB | s:RS |  | RS | RB | NONE | RA | NONE | CR0 |
-mulhd | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-mulhw | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-nor | 1P | EXTRA3 | d:RA,d:CR0 | s:RB | s:RS |  | RS | RB | NONE | RA | NONE | CR0 |
-subfe | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-adde | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-mulld | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-mullw | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-add | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-eqv | 1P | EXTRA3 | d:RA,d:CR0 | s:RB | s:RS |  | RS | RB | NONE | RA | NONE | CR0 |
-xor | 1P | EXTRA3 | d:RA,d:CR0 | s:RB | s:RS |  | RS | RB | NONE | RA | NONE | CR0 |
-divdeu | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-divweu | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-orc | 1P | EXTRA3 | d:RA,d:CR0 | s:RB | s:RS |  | RS | RB | NONE | RA | NONE | CR0 |
-divde | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-divwe | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-or | 1P | EXTRA3 | d:RA,d:CR0 | s:RB | s:RS |  | RS | RB | NONE | RA | NONE | CR0 |
-divdu | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-divwu | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-nand | 1P | EXTRA3 | d:RA,d:CR0 | s:RB | s:RS |  | RS | RB | NONE | RA | NONE | CR0 |
-divd | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-divw | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-subfco | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-mulhdu | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-addco | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-mulhwu | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-srw | 1P | EXTRA3 | d:RA,d:CR0 | s:RB | s:RS |  | NONE | RB | RS | RA | NONE | CR0 |
-srd | 1P | EXTRA3 | d:RA,d:CR0 | s:RB | s:RS |  | NONE | RB | RS | RA | NONE | CR0 |
-subfo | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-mulhd | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-mulhw | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-subfeo | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-addeo | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-mulldo | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-mullwo | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-addo | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-sraw | 1P | EXTRA3 | d:RA,d:CR0 | s:RB | s:RS |  | NONE | RB | RS | RA | NONE | CR0 |
-srad | 1P | EXTRA3 | d:RA,d:CR0 | s:RB | s:RS |  | NONE | RB | RS | RA | NONE | CR0 |
-divdeuo | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-divweuo | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-divdeo | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-divweo | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-divduo | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-divwuo | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-divdo | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-divwo | 1P | EXTRA3 | d:RT,d:CR0 | s:RA | s:RB |  | RA | RB | NONE | RT | NONE | CR0 |
-"""]]
+[[!table format=csv file="openpower/isatables/-.csv"]]
 
-## 2R-1W-CRo (RM-1P-2S1D)
+## RM-2P-1S1D
 
-[[!table  data="""
-insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-rlwimi | 1P | EXTRA3 | d:RA,d:CR0 | s:RA | s:RS |  | RA |  | RS | RA | NONE | CR0 |
-rldimi | 1P | EXTRA3 | d:RA,d:CR0 | s:RA | s:RS |  | RA |  | RS | RA | NONE | CR0 |
-rldimi | 1P | EXTRA3 | d:RA,d:CR0 | s:RA | s:RS |  | RA |  | RS | RA | NONE | CR0 |
-"""]]
+[[!table format=csv file="openpower/isatables/RM-2P-1S1D.csv"]]
 
-## 2R-1W-CRi (RM-1P-3S1D)
+## RM-1P-2S1D
 
-[[!table  data="""
-insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-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 |
-"""]]
+[[!table format=csv file="openpower/isatables/RM-1P-2S1D.csv"]]
 
-## 2R-1W-CRio (RM-1P-2S1D)
+## RM-2P-2S1D
 
-[[!table  data="""
-insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-fdivs | 1P | EXTRA3 | TODO |  |  |  | FRA | FRB | NONE | FRT | 0 | 0 |
-fsubs | 1P | EXTRA3 | TODO |  |  |  | FRA | FRB | NONE | FRT | 0 | 0 |
-fadds | 1P | EXTRA3 | TODO |  |  |  | FRA | FRB | NONE | FRT | 0 | 0 |
-fmuls | 1P | EXTRA3 | TODO |  |  |  | FRA | NONE | FRC | FRT | 0 | 0 |
-fdiv | 1P | EXTRA3 | TODO |  |  |  | FRA | FRB | NONE | FRT | 0 | 0 |
-fsub | 1P | EXTRA3 | TODO |  |  |  | FRA | FRB | NONE | FRT | 0 | 0 |
-fadd | 1P | EXTRA3 | TODO |  |  |  | FRA | FRB | NONE | FRT | 0 | 0 |
-fmul | 1P | EXTRA3 | TODO |  |  |  | FRA | NONE | FRC | FRT | 0 | 0 |
-26/6=fmrgow | 1P | EXTRA3 | TODO |  |  |  | FRA | FRB | NONE | FRT | 0 | 0 |
-30/6=fmrgew | 1P | EXTRA3 | TODO |  |  |  | FRA | FRB | NONE | FRT | 0 | 0 |
-0/8=fcpsgn | 1P | EXTRA3 | TODO |  |  |  | FRA | FRB | NONE | FRT | 0 | 0 |
-"""]]
+[[!table format=csv file="openpower/isatables/RM-2P-2S1D.csv"]]
 
-## 3R-1W-CRio (RM-1P-3S1D)
+## RM-1P-3S1D
 
-[[!table  data="""
-insn | Ptype | Etype | 0 | 1 | 2 | 3 |
-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 |
-"""]]
+[[!table format=csv file="openpower/isatables/RM-1P-3S1D.csv"]]