From bb5f421fcd395ed348044b2697bcbb5efc22dad3 Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Mon, 20 Sep 2010 19:01:40 -0700 Subject: [xcc, sim] changed instruction format so imm12 subs for rs2 --- inst.v | 84 +++--- instr-table.tex | 816 ++++++++++++++++++++++++++++---------------------------- opcodes | 344 ++++++++++++------------ parse-opcodes | 74 +++-- 4 files changed, 658 insertions(+), 660 deletions(-) diff --git a/inst.v b/inst.v index f02848b..08d26f3 100644 --- a/inst.v +++ b/inst.v @@ -2,12 +2,12 @@ `define J 32'b11000_??????????????????????????? `define JAL 32'b11001_??????????????????????????? `define LUI 32'b1110001_?????_???????????????????? -`define BEQ 32'b1110011_?????_?????_000_???????????? -`define BNE 32'b1110011_?????_?????_001_???????????? -`define BLT 32'b1110011_?????_?????_100_???????????? -`define BGE 32'b1110011_?????_?????_101_???????????? -`define BLTU 32'b1110011_?????_?????_110_???????????? -`define BGEU 32'b1110011_?????_?????_111_???????????? +`define BEQ 32'b1110011_00000_?????_000_???????????? +`define BNE 32'b1110011_00000_?????_001_???????????? +`define BLT 32'b1110011_00000_?????_100_???????????? +`define BGE 32'b1110011_00000_?????_101_???????????? +`define BLTU 32'b1110011_00000_?????_110_???????????? +`define BGEU 32'b1110011_00000_?????_111_???????????? `define ADDI 32'b1110100_?????_?????_000_???????????? `define SLTI 32'b1110100_?????_?????_010_???????????? `define SLTIU 32'b1110100_?????_?????_011_???????????? @@ -59,10 +59,10 @@ `define LHU 32'b1111000_?????_?????_101_???????????? `define LWU 32'b1111000_?????_?????_110_???????????? `define SYNCI 32'b1111000_00000_?????_111_???????????? -`define SB 32'b1111001_?????_?????_000_???????????? -`define SH 32'b1111001_?????_?????_001_???????????? -`define SW 32'b1111001_?????_?????_010_???????????? -`define SD 32'b1111001_?????_?????_011_???????????? +`define SB 32'b1111001_00000_?????_000_???????????? +`define SH 32'b1111001_00000_?????_001_???????????? +`define SW 32'b1111001_00000_?????_010_???????????? +`define SD 32'b1111001_00000_?????_011_???????????? `define AMOW_ADD 32'b1111010_?????_?????_0100000000_????? `define AMOW_SWAP 32'b1111010_?????_?????_0100000001_????? `define AMOW_AND 32'b1111010_?????_?????_0100000010_????? @@ -79,11 +79,11 @@ `define AMO_MAX 32'b1111010_?????_?????_0110000101_????? `define AMO_MINU 32'b1111010_?????_?????_0110000110_????? `define AMO_MAXU 32'b1111010_?????_?????_0110000111_????? -`define JALR_C 32'b1111011_?????_00000_0000000000_????? -`define JALR_R 32'b1111011_?????_00000_0000000001_????? -`define JALR_J 32'b1111011_?????_00000_0000000010_????? +`define JALR_C 32'b1111011_00000_?????_0000000000_????? +`define JALR_R 32'b1111011_00000_?????_0000000001_????? +`define JALR_J 32'b1111011_00000_?????_0000000010_????? `define RDNPC 32'b1111011_00000_00000_0010000000_????? -`define MFCR 32'b1111011_00000_?????_0100000000_????? +`define MFCR 32'b1111011_?????_00000_0100000000_????? `define MTCR 32'b1111011_?????_?????_0110000000_00000 `define SYNC 32'b1111011_00000_00000_1000000000_00000 `define SYSCALL 32'b1111011_00000_00000_1010000000_00000 @@ -91,13 +91,13 @@ `define EI 32'b1111110_00000_00000_0000000000_????? `define DI 32'b1111110_00000_00000_0010000000_????? `define ERET 32'b1111110_00000_00000_0100000000_00000 -`define MFPCR 32'b1111110_00000_?????_1000000000_????? +`define MFPCR 32'b1111110_?????_00000_1000000000_????? `define MTPCR 32'b1111110_?????_?????_1010000000_00000 `define ADD_S 32'b1101000_?????_?????_0000000000_????? `define SUB_S 32'b1101000_?????_?????_0000000001_????? `define MUL_S 32'b1101000_?????_?????_0000000010_????? `define DIV_S 32'b1101000_?????_?????_0000000011_????? -`define SQRT_S 32'b1101000_?????_00000_0000000100_????? +`define SQRT_S 32'b1101000_00000_?????_0000000100_????? `define SGNINJ_S 32'b1101000_?????_?????_0000000101_????? `define SGNINJN_S 32'b1101000_?????_?????_0000000110_????? `define SGNMUL_S 32'b1101000_?????_?????_0000000111_????? @@ -105,28 +105,28 @@ `define SUB_D 32'b1101000_?????_?????_1100000001_????? `define MUL_D 32'b1101000_?????_?????_1100000010_????? `define DIV_D 32'b1101000_?????_?????_1100000011_????? -`define SQRT_D 32'b1101000_?????_00000_1100000100_????? +`define SQRT_D 32'b1101000_00000_?????_1100000100_????? `define SGNINJ_D 32'b1101000_?????_?????_1100000101_????? `define SGNINJN_D 32'b1101000_?????_?????_1100000110_????? `define SGNMUL_D 32'b1101000_?????_?????_1100000111_????? -`define TRUNC_L_S 32'b1101000_?????_00000_0000100000_????? -`define TRUNCU_L_S 32'b1101000_?????_00000_0000100001_????? -`define TRUNC_W_S 32'b1101000_?????_00000_0000100010_????? -`define TRUNCU_W_S 32'b1101000_?????_00000_0000100011_????? -`define TRUNC_L_D 32'b1101000_?????_00000_1100100000_????? -`define TRUNCU_L_D 32'b1101000_?????_00000_1100100001_????? -`define TRUNC_W_D 32'b1101000_?????_00000_1100100010_????? -`define TRUNCU_W_D 32'b1101000_?????_00000_1100100011_????? -`define CVT_S_L 32'b1101000_?????_00000_0000100100_????? -`define CVTU_S_L 32'b1101000_?????_00000_0000100101_????? -`define CVT_S_W 32'b1101000_?????_00000_0000100110_????? -`define CVTU_S_W 32'b1101000_?????_00000_0000100111_????? -`define CVT_D_L 32'b1101000_?????_00000_1100100100_????? -`define CVTU_D_L 32'b1101000_?????_00000_1100100101_????? -`define CVT_D_W 32'b1101000_?????_00000_1100100110_????? -`define CVTU_D_W 32'b1101000_?????_00000_1100100111_????? -`define CVT_S_D 32'b1101000_?????_00000_0000110011_????? -`define CVT_D_S 32'b1101000_?????_00000_1100110000_????? +`define TRUNC_L_S 32'b1101000_00000_?????_0000100000_????? +`define TRUNCU_L_S 32'b1101000_00000_?????_0000100001_????? +`define TRUNC_W_S 32'b1101000_00000_?????_0000100010_????? +`define TRUNCU_W_S 32'b1101000_00000_?????_0000100011_????? +`define TRUNC_L_D 32'b1101000_00000_?????_1100100000_????? +`define TRUNCU_L_D 32'b1101000_00000_?????_1100100001_????? +`define TRUNC_W_D 32'b1101000_00000_?????_1100100010_????? +`define TRUNCU_W_D 32'b1101000_00000_?????_1100100011_????? +`define CVT_S_L 32'b1101000_00000_?????_0000100100_????? +`define CVTU_S_L 32'b1101000_00000_?????_0000100101_????? +`define CVT_S_W 32'b1101000_00000_?????_0000100110_????? +`define CVTU_S_W 32'b1101000_00000_?????_0000100111_????? +`define CVT_D_L 32'b1101000_00000_?????_1100100100_????? +`define CVTU_D_L 32'b1101000_00000_?????_1100100101_????? +`define CVT_D_W 32'b1101000_00000_?????_1100100110_????? +`define CVTU_D_W 32'b1101000_00000_?????_1100100111_????? +`define CVT_S_D 32'b1101000_00000_?????_0000110011_????? +`define CVT_D_S 32'b1101000_00000_?????_1100110000_????? `define C_EQ_S 32'b1101000_?????_?????_0001000001_????? `define C_LT_S 32'b1101000_?????_?????_0001000010_????? `define C_LE_S 32'b1101000_?????_?????_0001000011_????? @@ -135,13 +135,13 @@ `define C_LE_D 32'b1101000_?????_?????_1101000011_????? `define L_S 32'b1101001_?????_?????_000_???????????? `define L_D 32'b1101001_?????_?????_110_???????????? -`define S_S 32'b1101001_?????_?????_001_???????????? -`define S_D 32'b1101001_?????_?????_111_???????????? -`define MFF_S 32'b1101010_?????_00000_0000000000_????? -`define MFF_D 32'b1101010_?????_00000_1100000000_????? -`define MFFH_D 32'b1101010_?????_00000_1100100000_????? -`define MTF_S 32'b1101010_?????_00000_0001000000_????? -`define MTF_D 32'b1101010_?????_00000_1101000000_????? +`define S_S 32'b1101001_00000_?????_001_???????????? +`define S_D 32'b1101001_00000_?????_111_???????????? +`define MFF_S 32'b1101010_00000_?????_0000000000_????? +`define MFF_D 32'b1101010_00000_?????_1100000000_????? +`define MFFH_D 32'b1101010_00000_?????_1100100000_????? +`define MTF_S 32'b1101010_00000_?????_0001000000_????? +`define MTF_D 32'b1101010_00000_?????_1101000000_????? `define MTFLH_D 32'b1101010_?????_?????_1101100000_????? `define MADD_S 32'b1101011_?????_?????_00000_?????_????? `define MSUB_S 32'b1101011_?????_?????_00001_?????_????? diff --git a/instr-table.tex b/instr-table.tex index 8f3e229..1f5fb71 100644 --- a/instr-table.tex +++ b/instr-table.tex @@ -99,82 +99,82 @@ & \multicolumn{2}{|c|}{1111011} & -\multicolumn{1}{c|}{xa} & \multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000000000} & -\multicolumn{1}{c|}{xc} & JALR.C xc,xa \\ +\multicolumn{1}{c|}{rdr} & JALR.C rdr,rs1 \\ \cline{2-10} & \multicolumn{2}{|c|}{1111011} & -\multicolumn{1}{c|}{xa} & \multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000000001} & -\multicolumn{1}{c|}{xc} & JALR.R xc,xa \\ +\multicolumn{1}{c|}{rdr} & JALR.R rdr,rs1 \\ \cline{2-10} & \multicolumn{2}{|c|}{1111011} & -\multicolumn{1}{c|}{xa} & \multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000000010} & -\multicolumn{1}{c|}{xc} & JALR.J xc,xa \\ +\multicolumn{1}{c|}{rdr} & JALR.J rdr,rs1 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110011} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{000} & -\multicolumn{4}{c|}{imm} & BEQ xa,xb,imm \\ +\multicolumn{4}{c|}{imm12} & BEQ rs1,rs2,imm12 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110011} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{001} & -\multicolumn{4}{c|}{imm} & BNE xa,xb,imm \\ +\multicolumn{4}{c|}{imm12} & BNE rs1,rs2,imm12 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110011} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{100} & -\multicolumn{4}{c|}{imm} & BLT xa,xb,imm \\ +\multicolumn{4}{c|}{imm12} & BLT rs1,rs2,imm12 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110011} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{101} & -\multicolumn{4}{c|}{imm} & BGE xa,xb,imm \\ +\multicolumn{4}{c|}{imm12} & BGE rs1,rs2,imm12 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110011} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{110} & -\multicolumn{4}{c|}{imm} & BLTU xa,xb,imm \\ +\multicolumn{4}{c|}{imm12} & BLTU rs1,rs2,imm12 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110011} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{111} & -\multicolumn{4}{c|}{imm} & BGEU xa,xb,imm \\ +\multicolumn{4}{c|}{imm12} & BGEU rs1,rs2,imm12 \\ \cline{2-10} @@ -187,109 +187,109 @@ & \multicolumn{2}{|c|}{1111000} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{000} & -\multicolumn{4}{c|}{imm} & LB xa,xb,imm \\ +\multicolumn{4}{c|}{imm12} & LB rdi,rs1,imm12 \\ \cline{2-10} & \multicolumn{2}{|c|}{1111000} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{001} & -\multicolumn{4}{c|}{imm} & LH xa,xb,imm \\ +\multicolumn{4}{c|}{imm12} & LH rdi,rs1,imm12 \\ \cline{2-10} & \multicolumn{2}{|c|}{1111000} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{010} & -\multicolumn{4}{c|}{imm} & LW xa,xb,imm \\ +\multicolumn{4}{c|}{imm12} & LW rdi,rs1,imm12 \\ \cline{2-10} & \multicolumn{2}{|c|}{1111000} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{011} & -\multicolumn{4}{c|}{imm} & LD xa,xb,imm \\ +\multicolumn{4}{c|}{imm12} & LD rdi,rs1,imm12 \\ \cline{2-10} & \multicolumn{2}{|c|}{1111000} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{100} & -\multicolumn{4}{c|}{imm} & LBU xa,xb,imm \\ +\multicolumn{4}{c|}{imm12} & LBU rdi,rs1,imm12 \\ \cline{2-10} & \multicolumn{2}{|c|}{1111000} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{101} & -\multicolumn{4}{c|}{imm} & LHU xa,xb,imm \\ +\multicolumn{4}{c|}{imm12} & LHU rdi,rs1,imm12 \\ \cline{2-10} & \multicolumn{2}{|c|}{1111000} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{110} & -\multicolumn{4}{c|}{imm} & LWU xa,xb,imm \\ +\multicolumn{4}{c|}{imm12} & LWU rdi,rs1,imm12 \\ \cline{2-10} & \multicolumn{2}{|c|}{1111000} & +\multicolumn{1}{c|}{rs1} & \multicolumn{1}{c|}{00000} & -\multicolumn{1}{c|}{xb} & \multicolumn{1}{c|}{111} & -\multicolumn{4}{c|}{imm} & SYNCI xb,imm \\ +\multicolumn{4}{c|}{imm12} & SYNCI rs1,imm12 \\ \cline{2-10} & \multicolumn{2}{|c|}{1111001} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{000} & -\multicolumn{4}{c|}{imm} & SB xa,xb,imm \\ +\multicolumn{4}{c|}{imm12} & SB rs2,rs1,imm12 \\ \cline{2-10} & \multicolumn{2}{|c|}{1111001} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{001} & -\multicolumn{4}{c|}{imm} & SH xa,xb,imm \\ +\multicolumn{4}{c|}{imm12} & SH rs2,rs1,imm12 \\ \cline{2-10} & \multicolumn{2}{|c|}{1111001} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{010} & -\multicolumn{4}{c|}{imm} & SW xa,xb,imm \\ +\multicolumn{4}{c|}{imm12} & SW rs2,rs1,imm12 \\ \cline{2-10} & \multicolumn{2}{|c|}{1111001} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{011} & -\multicolumn{4}{c|}{imm} & SD xa,xb,imm \\ +\multicolumn{4}{c|}{imm12} & SD rs2,rs1,imm12 \\ \cline{2-10} @@ -302,145 +302,145 @@ & \multicolumn{2}{|c|}{1111010} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0100000000} & -\multicolumn{1}{c|}{xc} & AMOW.ADD xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & AMOW.ADD rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1111010} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0100000001} & -\multicolumn{1}{c|}{xc} & AMOW.SWAP xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & AMOW.SWAP rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1111010} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0100000010} & -\multicolumn{1}{c|}{xc} & AMOW.AND xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & AMOW.AND rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1111010} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0100000011} & -\multicolumn{1}{c|}{xc} & AMOW.OR xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & AMOW.OR rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1111010} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0100000100} & -\multicolumn{1}{c|}{xc} & AMOW.MIN xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & AMOW.MIN rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1111010} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0100000101} & -\multicolumn{1}{c|}{xc} & AMOW.MAX xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & AMOW.MAX rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1111010} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0100000110} & -\multicolumn{1}{c|}{xc} & AMOW.MINU xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & AMOW.MINU rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1111010} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0100000111} & -\multicolumn{1}{c|}{xc} & AMOW.MAXU xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & AMOW.MAXU rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1111010} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0110000000} & -\multicolumn{1}{c|}{xc} & AMO.ADD xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & AMO.ADD rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1111010} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0110000001} & -\multicolumn{1}{c|}{xc} & AMO.SWAP xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & AMO.SWAP rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1111010} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0110000010} & -\multicolumn{1}{c|}{xc} & AMO.AND xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & AMO.AND rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1111010} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0110000011} & -\multicolumn{1}{c|}{xc} & AMO.OR xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & AMO.OR rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1111010} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0110000100} & -\multicolumn{1}{c|}{xc} & AMO.MIN xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & AMO.MIN rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1111010} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0110000101} & -\multicolumn{1}{c|}{xc} & AMO.MAX xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & AMO.MAX rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1111010} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0110000110} & -\multicolumn{1}{c|}{xc} & AMO.MINU xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & AMO.MINU rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1111010} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0110000111} & -\multicolumn{1}{c|}{xc} & AMO.MAXU xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & AMO.MAXU rdr,rs1,rs2 \\ \cline{2-10} @@ -528,251 +528,251 @@ & \multicolumn{2}{|c|}{1110001} & -\multicolumn{1}{c|}{xa} & -\multicolumn{6}{c|}{imm20} & LUI xa,imm20 \\ +\multicolumn{1}{c|}{00000} & +\multicolumn{6}{c|}{imm20} & LUI rdi,imm20 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110100} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{000} & -\multicolumn{4}{c|}{imm} & ADDI xa,xb,imm \\ +\multicolumn{4}{c|}{imm12} & ADDI rdi,rs1,imm12 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110100} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{010} & -\multicolumn{4}{c|}{imm} & SLTI xa,xb,imm \\ +\multicolumn{4}{c|}{imm12} & SLTI rdi,rs1,imm12 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110100} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{011} & -\multicolumn{4}{c|}{imm} & SLTIU xa,xb,imm \\ +\multicolumn{4}{c|}{imm12} & SLTIU rdi,rs1,imm12 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110100} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{100} & -\multicolumn{4}{c|}{imm} & ANDI xa,xb,imm \\ +\multicolumn{4}{c|}{imm12} & ANDI rdi,rs1,imm12 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110100} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{101} & -\multicolumn{4}{c|}{imm} & ORI xa,xb,imm \\ +\multicolumn{4}{c|}{imm12} & ORI rdi,rs1,imm12 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110100} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{110} & -\multicolumn{4}{c|}{imm} & XORI xa,xb,imm \\ +\multicolumn{4}{c|}{imm12} & XORI rdi,rs1,imm12 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110100} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rdi} & +\multicolumn{1}{c|}{rs1} & \multicolumn{3}{c|}{111000001} & -\multicolumn{2}{c|}{shamt} & SLLI xa,xb,shamt \\ +\multicolumn{2}{c|}{shamt} & SLLI rdi,rs1,shamt \\ \cline{2-10} & \multicolumn{2}{|c|}{1110100} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rdi} & +\multicolumn{1}{c|}{rs1} & \multicolumn{3}{c|}{111000010} & -\multicolumn{2}{c|}{shamt} & SRLI xa,xb,shamt \\ +\multicolumn{2}{c|}{shamt} & SRLI rdi,rs1,shamt \\ \cline{2-10} & \multicolumn{2}{|c|}{1110100} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rdi} & +\multicolumn{1}{c|}{rs1} & \multicolumn{3}{c|}{111000011} & -\multicolumn{2}{c|}{shamt} & SRAI xa,xb,shamt \\ +\multicolumn{2}{c|}{shamt} & SRAI rdi,rs1,shamt \\ \cline{2-10} & \multicolumn{2}{|c|}{1110101} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000000000} & -\multicolumn{1}{c|}{xc} & ADD xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & ADD rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110101} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000000001} & -\multicolumn{1}{c|}{xc} & SUB xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & SUB rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110101} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000000010} & -\multicolumn{1}{c|}{xc} & SLT xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & SLT rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110101} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000000011} & -\multicolumn{1}{c|}{xc} & SLTU xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & SLTU rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110101} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000000100} & -\multicolumn{1}{c|}{xc} & AND xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & AND rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110101} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000000101} & -\multicolumn{1}{c|}{xc} & OR xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & OR rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110101} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000000110} & -\multicolumn{1}{c|}{xc} & XOR xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & XOR rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110101} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000000111} & -\multicolumn{1}{c|}{xc} & NOR xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & NOR rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110101} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1110000010} & -\multicolumn{1}{c|}{xc} & SLL xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & SLL rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110101} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1110000100} & -\multicolumn{1}{c|}{xc} & SRL xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & SRL rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110101} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1110000110} & -\multicolumn{1}{c|}{xc} & SRA xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & SRA rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110101} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0010000000} & -\multicolumn{1}{c|}{xc} & MUL xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & MUL rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110101} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0010000010} & -\multicolumn{1}{c|}{xc} & MULH xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & MULH rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110101} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0010000011} & -\multicolumn{1}{c|}{xc} & MULHU xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & MULHU rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110101} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0010000100} & -\multicolumn{1}{c|}{xc} & DIV xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & DIV rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110101} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0010000101} & -\multicolumn{1}{c|}{xc} & DIVU xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & DIVU rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110101} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0010000110} & -\multicolumn{1}{c|}{xc} & REM xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & REM rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110101} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0010000111} & -\multicolumn{1}{c|}{xc} & REMU xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & REMU rdr,rs1,rs2 \\ \cline{2-10} @@ -785,148 +785,148 @@ & \multicolumn{2}{|c|}{1110110} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{000} & -\multicolumn{4}{c|}{imm} & ADDIW xa,xb,imm \\ +\multicolumn{4}{c|}{imm12} & ADDIW rdi,rs1,imm12 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110110} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rdi} & +\multicolumn{1}{c|}{rs1} & \multicolumn{3}{c|}{111000001} & \multicolumn{1}{c|}{0} & -\multicolumn{1}{c|}{shamtw} & SLLIW xa,xb,shamtw \\ +\multicolumn{1}{c|}{shamtw} & SLLIW rdi,rs1,shamtw \\ \cline{2-10} & \multicolumn{2}{|c|}{1110110} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rdi} & +\multicolumn{1}{c|}{rs1} & \multicolumn{3}{c|}{111000010} & \multicolumn{1}{c|}{0} & -\multicolumn{1}{c|}{shamtw} & SRLIW xa,xb,shamtw \\ +\multicolumn{1}{c|}{shamtw} & SRLIW rdi,rs1,shamtw \\ \cline{2-10} & \multicolumn{2}{|c|}{1110110} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rdi} & +\multicolumn{1}{c|}{rs1} & \multicolumn{3}{c|}{111000011} & \multicolumn{1}{c|}{0} & -\multicolumn{1}{c|}{shamtw} & SRAIW xa,xb,shamtw \\ +\multicolumn{1}{c|}{shamtw} & SRAIW rdi,rs1,shamtw \\ \cline{2-10} & \multicolumn{2}{|c|}{1110111} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000000000} & -\multicolumn{1}{c|}{xc} & ADDW xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & ADDW rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110111} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000000001} & -\multicolumn{1}{c|}{xc} & SUBW xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & SUBW rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110111} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1110000010} & -\multicolumn{1}{c|}{xc} & SLLW xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & SLLW rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110111} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1110000100} & -\multicolumn{1}{c|}{xc} & SRLW xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & SRLW rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110111} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1110000110} & -\multicolumn{1}{c|}{xc} & SRAW xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & SRAW rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110111} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0010000000} & -\multicolumn{1}{c|}{xc} & MULW xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & MULW rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110111} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0010000010} & -\multicolumn{1}{c|}{xc} & MULHW xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & MULHW rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110111} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0010000011} & -\multicolumn{1}{c|}{xc} & MULHUW xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & MULHUW rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110111} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0010000100} & -\multicolumn{1}{c|}{xc} & DIVW xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & DIVW rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110111} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0010000101} & -\multicolumn{1}{c|}{xc} & DIVUW xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & DIVUW rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110111} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0010000110} & -\multicolumn{1}{c|}{xc} & REMW xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & REMW rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1110111} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0010000111} & -\multicolumn{1}{c|}{xc} & REMUW xc,xb,xa \\ +\multicolumn{1}{c|}{rdr} & REMUW rdr,rs1,rs2 \\ \cline{2-10} @@ -1014,37 +1014,37 @@ & \multicolumn{2}{|c|}{1101001} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{000} & -\multicolumn{4}{c|}{imm} & L.S fa,xb,imm \\ +\multicolumn{4}{c|}{imm12} & L.S rdi,rs1,imm12 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101001} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{110} & -\multicolumn{4}{c|}{imm} & L.D fa,xb,imm \\ +\multicolumn{4}{c|}{imm12} & L.D rdi,rs1,imm12 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101001} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{001} & -\multicolumn{4}{c|}{imm} & S.S fa,xb,imm \\ +\multicolumn{4}{c|}{imm12} & S.S rs2,rs1,imm12 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101001} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{111} & -\multicolumn{4}{c|}{imm} & S.D fa,xb,imm \\ +\multicolumn{4}{c|}{imm12} & S.D rs2,rs1,imm12 \\ \cline{2-10} @@ -1057,225 +1057,225 @@ & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{fb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000000000} & -\multicolumn{1}{c|}{fc} & ADD.S fc,fb,fa \\ +\multicolumn{1}{c|}{rdr} & ADD.S rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{fb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000000001} & -\multicolumn{1}{c|}{fc} & SUB.S fc,fb,fa \\ +\multicolumn{1}{c|}{rdr} & SUB.S rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{fb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000000010} & -\multicolumn{1}{c|}{fc} & MUL.S fc,fb,fa \\ +\multicolumn{1}{c|}{rdr} & MUL.S rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{fb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000000011} & -\multicolumn{1}{c|}{fc} & DIV.S fc,fb,fa \\ +\multicolumn{1}{c|}{rdr} & DIV.S rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & \multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000000100} & -\multicolumn{1}{c|}{fc} & SQRT.S fc,fa \\ +\multicolumn{1}{c|}{rdr} & SQRT.S rdr,rs1 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{fb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000000101} & -\multicolumn{1}{c|}{fc} & SGNINJ.S fc,fb,fa \\ +\multicolumn{1}{c|}{rdr} & SGNINJ.S rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{fb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000000110} & -\multicolumn{1}{c|}{fc} & SGNINJN.S fc,fb,fa \\ +\multicolumn{1}{c|}{rdr} & SGNINJN.S rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{fb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000000111} & -\multicolumn{1}{c|}{fc} & SGNMUL.S fc,fb,fa \\ +\multicolumn{1}{c|}{rdr} & SGNMUL.S rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{fb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1100000000} & -\multicolumn{1}{c|}{fc} & ADD.D fc,fb,fa \\ +\multicolumn{1}{c|}{rdr} & ADD.D rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{fb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1100000001} & -\multicolumn{1}{c|}{fc} & SUB.D fc,fb,fa \\ +\multicolumn{1}{c|}{rdr} & SUB.D rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{fb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1100000010} & -\multicolumn{1}{c|}{fc} & MUL.D fc,fb,fa \\ +\multicolumn{1}{c|}{rdr} & MUL.D rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{fb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1100000011} & -\multicolumn{1}{c|}{fc} & DIV.D fc,fb,fa \\ +\multicolumn{1}{c|}{rdr} & DIV.D rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & \multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1100000100} & -\multicolumn{1}{c|}{fc} & SQRT.D fc,fa \\ +\multicolumn{1}{c|}{rdr} & SQRT.D rdr,rs1 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{fb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1100000101} & -\multicolumn{1}{c|}{fc} & SGNINJ.D fc,fb,fa \\ +\multicolumn{1}{c|}{rdr} & SGNINJ.D rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{fb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1100000110} & -\multicolumn{1}{c|}{fc} & SGNINJN.D fc,fb,fa \\ +\multicolumn{1}{c|}{rdr} & SGNINJN.D rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{fb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1100000111} & -\multicolumn{1}{c|}{fc} & SGNMUL.D fc,fb,fa \\ +\multicolumn{1}{c|}{rdr} & SGNMUL.D rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101011} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{fb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{2}{c|}{00000} & -\multicolumn{2}{c|}{fd} & -\multicolumn{1}{c|}{fc} & MADD.S fc,fb,fa,fd \\ +\multicolumn{2}{c|}{rs3} & +\multicolumn{1}{c|}{rdr} & MADD.S rdr,rs1,rs2,rs3 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101011} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{fb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{2}{c|}{00001} & -\multicolumn{2}{c|}{fd} & -\multicolumn{1}{c|}{fc} & MSUB.S fc,fb,fa,fd \\ +\multicolumn{2}{c|}{rs3} & +\multicolumn{1}{c|}{rdr} & MSUB.S rdr,rs1,rs2,rs3 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101011} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{fb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{2}{c|}{00010} & -\multicolumn{2}{c|}{fd} & -\multicolumn{1}{c|}{fc} & NMADD.S fc,fb,fa,fd \\ +\multicolumn{2}{c|}{rs3} & +\multicolumn{1}{c|}{rdr} & NMADD.S rdr,rs1,rs2,rs3 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101011} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{fb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{2}{c|}{00011} & -\multicolumn{2}{c|}{fd} & -\multicolumn{1}{c|}{fc} & NMSUB.S fc,fb,fa,fd \\ +\multicolumn{2}{c|}{rs3} & +\multicolumn{1}{c|}{rdr} & NMSUB.S rdr,rs1,rs2,rs3 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101011} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{fb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{2}{c|}{11000} & -\multicolumn{2}{c|}{fd} & -\multicolumn{1}{c|}{fc} & MADD.D fc,fb,fa,fd \\ +\multicolumn{2}{c|}{rs3} & +\multicolumn{1}{c|}{rdr} & MADD.D rdr,rs1,rs2,rs3 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101011} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{fb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{2}{c|}{11001} & -\multicolumn{2}{c|}{fd} & -\multicolumn{1}{c|}{fc} & MSUB.D fc,fb,fa,fd \\ +\multicolumn{2}{c|}{rs3} & +\multicolumn{1}{c|}{rdr} & MSUB.D rdr,rs1,rs2,rs3 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101011} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{fb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{2}{c|}{11010} & -\multicolumn{2}{c|}{fd} & -\multicolumn{1}{c|}{fc} & NMADD.D fc,fb,fa,fd \\ +\multicolumn{2}{c|}{rs3} & +\multicolumn{1}{c|}{rdr} & NMADD.D rdr,rs1,rs2,rs3 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101011} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{fb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{2}{c|}{11011} & -\multicolumn{2}{c|}{fd} & -\multicolumn{1}{c|}{fc} & NMSUB.D fc,fb,fa,fd \\ +\multicolumn{2}{c|}{rs3} & +\multicolumn{1}{c|}{rdr} & NMSUB.D rdr,rs1,rs2,rs3 \\ \cline{2-10} @@ -1288,55 +1288,55 @@ & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{fb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0001000001} & -\multicolumn{1}{c|}{xc} & C.EQ.S xc,fa,fb \\ +\multicolumn{1}{c|}{rdr} & C.EQ.S rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{fb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0001000010} & -\multicolumn{1}{c|}{xc} & C.LT.S xc,fa,fb \\ +\multicolumn{1}{c|}{rdr} & C.LT.S rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{fb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0001000011} & -\multicolumn{1}{c|}{xc} & C.LE.S xc,fa,fb \\ +\multicolumn{1}{c|}{rdr} & C.LE.S rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{fb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1101000001} & -\multicolumn{1}{c|}{xc} & C.EQ.D xc,fa,fb \\ +\multicolumn{1}{c|}{rdr} & C.EQ.D rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{fb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1101000010} & -\multicolumn{1}{c|}{xc} & C.LT.D xc,fa,fb \\ +\multicolumn{1}{c|}{rdr} & C.LT.D rdr,rs1,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & -\multicolumn{1}{c|}{fb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1101000011} & -\multicolumn{1}{c|}{xc} & C.LE.D xc,fa,fb \\ +\multicolumn{1}{c|}{rdr} & C.LE.D rdr,rs1,rs2 \\ \cline{2-10} @@ -1424,217 +1424,217 @@ & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & \multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000100000} & -\multicolumn{1}{c|}{fc} & TRUNC.L.S fc,fa \\ +\multicolumn{1}{c|}{rdr} & TRUNC.L.S rdr,rs1 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & \multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000100001} & -\multicolumn{1}{c|}{fc} & TRUNCU.L.S fc,fa \\ +\multicolumn{1}{c|}{rdr} & TRUNCU.L.S rdr,rs1 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & \multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000100010} & -\multicolumn{1}{c|}{fc} & TRUNC.W.S fc,fa \\ +\multicolumn{1}{c|}{rdr} & TRUNC.W.S rdr,rs1 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & \multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000100011} & -\multicolumn{1}{c|}{fc} & TRUNCU.W.S fc,fa \\ +\multicolumn{1}{c|}{rdr} & TRUNCU.W.S rdr,rs1 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & \multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000100100} & -\multicolumn{1}{c|}{fc} & CVT.S.L fc,fa \\ +\multicolumn{1}{c|}{rdr} & CVT.S.L rdr,rs1 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & \multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000100101} & -\multicolumn{1}{c|}{fc} & CVTU.S.L fc,fa \\ +\multicolumn{1}{c|}{rdr} & CVTU.S.L rdr,rs1 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & \multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000100110} & -\multicolumn{1}{c|}{fc} & CVT.S.W fc,fa \\ +\multicolumn{1}{c|}{rdr} & CVT.S.W rdr,rs1 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & \multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000100111} & -\multicolumn{1}{c|}{fc} & CVTU.S.W fc,fa \\ +\multicolumn{1}{c|}{rdr} & CVTU.S.W rdr,rs1 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & \multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000110011} & -\multicolumn{1}{c|}{fc} & CVT.S.D fc,fa \\ +\multicolumn{1}{c|}{rdr} & CVT.S.D rdr,rs1 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & \multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1100100000} & -\multicolumn{1}{c|}{fc} & TRUNC.L.D fc,fa \\ +\multicolumn{1}{c|}{rdr} & TRUNC.L.D rdr,rs1 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & \multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1100100001} & -\multicolumn{1}{c|}{fc} & TRUNCU.L.D fc,fa \\ +\multicolumn{1}{c|}{rdr} & TRUNCU.L.D rdr,rs1 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & \multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1100100010} & -\multicolumn{1}{c|}{fc} & TRUNC.W.D fc,fa \\ +\multicolumn{1}{c|}{rdr} & TRUNC.W.D rdr,rs1 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & \multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1100100011} & -\multicolumn{1}{c|}{fc} & TRUNCU.W.D fc,fa \\ +\multicolumn{1}{c|}{rdr} & TRUNCU.W.D rdr,rs1 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & \multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1100100100} & -\multicolumn{1}{c|}{fc} & CVT.D.L fc,fa \\ +\multicolumn{1}{c|}{rdr} & CVT.D.L rdr,rs1 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & \multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1100100101} & -\multicolumn{1}{c|}{fc} & CVTU.D.L fc,fa \\ +\multicolumn{1}{c|}{rdr} & CVTU.D.L rdr,rs1 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & \multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1100100110} & -\multicolumn{1}{c|}{fc} & CVT.D.W fc,fa \\ +\multicolumn{1}{c|}{rdr} & CVT.D.W rdr,rs1 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & \multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1100100111} & -\multicolumn{1}{c|}{fc} & CVTU.D.W fc,fa \\ +\multicolumn{1}{c|}{rdr} & CVTU.D.W rdr,rs1 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101000} & -\multicolumn{1}{c|}{fa} & \multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1100110000} & -\multicolumn{1}{c|}{fc} & CVT.D.S fc,fa \\ +\multicolumn{1}{c|}{rdr} & CVT.D.S rdr,rs1 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101010} & -\multicolumn{1}{c|}{fa} & \multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0000000000} & -\multicolumn{1}{c|}{xc} & MFF.S xc,fa \\ +\multicolumn{1}{c|}{rdr} & MFF.S rdr,rs1 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101010} & -\multicolumn{1}{c|}{fa} & \multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1100000000} & -\multicolumn{1}{c|}{xc} & MFF.D xc,fa \\ +\multicolumn{1}{c|}{rdr} & MFF.D rdr,rs1 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101010} & -\multicolumn{1}{c|}{fa} & \multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1100100000} & -\multicolumn{1}{c|}{xc} & MFFH.D xc,fa \\ +\multicolumn{1}{c|}{rdr} & MFFH.D rdr,rs1 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101010} & -\multicolumn{1}{c|}{xa} & \multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0001000000} & -\multicolumn{1}{c|}{fc} & MTF.S fc,xa \\ +\multicolumn{1}{c|}{rdr} & MTF.S rdr,rs1 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101010} & -\multicolumn{1}{c|}{xa} & \multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1101000000} & -\multicolumn{1}{c|}{fc} & MTF.D fc,xa \\ +\multicolumn{1}{c|}{rdr} & MTF.D rdr,rs1 \\ \cline{2-10} & \multicolumn{2}{|c|}{1101010} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1101100000} & -\multicolumn{1}{c|}{fc} & MTFLH.D fc,xa,xb \\ +\multicolumn{1}{c|}{rdr} & MTFLH.D rdr,rs1,rs2 \\ \cline{2-10} @@ -1650,25 +1650,25 @@ \multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{00000} & \multicolumn{4}{c|}{0010000000} & -\multicolumn{1}{c|}{xc} & RDNPC xc \\ +\multicolumn{1}{c|}{rdr} & RDNPC rdr \\ \cline{2-10} & \multicolumn{2}{|c|}{1111011} & +\multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{00000} & -\multicolumn{1}{c|}{xb} & \multicolumn{4}{c|}{0100000000} & -\multicolumn{1}{c|}{xc} & MFCR xc,xb \\ +\multicolumn{1}{c|}{rdr} & MFCR rdr,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1111011} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{0110000000} & -\multicolumn{1}{c|}{00000} & MTCR xa,xb \\ +\multicolumn{1}{c|}{00000} & MTCR rs1,rs2 \\ \cline{2-10} @@ -1711,7 +1711,7 @@ \multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{00000} & \multicolumn{4}{c|}{0000000000} & -\multicolumn{1}{c|}{xc} & EI xc \\ +\multicolumn{1}{c|}{rdr} & EI rdr \\ \cline{2-10} @@ -1720,7 +1720,7 @@ \multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{00000} & \multicolumn{4}{c|}{0010000000} & -\multicolumn{1}{c|}{xc} & DI xc \\ +\multicolumn{1}{c|}{rdr} & DI rdr \\ \cline{2-10} @@ -1735,19 +1735,19 @@ & \multicolumn{2}{|c|}{1111110} & +\multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{00000} & -\multicolumn{1}{c|}{xb} & \multicolumn{4}{c|}{1000000000} & -\multicolumn{1}{c|}{xc} & MFPCR xc,xb \\ +\multicolumn{1}{c|}{rdr} & MFPCR rdr,rs2 \\ \cline{2-10} & \multicolumn{2}{|c|}{1111110} & -\multicolumn{1}{c|}{xa} & -\multicolumn{1}{c|}{xb} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & \multicolumn{4}{c|}{1010000000} & -\multicolumn{1}{c|}{00000} & MTPCR xa,xb \\ +\multicolumn{1}{c|}{00000} & MTPCR rs1,rs2 \\ \cline{2-10} diff --git a/opcodes b/opcodes index b848061..8305117 100644 --- a/opcodes +++ b/opcodes @@ -11,184 +11,184 @@ unimp 31..0=0 j 31..27=0x18 imm27 # opcodes 0x60-0x64 jal 31..27=0x19 imm27 # opcodes 0x64-0x68 -lui 31..25=0x71 xa imm20 - -beq 31..25=0x73 14..12=0 xa xb imm -bne 31..25=0x73 14..12=1 xa xb imm -blt 31..25=0x73 14..12=4 xa xb imm -bge 31..25=0x73 14..12=5 xa xb imm -bltu 31..25=0x73 14..12=6 xa xb imm -bgeu 31..25=0x73 14..12=7 xa xb imm - -addi 31..25=0x74 14..12=0 xa xb imm -slti 31..25=0x74 14..12=2 xa xb imm -sltiu 31..25=0x74 14..12=3 xa xb imm -andi 31..25=0x74 14..12=4 xa xb imm -ori 31..25=0x74 14..12=5 xa xb imm -xori 31..25=0x74 14..12=6 xa xb imm -slli 31..25=0x74 14..12=7 11..6=1 xa xb shamt -srli 31..25=0x74 14..12=7 11..6=2 xa xb shamt -srai 31..25=0x74 14..12=7 11..6=3 xa xb shamt - -add 31..25=0x75 14..12=0 11..5=0 xc xb xa -sub 31..25=0x75 14..12=0 11..5=1 xc xb xa -slt 31..25=0x75 14..12=0 11..5=2 xc xb xa -sltu 31..25=0x75 14..12=0 11..5=3 xc xb xa -and 31..25=0x75 14..12=0 11..5=4 xc xb xa -or 31..25=0x75 14..12=0 11..5=5 xc xb xa -xor 31..25=0x75 14..12=0 11..5=6 xc xb xa -nor 31..25=0x75 14..12=0 11..5=7 xc xb xa -sll 31..25=0x75 14..12=7 11..6=1 5=0 xc xb xa -srl 31..25=0x75 14..12=7 11..6=2 5=0 xc xb xa -sra 31..25=0x75 14..12=7 11..6=3 5=0 xc xb xa - -mul 31..25=0x75 14..12=1 11..5=0 xc xb xa -mulh 31..25=0x75 14..12=1 11..5=2 xc xb xa -mulhu 31..25=0x75 14..12=1 11..5=3 xc xb xa -div 31..25=0x75 14..12=1 11..5=4 xc xb xa -divu 31..25=0x75 14..12=1 11..5=5 xc xb xa -rem 31..25=0x75 14..12=1 11..5=6 xc xb xa -remu 31..25=0x75 14..12=1 11..5=7 xc xb xa - - - -addiw 31..25=0x76 14..12=0 xa xb imm -slliw 31..25=0x76 14..12=7 11..6=1 5=0 xa xb shamtw -srliw 31..25=0x76 14..12=7 11..6=2 5=0 xa xb shamtw -sraiw 31..25=0x76 14..12=7 11..6=3 5=0 xa xb shamtw - -addw 31..25=0x77 14..12=0 11..5=0 xc xb xa -subw 31..25=0x77 14..12=0 11..5=1 xc xb xa -sllw 31..25=0x77 14..12=7 11..6=1 5=0 xc xb xa -srlw 31..25=0x77 14..12=7 11..6=2 5=0 xc xb xa -sraw 31..25=0x77 14..12=7 11..6=3 5=0 xc xb xa - -mulw 31..25=0x77 14..12=1 11..5=0 xc xb xa -mulhw 31..25=0x77 14..12=1 11..5=2 xc xb xa -mulhuw 31..25=0x77 14..12=1 11..5=3 xc xb xa -divw 31..25=0x77 14..12=1 11..5=4 xc xb xa -divuw 31..25=0x77 14..12=1 11..5=5 xc xb xa -remw 31..25=0x77 14..12=1 11..5=6 xc xb xa -remuw 31..25=0x77 14..12=1 11..5=7 xc xb xa - -lb 31..25=0x78 14..12=0 xa xb imm -lh 31..25=0x78 14..12=1 xa xb imm -lw 31..25=0x78 14..12=2 xa xb imm -ld 31..25=0x78 14..12=3 xa xb imm -lbu 31..25=0x78 14..12=4 xa xb imm -lhu 31..25=0x78 14..12=5 xa xb imm -lwu 31..25=0x78 14..12=6 xa xb imm -synci 31..25=0x78 14..12=7 24..20=0 xb imm - -sb 31..25=0x79 14..12=0 xa xb imm -sh 31..25=0x79 14..12=1 xa xb imm -sw 31..25=0x79 14..12=2 xa xb imm -sd 31..25=0x79 14..12=3 xa xb imm - -amow.add 31..25=0x7A 14..12=2 11..5=0 xc xb xa -amow.swap 31..25=0x7A 14..12=2 11..5=1 xc xb xa -amow.and 31..25=0x7A 14..12=2 11..5=2 xc xb xa -amow.or 31..25=0x7A 14..12=2 11..5=3 xc xb xa -amow.min 31..25=0x7A 14..12=2 11..5=4 xc xb xa -amow.max 31..25=0x7A 14..12=2 11..5=5 xc xb xa -amow.minu 31..25=0x7A 14..12=2 11..5=6 xc xb xa -amow.maxu 31..25=0x7A 14..12=2 11..5=7 xc xb xa - -amo.add 31..25=0x7A 14..12=3 11..5=0 xc xb xa -amo.swap 31..25=0x7A 14..12=3 11..5=1 xc xb xa -amo.and 31..25=0x7A 14..12=3 11..5=2 xc xb xa -amo.or 31..25=0x7A 14..12=3 11..5=3 xc xb xa -amo.min 31..25=0x7A 14..12=3 11..5=4 xc xb xa -amo.max 31..25=0x7A 14..12=3 11..5=5 xc xb xa -amo.minu 31..25=0x7A 14..12=3 11..5=6 xc xb xa -amo.maxu 31..25=0x7A 14..12=3 11..5=7 xc xb xa - -jalr.c 31..25=0x7B 19..15=0 14..12=0 11..5=0 xc xa -jalr.r 31..25=0x7B 19..15=0 14..12=0 11..5=1 xc xa -jalr.j 31..25=0x7B 19..15=0 14..12=0 11..5=2 xc xa -rdnpc 31..25=0x7B 24..15=0 14..12=1 11..5=0 xc -mfcr 31..25=0x7B 24..20=0 14..12=2 11..5=0 xc xb -mtcr 31..25=0x7B 14..12=3 11..0=0 xa xb +lui 31..25=0x71 rdi imm20 + +beq 31..25=0x73 14..12=0 rs1 rs2 imm12 +bne 31..25=0x73 14..12=1 rs1 rs2 imm12 +blt 31..25=0x73 14..12=4 rs1 rs2 imm12 +bge 31..25=0x73 14..12=5 rs1 rs2 imm12 +bltu 31..25=0x73 14..12=6 rs1 rs2 imm12 +bgeu 31..25=0x73 14..12=7 rs1 rs2 imm12 + +addi 31..25=0x74 14..12=0 rdi rs1 imm12 +slti 31..25=0x74 14..12=2 rdi rs1 imm12 +sltiu 31..25=0x74 14..12=3 rdi rs1 imm12 +andi 31..25=0x74 14..12=4 rdi rs1 imm12 +ori 31..25=0x74 14..12=5 rdi rs1 imm12 +xori 31..25=0x74 14..12=6 rdi rs1 imm12 +slli 31..25=0x74 14..12=7 11..6=1 rdi rs1 shamt +srli 31..25=0x74 14..12=7 11..6=2 rdi rs1 shamt +srai 31..25=0x74 14..12=7 11..6=3 rdi rs1 shamt + +add 31..25=0x75 14..12=0 11..5=0 rdr rs1 rs2 +sub 31..25=0x75 14..12=0 11..5=1 rdr rs1 rs2 +slt 31..25=0x75 14..12=0 11..5=2 rdr rs1 rs2 +sltu 31..25=0x75 14..12=0 11..5=3 rdr rs1 rs2 +and 31..25=0x75 14..12=0 11..5=4 rdr rs1 rs2 +or 31..25=0x75 14..12=0 11..5=5 rdr rs1 rs2 +xor 31..25=0x75 14..12=0 11..5=6 rdr rs1 rs2 +nor 31..25=0x75 14..12=0 11..5=7 rdr rs1 rs2 +sll 31..25=0x75 14..12=7 11..6=1 5=0 rdr rs1 rs2 +srl 31..25=0x75 14..12=7 11..6=2 5=0 rdr rs1 rs2 +sra 31..25=0x75 14..12=7 11..6=3 5=0 rdr rs1 rs2 + +mul 31..25=0x75 14..12=1 11..5=0 rdr rs1 rs2 +mulh 31..25=0x75 14..12=1 11..5=2 rdr rs1 rs2 +mulhu 31..25=0x75 14..12=1 11..5=3 rdr rs1 rs2 +div 31..25=0x75 14..12=1 11..5=4 rdr rs1 rs2 +divu 31..25=0x75 14..12=1 11..5=5 rdr rs1 rs2 +rem 31..25=0x75 14..12=1 11..5=6 rdr rs1 rs2 +remu 31..25=0x75 14..12=1 11..5=7 rdr rs1 rs2 + + + +addiw 31..25=0x76 14..12=0 rdi rs1 imm12 +slliw 31..25=0x76 14..12=7 11..6=1 5=0 rdi rs1 shamtw +srliw 31..25=0x76 14..12=7 11..6=2 5=0 rdi rs1 shamtw +sraiw 31..25=0x76 14..12=7 11..6=3 5=0 rdi rs1 shamtw + +addw 31..25=0x77 14..12=0 11..5=0 rdr rs1 rs2 +subw 31..25=0x77 14..12=0 11..5=1 rdr rs1 rs2 +sllw 31..25=0x77 14..12=7 11..6=1 5=0 rdr rs1 rs2 +srlw 31..25=0x77 14..12=7 11..6=2 5=0 rdr rs1 rs2 +sraw 31..25=0x77 14..12=7 11..6=3 5=0 rdr rs1 rs2 + +mulw 31..25=0x77 14..12=1 11..5=0 rdr rs1 rs2 +mulhw 31..25=0x77 14..12=1 11..5=2 rdr rs1 rs2 +mulhuw 31..25=0x77 14..12=1 11..5=3 rdr rs1 rs2 +divw 31..25=0x77 14..12=1 11..5=4 rdr rs1 rs2 +divuw 31..25=0x77 14..12=1 11..5=5 rdr rs1 rs2 +remw 31..25=0x77 14..12=1 11..5=6 rdr rs1 rs2 +remuw 31..25=0x77 14..12=1 11..5=7 rdr rs1 rs2 + +lb 31..25=0x78 14..12=0 rdi rs1 imm12 +lh 31..25=0x78 14..12=1 rdi rs1 imm12 +lw 31..25=0x78 14..12=2 rdi rs1 imm12 +ld 31..25=0x78 14..12=3 rdi rs1 imm12 +lbu 31..25=0x78 14..12=4 rdi rs1 imm12 +lhu 31..25=0x78 14..12=5 rdi rs1 imm12 +lwu 31..25=0x78 14..12=6 rdi rs1 imm12 +synci 31..25=0x78 14..12=7 24..20=0 rs1 imm12 + +sb 31..25=0x79 14..12=0 rs2 rs1 imm12 +sh 31..25=0x79 14..12=1 rs2 rs1 imm12 +sw 31..25=0x79 14..12=2 rs2 rs1 imm12 +sd 31..25=0x79 14..12=3 rs2 rs1 imm12 + +amow.add 31..25=0x7A 14..12=2 11..5=0 rdr rs1 rs2 +amow.swap 31..25=0x7A 14..12=2 11..5=1 rdr rs1 rs2 +amow.and 31..25=0x7A 14..12=2 11..5=2 rdr rs1 rs2 +amow.or 31..25=0x7A 14..12=2 11..5=3 rdr rs1 rs2 +amow.min 31..25=0x7A 14..12=2 11..5=4 rdr rs1 rs2 +amow.max 31..25=0x7A 14..12=2 11..5=5 rdr rs1 rs2 +amow.minu 31..25=0x7A 14..12=2 11..5=6 rdr rs1 rs2 +amow.maxu 31..25=0x7A 14..12=2 11..5=7 rdr rs1 rs2 + +amo.add 31..25=0x7A 14..12=3 11..5=0 rdr rs1 rs2 +amo.swap 31..25=0x7A 14..12=3 11..5=1 rdr rs1 rs2 +amo.and 31..25=0x7A 14..12=3 11..5=2 rdr rs1 rs2 +amo.or 31..25=0x7A 14..12=3 11..5=3 rdr rs1 rs2 +amo.min 31..25=0x7A 14..12=3 11..5=4 rdr rs1 rs2 +amo.max 31..25=0x7A 14..12=3 11..5=5 rdr rs1 rs2 +amo.minu 31..25=0x7A 14..12=3 11..5=6 rdr rs1 rs2 +amo.maxu 31..25=0x7A 14..12=3 11..5=7 rdr rs1 rs2 + +jalr.c 31..25=0x7B 24..20=0 14..12=0 11..5=0 rdr rs1 +jalr.r 31..25=0x7B 24..20=0 14..12=0 11..5=1 rdr rs1 +jalr.j 31..25=0x7B 24..20=0 14..12=0 11..5=2 rdr rs1 +rdnpc 31..25=0x7B 24..15=0 14..12=1 11..5=0 rdr +mfcr 31..25=0x7B 19..15=0 14..12=2 11..5=0 rdr rs2 +mtcr 31..25=0x7B 14..12=3 11..0=0 rs1 rs2 sync 31..25=0x7B 24..15=0 14..12=4 11..0=0 syscall 31..25=0x7B 24..15=0 14..12=5 11..0=0 break 31..25=0x7B 24..15=0 14..12=6 11..0=0 -ei 31..25=0x7E 14..12=0 24..15=0 11..5=0 xc -di 31..25=0x7E 14..12=1 24..15=0 11..5=0 xc +ei 31..25=0x7E 14..12=0 24..15=0 11..5=0 rdr +di 31..25=0x7E 14..12=1 24..15=0 11..5=0 rdr eret 31..25=0x7E 14..12=2 24..15=0 11..0=0 -mfpcr 31..25=0x7E 14..12=4 24..20=0 11..5=0 xc xb -mtpcr 31..25=0x7E 14..12=5 11..0=0 xa xb +mfpcr 31..25=0x7E 14..12=4 19..15=0 11..5=0 rdr rs2 +mtpcr 31..25=0x7E 14..12=5 11..0=0 rs1 rs2 # 0x7F is reserved for 64-bit-long instructions -add.s 31..25=0x68 14..13=0 12..10=0 9..5=0 fc fb fa -sub.s 31..25=0x68 14..13=0 12..10=0 9..5=1 fc fb fa -mul.s 31..25=0x68 14..13=0 12..10=0 9..5=2 fc fb fa -div.s 31..25=0x68 14..13=0 12..10=0 9..5=3 fc fb fa -sqrt.s 31..25=0x68 14..13=0 12..10=0 9..5=4 19..15=0 fc fa -sgninj.s 31..25=0x68 14..13=0 12..10=0 9..5=5 fc fb fa -sgninjn.s 31..25=0x68 14..13=0 12..10=0 9..5=6 fc fb fa -sgnmul.s 31..25=0x68 14..13=0 12..10=0 9..5=7 fc fb fa - -add.d 31..25=0x68 14..13=3 12..10=0 9..5=0 fc fb fa -sub.d 31..25=0x68 14..13=3 12..10=0 9..5=1 fc fb fa -mul.d 31..25=0x68 14..13=3 12..10=0 9..5=2 fc fb fa -div.d 31..25=0x68 14..13=3 12..10=0 9..5=3 fc fb fa -sqrt.d 31..25=0x68 14..13=3 12..10=0 9..5=4 19..15=0 fc fa -sgninj.d 31..25=0x68 14..13=3 12..10=0 9..5=5 fc fb fa -sgninjn.d 31..25=0x68 14..13=3 12..10=0 9..5=6 fc fb fa -sgnmul.d 31..25=0x68 14..13=3 12..10=0 9..5=7 fc fb fa - -trunc.l.s 31..25=0x68 14..13=0 12..10=1 9..5=0 19..15=0 fc fa -truncu.l.s 31..25=0x68 14..13=0 12..10=1 9..5=1 19..15=0 fc fa -trunc.w.s 31..25=0x68 14..13=0 12..10=1 9..5=2 19..15=0 fc fa -truncu.w.s 31..25=0x68 14..13=0 12..10=1 9..5=3 19..15=0 fc fa - -trunc.l.d 31..25=0x68 14..13=3 12..10=1 9..5=0 19..15=0 fc fa -truncu.l.d 31..25=0x68 14..13=3 12..10=1 9..5=1 19..15=0 fc fa -trunc.w.d 31..25=0x68 14..13=3 12..10=1 9..5=2 19..15=0 fc fa -truncu.w.d 31..25=0x68 14..13=3 12..10=1 9..5=3 19..15=0 fc fa - -cvt.s.l 31..25=0x68 14..13=0 12..10=1 9..5=4 19..15=0 fc fa -cvtu.s.l 31..25=0x68 14..13=0 12..10=1 9..5=5 19..15=0 fc fa -cvt.s.w 31..25=0x68 14..13=0 12..10=1 9..5=6 19..15=0 fc fa -cvtu.s.w 31..25=0x68 14..13=0 12..10=1 9..5=7 19..15=0 fc fa - -cvt.d.l 31..25=0x68 14..13=3 12..10=1 9..5=4 19..15=0 fc fa -cvtu.d.l 31..25=0x68 14..13=3 12..10=1 9..5=5 19..15=0 fc fa -cvt.d.w 31..25=0x68 14..13=3 12..10=1 9..5=6 19..15=0 fc fa -cvtu.d.w 31..25=0x68 14..13=3 12..10=1 9..5=7 19..15=0 fc fa - -cvt.s.d 31..25=0x68 14..13=0 12..10=1 9..5=0x13 19..15=0 fc fa -cvt.d.s 31..25=0x68 14..13=3 12..10=1 9..5=0x10 19..15=0 fc fa - -c.eq.s 31..25=0x68 14..13=0 12..10=2 9..5=1 xc fa fb -c.lt.s 31..25=0x68 14..13=0 12..10=2 9..5=2 xc fa fb -c.le.s 31..25=0x68 14..13=0 12..10=2 9..5=3 xc fa fb - -c.eq.d 31..25=0x68 14..13=3 12..10=2 9..5=1 xc fa fb -c.lt.d 31..25=0x68 14..13=3 12..10=2 9..5=2 xc fa fb -c.le.d 31..25=0x68 14..13=3 12..10=2 9..5=3 xc fa fb - -l.s 31..25=0x69 14..13=0 12=0 fa xb imm -l.d 31..25=0x69 14..13=3 12=0 fa xb imm -s.s 31..25=0x69 14..13=0 12=1 fa xb imm -s.d 31..25=0x69 14..13=3 12=1 fa xb imm - -mff.s 31..25=0x6A 19..15=0 14..13=0 12..10=0 9..5=0 xc fa -mff.d 31..25=0x6A 19..15=0 14..13=3 12..10=0 9..5=0 xc fa -mffh.d 31..25=0x6A 19..15=0 14..13=3 12..10=1 9..5=0 xc fa -mtf.s 31..25=0x6A 19..15=0 14..13=0 12..10=2 9..5=0 fc xa -mtf.d 31..25=0x6A 19..15=0 14..13=3 12..10=2 9..5=0 fc xa -mtflh.d 31..25=0x6A 14..13=3 12..10=3 9..5=0 fc xa xb - -madd.s 31..25=0x6B 14..13=0 12..10=0 fc fb fa fd -msub.s 31..25=0x6B 14..13=0 12..10=1 fc fb fa fd -nmadd.s 31..25=0x6B 14..13=0 12..10=2 fc fb fa fd -nmsub.s 31..25=0x6B 14..13=0 12..10=3 fc fb fa fd - -madd.d 31..25=0x6B 14..13=3 12..10=0 fc fb fa fd -msub.d 31..25=0x6B 14..13=3 12..10=1 fc fb fa fd -nmadd.d 31..25=0x6B 14..13=3 12..10=2 fc fb fa fd -nmsub.d 31..25=0x6B 14..13=3 12..10=3 fc fb fa fd +add.s 31..25=0x68 14..13=0 12..10=0 9..5=0 rdr rs1 rs2 +sub.s 31..25=0x68 14..13=0 12..10=0 9..5=1 rdr rs1 rs2 +mul.s 31..25=0x68 14..13=0 12..10=0 9..5=2 rdr rs1 rs2 +div.s 31..25=0x68 14..13=0 12..10=0 9..5=3 rdr rs1 rs2 +sqrt.s 31..25=0x68 14..13=0 12..10=0 9..5=4 24..20=0 rdr rs1 +sgninj.s 31..25=0x68 14..13=0 12..10=0 9..5=5 rdr rs1 rs2 +sgninjn.s 31..25=0x68 14..13=0 12..10=0 9..5=6 rdr rs1 rs2 +sgnmul.s 31..25=0x68 14..13=0 12..10=0 9..5=7 rdr rs1 rs2 + +add.d 31..25=0x68 14..13=3 12..10=0 9..5=0 rdr rs1 rs2 +sub.d 31..25=0x68 14..13=3 12..10=0 9..5=1 rdr rs1 rs2 +mul.d 31..25=0x68 14..13=3 12..10=0 9..5=2 rdr rs1 rs2 +div.d 31..25=0x68 14..13=3 12..10=0 9..5=3 rdr rs1 rs2 +sqrt.d 31..25=0x68 14..13=3 12..10=0 9..5=4 24..20=0 rdr rs1 +sgninj.d 31..25=0x68 14..13=3 12..10=0 9..5=5 rdr rs1 rs2 +sgninjn.d 31..25=0x68 14..13=3 12..10=0 9..5=6 rdr rs1 rs2 +sgnmul.d 31..25=0x68 14..13=3 12..10=0 9..5=7 rdr rs1 rs2 + +trunc.l.s 31..25=0x68 14..13=0 12..10=1 9..5=0 24..20=0 rdr rs1 +truncu.l.s 31..25=0x68 14..13=0 12..10=1 9..5=1 24..20=0 rdr rs1 +trunc.w.s 31..25=0x68 14..13=0 12..10=1 9..5=2 24..20=0 rdr rs1 +truncu.w.s 31..25=0x68 14..13=0 12..10=1 9..5=3 24..20=0 rdr rs1 + +trunc.l.d 31..25=0x68 14..13=3 12..10=1 9..5=0 24..20=0 rdr rs1 +truncu.l.d 31..25=0x68 14..13=3 12..10=1 9..5=1 24..20=0 rdr rs1 +trunc.w.d 31..25=0x68 14..13=3 12..10=1 9..5=2 24..20=0 rdr rs1 +truncu.w.d 31..25=0x68 14..13=3 12..10=1 9..5=3 24..20=0 rdr rs1 + +cvt.s.l 31..25=0x68 14..13=0 12..10=1 9..5=4 24..20=0 rdr rs1 +cvtu.s.l 31..25=0x68 14..13=0 12..10=1 9..5=5 24..20=0 rdr rs1 +cvt.s.w 31..25=0x68 14..13=0 12..10=1 9..5=6 24..20=0 rdr rs1 +cvtu.s.w 31..25=0x68 14..13=0 12..10=1 9..5=7 24..20=0 rdr rs1 + +cvt.d.l 31..25=0x68 14..13=3 12..10=1 9..5=4 24..20=0 rdr rs1 +cvtu.d.l 31..25=0x68 14..13=3 12..10=1 9..5=5 24..20=0 rdr rs1 +cvt.d.w 31..25=0x68 14..13=3 12..10=1 9..5=6 24..20=0 rdr rs1 +cvtu.d.w 31..25=0x68 14..13=3 12..10=1 9..5=7 24..20=0 rdr rs1 + +cvt.s.d 31..25=0x68 14..13=0 12..10=1 9..5=0x13 24..20=0 rdr rs1 +cvt.d.s 31..25=0x68 14..13=3 12..10=1 9..5=0x10 24..20=0 rdr rs1 + +c.eq.s 31..25=0x68 14..13=0 12..10=2 9..5=1 rdr rs1 rs2 +c.lt.s 31..25=0x68 14..13=0 12..10=2 9..5=2 rdr rs1 rs2 +c.le.s 31..25=0x68 14..13=0 12..10=2 9..5=3 rdr rs1 rs2 + +c.eq.d 31..25=0x68 14..13=3 12..10=2 9..5=1 rdr rs1 rs2 +c.lt.d 31..25=0x68 14..13=3 12..10=2 9..5=2 rdr rs1 rs2 +c.le.d 31..25=0x68 14..13=3 12..10=2 9..5=3 rdr rs1 rs2 + +l.s 31..25=0x69 14..13=0 12=0 rdi rs1 imm12 +l.d 31..25=0x69 14..13=3 12=0 rdi rs1 imm12 +s.s 31..25=0x69 14..13=0 12=1 rs2 rs1 imm12 +s.d 31..25=0x69 14..13=3 12=1 rs2 rs1 imm12 + +mff.s 31..25=0x6A 24..20=0 14..13=0 12..10=0 9..5=0 rdr rs1 +mff.d 31..25=0x6A 24..20=0 14..13=3 12..10=0 9..5=0 rdr rs1 +mffh.d 31..25=0x6A 24..20=0 14..13=3 12..10=1 9..5=0 rdr rs1 +mtf.s 31..25=0x6A 24..20=0 14..13=0 12..10=2 9..5=0 rdr rs1 +mtf.d 31..25=0x6A 24..20=0 14..13=3 12..10=2 9..5=0 rdr rs1 +mtflh.d 31..25=0x6A 14..13=3 12..10=3 9..5=0 rdr rs1 rs2 + +madd.s 31..25=0x6B 14..13=0 12..10=0 rdr rs1 rs2 rs3 +msub.s 31..25=0x6B 14..13=0 12..10=1 rdr rs1 rs2 rs3 +nmadd.s 31..25=0x6B 14..13=0 12..10=2 rdr rs1 rs2 rs3 +nmsub.s 31..25=0x6B 14..13=0 12..10=3 rdr rs1 rs2 rs3 + +madd.d 31..25=0x6B 14..13=3 12..10=0 rdr rs1 rs2 rs3 +msub.d 31..25=0x6B 14..13=3 12..10=1 rdr rs1 rs2 rs3 +nmadd.d 31..25=0x6B 14..13=3 12..10=2 rdr rs1 rs2 rs3 +nmsub.d 31..25=0x6B 14..13=3 12..10=3 rdr rs1 rs2 rs3 diff --git a/parse-opcodes b/parse-opcodes index 1151e1f..47f11e8 100755 --- a/parse-opcodes +++ b/parse-opcodes @@ -11,16 +11,14 @@ arguments = {} types = {} arglut = {} -arglut['xa'] = (24,20) -arglut['xb'] = (19,15) -arglut['xc'] = (4,0) -arglut['fa'] = (24,20) -arglut['fb'] = (19,15) -arglut['fc'] = (4,0) -arglut['fd'] = (9,5) +arglut['rdi'] = (24,20) +arglut['rs2'] = (24,20) +arglut['rs1'] = (19,15) +arglut['rdr'] = (4,0) +arglut['rs3'] = (9,5) arglut['imm27'] = (26,0) arglut['imm20'] = (19,0) -arglut['imm'] = (11,0) +arglut['imm12'] = (11,0) arglut['shamt'] = (5,0) arglut['shamtw'] = (4,0) @@ -186,7 +184,7 @@ def print_lui_type(name,match,arguments): """ % \ ( \ binary(yank(match,25,7),7), \ - str_arg('xa','fa',match,arguments), \ + str_arg('rs1','',match,arguments), \ str_arg('imm20','',match,arguments), \ str_inst(name,arguments) \ ) @@ -203,10 +201,10 @@ def print_i_type(name,match,arguments): """ % \ ( \ binary(yank(match,25,7),7), \ - str_arg('xa','fa',match,arguments), \ - str_arg('xb','fb',match,arguments), \ + str_arg('rs1','',match,arguments), \ + str_arg('rs2','',match,arguments), \ binary(yank(match,12,3),3), \ - str_arg('imm','',match,arguments), \ + str_arg('imm12','',match,arguments), \ str_inst(name,arguments) \ ) @@ -222,8 +220,8 @@ def print_ish_type(name,match,arguments): """ % \ ( \ binary(yank(match,25,7),7), \ - str_arg('xa','',match,arguments), \ - str_arg('xb','',match,arguments), \ + str_arg('rdi','',match,arguments), \ + str_arg('rs1','',match,arguments), \ binary(yank(match,6,9),9), \ str_arg('shamt','',match,arguments), \ str_inst(name,arguments) \ @@ -242,8 +240,8 @@ def print_ishw_type(name,match,arguments): """ % \ ( \ binary(yank(match,25,7),7), \ - str_arg('xa','',match,arguments), \ - str_arg('xb','',match,arguments), \ + str_arg('rdi','',match,arguments), \ + str_arg('rs1','',match,arguments), \ binary(yank(match,6,9),9), \ str_arg('shamtw','',match,arguments), \ str_inst(name,arguments) \ @@ -261,10 +259,10 @@ def print_r_type(name,match,arguments): """ % \ ( \ binary(yank(match,25,7),7), \ - str_arg('xa','fa',match,arguments), \ - str_arg('xb','fb',match,arguments), \ + str_arg('rs2','',match,arguments), \ + str_arg('rs1','',match,arguments), \ binary(yank(match,5,10),10), \ - str_arg('xc','fc',match,arguments), \ + str_arg('rdr','',match,arguments), \ str_inst(name,arguments) \ ) @@ -281,11 +279,11 @@ def print_r4_type(name,match,arguments): """ % \ ( \ binary(yank(match,25,7),7), \ - str_arg('fa','',match,arguments), \ - str_arg('fb','',match,arguments), \ + str_arg('rs2','',match,arguments), \ + str_arg('rs1','',match,arguments), \ binary(yank(match,10,5),5), \ - str_arg('fd','',match,arguments), \ - str_arg('fc','',match,arguments), \ + str_arg('rs3','',match,arguments), \ + str_arg('rdr','',match,arguments), \ str_inst(name,arguments) \ ) @@ -479,7 +477,7 @@ def print_verilog_lui_type(name,match,arguments): ( \ name.replace('.','_').upper(), \ binary(yank(match,25,7),7), \ - str_verilog_arg('xa','fa',match,arguments), \ + str_verilog_arg('rdi','',match,arguments), \ str_verilog_arg('imm20','',match,arguments) \ ) @@ -488,10 +486,10 @@ def print_verilog_i_type(name,match,arguments): ( \ name.replace('.','_').upper(), \ binary(yank(match,25,7),7), \ - str_verilog_arg('xa','fa',match,arguments), \ - str_verilog_arg('xb','fb',match,arguments), \ + str_verilog_arg('rdi','',match,arguments), \ + str_verilog_arg('rs1','',match,arguments), \ binary(yank(match,12,3),3), \ - str_verilog_arg('imm','',match,arguments) \ + str_verilog_arg('imm12','',match,arguments) \ ) def print_verilog_ish_type(name,match,arguments): @@ -499,8 +497,8 @@ def print_verilog_ish_type(name,match,arguments): ( \ name.replace('.','_').upper(), \ binary(yank(match,25,7),7), \ - str_verilog_arg('xa','',match,arguments), \ - str_verilog_arg('xb','',match,arguments), \ + str_verilog_arg('rdi','',match,arguments), \ + str_verilog_arg('rs1','',match,arguments), \ binary(yank(match,6,9),9), \ str_verilog_arg('shamt','',match,arguments) \ ) @@ -510,8 +508,8 @@ def print_verilog_ishw_type(name,match,arguments): ( \ name.replace('.','_').upper(), \ binary(yank(match,25,7),7), \ - str_verilog_arg('xa','',match,arguments), \ - str_verilog_arg('xb','',match,arguments), \ + str_verilog_arg('rdi','',match,arguments), \ + str_verilog_arg('rs1','',match,arguments), \ binary(yank(match,6,9),9), \ str_verilog_arg('shamtw','',match,arguments) \ ) @@ -521,11 +519,11 @@ def print_verilog_r4_type(name,match,arguments): ( \ name.replace('.','_').upper(), \ binary(yank(match,25,7),7), \ - str_verilog_arg('fa','',match,arguments), \ - str_verilog_arg('fb','',match,arguments), \ + str_verilog_arg('rs2','',match,arguments), \ + str_verilog_arg('rs1','',match,arguments), \ binary(yank(match,10,5),5), \ - str_verilog_arg('fd','',match,arguments), \ - str_verilog_arg('fc','',match,arguments) \ + str_verilog_arg('rs3','',match,arguments), \ + str_verilog_arg('rdr','',match,arguments) \ ) def print_verilog_r_type(name,match,arguments): @@ -533,10 +531,10 @@ def print_verilog_r_type(name,match,arguments): ( \ name.replace('.','_').upper(), \ binary(yank(match,25,7),7), \ - str_verilog_arg('xa','fa',match,arguments), \ - str_verilog_arg('xb','fb',match,arguments), \ + str_verilog_arg('rs2','',match,arguments), \ + str_verilog_arg('rs1','',match,arguments), \ binary(yank(match,5,10),10), \ - str_verilog_arg('xc','fc',match,arguments) \ + str_verilog_arg('rdr','',match,arguments) \ ) def make_verilog(): -- cgit v1.2.3