@@ -60,7 +60,7 @@ architecture behaviour of decode1 is
6060 41 => (LDST, OP_LOAD, RA_OR_ZERO, CONST_SI, NONE, RT, '0' , '0' , '0' , '0' , ZERO, '0' , is2B, '0' , '0' , '1' , '0' , '0' , '0' , NONE, '0' , '0' ), -- lhzu
6161 32 => (LDST, OP_LOAD, RA_OR_ZERO, CONST_SI, NONE, RT, '0' , '0' , '0' , '0' , ZERO, '0' , is4B, '0' , '0' , '0' , '0' , '0' , '0' , NONE, '0' , '0' ), -- lwz
6262 33 => (LDST, OP_LOAD, RA_OR_ZERO, CONST_SI, NONE, RT, '0' , '0' , '0' , '0' , ZERO, '0' , is4B, '0' , '0' , '1' , '0' , '0' , '0' , NONE, '0' , '0' ), -- lwzu
63- 7 => (ALU, OP_MUL_L64, RA, CONST_SI, NONE, RT, '0' , '1 ' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '0' , '1' , NONE, '0' , '0' ), -- mulli
63+ 7 => (ALU, OP_MUL_L64, RA, CONST_SI, NONE, RT, '0' , '0 ' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '0' , '1' , NONE, '0' , '0' ), -- mulli
6464 24 => (ALU, OP_OR, NONE, CONST_UI, RS, RA, '0' , '0' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '0' , '0' , NONE, '0' , '0' ), -- ori
6565 25 => (ALU, OP_OR, NONE, CONST_UI_HI, RS, RA, '0' , '0' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '0' , '0' , NONE, '0' , '0' ), -- oris
6666 20 => (ALU, OP_RLC, RA, CONST_SH32, RS, RA, '0' , '0' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '1' , '0' , RC, '0' , '0' ), -- rlwimi
@@ -262,19 +262,19 @@ architecture behaviour of decode1 is
262262 2#0010010000# => (ALU, OP_MTCRF, NONE, NONE, RS, NONE, '0' , '1' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '0' , '0' , NONE, '0' , '0' ), -- mtcrf/mtocrf
263263 2#0010110010# => (ALU, OP_MTMSRD, NONE, NONE, RS, NONE, '0' , '0' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '0' , '0' , NONE, '0' , '1' ), -- mtmsrd # ignore top bits and d
264264 2#0111010011# => (ALU, OP_MTSPR, NONE, NONE, RS, SPR, '0' , '0' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '0' , '0' , NONE, '0' , '0' ), -- mtspr
265- 2#0001001001# => (ALU, OP_MUL_H64, RA, RB, NONE, RT, '0' , '1 ' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '0' , '1' , RC, '0' , '0' ), -- mulhd
266- 2#0000001001# => (ALU, OP_MUL_H64, RA, RB, NONE, RT, '0' , '1 ' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '0' , '0' , RC, '0' , '0' ), -- mulhdu
267- 2#0001001011# => (ALU, OP_MUL_H32, RA, RB, NONE, RT, '0' , '1 ' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '1' , '1' , RC, '0' , '0' ), -- mulhw
268- 2#0000001011# => (ALU, OP_MUL_H32, RA, RB, NONE, RT, '0' , '1 ' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '1' , '0' , RC, '0' , '0' ), -- mulhwu
265+ 2#0001001001# => (ALU, OP_MUL_H64, RA, RB, NONE, RT, '0' , '0 ' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '0' , '1' , RC, '0' , '0' ), -- mulhd
266+ 2#0000001001# => (ALU, OP_MUL_H64, RA, RB, NONE, RT, '0' , '0 ' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '0' , '0' , RC, '0' , '0' ), -- mulhdu
267+ 2#0001001011# => (ALU, OP_MUL_H32, RA, RB, NONE, RT, '0' , '0 ' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '1' , '1' , RC, '0' , '0' ), -- mulhw
268+ 2#0000001011# => (ALU, OP_MUL_H32, RA, RB, NONE, RT, '0' , '0 ' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '1' , '0' , RC, '0' , '0' ), -- mulhwu
269269 -- next 4 have reserved bit set
270- 2#1001001001# => (ALU, OP_MUL_H64, RA, RB, NONE, RT, '0' , '1 ' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '0' , '1' , RC, '0' , '0' ), -- mulhd
271- 2#1000001001# => (ALU, OP_MUL_H64, RA, RB, NONE, RT, '0' , '1 ' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '0' , '0' , RC, '0' , '0' ), -- mulhdu
272- 2#1001001011# => (ALU, OP_MUL_H32, RA, RB, NONE, RT, '0' , '1 ' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '1' , '1' , RC, '0' , '0' ), -- mulhw
273- 2#1000001011# => (ALU, OP_MUL_H32, RA, RB, NONE, RT, '0' , '1 ' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '1' , '0' , RC, '0' , '0' ), -- mulhwu
274- 2#0011101001# => (ALU, OP_MUL_L64, RA, RB, NONE, RT, '0' , '1 ' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '0' , '1' , RC, '0' , '0' ), -- mulld
275- 2#1011101001# => (ALU, OP_MUL_L64, RA, RB, NONE, RT, '0' , '1 ' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '0' , '1' , RC, '0' , '0' ), -- mulldo
276- 2#0011101011# => (ALU, OP_MUL_L64, RA, RB, NONE, RT, '0' , '1 ' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '1' , '1' , RC, '0' , '0' ), -- mullw
277- 2#1011101011# => (ALU, OP_MUL_L64, RA, RB, NONE, RT, '0' , '1 ' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '1' , '1' , RC, '0' , '0' ), -- mullwo
270+ 2#1001001001# => (ALU, OP_MUL_H64, RA, RB, NONE, RT, '0' , '0 ' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '0' , '1' , RC, '0' , '0' ), -- mulhd
271+ 2#1000001001# => (ALU, OP_MUL_H64, RA, RB, NONE, RT, '0' , '0 ' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '0' , '0' , RC, '0' , '0' ), -- mulhdu
272+ 2#1001001011# => (ALU, OP_MUL_H32, RA, RB, NONE, RT, '0' , '0 ' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '1' , '1' , RC, '0' , '0' ), -- mulhw
273+ 2#1000001011# => (ALU, OP_MUL_H32, RA, RB, NONE, RT, '0' , '0 ' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '1' , '0' , RC, '0' , '0' ), -- mulhwu
274+ 2#0011101001# => (ALU, OP_MUL_L64, RA, RB, NONE, RT, '0' , '0 ' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '0' , '1' , RC, '0' , '0' ), -- mulld
275+ 2#1011101001# => (ALU, OP_MUL_L64, RA, RB, NONE, RT, '0' , '0 ' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '0' , '1' , RC, '0' , '0' ), -- mulldo
276+ 2#0011101011# => (ALU, OP_MUL_L64, RA, RB, NONE, RT, '0' , '0 ' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '1' , '1' , RC, '0' , '0' ), -- mullw
277+ 2#1011101011# => (ALU, OP_MUL_L64, RA, RB, NONE, RT, '0' , '0 ' , '0' , '0' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '1' , '1' , RC, '0' , '0' ), -- mullwo
278278 2#0111011100# => (ALU, OP_AND, NONE, RB, RS, RA, '0' , '0' , '0' , '1' , ZERO, '0' , NONE, '0' , '0' , '0' , '0' , '0' , '0' , RC, '0' , '0' ), -- nand
279279 2#0001101000# => (ALU, OP_ADD, RA, NONE, NONE, RT, '0' , '0' , '1' , '0' , ONE, '0' , NONE, '0' , '0' , '0' , '0' , '0' , '0' , RC, '0' , '0' ), -- neg
280280 2#1001101000# => (ALU, OP_ADD, RA, NONE, NONE, RT, '0' , '0' , '1' , '0' , ONE, '0' , NONE, '0' , '0' , '0' , '0' , '0' , '0' , RC, '0' , '0' ), -- nego
@@ -473,8 +473,8 @@ begin
473473 end if ;
474474 else
475475 -- Could be OP_RFID
476- v.ispr1 := fast_spr_num(SPR_SRR0 );
477- v.ispr2 := fast_spr_num(SPR_SRR1 );
476+ v.ispr1 := fast_spr_num(SPR_SRR1 );
477+ v.ispr2 := fast_spr_num(SPR_SRR0 );
478478 end if ;
479479
480480 elsif majorop = "011110" then
0 commit comments