table plugin
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 7 Oct 2020 14:43:00 +0000 (15:43 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 7 Oct 2020 14:43:00 +0000 (15:43 +0100)
openpower/opcode_regs_deduped.mdwn

index f3f86101cca931e6be777c2f56df691543d4ec53..5d78273ddd6abfb7c5f14c75b205ccd3bdf1e6d8 100644 (file)
@@ -2,41 +2,76 @@
 
 [[!table  data="""
 |in1 | in2 | in3 | out | CR in | CR out | ldst len | rc | lk|
+|R | R | 0 | 0 | 0 | 0 | 0 | 0 | 0|
+|R | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0|
+|R | R | 0 | R | 0 | 0 | 0 | 0 | 0|
+|R | R | 0 | 0 | 0 | 1 | 0 | 0 | 0|
+|R | R | R | 0 | 0 | 1 | 1 | R | 0|
 |R | 0 | 0 | R | 0 | 0 | 1 | 0 | 0|
-|0 | 0 | 0 | 0 | 0 | 0 | 0 | R | 0|
-|R | R | 0 | R | 0 | 1 | 0 | R | 0|
+|R | 0 | R | R | 0 | 0 | 0 | R | 0|
+|R | 0 | 0 | R | 0 | 0 | 0 | 0 | 0|
+|R | 0 | 0 | R | 0 | 1 | 0 | 1 | 0|
+|0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1|
 |0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0|
+|0 | 0 | 0 | 0 | 0 | 0 | 0 | R | 0|
+|0 | 0 | 0 | 0 | 1 | 1 | 1 | R | |
 |0 | R | R | R | 0 | 1 | 0 | R | 0|
-|R | 0 | 0 | R | 0 | 0 | 0 | R | 0|
 |0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1|
-|0 | 0 | 0 | 0 | 1 | 1 | 1 | R | |
-|0 | R | R | R | 0 | 0 | 0 | R | 0|
-|R | 0 | 0 | R | 0 | 1 | 0 | R | 0|
+|R | R | 0 | R | 0 | 0 | 1 | 0 | 0|
+|0 | 0 | 0 | R | 1 | 0 | 0 | 0 | 0|
+|R | 0 | 0 | R | 0 | 0 | 0 | R | 0|
+|0 | R | 0 | 0 | 0 | 0 | 0 | 0 | 0|
+|0 | 0 | 0 | R | 0 | 0 | 0 | 0 | 0|
+|R | 0 | 0 | R | 0 | 1 | 0 | 0 | 0|
 |0 | 0 | R | R | 0 | 1 | 0 | R | 0|
 |R | 0 | 0 | R | 0 | 1 | 1 | R | 0|
+|0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0|
 |R | R | 0 | R | 1 | 0 | 0 | 0 | 0|
-|R | R | 0 | R | 0 | 0 | 0 | 0 | 0|
 |R | R | R | 0 | 0 | 0 | 1 | 0 | 0|
-|0 | R | 0 | 0 | 0 | 0 | 0 | 0 | 0|
+|R | 0 | 0 | R | 0 | 1 | 0 | R | 0|
+|R | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0|
 |R | 0 | R | 0 | 0 | 0 | 1 | 0 | 0|
-|R | 0 | 0 | R | 0 | 0 | 0 | 0 | 0|
+|0 | R | R | R | 0 | 0 | 0 | R | 0|
 |R | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0|
+|R | R | 0 | R | 0 | 1 | 0 | R | 0|
 |0 | 0 | R | R | 0 | 0 | 0 | R | 0|
-|R | R | 0 | 0 | 0 | 0 | 0 | 0 | 0|
 |R | 0 | R | R | 0 | 1 | 0 | R | 0|
-|R | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0|
-|R | 0 | R | R | 0 | 0 | 0 | R | 0|
-|R | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0|
-|R | 0 | 0 | R | 0 | 1 | 0 | 1 | 0|
-|0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0|
-|0 | 0 | 0 | R | 1 | 0 | 0 | 0 | 0|
-|0 | 0 | 0 | R | 0 | 0 | 0 | 0 | 0|
-|R | R | 0 | 0 | 0 | 1 | 0 | 0 | 0|
-|0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1|
-|R | R | 0 | R | 0 | 0 | 1 | 0 | 0|
-|R | 0 | 0 | R | 0 | 1 | 0 | 0 | 0|
-|R | R | R | 0 | 0 | 1 | 1 | R | 0|
-]]
+"""]]
+
+##  in1: R in2: R in3: 0 out: 0 CR in: 0 CR out: 0 ldst len: 0 rc: 0 lk: 0
+
+ *  ('minor_31.csv', '0b1111110110', 'dcbz')
+ *  ('minor_31.csv', '0b0001000100', 'td')
+ *  ('minor_31.csv', '0b0000000100', 'tw')
+
+##  in1: R in2: 0 in3: 0 out: 0 CR in: 0 CR out: 0 ldst len: 0 rc: 0 lk: 0
+
+ *  ('major.csv', '2', 'tdi')
+ *  ('major.csv', '3', 'twi')
+ *  ('minor_31.csv', '0b0010110010', 'mtmsrd')
+ *  ('minor_31.csv', '0b0010010010', 'mtmsr')
+ *  ('minor_31.csv', '0b0111010011', 'mtspr')
+
+##  in1: R in2: R in3: 0 out: R CR in: 0 CR out: 0 ldst len: 0 rc: 0 lk: 0
+
+ *  ('minor_31.csv', '0b0011111100', 'bpermd')
+ *  ('minor_31.csv', '0b0111111100', 'cmpb')
+ *  ('minor_31.csv', '0b0100001001', 'modud')
+ *  ('minor_31.csv', '0b0100001011', 'moduw')
+ *  ('minor_31.csv', '0b1100001001', 'modsd')
+ *  ('minor_31.csv', '0b1100001011', 'modsw')
+
+##  in1: R in2: R in3: 0 out: 0 CR in: 0 CR out: 1 ldst len: 0 rc: 0 lk: 0
+
+ *  ('minor_31.csv', '0b0000000000', 'cmp')
+ *  ('minor_31.csv', '0b0011100000', 'cmpeqb')
+ *  ('minor_31.csv', '0b0000100000', 'cmpl')
+
+##  in1: R in2: R in3: R out: 0 CR in: 0 CR out: 1 ldst len: 1 rc: R lk: 0
+
+ *  ('minor_31.csv', '0b1010110110', 'stbcx')
+ *  ('minor_31.csv', '0b0011110111', 'stbux')
+ *  ('minor_31.csv', '0b0011010111', 'stbx')
 
 ##  in1: R in2: 0 in3: 0 out: R CR in: 0 CR out: 0 ldst len: 1 rc: 0 lk: 0
 
  *  ('minor_31.csv', '0b0010111010', 'prtyd')
  *  ('minor_31.csv', '0b0010011010', 'prtyw')
 
-##  in1: 0 in2: 0 in3: 0 out: 0 CR in: 0 CR out: 0 ldst len: 0 rc: R lk: 0
+##  in1: R in2: 0 in3: R out: R CR in: 0 CR out: 0 ldst len: 0 rc: R lk: 0
 
- *  ('minor_19_00000.csv', '0b00010', 'add pcis not implemented yet')
- *  ('extra.csv', '000000---------------0100000000-', 'attn')
+ *  ('major.csv', '20', 'rlwimi')
 
-##  in1: R in2: R in3: 0 out: R CR in: 0 CR out: 1 ldst len: 0 rc: R lk: 0
+##  in1: R in2: 0 in3: 0 out: R CR in: 0 CR out: 0 ldst len: 0 rc: 0 lk: 0
 
- *  ('minor_31.csv', '0b0100001010', 'add')
- *  ('minor_31.csv', '0b1100001010', 'addo')
- *  ('minor_31.csv', '0b0000001010', 'addc')
- *  ('minor_31.csv', '0b1000001010', 'addco')
- *  ('minor_31.csv', '0b0010001010', 'adde')
- *  ('minor_31.csv', '0b1010001010', 'addeo')
- *  ('minor_31.csv', '0b0000011100', 'and')
- *  ('minor_31.csv', '0b0000111100', 'andc')
- *  ('minor_31.csv', '0b0110001001', 'divdeu')
- *  ('minor_31.csv', '0b1110001001', 'divdeuo')
- *  ('minor_31.csv', '0b0110001011', 'divweu')
- *  ('minor_31.csv', '0b1110001011', 'divweuo')
- *  ('minor_31.csv', '0b0110101001', 'divde')
- *  ('minor_31.csv', '0b1110101001', 'divdeo')
- *  ('minor_31.csv', '0b0110101011', 'divwe')
- *  ('minor_31.csv', '0b1110101011', 'divweo')
- *  ('minor_31.csv', '0b0111001001', 'divdu')
- *  ('minor_31.csv', '0b1111001001', 'divduo')
- *  ('minor_31.csv', '0b0111001011', 'divwu')
- *  ('minor_31.csv', '0b1111001011', 'divwuo')
- *  ('minor_31.csv', '0b0111101001', 'divd')
- *  ('minor_31.csv', '0b1111101001', 'divdo')
- *  ('minor_31.csv', '0b0111101011', 'divw')
- *  ('minor_31.csv', '0b1111101011', 'divwo')
- *  ('minor_31.csv', '0b0100011100', 'eqv')
- *  ('minor_31.csv', '0b0001001001', 'mulhd')
- *  ('minor_31.csv', '0b0000001001', 'mulhdu')
- *  ('minor_31.csv', '0b0001001011', 'mulhw')
- *  ('minor_31.csv', '0b0000001011', 'mulhwu')
- *  ('minor_31.csv', '0b1001001001', 'mulhd')
- *  ('minor_31.csv', '0b1000001001', 'mulhdu')
- *  ('minor_31.csv', '0b1001001011', 'mulhw')
- *  ('minor_31.csv', '0b1000001011', 'mulhwu')
- *  ('minor_31.csv', '0b0011101001', 'mulld')
- *  ('minor_31.csv', '0b1011101001', 'mulldo')
- *  ('minor_31.csv', '0b0011101011', 'mullw')
- *  ('minor_31.csv', '0b1011101011', 'mullwo')
- *  ('minor_31.csv', '0b0111011100', 'nand')
- *  ('minor_31.csv', '0b0001111100', 'nor')
- *  ('minor_31.csv', '0b0110111100', 'or')
- *  ('minor_31.csv', '0b0110011100', 'orc')
- *  ('minor_31.csv', '0b0000101000', 'subf')
- *  ('minor_31.csv', '0b1000101000', 'subfo')
- *  ('minor_31.csv', '0b0000001000', 'subfc')
- *  ('minor_31.csv', '0b1000001000', 'subfco')
- *  ('minor_31.csv', '0b0010001000', 'subfe')
- *  ('minor_31.csv', '0b1010001000', 'subfeo')
- *  ('minor_31.csv', '0b0100111100', 'xor')
+ *  ('major.csv', '12', 'addic')
+ *  ('major.csv', '14', 'addi')
+ *  ('major.csv', '15', 'addis')
+ *  ('major.csv', '24', 'ori')
+ *  ('major.csv', '25', 'oris')
+ *  ('major.csv', '8', 'subfic')
+ *  ('major.csv', '26', 'xori')
+ *  ('major.csv', '27', 'xoris')
+
+##  in1: R in2: 0 in3: 0 out: R CR in: 0 CR out: 1 ldst len: 0 rc: 1 lk: 0
+
+ *  ('major.csv', '13', 'addic.')
+ *  ('major.csv', '28', 'andi.')
+ *  ('major.csv', '29', 'andis.')
+
+##  in1: 0 in2: 0 in3: 0 out: 0 CR in: 1 CR out: 0 ldst len: 0 rc: 0 lk: 1
+
+ *  ('major.csv', '16', 'bc')
+ *  ('minor_19.csv', '0b1000010000', 'bcctr')
+ *  ('minor_19.csv', '0b0000010000', 'bclr')
+ *  ('minor_19.csv', '0b1000110000', 'bctar')
 
 ##  in1: 0 in2: 0 in3: 0 out: 0 CR in: 0 CR out: 0 ldst len: 0 rc: 0 lk: 0
 
  *  ('minor_31.csv', '0b0111110010', 'slbia')
  *  ('minor_31.csv', '0b1001010110', 'sync')
 
+##  in1: 0 in2: 0 in3: 0 out: 0 CR in: 0 CR out: 0 ldst len: 0 rc: R lk: 0
+
+ *  ('minor_19_00000.csv', '0b00010', 'add pcis not implemented yet')
+ *  ('extra.csv', '000000---------------0100000000-', 'attn')
+
+##  in1: 0 in2: 0 in3: 0 out: 0 CR in: 1 CR out: 1 ldst len: 1 rc: R lk: 
+
+ *  ('minor_31.csv', '0b0011000000', 'cmprb')
+ *  ('minor_31.csv', '0b1011110011', 'darn')
+ *  ('minor_31.csv', '0b1000000000', 'mcrxr')
+ *  ('minor_31.csv', '0b1001000000', 'mcrxrx')
+
 ##  in1: 0 in2: R in3: R out: R CR in: 0 CR out: 1 ldst len: 0 rc: R lk: 0
 
  *  ('minor_30.csv', '0b1000', 'rldcl')
  *  ('minor_31.csv', '0b1000011011', 'srd')
  *  ('minor_31.csv', '0b1000011000', 'srw')
 
+##  in1: 0 in2: 0 in3: 0 out: 0 CR in: 0 CR out: 0 ldst len: 0 rc: 0 lk: 1
+
+ *  ('major.csv', '18', 'b')
+
+##  in1: R in2: R in3: 0 out: R CR in: 0 CR out: 0 ldst len: 1 rc: 0 lk: 0
+
+ *  ('minor_31.csv', '0b0000110100', 'lbarx')
+ *  ('minor_31.csv', '0b1101010101', 'lbzcix')
+ *  ('minor_31.csv', '0b0001110111', 'lbzux')
+ *  ('minor_31.csv', '0b0001010111', 'lbzx')
+ *  ('minor_31.csv', '0b0001010100', 'ldarx')
+ *  ('minor_31.csv', '0b1000010100', 'ldbrx')
+ *  ('minor_31.csv', '0b1101110101', 'ldcix')
+ *  ('minor_31.csv', '0b0000110101', 'ldux')
+ *  ('minor_31.csv', '0b0000010101', 'ldx')
+ *  ('minor_31.csv', '0b0001110100', 'lharx')
+ *  ('minor_31.csv', '0b0101110111', 'lhaux')
+ *  ('minor_31.csv', '0b0101010111', 'lhax')
+ *  ('minor_31.csv', '0b1100010110', 'lhbrx')
+ *  ('minor_31.csv', '0b1100110101', 'lhzcix')
+ *  ('minor_31.csv', '0b0100110111', 'lhzux')
+ *  ('minor_31.csv', '0b0100010111', 'lhzx')
+ *  ('minor_31.csv', '0b0000010100', 'lwarx')
+ *  ('minor_31.csv', '0b0101110101', 'lwaux')
+ *  ('minor_31.csv', '0b0101010101', 'lwax')
+ *  ('minor_31.csv', '0b1000010110', 'lwbrx')
+ *  ('minor_31.csv', '0b1100010101', 'lwzcix')
+ *  ('minor_31.csv', '0b0000110111', 'lwzux')
+ *  ('minor_31.csv', '0b0000010111', 'lwzx')
+
+##  in1: 0 in2: 0 in3: 0 out: R CR in: 1 CR out: 0 ldst len: 0 rc: 0 lk: 0
+
+ *  ('minor_31.csv', '0b0000010011', 'mfcr/mfocrf')
+ *  ('minor_31.csv', '0b0010000000', 'setb')
+
 ##  in1: R in2: 0 in3: 0 out: R CR in: 0 CR out: 0 ldst len: 0 rc: R lk: 0
 
  *  ('minor_31.csv', '0b0001101000', 'neg')
  *  ('minor_31.csv', '0b1001101000', 'nego')
 
-##  in1: 0 in2: 0 in3: 0 out: 0 CR in: 0 CR out: 0 ldst len: 0 rc: 0 lk: 1
-
- *  ('major.csv', '18', 'b')
-
-##  in1: 0 in2: 0 in3: 0 out: 0 CR in: 1 CR out: 1 ldst len: 1 rc: R lk: 
+##  in1: 0 in2: R in3: 0 out: 0 CR in: 0 CR out: 0 ldst len: 0 rc: 0 lk: 0
 
- *  ('minor_31.csv', '0b0011000000', 'cmprb')
- *  ('minor_31.csv', '0b1011110011', 'darn')
- *  ('minor_31.csv', '0b1000000000', 'mcrxr')
- *  ('minor_31.csv', '0b1001000000', 'mcrxrx')
+ *  ('minor_31.csv', '0b0100110010', 'tlbie')
+ *  ('minor_31.csv', '0b0100010010', 'tlbiel')
 
-##  in1: 0 in2: R in3: R out: R CR in: 0 CR out: 0 ldst len: 0 rc: R lk: 0
+##  in1: 0 in2: 0 in3: 0 out: R CR in: 0 CR out: 0 ldst len: 0 rc: 0 lk: 0
 
- *  ('major.csv', '23', 'rlwnm')
+ *  ('extra.csv', '000001---------------0000000011-', 'sim_cfg')
+ *  ('minor_31.csv', '0b0001010011', 'mfmsr')
+ *  ('minor_31.csv', '0b0101010011', 'mfspr')
 
-##  in1: R in2: 0 in3: 0 out: R CR in: 0 CR out: 1 ldst len: 0 rc: R lk: 0
+##  in1: R in2: 0 in3: 0 out: R CR in: 0 CR out: 1 ldst len: 0 rc: 0 lk: 0
 
- *  ('minor_31.csv', '0b0011101010', 'addme')
- *  ('minor_31.csv', '0b1011101010', 'addmeo')
- *  ('minor_31.csv', '0b0011001010', 'addze')
- *  ('minor_31.csv', '0b1011001010', 'addzeo')
- *  ('minor_31.csv', '0b0000111010', 'cntlzd')
- *  ('minor_31.csv', '0b0000011010', 'cntlzw')
- *  ('minor_31.csv', '0b1000111010', 'cnttzd')
- *  ('minor_31.csv', '0b1000011010', 'cnttzw')
- *  ('minor_31.csv', '0b0011101000', 'subfme')
- *  ('minor_31.csv', '0b1011101000', 'subfmeo')
- *  ('minor_31.csv', '0b0011001000', 'subfze')
- *  ('minor_31.csv', '0b1011001000', 'subfzeo')
+ *  ('major.csv', '7', 'mulli')
 
 ##  in1: 0 in2: 0 in3: R out: R CR in: 0 CR out: 1 ldst len: 0 rc: R lk: 0
 
  *  ('minor_31.csv', '0b1110011010', 'extsh')
  *  ('minor_31.csv', '0b1111011010', 'extsw')
 
+##  in1: 0 in2: 0 in3: 0 out: 0 CR in: 1 CR out: 1 ldst len: 0 rc: 0 lk: 0
+
+ *  ('minor_19.csv', '0b0000000000', 'mcrf')
+ *  ('minor_19.csv', '0b0100000001', 'crand')
+ *  ('minor_19.csv', '0b0010000001', 'crandc')
+ *  ('minor_19.csv', '0b0100100001', 'creqv')
+ *  ('minor_19.csv', '0b0011100001', 'crnand')
+ *  ('minor_19.csv', '0b0000100001', 'crnor')
+ *  ('minor_19.csv', '0b0111000001', 'cror')
+ *  ('minor_19.csv', '0b0110100001', 'crorc')
+ *  ('minor_19.csv', '0b0011000001', 'crxor')
+
 ##  in1: R in2: R in3: 0 out: R CR in: 1 CR out: 0 ldst len: 0 rc: 0 lk: 0
 
  *  ('minor_31.csv', '0b0000001111', 'isel')
  *  ('minor_31.csv', '0b1111001111', 'isel')
  *  ('minor_31.csv', '0b1111101111', 'isel')
 
-##  in1: R in2: R in3: 0 out: R CR in: 0 CR out: 0 ldst len: 0 rc: 0 lk: 0
-
- *  ('minor_31.csv', '0b0011111100', 'bpermd')
- *  ('minor_31.csv', '0b0111111100', 'cmpb')
- *  ('minor_31.csv', '0b0100001001', 'modud')
- *  ('minor_31.csv', '0b0100001011', 'moduw')
- *  ('minor_31.csv', '0b1100001001', 'modsd')
- *  ('minor_31.csv', '0b1100001011', 'modsw')
-
 ##  in1: R in2: R in3: R out: 0 CR in: 0 CR out: 0 ldst len: 1 rc: 0 lk: 0
 
  *  ('minor_31.csv', '0b1111010101', 'stbcix')
  *  ('minor_31.csv', '0b0010110111', 'stwux')
  *  ('minor_31.csv', '0b0010010111', 'stwx')
 
-##  in1: 0 in2: R in3: 0 out: 0 CR in: 0 CR out: 0 ldst len: 0 rc: 0 lk: 0
+##  in1: R in2: 0 in3: 0 out: R CR in: 0 CR out: 1 ldst len: 0 rc: R lk: 0
 
- *  ('minor_31.csv', '0b0100110010', 'tlbie')
- *  ('minor_31.csv', '0b0100010010', 'tlbiel')
+ *  ('minor_31.csv', '0b0011101010', 'addme')
+ *  ('minor_31.csv', '0b1011101010', 'addmeo')
+ *  ('minor_31.csv', '0b0011001010', 'addze')
+ *  ('minor_31.csv', '0b1011001010', 'addzeo')
+ *  ('minor_31.csv', '0b0000111010', 'cntlzd')
+ *  ('minor_31.csv', '0b0000011010', 'cntlzw')
+ *  ('minor_31.csv', '0b1000111010', 'cnttzd')
+ *  ('minor_31.csv', '0b1000011010', 'cnttzw')
+ *  ('minor_31.csv', '0b0011101000', 'subfme')
+ *  ('minor_31.csv', '0b1011101000', 'subfmeo')
+ *  ('minor_31.csv', '0b0011001000', 'subfze')
+ *  ('minor_31.csv', '0b1011001000', 'subfzeo')
+
+##  in1: R in2: 0 in3: 0 out: 0 CR in: 1 CR out: 1 ldst len: 0 rc: 0 lk: 0
+
+ *  ('minor_31.csv', '0b0010010000', 'mtcrf/mtocrf')
 
 ##  in1: R in2: 0 in3: R out: 0 CR in: 0 CR out: 0 ldst len: 1 rc: 0 lk: 0
 
  *  ('major.csv', '36', 'stw')
  *  ('major.csv', '37', 'stwu')
 
-##  in1: R in2: 0 in3: 0 out: R CR in: 0 CR out: 0 ldst len: 0 rc: 0 lk: 0
+##  in1: 0 in2: R in3: R out: R CR in: 0 CR out: 0 ldst len: 0 rc: R lk: 0
 
- *  ('major.csv', '12', 'addic')
- *  ('major.csv', '14', 'addi')
- *  ('major.csv', '15', 'addis')
- *  ('major.csv', '24', 'ori')
- *  ('major.csv', '25', 'oris')
- *  ('major.csv', '8', 'subfic')
- *  ('major.csv', '26', 'xori')
- *  ('major.csv', '27', 'xoris')
+ *  ('major.csv', '23', 'rlwnm')
 
 ##  in1: R in2: 0 in3: 0 out: 0 CR in: 0 CR out: 1 ldst len: 0 rc: 0 lk: 0
 
  *  ('major.csv', '11', 'cmpi')
  *  ('major.csv', '10', 'cmpli')
 
-##  in1: 0 in2: 0 in3: R out: R CR in: 0 CR out: 0 ldst len: 0 rc: R lk: 0
+##  in1: R in2: R in3: 0 out: R CR in: 0 CR out: 1 ldst len: 0 rc: R lk: 0
 
- *  ('major.csv', '21', 'rlwinm')
+ *  ('minor_31.csv', '0b0100001010', 'add')
+ *  ('minor_31.csv', '0b1100001010', 'addo')
+ *  ('minor_31.csv', '0b0000001010', 'addc')
+ *  ('minor_31.csv', '0b1000001010', 'addco')
+ *  ('minor_31.csv', '0b0010001010', 'adde')
+ *  ('minor_31.csv', '0b1010001010', 'addeo')
+ *  ('minor_31.csv', '0b0000011100', 'and')
+ *  ('minor_31.csv', '0b0000111100', 'andc')
+ *  ('minor_31.csv', '0b0110001001', 'divdeu')
+ *  ('minor_31.csv', '0b1110001001', 'divdeuo')
+ *  ('minor_31.csv', '0b0110001011', 'divweu')
+ *  ('minor_31.csv', '0b1110001011', 'divweuo')
+ *  ('minor_31.csv', '0b0110101001', 'divde')
+ *  ('minor_31.csv', '0b1110101001', 'divdeo')
+ *  ('minor_31.csv', '0b0110101011', 'divwe')
+ *  ('minor_31.csv', '0b1110101011', 'divweo')
+ *  ('minor_31.csv', '0b0111001001', 'divdu')
+ *  ('minor_31.csv', '0b1111001001', 'divduo')
+ *  ('minor_31.csv', '0b0111001011', 'divwu')
+ *  ('minor_31.csv', '0b1111001011', 'divwuo')
+ *  ('minor_31.csv', '0b0111101001', 'divd')
+ *  ('minor_31.csv', '0b1111101001', 'divdo')
+ *  ('minor_31.csv', '0b0111101011', 'divw')
+ *  ('minor_31.csv', '0b1111101011', 'divwo')
+ *  ('minor_31.csv', '0b0100011100', 'eqv')
+ *  ('minor_31.csv', '0b0001001001', 'mulhd')
+ *  ('minor_31.csv', '0b0000001001', 'mulhdu')
+ *  ('minor_31.csv', '0b0001001011', 'mulhw')
+ *  ('minor_31.csv', '0b0000001011', 'mulhwu')
+ *  ('minor_31.csv', '0b1001001001', 'mulhd')
+ *  ('minor_31.csv', '0b1000001001', 'mulhdu')
+ *  ('minor_31.csv', '0b1001001011', 'mulhw')
+ *  ('minor_31.csv', '0b1000001011', 'mulhwu')
+ *  ('minor_31.csv', '0b0011101001', 'mulld')
+ *  ('minor_31.csv', '0b1011101001', 'mulldo')
+ *  ('minor_31.csv', '0b0011101011', 'mullw')
+ *  ('minor_31.csv', '0b1011101011', 'mullwo')
+ *  ('minor_31.csv', '0b0111011100', 'nand')
+ *  ('minor_31.csv', '0b0001111100', 'nor')
+ *  ('minor_31.csv', '0b0110111100', 'or')
+ *  ('minor_31.csv', '0b0110011100', 'orc')
+ *  ('minor_31.csv', '0b0000101000', 'subf')
+ *  ('minor_31.csv', '0b1000101000', 'subfo')
+ *  ('minor_31.csv', '0b0000001000', 'subfc')
+ *  ('minor_31.csv', '0b1000001000', 'subfco')
+ *  ('minor_31.csv', '0b0010001000', 'subfe')
+ *  ('minor_31.csv', '0b1010001000', 'subfeo')
+ *  ('minor_31.csv', '0b0100111100', 'xor')
 
-##  in1: R in2: R in3: 0 out: 0 CR in: 0 CR out: 0 ldst len: 0 rc: 0 lk: 0
+##  in1: 0 in2: 0 in3: R out: R CR in: 0 CR out: 0 ldst len: 0 rc: R lk: 0
 
- *  ('minor_31.csv', '0b1111110110', 'dcbz')
- *  ('minor_31.csv', '0b0001000100', 'td')
- *  ('minor_31.csv', '0b0000000100', 'tw')
+ *  ('major.csv', '21', 'rlwinm')
 
 ##  in1: R in2: 0 in3: R out: R CR in: 0 CR out: 1 ldst len: 0 rc: R lk: 0
 
  *  ('minor_30.csv', '0b0110', 'rldimi')
  *  ('minor_30.csv', '0b0111', 'rldimi')
 
-##  in1: R in2: 0 in3: 0 out: 0 CR in: 1 CR out: 1 ldst len: 0 rc: 0 lk: 0
-
- *  ('minor_31.csv', '0b0010010000', 'mtcrf/mtocrf')
-
-##  in1: R in2: 0 in3: R out: R CR in: 0 CR out: 0 ldst len: 0 rc: R lk: 0
-
- *  ('major.csv', '20', 'rlwimi')
-
-##  in1: R in2: 0 in3: 0 out: 0 CR in: 0 CR out: 0 ldst len: 0 rc: 0 lk: 0
-
- *  ('major.csv', '2', 'tdi')
- *  ('major.csv', '3', 'twi')
- *  ('minor_31.csv', '0b0010110010', 'mtmsrd')
- *  ('minor_31.csv', '0b0010010010', 'mtmsr')
- *  ('minor_31.csv', '0b0111010011', 'mtspr')
-
-##  in1: R in2: 0 in3: 0 out: R CR in: 0 CR out: 1 ldst len: 0 rc: 1 lk: 0
-
- *  ('major.csv', '13', 'addic.')
- *  ('major.csv', '28', 'andi.')
- *  ('major.csv', '29', 'andis.')
-
-##  in1: 0 in2: 0 in3: 0 out: 0 CR in: 1 CR out: 1 ldst len: 0 rc: 0 lk: 0
-
- *  ('minor_19.csv', '0b0000000000', 'mcrf')
- *  ('minor_19.csv', '0b0100000001', 'crand')
- *  ('minor_19.csv', '0b0010000001', 'crandc')
- *  ('minor_19.csv', '0b0100100001', 'creqv')
- *  ('minor_19.csv', '0b0011100001', 'crnand')
- *  ('minor_19.csv', '0b0000100001', 'crnor')
- *  ('minor_19.csv', '0b0111000001', 'cror')
- *  ('minor_19.csv', '0b0110100001', 'crorc')
- *  ('minor_19.csv', '0b0011000001', 'crxor')
-
-##  in1: 0 in2: 0 in3: 0 out: R CR in: 1 CR out: 0 ldst len: 0 rc: 0 lk: 0
-
- *  ('minor_31.csv', '0b0000010011', 'mfcr/mfocrf')
- *  ('minor_31.csv', '0b0010000000', 'setb')
-
-##  in1: 0 in2: 0 in3: 0 out: R CR in: 0 CR out: 0 ldst len: 0 rc: 0 lk: 0
-
- *  ('extra.csv', '000001---------------0000000011-', 'sim_cfg')
- *  ('minor_31.csv', '0b0001010011', 'mfmsr')
- *  ('minor_31.csv', '0b0101010011', 'mfspr')
-
-##  in1: R in2: R in3: 0 out: 0 CR in: 0 CR out: 1 ldst len: 0 rc: 0 lk: 0
-
- *  ('minor_31.csv', '0b0000000000', 'cmp')
- *  ('minor_31.csv', '0b0011100000', 'cmpeqb')
- *  ('minor_31.csv', '0b0000100000', 'cmpl')
-
-##  in1: 0 in2: 0 in3: 0 out: 0 CR in: 1 CR out: 0 ldst len: 0 rc: 0 lk: 1
-
- *  ('major.csv', '16', 'bc')
- *  ('minor_19.csv', '0b1000010000', 'bcctr')
- *  ('minor_19.csv', '0b0000010000', 'bclr')
- *  ('minor_19.csv', '0b1000110000', 'bctar')
-
-##  in1: R in2: R in3: 0 out: R CR in: 0 CR out: 0 ldst len: 1 rc: 0 lk: 0
-
- *  ('minor_31.csv', '0b0000110100', 'lbarx')
- *  ('minor_31.csv', '0b1101010101', 'lbzcix')
- *  ('minor_31.csv', '0b0001110111', 'lbzux')
- *  ('minor_31.csv', '0b0001010111', 'lbzx')
- *  ('minor_31.csv', '0b0001010100', 'ldarx')
- *  ('minor_31.csv', '0b1000010100', 'ldbrx')
- *  ('minor_31.csv', '0b1101110101', 'ldcix')
- *  ('minor_31.csv', '0b0000110101', 'ldux')
- *  ('minor_31.csv', '0b0000010101', 'ldx')
- *  ('minor_31.csv', '0b0001110100', 'lharx')
- *  ('minor_31.csv', '0b0101110111', 'lhaux')
- *  ('minor_31.csv', '0b0101010111', 'lhax')
- *  ('minor_31.csv', '0b1100010110', 'lhbrx')
- *  ('minor_31.csv', '0b1100110101', 'lhzcix')
- *  ('minor_31.csv', '0b0100110111', 'lhzux')
- *  ('minor_31.csv', '0b0100010111', 'lhzx')
- *  ('minor_31.csv', '0b0000010100', 'lwarx')
- *  ('minor_31.csv', '0b0101110101', 'lwaux')
- *  ('minor_31.csv', '0b0101010101', 'lwax')
- *  ('minor_31.csv', '0b1000010110', 'lwbrx')
- *  ('minor_31.csv', '0b1100010101', 'lwzcix')
- *  ('minor_31.csv', '0b0000110111', 'lwzux')
- *  ('minor_31.csv', '0b0000010111', 'lwzx')
-
-##  in1: R in2: 0 in3: 0 out: R CR in: 0 CR out: 1 ldst len: 0 rc: 0 lk: 0
-
- *  ('major.csv', '7', 'mulli')
-
-##  in1: R in2: R in3: R out: 0 CR in: 0 CR out: 1 ldst len: 1 rc: R lk: 0
-
- *  ('minor_31.csv', '0b1010110110', 'stbcx')
- *  ('minor_31.csv', '0b0011110111', 'stbux')
- *  ('minor_31.csv', '0b0011010111', 'stbx')
-