From 83e0f5a424cdcce3640ecb8f97106352a05c8242 Mon Sep 17 00:00:00 2001 From: Yunsup Lee Date: Sun, 31 Oct 2010 23:27:10 -0700 Subject: [opcodes] add latex table for rm stuff --- instr-table.tex | 1394 +++++++++++++++++++++++++++++++++++++------------------ opcodes | 72 +-- parse-opcodes | 205 +++++--- 3 files changed, 1111 insertions(+), 560 deletions(-) diff --git a/instr-table.tex b/instr-table.tex index c9dfab6..9d49b40 100644 --- a/instr-table.tex +++ b/instr-table.tex @@ -4,14 +4,16 @@ \begin{table}[p] \begin{small} \begin{center} -\begin{tabular}{rcccccccccl} +\begin{tabular}{rcccccccccccl} & \hspace*{0.6in} & \hspace*{0.2in} & \hspace*{0.5in} & \hspace*{0.5in} & -\hspace*{0.3in} & -\hspace*{0.2in} & +\hspace*{0.5in} & +\hspace*{0.1in} & +\hspace*{0.1in} & +\hspace*{0.1in} & \hspace*{0.4in} & \hspace*{0.1in} & \hspace*{0.5in} \\ @@ -20,428 +22,430 @@ \instbitrange{26}{25} & \instbitrange{24}{20} & \instbitrange{19}{15} & -\instbitrange{14}{12} & -\instbitrange{11}{10} & +\instbitrange{14}{13} & +\instbit{12} & +\instbit{11} & +\instbit{10} & \instbitrange{9}{6} & \instbit{5} & \instbitrange{4}{0} \\ -\cline{2-10} +\cline{2-12} & \multicolumn{1}{|c|}{opcode5} & -\multicolumn{8}{c|}{jump target} & J-type \\ -\cline{2-10} +\multicolumn{10}{c|}{jump target} & J-type \\ +\cline{2-12} & \multicolumn{2}{|c|}{opcode} & \multicolumn{1}{c|}{rdi} & -\multicolumn{6}{c|}{LUI-immediate} & LUI-type \\ -\cline{2-10} +\multicolumn{8}{c|}{LUI-immediate} & LUI-type \\ +\cline{2-12} & \multicolumn{2}{|c|}{opcode} & \multicolumn{1}{c|}{rdi/rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{funct3} & -\multicolumn{4}{c|}{immediate} & I-type \\ -\cline{2-10} +\multicolumn{2}{c|}{funct3} & +\multicolumn{5}{c|}{immediate} & I-type \\ +\cline{2-12} & \multicolumn{2}{|c|}{opcode} & \multicolumn{1}{c|}{rdi} & \multicolumn{1}{c|}{rs1} & -\multicolumn{3}{c|}{funct9} & +\multicolumn{5}{c|}{funct9} & \multicolumn{2}{c|}{shamt} & ISH-type \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{opcode} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{funct10} & +\multicolumn{6}{c|}{funct10} & \multicolumn{1}{c|}{rdr} & R-type \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{opcode} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{2}{c|}{funct5} & +\multicolumn{4}{c|}{funct5} & \multicolumn{2}{c|}{rs3} & \multicolumn{1}{c|}{rdr} & R4-type \\ -\cline{2-10} +\cline{2-12} & -\multicolumn{9}{c}{} & \\ +\multicolumn{11}{c}{} & \\ & -\multicolumn{9}{c}{\bf Unimplemented Instruction} & \\ -\cline{2-10} +\multicolumn{11}{c}{\bf Unimplemented Instruction} & \\ +\cline{2-12} & -\multicolumn{9}{|c|}{00000000000000000000000000000000} & UNIMP \\ -\cline{2-10} +\multicolumn{11}{|c|}{00000000000000000000000000000000} & UNIMP \\ +\cline{2-12} & -\multicolumn{9}{c}{} & \\ +\multicolumn{11}{c}{} & \\ & -\multicolumn{9}{c}{\bf Control Transfer Instructions} & \\ -\cline{2-10} +\multicolumn{11}{c}{\bf Control Transfer Instructions} & \\ +\cline{2-12} & \multicolumn{1}{|c|}{11000} & -\multicolumn{8}{c|}{imm27} & J imm27 \\ -\cline{2-10} +\multicolumn{10}{c|}{imm27} & J imm27 \\ +\cline{2-12} & \multicolumn{1}{|c|}{11001} & -\multicolumn{8}{c|}{imm27} & JAL imm27 \\ -\cline{2-10} +\multicolumn{10}{c|}{imm27} & JAL imm27 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1111011} & \multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0000000000} & +\multicolumn{6}{c|}{0000000000} & \multicolumn{1}{c|}{rdr} & JALR.C rdr,rs1 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1111011} & \multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0000000001} & +\multicolumn{6}{c|}{0000000001} & \multicolumn{1}{c|}{rdr} & JALR.R rdr,rs1 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1111011} & \multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0000000010} & +\multicolumn{6}{c|}{0000000010} & \multicolumn{1}{c|}{rdr} & JALR.J rdr,rs1 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110011} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{000} & -\multicolumn{4}{c|}{imm12} & BEQ rs1,rs2,imm12 \\ -\cline{2-10} +\multicolumn{2}{c|}{000} & +\multicolumn{5}{c|}{imm12} & BEQ rs1,rs2,imm12 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1110011} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{001} & -\multicolumn{4}{c|}{imm12} & BNE rs1,rs2,imm12 \\ -\cline{2-10} +\multicolumn{2}{c|}{001} & +\multicolumn{5}{c|}{imm12} & BNE rs1,rs2,imm12 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1110011} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{100} & -\multicolumn{4}{c|}{imm12} & BLT rs1,rs2,imm12 \\ -\cline{2-10} +\multicolumn{2}{c|}{100} & +\multicolumn{5}{c|}{imm12} & BLT rs1,rs2,imm12 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1110011} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{101} & -\multicolumn{4}{c|}{imm12} & BGE rs1,rs2,imm12 \\ -\cline{2-10} +\multicolumn{2}{c|}{101} & +\multicolumn{5}{c|}{imm12} & BGE rs1,rs2,imm12 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1110011} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{110} & -\multicolumn{4}{c|}{imm12} & BLTU rs1,rs2,imm12 \\ -\cline{2-10} +\multicolumn{2}{c|}{110} & +\multicolumn{5}{c|}{imm12} & BLTU rs1,rs2,imm12 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1110011} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{111} & -\multicolumn{4}{c|}{imm12} & BGEU rs1,rs2,imm12 \\ -\cline{2-10} +\multicolumn{2}{c|}{111} & +\multicolumn{5}{c|}{imm12} & BGEU rs1,rs2,imm12 \\ +\cline{2-12} & -\multicolumn{9}{c}{} & \\ +\multicolumn{11}{c}{} & \\ & -\multicolumn{9}{c}{\bf Memory Instructions} & \\ -\cline{2-10} +\multicolumn{11}{c}{\bf Memory Instructions} & \\ +\cline{2-12} & \multicolumn{2}{|c|}{1111000} & \multicolumn{1}{c|}{rdi} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{000} & -\multicolumn{4}{c|}{imm12} & LB rdi,rs1,imm12 \\ -\cline{2-10} +\multicolumn{2}{c|}{000} & +\multicolumn{5}{c|}{imm12} & LB rdi,rs1,imm12 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1111000} & \multicolumn{1}{c|}{rdi} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{001} & -\multicolumn{4}{c|}{imm12} & LH rdi,rs1,imm12 \\ -\cline{2-10} +\multicolumn{2}{c|}{001} & +\multicolumn{5}{c|}{imm12} & LH rdi,rs1,imm12 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1111000} & \multicolumn{1}{c|}{rdi} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{010} & -\multicolumn{4}{c|}{imm12} & LW rdi,rs1,imm12 \\ -\cline{2-10} +\multicolumn{2}{c|}{010} & +\multicolumn{5}{c|}{imm12} & LW rdi,rs1,imm12 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1111000} & \multicolumn{1}{c|}{rdi} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{011} & -\multicolumn{4}{c|}{imm12} & LD rdi,rs1,imm12 \\ -\cline{2-10} +\multicolumn{2}{c|}{011} & +\multicolumn{5}{c|}{imm12} & LD rdi,rs1,imm12 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1111000} & \multicolumn{1}{c|}{rdi} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{100} & -\multicolumn{4}{c|}{imm12} & LBU rdi,rs1,imm12 \\ -\cline{2-10} +\multicolumn{2}{c|}{100} & +\multicolumn{5}{c|}{imm12} & LBU rdi,rs1,imm12 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1111000} & \multicolumn{1}{c|}{rdi} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{101} & -\multicolumn{4}{c|}{imm12} & LHU rdi,rs1,imm12 \\ -\cline{2-10} +\multicolumn{2}{c|}{101} & +\multicolumn{5}{c|}{imm12} & LHU rdi,rs1,imm12 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1111000} & \multicolumn{1}{c|}{rdi} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{110} & -\multicolumn{4}{c|}{imm12} & LWU rdi,rs1,imm12 \\ -\cline{2-10} +\multicolumn{2}{c|}{110} & +\multicolumn{5}{c|}{imm12} & LWU rdi,rs1,imm12 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1111000} & \multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{111} & -\multicolumn{4}{c|}{imm12} & SYNCI rs1,imm12 \\ -\cline{2-10} +\multicolumn{2}{c|}{111} & +\multicolumn{5}{c|}{imm12} & SYNCI rs1,imm12 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1111001} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{000} & -\multicolumn{4}{c|}{imm12} & SB rs2,rs1,imm12 \\ -\cline{2-10} +\multicolumn{2}{c|}{000} & +\multicolumn{5}{c|}{imm12} & SB rs2,rs1,imm12 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1111001} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{001} & -\multicolumn{4}{c|}{imm12} & SH rs2,rs1,imm12 \\ -\cline{2-10} +\multicolumn{2}{c|}{001} & +\multicolumn{5}{c|}{imm12} & SH rs2,rs1,imm12 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1111001} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{010} & -\multicolumn{4}{c|}{imm12} & SW rs2,rs1,imm12 \\ -\cline{2-10} +\multicolumn{2}{c|}{010} & +\multicolumn{5}{c|}{imm12} & SW rs2,rs1,imm12 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1111001} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{011} & -\multicolumn{4}{c|}{imm12} & SD rs2,rs1,imm12 \\ -\cline{2-10} +\multicolumn{2}{c|}{011} & +\multicolumn{5}{c|}{imm12} & SD rs2,rs1,imm12 \\ +\cline{2-12} & -\multicolumn{9}{c}{} & \\ +\multicolumn{11}{c}{} & \\ & -\multicolumn{9}{c}{\bf Atomic Memory Instructions} & \\ -\cline{2-10} +\multicolumn{11}{c}{\bf Atomic Memory Instructions} & \\ +\cline{2-12} & \multicolumn{2}{|c|}{1111010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0100000000} & +\multicolumn{6}{c|}{0100000000} & \multicolumn{1}{c|}{rdr} & AMOW.ADD rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1111010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0100000001} & +\multicolumn{6}{c|}{0100000001} & \multicolumn{1}{c|}{rdr} & AMOW.SWAP rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1111010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0100000010} & +\multicolumn{6}{c|}{0100000010} & \multicolumn{1}{c|}{rdr} & AMOW.AND rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1111010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0100000011} & +\multicolumn{6}{c|}{0100000011} & \multicolumn{1}{c|}{rdr} & AMOW.OR rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1111010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0100000100} & +\multicolumn{6}{c|}{0100000100} & \multicolumn{1}{c|}{rdr} & AMOW.MIN rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1111010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0100000101} & +\multicolumn{6}{c|}{0100000101} & \multicolumn{1}{c|}{rdr} & AMOW.MAX rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1111010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0100000110} & +\multicolumn{6}{c|}{0100000110} & \multicolumn{1}{c|}{rdr} & AMOW.MINU rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1111010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0100000111} & +\multicolumn{6}{c|}{0100000111} & \multicolumn{1}{c|}{rdr} & AMOW.MAXU rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1111010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0110000000} & +\multicolumn{6}{c|}{0110000000} & \multicolumn{1}{c|}{rdr} & AMO.ADD rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1111010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0110000001} & +\multicolumn{6}{c|}{0110000001} & \multicolumn{1}{c|}{rdr} & AMO.SWAP rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1111010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0110000010} & +\multicolumn{6}{c|}{0110000010} & \multicolumn{1}{c|}{rdr} & AMO.AND rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1111010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0110000011} & +\multicolumn{6}{c|}{0110000011} & \multicolumn{1}{c|}{rdr} & AMO.OR rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1111010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0110000100} & +\multicolumn{6}{c|}{0110000100} & \multicolumn{1}{c|}{rdr} & AMO.MIN rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1111010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0110000101} & +\multicolumn{6}{c|}{0110000101} & \multicolumn{1}{c|}{rdr} & AMO.MAX rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1111010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0110000110} & +\multicolumn{6}{c|}{0110000110} & \multicolumn{1}{c|}{rdr} & AMO.MINU rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1111010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0110000111} & +\multicolumn{6}{c|}{0110000111} & \multicolumn{1}{c|}{rdr} & AMO.MAXU rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} \end{tabular} @@ -457,14 +461,16 @@ \begin{table}[p] \begin{small} \begin{center} -\begin{tabular}{rcccccccccl} +\begin{tabular}{rcccccccccccl} & \hspace*{0.6in} & \hspace*{0.2in} & \hspace*{0.5in} & \hspace*{0.5in} & -\hspace*{0.3in} & -\hspace*{0.2in} & +\hspace*{0.5in} & +\hspace*{0.1in} & +\hspace*{0.1in} & +\hspace*{0.1in} & \hspace*{0.4in} & \hspace*{0.1in} & \hspace*{0.5in} \\ @@ -473,461 +479,463 @@ \instbitrange{26}{25} & \instbitrange{24}{20} & \instbitrange{19}{15} & -\instbitrange{14}{12} & -\instbitrange{11}{10} & +\instbitrange{14}{13} & +\instbit{12} & +\instbit{11} & +\instbit{10} & \instbitrange{9}{6} & \instbit{5} & \instbitrange{4}{0} \\ -\cline{2-10} +\cline{2-12} & \multicolumn{1}{|c|}{opcode5} & -\multicolumn{8}{c|}{jump target} & J-type \\ -\cline{2-10} +\multicolumn{10}{c|}{jump target} & J-type \\ +\cline{2-12} & \multicolumn{2}{|c|}{opcode} & \multicolumn{1}{c|}{rdi} & -\multicolumn{6}{c|}{LUI-immediate} & LUI-type \\ -\cline{2-10} +\multicolumn{8}{c|}{LUI-immediate} & LUI-type \\ +\cline{2-12} & \multicolumn{2}{|c|}{opcode} & \multicolumn{1}{c|}{rdi/rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{funct3} & -\multicolumn{4}{c|}{immediate} & I-type \\ -\cline{2-10} +\multicolumn{2}{c|}{funct3} & +\multicolumn{5}{c|}{immediate} & I-type \\ +\cline{2-12} & \multicolumn{2}{|c|}{opcode} & \multicolumn{1}{c|}{rdi} & \multicolumn{1}{c|}{rs1} & -\multicolumn{3}{c|}{funct9} & +\multicolumn{5}{c|}{funct9} & \multicolumn{2}{c|}{shamt} & ISH-type \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{opcode} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{funct10} & +\multicolumn{6}{c|}{funct10} & \multicolumn{1}{c|}{rdr} & R-type \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{opcode} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{2}{c|}{funct5} & +\multicolumn{4}{c|}{funct5} & \multicolumn{2}{c|}{rs3} & \multicolumn{1}{c|}{rdr} & R4-type \\ -\cline{2-10} +\cline{2-12} & -\multicolumn{9}{c}{} & \\ +\multicolumn{11}{c}{} & \\ & -\multicolumn{9}{c}{\bf Integer Compute Instructions} & \\ -\cline{2-10} +\multicolumn{11}{c}{\bf Integer Compute Instructions} & \\ +\cline{2-12} & \multicolumn{2}{|c|}{1110001} & \multicolumn{1}{c|}{rdi} & -\multicolumn{6}{c|}{imm20} & LUI rdi,imm20 \\ -\cline{2-10} +\multicolumn{8}{c|}{imm20} & LUI rdi,imm20 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1110100} & \multicolumn{1}{c|}{rdi} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{000} & -\multicolumn{4}{c|}{imm12} & ADDI rdi,rs1,imm12 \\ -\cline{2-10} +\multicolumn{2}{c|}{000} & +\multicolumn{5}{c|}{imm12} & ADDI rdi,rs1,imm12 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1110100} & \multicolumn{1}{c|}{rdi} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{010} & -\multicolumn{4}{c|}{imm12} & SLTI rdi,rs1,imm12 \\ -\cline{2-10} +\multicolumn{2}{c|}{010} & +\multicolumn{5}{c|}{imm12} & SLTI rdi,rs1,imm12 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1110100} & \multicolumn{1}{c|}{rdi} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{011} & -\multicolumn{4}{c|}{imm12} & SLTIU rdi,rs1,imm12 \\ -\cline{2-10} +\multicolumn{2}{c|}{011} & +\multicolumn{5}{c|}{imm12} & SLTIU rdi,rs1,imm12 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1110100} & \multicolumn{1}{c|}{rdi} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{100} & -\multicolumn{4}{c|}{imm12} & ANDI rdi,rs1,imm12 \\ -\cline{2-10} +\multicolumn{2}{c|}{100} & +\multicolumn{5}{c|}{imm12} & ANDI rdi,rs1,imm12 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1110100} & \multicolumn{1}{c|}{rdi} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{101} & -\multicolumn{4}{c|}{imm12} & ORI rdi,rs1,imm12 \\ -\cline{2-10} +\multicolumn{2}{c|}{101} & +\multicolumn{5}{c|}{imm12} & ORI rdi,rs1,imm12 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1110100} & \multicolumn{1}{c|}{rdi} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{110} & -\multicolumn{4}{c|}{imm12} & XORI rdi,rs1,imm12 \\ -\cline{2-10} +\multicolumn{2}{c|}{110} & +\multicolumn{5}{c|}{imm12} & XORI rdi,rs1,imm12 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1110100} & \multicolumn{1}{c|}{rdi} & \multicolumn{1}{c|}{rs1} & -\multicolumn{3}{c|}{111000001} & +\multicolumn{5}{c|}{111000001} & \multicolumn{2}{c|}{shamt} & SLLI rdi,rs1,shamt \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110100} & \multicolumn{1}{c|}{rdi} & \multicolumn{1}{c|}{rs1} & -\multicolumn{3}{c|}{111000010} & +\multicolumn{5}{c|}{111000010} & \multicolumn{2}{c|}{shamt} & SRLI rdi,rs1,shamt \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110100} & \multicolumn{1}{c|}{rdi} & \multicolumn{1}{c|}{rs1} & -\multicolumn{3}{c|}{111000011} & +\multicolumn{5}{c|}{111000011} & \multicolumn{2}{c|}{shamt} & SRAI rdi,rs1,shamt \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110101} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0000000000} & +\multicolumn{6}{c|}{0000000000} & \multicolumn{1}{c|}{rdr} & ADD rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110101} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0000000001} & +\multicolumn{6}{c|}{0000000001} & \multicolumn{1}{c|}{rdr} & SUB rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110101} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0000000010} & +\multicolumn{6}{c|}{0000000010} & \multicolumn{1}{c|}{rdr} & SLT rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110101} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0000000011} & +\multicolumn{6}{c|}{0000000011} & \multicolumn{1}{c|}{rdr} & SLTU rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110101} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0000000100} & +\multicolumn{6}{c|}{0000000100} & \multicolumn{1}{c|}{rdr} & AND rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110101} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0000000101} & +\multicolumn{6}{c|}{0000000101} & \multicolumn{1}{c|}{rdr} & OR rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110101} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0000000110} & +\multicolumn{6}{c|}{0000000110} & \multicolumn{1}{c|}{rdr} & XOR rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110101} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0000000111} & +\multicolumn{6}{c|}{0000000111} & \multicolumn{1}{c|}{rdr} & NOR rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110101} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{1110000010} & +\multicolumn{6}{c|}{1110000010} & \multicolumn{1}{c|}{rdr} & SLL rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110101} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{1110000100} & +\multicolumn{6}{c|}{1110000100} & \multicolumn{1}{c|}{rdr} & SRL rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110101} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{1110000110} & +\multicolumn{6}{c|}{1110000110} & \multicolumn{1}{c|}{rdr} & SRA rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110101} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0010000000} & +\multicolumn{6}{c|}{0010000000} & \multicolumn{1}{c|}{rdr} & MUL rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110101} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0010000010} & +\multicolumn{6}{c|}{0010000010} & \multicolumn{1}{c|}{rdr} & MULH rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110101} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0010000011} & +\multicolumn{6}{c|}{0010000011} & \multicolumn{1}{c|}{rdr} & MULHU rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110101} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0010000100} & +\multicolumn{6}{c|}{0010000100} & \multicolumn{1}{c|}{rdr} & DIV rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110101} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0010000101} & +\multicolumn{6}{c|}{0010000101} & \multicolumn{1}{c|}{rdr} & DIVU rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110101} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0010000110} & +\multicolumn{6}{c|}{0010000110} & \multicolumn{1}{c|}{rdr} & REM rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110101} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0010000111} & +\multicolumn{6}{c|}{0010000111} & \multicolumn{1}{c|}{rdr} & REMU rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & -\multicolumn{9}{c}{} & \\ +\multicolumn{11}{c}{} & \\ & -\multicolumn{9}{c}{\bf 32-bit Integer Compute Instructions} & \\ -\cline{2-10} +\multicolumn{11}{c}{\bf 32-bit Integer Compute Instructions} & \\ +\cline{2-12} & \multicolumn{2}{|c|}{1110110} & \multicolumn{1}{c|}{rdi} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{000} & -\multicolumn{4}{c|}{imm12} & ADDIW rdi,rs1,imm12 \\ -\cline{2-10} +\multicolumn{2}{c|}{000} & +\multicolumn{5}{c|}{imm12} & ADDIW rdi,rs1,imm12 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1110110} & \multicolumn{1}{c|}{rdi} & \multicolumn{1}{c|}{rs1} & -\multicolumn{3}{c|}{111000001} & +\multicolumn{5}{c|}{111000001} & \multicolumn{1}{c|}{0} & \multicolumn{1}{c|}{shamtw} & SLLIW rdi,rs1,shamtw \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110110} & \multicolumn{1}{c|}{rdi} & \multicolumn{1}{c|}{rs1} & -\multicolumn{3}{c|}{111000010} & +\multicolumn{5}{c|}{111000010} & \multicolumn{1}{c|}{0} & \multicolumn{1}{c|}{shamtw} & SRLIW rdi,rs1,shamtw \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110110} & \multicolumn{1}{c|}{rdi} & \multicolumn{1}{c|}{rs1} & -\multicolumn{3}{c|}{111000011} & +\multicolumn{5}{c|}{111000011} & \multicolumn{1}{c|}{0} & \multicolumn{1}{c|}{shamtw} & SRAIW rdi,rs1,shamtw \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110111} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0000000000} & +\multicolumn{6}{c|}{0000000000} & \multicolumn{1}{c|}{rdr} & ADDW rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110111} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0000000001} & +\multicolumn{6}{c|}{0000000001} & \multicolumn{1}{c|}{rdr} & SUBW rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110111} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{1110000010} & +\multicolumn{6}{c|}{1110000010} & \multicolumn{1}{c|}{rdr} & SLLW rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110111} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{1110000100} & +\multicolumn{6}{c|}{1110000100} & \multicolumn{1}{c|}{rdr} & SRLW rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110111} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{1110000110} & +\multicolumn{6}{c|}{1110000110} & \multicolumn{1}{c|}{rdr} & SRAW rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110111} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0010000000} & +\multicolumn{6}{c|}{0010000000} & \multicolumn{1}{c|}{rdr} & MULW rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110111} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0010000010} & +\multicolumn{6}{c|}{0010000010} & \multicolumn{1}{c|}{rdr} & MULHW rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110111} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0010000011} & +\multicolumn{6}{c|}{0010000011} & \multicolumn{1}{c|}{rdr} & MULHUW rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110111} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0010000100} & +\multicolumn{6}{c|}{0010000100} & \multicolumn{1}{c|}{rdr} & DIVW rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110111} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0010000101} & +\multicolumn{6}{c|}{0010000101} & \multicolumn{1}{c|}{rdr} & DIVUW rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110111} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0010000110} & +\multicolumn{6}{c|}{0010000110} & \multicolumn{1}{c|}{rdr} & REMW rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1110111} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0010000111} & +\multicolumn{6}{c|}{0010000111} & \multicolumn{1}{c|}{rdr} & REMUW rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} \end{tabular} @@ -943,14 +951,16 @@ \begin{table}[p] \begin{small} \begin{center} -\begin{tabular}{rcccccccccl} +\begin{tabular}{rcccccccccccl} & \hspace*{0.6in} & \hspace*{0.2in} & \hspace*{0.5in} & \hspace*{0.5in} & -\hspace*{0.3in} & -\hspace*{0.2in} & +\hspace*{0.5in} & +\hspace*{0.1in} & +\hspace*{0.1in} & +\hspace*{0.1in} & \hspace*{0.4in} & \hspace*{0.1in} & \hspace*{0.5in} \\ @@ -959,410 +969,478 @@ \instbitrange{26}{25} & \instbitrange{24}{20} & \instbitrange{19}{15} & -\instbitrange{14}{12} & -\instbitrange{11}{10} & +\instbitrange{14}{13} & +\instbit{12} & +\instbit{11} & +\instbit{10} & \instbitrange{9}{6} & \instbit{5} & \instbitrange{4}{0} \\ -\cline{2-10} +\cline{2-12} & \multicolumn{1}{|c|}{opcode5} & -\multicolumn{8}{c|}{jump target} & J-type \\ -\cline{2-10} +\multicolumn{10}{c|}{jump target} & J-type \\ +\cline{2-12} & \multicolumn{2}{|c|}{opcode} & \multicolumn{1}{c|}{rdi} & -\multicolumn{6}{c|}{LUI-immediate} & LUI-type \\ -\cline{2-10} +\multicolumn{8}{c|}{LUI-immediate} & LUI-type \\ +\cline{2-12} & \multicolumn{2}{|c|}{opcode} & \multicolumn{1}{c|}{rdi/rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{funct3} & -\multicolumn{4}{c|}{immediate} & I-type \\ -\cline{2-10} +\multicolumn{2}{c|}{funct3} & +\multicolumn{5}{c|}{immediate} & I-type \\ +\cline{2-12} & \multicolumn{2}{|c|}{opcode} & \multicolumn{1}{c|}{rdi} & \multicolumn{1}{c|}{rs1} & -\multicolumn{3}{c|}{funct9} & +\multicolumn{5}{c|}{funct9} & \multicolumn{2}{c|}{shamt} & ISH-type \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{opcode} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{funct10} & +\multicolumn{6}{c|}{funct10} & \multicolumn{1}{c|}{rdr} & R-type \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{opcode} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{2}{c|}{funct5} & +\multicolumn{4}{c|}{funct5} & \multicolumn{2}{c|}{rs3} & \multicolumn{1}{c|}{rdr} & R4-type \\ -\cline{2-10} +\cline{2-12} & -\multicolumn{9}{c}{} & \\ +\multicolumn{11}{c}{} & \\ & -\multicolumn{9}{c}{\bf Floating-Point Memory Instructions} & \\ -\cline{2-10} +\multicolumn{11}{c}{\bf Floating-Point Memory Instructions} & \\ +\cline{2-12} & \multicolumn{2}{|c|}{1101000} & \multicolumn{1}{c|}{rdi} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{010} & -\multicolumn{4}{c|}{imm12} & L.S rdi,rs1,imm12 \\ -\cline{2-10} +\multicolumn{2}{c|}{010} & +\multicolumn{5}{c|}{imm12} & L.S rdi,rs1,imm12 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1101000} & \multicolumn{1}{c|}{rdi} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{011} & -\multicolumn{4}{c|}{imm12} & L.D rdi,rs1,imm12 \\ -\cline{2-10} +\multicolumn{2}{c|}{011} & +\multicolumn{5}{c|}{imm12} & L.D rdi,rs1,imm12 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1101001} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{010} & -\multicolumn{4}{c|}{imm12} & S.S rs2,rs1,imm12 \\ -\cline{2-10} +\multicolumn{2}{c|}{010} & +\multicolumn{5}{c|}{imm12} & S.S rs2,rs1,imm12 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1101001} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{011} & -\multicolumn{4}{c|}{imm12} & S.D rs2,rs1,imm12 \\ -\cline{2-10} +\multicolumn{2}{c|}{011} & +\multicolumn{5}{c|}{imm12} & S.D rs2,rs1,imm12 \\ +\cline{2-12} & -\multicolumn{9}{c}{} & \\ +\multicolumn{11}{c}{} & \\ & -\multicolumn{9}{c}{\bf Floating-Point Compute Instructions} & \\ -\cline{2-10} +\multicolumn{11}{c}{\bf Floating-Point Compute Instructions} & \\ +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0000000000} & +\multicolumn{6}{c|}{0000000000} & \multicolumn{1}{c|}{rdr} & ADD.S rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0000000001} & +\multicolumn{6}{c|}{0000000001} & \multicolumn{1}{c|}{rdr} & SUB.S rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0000000010} & +\multicolumn{6}{c|}{0000000010} & \multicolumn{1}{c|}{rdr} & MUL.S rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0000000011} & +\multicolumn{6}{c|}{0000000011} & \multicolumn{1}{c|}{rdr} & DIV.S rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0000000100} & +\multicolumn{6}{c|}{0000000100} & \multicolumn{1}{c|}{rdr} & SQRT.S rdr,rs1 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{1100000000} & +\multicolumn{6}{c|}{1100000000} & \multicolumn{1}{c|}{rdr} & ADD.D rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{1100000001} & +\multicolumn{6}{c|}{1100000001} & \multicolumn{1}{c|}{rdr} & SUB.D rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{1100000010} & +\multicolumn{6}{c|}{1100000010} & \multicolumn{1}{c|}{rdr} & MUL.D rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{1100000011} & +\multicolumn{6}{c|}{1100000011} & \multicolumn{1}{c|}{rdr} & DIV.D rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{1100000100} & +\multicolumn{6}{c|}{1100000100} & \multicolumn{1}{c|}{rdr} & SQRT.D rdr,rs1 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1101100} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{2}{c|}{00000} & +\multicolumn{4}{c|}{00000} & \multicolumn{2}{c|}{rs3} & \multicolumn{1}{c|}{rdr} & MADD.S rdr,rs1,rs2,rs3 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1101101} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{2}{c|}{00000} & +\multicolumn{4}{c|}{00000} & \multicolumn{2}{c|}{rs3} & \multicolumn{1}{c|}{rdr} & MSUB.S rdr,rs1,rs2,rs3 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1101110} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{2}{c|}{00000} & +\multicolumn{4}{c|}{00000} & \multicolumn{2}{c|}{rs3} & \multicolumn{1}{c|}{rdr} & NMSUB.S rdr,rs1,rs2,rs3 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1101111} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{2}{c|}{00000} & +\multicolumn{4}{c|}{00000} & \multicolumn{2}{c|}{rs3} & \multicolumn{1}{c|}{rdr} & NMADD.S rdr,rs1,rs2,rs3 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1101100} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{2}{c|}{11000} & +\multicolumn{4}{c|}{11000} & \multicolumn{2}{c|}{rs3} & \multicolumn{1}{c|}{rdr} & MADD.D rdr,rs1,rs2,rs3 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1101101} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{2}{c|}{11000} & +\multicolumn{4}{c|}{11000} & \multicolumn{2}{c|}{rs3} & \multicolumn{1}{c|}{rdr} & MSUB.D rdr,rs1,rs2,rs3 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1101110} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{2}{c|}{11000} & +\multicolumn{4}{c|}{11000} & \multicolumn{2}{c|}{rs3} & \multicolumn{1}{c|}{rdr} & NMSUB.D rdr,rs1,rs2,rs3 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1101111} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{2}{c|}{11000} & +\multicolumn{4}{c|}{11000} & \multicolumn{2}{c|}{rs3} & \multicolumn{1}{c|}{rdr} & NMADD.D rdr,rs1,rs2,rs3 \\ -\cline{2-10} +\cline{2-12} & -\multicolumn{9}{c}{} & \\ -& -\multicolumn{9}{c}{\bf Floating-Point Compare Instructions} & \\ -\cline{2-10} +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{00} & +\multicolumn{2}{c|}{rm} & +\multicolumn{3}{c|}{100000} & +\multicolumn{1}{c|}{rdr} & ADD.S.RM rdr,rs1,rs2 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0000010101} & -\multicolumn{1}{c|}{rdr} & C.EQ.S rdr,rs1,rs2 \\ -\cline{2-10} +\multicolumn{1}{c|}{00} & +\multicolumn{2}{c|}{rm} & +\multicolumn{3}{c|}{100001} & +\multicolumn{1}{c|}{rdr} & SUB.S.RM rdr,rs1,rs2 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0000010110} & -\multicolumn{1}{c|}{rdr} & C.LT.S rdr,rs1,rs2 \\ -\cline{2-10} +\multicolumn{1}{c|}{00} & +\multicolumn{2}{c|}{rm} & +\multicolumn{3}{c|}{100010} & +\multicolumn{1}{c|}{rdr} & MUL.S.RM rdr,rs1,rs2 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0000010111} & -\multicolumn{1}{c|}{rdr} & C.LE.S rdr,rs1,rs2 \\ -\cline{2-10} +\multicolumn{1}{c|}{00} & +\multicolumn{2}{c|}{rm} & +\multicolumn{3}{c|}{100011} & +\multicolumn{1}{c|}{rdr} & DIV.S.RM rdr,rs1,rs2 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & -\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{1100010101} & -\multicolumn{1}{c|}{rdr} & C.EQ.D rdr,rs1,rs2 \\ -\cline{2-10} +\multicolumn{1}{c|}{00} & +\multicolumn{2}{c|}{rm} & +\multicolumn{3}{c|}{100100} & +\multicolumn{1}{c|}{rdr} & SQRT.S.RM rdr,rs1 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{1100010110} & -\multicolumn{1}{c|}{rdr} & C.LT.D rdr,rs1,rs2 \\ -\cline{2-10} +\multicolumn{1}{c|}{11} & +\multicolumn{2}{c|}{rm} & +\multicolumn{3}{c|}{100000} & +\multicolumn{1}{c|}{rdr} & ADD.D.RM rdr,rs1,rs2 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{1100010111} & -\multicolumn{1}{c|}{rdr} & C.LE.D rdr,rs1,rs2 \\ -\cline{2-10} +\multicolumn{1}{c|}{11} & +\multicolumn{2}{c|}{rm} & +\multicolumn{3}{c|}{100001} & +\multicolumn{1}{c|}{rdr} & SUB.D.RM rdr,rs1,rs2 \\ +\cline{2-12} & -\multicolumn{9}{c}{} & \\ -& -\multicolumn{9}{c}{\bf Floating-Point Move \& Conversion Instructions} & \\ -\cline{2-10} +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{11} & +\multicolumn{2}{c|}{rm} & +\multicolumn{3}{c|}{100010} & +\multicolumn{1}{c|}{rdr} & MUL.D.RM rdr,rs1,rs2 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0000000101} & -\multicolumn{1}{c|}{rdr} & SGNINJ.S rdr,rs1,rs2 \\ -\cline{2-10} +\multicolumn{1}{c|}{11} & +\multicolumn{2}{c|}{rm} & +\multicolumn{3}{c|}{100011} & +\multicolumn{1}{c|}{rdr} & DIV.D.RM rdr,rs1,rs2 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{11} & +\multicolumn{2}{c|}{rm} & +\multicolumn{3}{c|}{100100} & +\multicolumn{1}{c|}{rdr} & SQRT.D.RM rdr,rs1 \\ +\cline{2-12} + + +& +\multicolumn{2}{|c|}{1101100} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0000000110} & -\multicolumn{1}{c|}{rdr} & SGNINJN.S rdr,rs1,rs2 \\ -\cline{2-10} +\multicolumn{1}{c|}{00} & +\multicolumn{2}{c|}{rm} & +\multicolumn{1}{c|}{1} & +\multicolumn{2}{c|}{rs3} & +\multicolumn{1}{c|}{rdr} & MADD.S.RM rdr,rs1,rs2,rs3 \\ +\cline{2-12} & -\multicolumn{2}{|c|}{1101010} & +\multicolumn{2}{|c|}{1101101} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0000000111} & -\multicolumn{1}{c|}{rdr} & SGNMUL.S rdr,rs1,rs2 \\ -\cline{2-10} +\multicolumn{1}{c|}{00} & +\multicolumn{2}{c|}{rm} & +\multicolumn{1}{c|}{1} & +\multicolumn{2}{c|}{rs3} & +\multicolumn{1}{c|}{rdr} & MSUB.S.RM rdr,rs1,rs2,rs3 \\ +\cline{2-12} & -\multicolumn{2}{|c|}{1101010} & +\multicolumn{2}{|c|}{1101110} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{1100000101} & -\multicolumn{1}{c|}{rdr} & SGNINJ.D rdr,rs1,rs2 \\ -\cline{2-10} +\multicolumn{1}{c|}{00} & +\multicolumn{2}{c|}{rm} & +\multicolumn{1}{c|}{1} & +\multicolumn{2}{c|}{rs3} & +\multicolumn{1}{c|}{rdr} & NMSUB.S.RM rdr,rs1,rs2,rs3 \\ +\cline{2-12} & -\multicolumn{2}{|c|}{1101010} & +\multicolumn{2}{|c|}{1101111} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{1100000110} & -\multicolumn{1}{c|}{rdr} & SGNINJN.D rdr,rs1,rs2 \\ -\cline{2-10} +\multicolumn{1}{c|}{00} & +\multicolumn{2}{c|}{rm} & +\multicolumn{1}{c|}{1} & +\multicolumn{2}{c|}{rs3} & +\multicolumn{1}{c|}{rdr} & NMADD.S.RM rdr,rs1,rs2,rs3 \\ +\cline{2-12} & -\multicolumn{2}{|c|}{1101010} & +\multicolumn{2}{|c|}{1101100} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{1100000111} & -\multicolumn{1}{c|}{rdr} & SGNMUL.D rdr,rs1,rs2 \\ -\cline{2-10} +\multicolumn{1}{c|}{11} & +\multicolumn{2}{c|}{rm} & +\multicolumn{1}{c|}{1} & +\multicolumn{2}{c|}{rs3} & +\multicolumn{1}{c|}{rdr} & MADD.D.RM rdr,rs1,rs2,rs3 \\ +\cline{2-12} & -\multicolumn{2}{|c|}{1101010} & -\multicolumn{1}{c|}{00000} & +\multicolumn{2}{|c|}{1101101} & +\multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0000010011} & -\multicolumn{1}{c|}{rdr} & CVT.S.D rdr,rs1 \\ -\cline{2-10} +\multicolumn{1}{c|}{11} & +\multicolumn{2}{c|}{rm} & +\multicolumn{1}{c|}{1} & +\multicolumn{2}{c|}{rs3} & +\multicolumn{1}{c|}{rdr} & MSUB.D.RM rdr,rs1,rs2,rs3 \\ +\cline{2-12} & -\multicolumn{2}{|c|}{1101010} & -\multicolumn{1}{c|}{00000} & +\multicolumn{2}{|c|}{1101110} & +\multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{1100010000} & -\multicolumn{1}{c|}{rdr} & CVT.D.S rdr,rs1 \\ -\cline{2-10} +\multicolumn{1}{c|}{11} & +\multicolumn{2}{c|}{rm} & +\multicolumn{1}{c|}{1} & +\multicolumn{2}{c|}{rs3} & +\multicolumn{1}{c|}{rdr} & NMSUB.D.RM rdr,rs1,rs2,rs3 \\ +\cline{2-12} + + +& +\multicolumn{2}{|c|}{1101111} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{11} & +\multicolumn{2}{c|}{rm} & +\multicolumn{1}{c|}{1} & +\multicolumn{2}{c|}{rs3} & +\multicolumn{1}{c|}{rdr} & NMADD.D.RM rdr,rs1,rs2,rs3 \\ +\cline{2-12} \end{tabular} @@ -1378,14 +1456,16 @@ \begin{table}[p] \begin{small} \begin{center} -\begin{tabular}{rcccccccccl} +\begin{tabular}{rcccccccccccl} & \hspace*{0.6in} & \hspace*{0.2in} & \hspace*{0.5in} & \hspace*{0.5in} & -\hspace*{0.3in} & -\hspace*{0.2in} & +\hspace*{0.5in} & +\hspace*{0.1in} & +\hspace*{0.1in} & +\hspace*{0.1in} & \hspace*{0.4in} & \hspace*{0.1in} & \hspace*{0.5in} \\ @@ -1394,312 +1474,698 @@ \instbitrange{26}{25} & \instbitrange{24}{20} & \instbitrange{19}{15} & -\instbitrange{14}{12} & -\instbitrange{11}{10} & +\instbitrange{14}{13} & +\instbit{12} & +\instbit{11} & +\instbit{10} & \instbitrange{9}{6} & \instbit{5} & \instbitrange{4}{0} \\ -\cline{2-10} +\cline{2-12} & \multicolumn{1}{|c|}{opcode5} & -\multicolumn{8}{c|}{jump target} & J-type \\ -\cline{2-10} +\multicolumn{10}{c|}{jump target} & J-type \\ +\cline{2-12} & \multicolumn{2}{|c|}{opcode} & \multicolumn{1}{c|}{rdi} & -\multicolumn{6}{c|}{LUI-immediate} & LUI-type \\ -\cline{2-10} +\multicolumn{8}{c|}{LUI-immediate} & LUI-type \\ +\cline{2-12} & \multicolumn{2}{|c|}{opcode} & \multicolumn{1}{c|}{rdi/rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{1}{c|}{funct3} & -\multicolumn{4}{c|}{immediate} & I-type \\ -\cline{2-10} +\multicolumn{2}{c|}{funct3} & +\multicolumn{5}{c|}{immediate} & I-type \\ +\cline{2-12} & \multicolumn{2}{|c|}{opcode} & \multicolumn{1}{c|}{rdi} & \multicolumn{1}{c|}{rs1} & -\multicolumn{3}{c|}{funct9} & +\multicolumn{5}{c|}{funct9} & \multicolumn{2}{c|}{shamt} & ISH-type \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{opcode} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{funct10} & +\multicolumn{6}{c|}{funct10} & \multicolumn{1}{c|}{rdr} & R-type \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{opcode} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{2}{c|}{funct5} & +\multicolumn{4}{c|}{funct5} & \multicolumn{2}{c|}{rs3} & \multicolumn{1}{c|}{rdr} & R4-type \\ -\cline{2-10} +\cline{2-12} + + +& +\multicolumn{11}{c}{} & \\ +& +\multicolumn{11}{c}{\bf Floating-Point Move \& Conversion Instructions} & \\ +\cline{2-12} & -\multicolumn{9}{c}{} & \\ +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{6}{c|}{0000000101} & +\multicolumn{1}{c|}{rdr} & SGNINJ.S rdr,rs1,rs2 \\ +\cline{2-12} + + +& +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{6}{c|}{0000000110} & +\multicolumn{1}{c|}{rdr} & SGNINJN.S rdr,rs1,rs2 \\ +\cline{2-12} + + +& +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{6}{c|}{0000000111} & +\multicolumn{1}{c|}{rdr} & SGNMUL.S rdr,rs1,rs2 \\ +\cline{2-12} + + +& +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{6}{c|}{1100000101} & +\multicolumn{1}{c|}{rdr} & SGNINJ.D rdr,rs1,rs2 \\ +\cline{2-12} + + +& +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{6}{c|}{1100000110} & +\multicolumn{1}{c|}{rdr} & SGNINJN.D rdr,rs1,rs2 \\ +\cline{2-12} + + +& +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{6}{c|}{1100000111} & +\multicolumn{1}{c|}{rdr} & SGNMUL.D rdr,rs1,rs2 \\ +\cline{2-12} + + +& +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{6}{c|}{0000010011} & +\multicolumn{1}{c|}{rdr} & CVT.S.D rdr,rs1 \\ +\cline{2-12} + + & -\multicolumn{9}{c}{\bf Integer to Floating-Point Move \& Conversion Instructions} & \\ -\cline{2-10} +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{6}{c|}{1100010000} & +\multicolumn{1}{c|}{rdr} & CVT.D.S rdr,rs1 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0000001100} & +\multicolumn{1}{c|}{00} & +\multicolumn{2}{c|}{rm} & +\multicolumn{3}{c|}{110011} & +\multicolumn{1}{c|}{rdr} & CVT.S.D.RM rdr,rs1 \\ +\cline{2-12} + + +& +\multicolumn{11}{c}{} & \\ +& +\multicolumn{11}{c}{\bf Integer to Floating-Point Move \& Conversion Instructions} & \\ +\cline{2-12} + + +& +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{6}{c|}{0000001100} & \multicolumn{1}{c|}{rdr} & CVT.S.L rdr,rs1 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0000001101} & +\multicolumn{6}{c|}{0000001101} & \multicolumn{1}{c|}{rdr} & CVTU.S.L rdr,rs1 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0000001110} & +\multicolumn{6}{c|}{0000001110} & \multicolumn{1}{c|}{rdr} & CVT.S.W rdr,rs1 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0000001111} & +\multicolumn{6}{c|}{0000001111} & \multicolumn{1}{c|}{rdr} & CVTU.S.W rdr,rs1 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{1100001100} & +\multicolumn{6}{c|}{1100001100} & \multicolumn{1}{c|}{rdr} & CVT.D.L rdr,rs1 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{1100001101} & +\multicolumn{6}{c|}{1100001101} & \multicolumn{1}{c|}{rdr} & CVTU.D.L rdr,rs1 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{1100001110} & +\multicolumn{6}{c|}{1100001110} & \multicolumn{1}{c|}{rdr} & CVT.D.W rdr,rs1 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{1100001111} & +\multicolumn{6}{c|}{1100001111} & \multicolumn{1}{c|}{rdr} & CVTU.D.W rdr,rs1 \\ -\cline{2-10} +\cline{2-12} + + +& +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{00} & +\multicolumn{2}{c|}{rm} & +\multicolumn{3}{c|}{101100} & +\multicolumn{1}{c|}{rdr} & CVT.S.L.RM rdr,rs1 \\ +\cline{2-12} + + +& +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{00} & +\multicolumn{2}{c|}{rm} & +\multicolumn{3}{c|}{101101} & +\multicolumn{1}{c|}{rdr} & CVTU.S.L.RM rdr,rs1 \\ +\cline{2-12} + + +& +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{00} & +\multicolumn{2}{c|}{rm} & +\multicolumn{3}{c|}{101110} & +\multicolumn{1}{c|}{rdr} & CVT.S.W.RM rdr,rs1 \\ +\cline{2-12} + + +& +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{00} & +\multicolumn{2}{c|}{rm} & +\multicolumn{3}{c|}{101111} & +\multicolumn{1}{c|}{rdr} & CVTU.S.W.RM rdr,rs1 \\ +\cline{2-12} + + +& +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{11} & +\multicolumn{2}{c|}{rm} & +\multicolumn{3}{c|}{101100} & +\multicolumn{1}{c|}{rdr} & CVT.D.L.RM rdr,rs1 \\ +\cline{2-12} + + +& +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{11} & +\multicolumn{2}{c|}{rm} & +\multicolumn{3}{c|}{101101} & +\multicolumn{1}{c|}{rdr} & CVTU.D.L.RM rdr,rs1 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{1101111100} & +\multicolumn{6}{c|}{1101111100} & \multicolumn{1}{c|}{rdr} & MTFLH.D rdr,rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0001011100} & +\multicolumn{6}{c|}{0001011100} & \multicolumn{1}{c|}{rdr} & MTF.S rdr,rs1 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{1101011100} & +\multicolumn{6}{c|}{1101011100} & \multicolumn{1}{c|}{rdr} & MTF.D rdr,rs1 \\ -\cline{2-10} +\cline{2-12} + + +& +\multicolumn{11}{c}{} & \\ +& +\multicolumn{11}{c}{\bf Floating-Point to Integer Move \& Conversion Instructions} & \\ +\cline{2-12} + + +& +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{00} & +\multicolumn{2}{c|}{rm} & +\multicolumn{3}{c|}{101000} & +\multicolumn{1}{c|}{rdr} & CVT.L.S.RM rdr,rs1 \\ +\cline{2-12} + + +& +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{00} & +\multicolumn{2}{c|}{rm} & +\multicolumn{3}{c|}{101001} & +\multicolumn{1}{c|}{rdr} & CVTU.L.S.RM rdr,rs1 \\ +\cline{2-12} + + +& +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{00} & +\multicolumn{2}{c|}{rm} & +\multicolumn{3}{c|}{101010} & +\multicolumn{1}{c|}{rdr} & CVT.W.S.RM rdr,rs1 \\ +\cline{2-12} + + +& +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{00} & +\multicolumn{2}{c|}{rm} & +\multicolumn{3}{c|}{101011} & +\multicolumn{1}{c|}{rdr} & CVTU.W.S.RM rdr,rs1 \\ +\cline{2-12} & -\multicolumn{9}{c}{} & \\ +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{11} & +\multicolumn{2}{c|}{rm} & +\multicolumn{3}{c|}{101000} & +\multicolumn{1}{c|}{rdr} & CVT.L.D.RM rdr,rs1 \\ +\cline{2-12} + + & -\multicolumn{9}{c}{\bf Floating-Point to Integer Move \& Conversion Instructions} & \\ -\cline{2-10} +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{11} & +\multicolumn{2}{c|}{rm} & +\multicolumn{3}{c|}{101001} & +\multicolumn{1}{c|}{rdr} & CVTU.L.D.RM rdr,rs1 \\ +\cline{2-12} + + +& +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{11} & +\multicolumn{2}{c|}{rm} & +\multicolumn{3}{c|}{101010} & +\multicolumn{1}{c|}{rdr} & CVT.W.D.RM rdr,rs1 \\ +\cline{2-12} + + +& +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{00000} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{1}{c|}{11} & +\multicolumn{2}{c|}{rm} & +\multicolumn{3}{c|}{101011} & +\multicolumn{1}{c|}{rdr} & CVTU.W.D.RM rdr,rs1 \\ +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{00000} & -\multicolumn{4}{c|}{1101011001} & +\multicolumn{6}{c|}{1101011001} & \multicolumn{1}{c|}{rdr} & MFFL.D rdr,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{00000} & -\multicolumn{4}{c|}{1101011010} & +\multicolumn{6}{c|}{1101011010} & \multicolumn{1}{c|}{rdr} & MFFH.D rdr,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{00000} & -\multicolumn{4}{c|}{0001011000} & +\multicolumn{6}{c|}{0001011000} & \multicolumn{1}{c|}{rdr} & MFF.S rdr,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1101010} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{00000} & -\multicolumn{4}{c|}{1101011000} & +\multicolumn{6}{c|}{1101011000} & \multicolumn{1}{c|}{rdr} & MFF.D rdr,rs2 \\ -\cline{2-10} +\cline{2-12} + + +\end{tabular} +\end{center} +\end{small} + +\label{instr-table} +\end{table} + + +\newpage + +\begin{table}[p] +\begin{small} +\begin{center} +\begin{tabular}{rcccccccccccl} + & +\hspace*{0.6in} & +\hspace*{0.2in} & +\hspace*{0.5in} & +\hspace*{0.5in} & +\hspace*{0.5in} & +\hspace*{0.1in} & +\hspace*{0.1in} & +\hspace*{0.1in} & +\hspace*{0.4in} & +\hspace*{0.1in} & +\hspace*{0.5in} \\ + & +\instbitrange{31}{27} & +\instbitrange{26}{25} & +\instbitrange{24}{20} & +\instbitrange{19}{15} & +\instbitrange{14}{13} & +\instbit{12} & +\instbit{11} & +\instbit{10} & +\instbitrange{9}{6} & +\instbit{5} & +\instbitrange{4}{0} \\ +\cline{2-12} +& +\multicolumn{1}{|c|}{opcode5} & +\multicolumn{10}{c|}{jump target} & J-type \\ +\cline{2-12} +& +\multicolumn{2}{|c|}{opcode} & +\multicolumn{1}{c|}{rdi} & +\multicolumn{8}{c|}{LUI-immediate} & LUI-type \\ +\cline{2-12} +& +\multicolumn{2}{|c|}{opcode} & +\multicolumn{1}{c|}{rdi/rs2} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{2}{c|}{funct3} & +\multicolumn{5}{c|}{immediate} & I-type \\ +\cline{2-12} +& +\multicolumn{2}{|c|}{opcode} & +\multicolumn{1}{c|}{rdi} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{5}{c|}{funct9} & +\multicolumn{2}{c|}{shamt} & ISH-type \\ +\cline{2-12} +& +\multicolumn{2}{|c|}{opcode} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{6}{c|}{funct10} & +\multicolumn{1}{c|}{rdr} & R-type \\ +\cline{2-12} +& +\multicolumn{2}{|c|}{opcode} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{4}{c|}{funct5} & +\multicolumn{2}{c|}{rs3} & +\multicolumn{1}{c|}{rdr} & R4-type \\ +\cline{2-12} + + +& +\multicolumn{11}{c}{} & \\ +& +\multicolumn{11}{c}{\bf Floating-Point Compare Instructions} & \\ +\cline{2-12} + + +& +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{6}{c|}{0000010101} & +\multicolumn{1}{c|}{rdr} & C.EQ.S rdr,rs1,rs2 \\ +\cline{2-12} + + +& +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{6}{c|}{0000010110} & +\multicolumn{1}{c|}{rdr} & C.LT.S rdr,rs1,rs2 \\ +\cline{2-12} + + +& +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{6}{c|}{0000010111} & +\multicolumn{1}{c|}{rdr} & C.LE.S rdr,rs1,rs2 \\ +\cline{2-12} + + +& +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{6}{c|}{1100010101} & +\multicolumn{1}{c|}{rdr} & C.EQ.D rdr,rs1,rs2 \\ +\cline{2-12} + + +& +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{6}{c|}{1100010110} & +\multicolumn{1}{c|}{rdr} & C.LT.D rdr,rs1,rs2 \\ +\cline{2-12} + + +& +\multicolumn{2}{|c|}{1101010} & +\multicolumn{1}{c|}{rs2} & +\multicolumn{1}{c|}{rs1} & +\multicolumn{6}{c|}{1100010111} & +\multicolumn{1}{c|}{rdr} & C.LE.D rdr,rs1,rs2 \\ +\cline{2-12} & -\multicolumn{9}{c}{} & \\ +\multicolumn{11}{c}{} & \\ & -\multicolumn{9}{c}{\bf Miscellaneous Instructions} & \\ -\cline{2-10} +\multicolumn{11}{c}{\bf Miscellaneous Instructions} & \\ +\cline{2-12} & \multicolumn{2}{|c|}{1111011} & \multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{00000} & -\multicolumn{4}{c|}{0010000000} & +\multicolumn{6}{c|}{0010000000} & \multicolumn{1}{c|}{rdr} & RDNPC rdr \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1111011} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{00000} & -\multicolumn{4}{c|}{0100000000} & +\multicolumn{6}{c|}{0100000000} & \multicolumn{1}{c|}{rdr} & MFCR rdr,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1111011} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{0110000000} & +\multicolumn{6}{c|}{0110000000} & \multicolumn{1}{c|}{00000} & MTCR rs1,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1111011} & \multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{00000} & -\multicolumn{4}{c|}{1000000000} & +\multicolumn{6}{c|}{1000000000} & \multicolumn{1}{c|}{00000} & SYNC \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1111011} & \multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{00000} & -\multicolumn{4}{c|}{1010000000} & +\multicolumn{6}{c|}{1010000000} & \multicolumn{1}{c|}{00000} & SYSCALL imm12 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1111011} & \multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{00000} & -\multicolumn{4}{c|}{1100000000} & +\multicolumn{6}{c|}{1100000000} & \multicolumn{1}{c|}{00000} & BREAK imm12 \\ -\cline{2-10} +\cline{2-12} & -\multicolumn{9}{c}{} & \\ +\multicolumn{11}{c}{} & \\ & -\multicolumn{9}{c}{\bf Privileged Instructions} & \\ -\cline{2-10} +\multicolumn{11}{c}{\bf Privileged Instructions} & \\ +\cline{2-12} & \multicolumn{2}{|c|}{1111110} & \multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{00000} & -\multicolumn{4}{c|}{0000000000} & +\multicolumn{6}{c|}{0000000000} & \multicolumn{1}{c|}{rdr} & EI rdr \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1111110} & \multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{00000} & -\multicolumn{4}{c|}{0010000000} & +\multicolumn{6}{c|}{0010000000} & \multicolumn{1}{c|}{rdr} & DI rdr \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1111110} & \multicolumn{1}{c|}{00000} & \multicolumn{1}{c|}{00000} & -\multicolumn{4}{c|}{0100000000} & +\multicolumn{6}{c|}{0100000000} & \multicolumn{1}{c|}{00000} & ERET \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1111110} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{00000} & -\multicolumn{4}{c|}{1000000000} & +\multicolumn{6}{c|}{1000000000} & \multicolumn{1}{c|}{rdr} & MFPCR rdr,rs2 \\ -\cline{2-10} +\cline{2-12} & \multicolumn{2}{|c|}{1111110} & \multicolumn{1}{c|}{rs2} & \multicolumn{1}{c|}{rs1} & -\multicolumn{4}{c|}{1010000000} & +\multicolumn{6}{c|}{1010000000} & \multicolumn{1}{c|}{00000} & MTPCR rs1,rs2 \\ -\cline{2-10} +\cline{2-12} \end{tabular} diff --git a/opcodes b/opcodes index 43d41e1..325264f 100644 --- a/opcodes +++ b/opcodes @@ -139,27 +139,27 @@ sgninj.d 31..25=0x6A 14..13=3 12..10=0 9..5=0x5 rdr rs1 rs2 sgninjn.d 31..25=0x6A 14..13=3 12..10=0 9..5=0x6 rdr rs1 rs2 sgnmul.d 31..25=0x6A 14..13=3 12..10=0 9..5=0x7 rdr rs1 rs2 -add.s.rm 31..25=0x6A 14..13=0 10=1 9..5=0 rdr rs1 rs2 rm -sub.s.rm 31..25=0x6A 14..13=0 10=1 9..5=1 rdr rs1 rs2 rm -mul.s.rm 31..25=0x6A 14..13=0 10=1 9..5=2 rdr rs1 rs2 rm -div.s.rm 31..25=0x6A 14..13=0 10=1 9..5=3 rdr rs1 rs2 rm -sqrt.s.rm 31..25=0x6A 14..13=0 10=1 9..5=4 24..20=0 rdr rs1 rm - -add.d.rm 31..25=0x6A 14..13=3 10=1 9..5=0x0 rdr rs1 rs2 rm -sub.d.rm 31..25=0x6A 14..13=3 10=1 9..5=0x1 rdr rs1 rs2 rm -mul.d.rm 31..25=0x6A 14..13=3 10=1 9..5=0x2 rdr rs1 rs2 rm -div.d.rm 31..25=0x6A 14..13=3 10=1 9..5=0x3 rdr rs1 rs2 rm -sqrt.d.rm 31..25=0x6A 14..13=3 10=1 9..5=0x4 24..20=0 rdr rs1 rm - -cvt.l.s.rm 31..25=0x6A 14..13=0 10=1 9..5=0x8 24..20=0 rdr rs1 rm -cvtu.l.s.rm 31..25=0x6A 14..13=0 10=1 9..5=0x9 24..20=0 rdr rs1 rm -cvt.w.s.rm 31..25=0x6A 14..13=0 10=1 9..5=0xA 24..20=0 rdr rs1 rm -cvtu.w.s.rm 31..25=0x6A 14..13=0 10=1 9..5=0xB 24..20=0 rdr rs1 rm - -cvt.l.d.rm 31..25=0x6A 14..13=3 10=1 9..5=0x8 24..20=0 rdr rs1 rm -cvtu.l.d.rm 31..25=0x6A 14..13=3 10=1 9..5=0x9 24..20=0 rdr rs1 rm -cvt.w.d.rm 31..25=0x6A 14..13=3 10=1 9..5=0xA 24..20=0 rdr rs1 rm -cvtu.w.d.rm 31..25=0x6A 14..13=3 10=1 9..5=0xB 24..20=0 rdr rs1 rm +add.s.rm 31..25=0x6A 14..13=0 10=1 9..5=0 rm rdr rs1 rs2 +sub.s.rm 31..25=0x6A 14..13=0 10=1 9..5=1 rm rdr rs1 rs2 +mul.s.rm 31..25=0x6A 14..13=0 10=1 9..5=2 rm rdr rs1 rs2 +div.s.rm 31..25=0x6A 14..13=0 10=1 9..5=3 rm rdr rs1 rs2 +sqrt.s.rm 31..25=0x6A 14..13=0 10=1 9..5=4 24..20=0 rm rdr rs1 + +add.d.rm 31..25=0x6A 14..13=3 10=1 9..5=0x0 rm rdr rs1 rs2 +sub.d.rm 31..25=0x6A 14..13=3 10=1 9..5=0x1 rm rdr rs1 rs2 +mul.d.rm 31..25=0x6A 14..13=3 10=1 9..5=0x2 rm rdr rs1 rs2 +div.d.rm 31..25=0x6A 14..13=3 10=1 9..5=0x3 rm rdr rs1 rs2 +sqrt.d.rm 31..25=0x6A 14..13=3 10=1 9..5=0x4 24..20=0 rm rdr rs1 + +cvt.l.s.rm 31..25=0x6A 14..13=0 10=1 9..5=0x8 24..20=0 rm rdr rs1 +cvtu.l.s.rm 31..25=0x6A 14..13=0 10=1 9..5=0x9 24..20=0 rm rdr rs1 +cvt.w.s.rm 31..25=0x6A 14..13=0 10=1 9..5=0xA 24..20=0 rm rdr rs1 +cvtu.w.s.rm 31..25=0x6A 14..13=0 10=1 9..5=0xB 24..20=0 rm rdr rs1 + +cvt.l.d.rm 31..25=0x6A 14..13=3 10=1 9..5=0x8 24..20=0 rm rdr rs1 +cvtu.l.d.rm 31..25=0x6A 14..13=3 10=1 9..5=0x9 24..20=0 rm rdr rs1 +cvt.w.d.rm 31..25=0x6A 14..13=3 10=1 9..5=0xA 24..20=0 rm rdr rs1 +cvtu.w.d.rm 31..25=0x6A 14..13=3 10=1 9..5=0xB 24..20=0 rm rdr rs1 cvt.s.l 31..25=0x6A 14..13=0 12..10=0 9..5=0xC 24..20=0 rdr rs1 cvtu.s.l 31..25=0x6A 14..13=0 12..10=0 9..5=0xD 24..20=0 rdr rs1 @@ -171,18 +171,18 @@ cvtu.d.l 31..25=0x6A 14..13=3 12..10=0 9..5=0xD 24..20=0 rdr rs1 cvt.d.w 31..25=0x6A 14..13=3 12..10=0 9..5=0xE 24..20=0 rdr rs1 cvtu.d.w 31..25=0x6A 14..13=3 12..10=0 9..5=0xF 24..20=0 rdr rs1 -cvt.s.l.rm 31..25=0x6A 14..13=0 10=1 9..5=0xC 24..20=0 rdr rs1 rm -cvtu.s.l.rm 31..25=0x6A 14..13=0 10=1 9..5=0xD 24..20=0 rdr rs1 rm -cvt.s.w.rm 31..25=0x6A 14..13=0 10=1 9..5=0xE 24..20=0 rdr rs1 rm -cvtu.s.w.rm 31..25=0x6A 14..13=0 10=1 9..5=0xF 24..20=0 rdr rs1 rm +cvt.s.l.rm 31..25=0x6A 14..13=0 10=1 9..5=0xC 24..20=0 rm rdr rs1 +cvtu.s.l.rm 31..25=0x6A 14..13=0 10=1 9..5=0xD 24..20=0 rm rdr rs1 +cvt.s.w.rm 31..25=0x6A 14..13=0 10=1 9..5=0xE 24..20=0 rm rdr rs1 +cvtu.s.w.rm 31..25=0x6A 14..13=0 10=1 9..5=0xF 24..20=0 rm rdr rs1 -cvt.d.l.rm 31..25=0x6A 14..13=3 10=1 9..5=0xC 24..20=0 rdr rs1 rm -cvtu.d.l.rm 31..25=0x6A 14..13=3 10=1 9..5=0xD 24..20=0 rdr rs1 rm +cvt.d.l.rm 31..25=0x6A 14..13=3 10=1 9..5=0xC 24..20=0 rm rdr rs1 +cvtu.d.l.rm 31..25=0x6A 14..13=3 10=1 9..5=0xD 24..20=0 rm rdr rs1 cvt.s.d 31..25=0x6A 14..13=0 12..10=0 9..5=0x13 24..20=0 rdr rs1 cvt.d.s 31..25=0x6A 14..13=3 12..10=0 9..5=0x10 24..20=0 rdr rs1 -cvt.s.d.rm 31..25=0x6A 14..13=0 10=1 9..5=0x13 24..20=0 rdr rs1 rm +cvt.s.d.rm 31..25=0x6A 14..13=0 10=1 9..5=0x13 24..20=0 rm rdr rs1 c.eq.s 31..25=0x6A 14..13=0 12..10=0 9..5=0x15 rdr rs1 rs2 c.lt.s 31..25=0x6A 14..13=0 12..10=0 9..5=0x16 rdr rs1 rs2 @@ -216,13 +216,13 @@ msub.d 31..25=0x6D 14..13=3 12..10=0 rdr rs1 rs2 rs3 nmsub.d 31..25=0x6E 14..13=3 12..10=0 rdr rs1 rs2 rs3 nmadd.d 31..25=0x6F 14..13=3 12..10=0 rdr rs1 rs2 rs3 -madd.s.rm 31..25=0x6C 14..13=0 10=1 rdr rs1 rs2 rs3 rm -msub.s.rm 31..25=0x6D 14..13=0 10=1 rdr rs1 rs2 rs3 rm -nmsub.s.rm 31..25=0x6E 14..13=0 10=1 rdr rs1 rs2 rs3 rm -nmadd.s.rm 31..25=0x6F 14..13=0 10=1 rdr rs1 rs2 rs3 rm +madd.s.rm 31..25=0x6C 14..13=0 10=1 rm rdr rs1 rs2 rs3 +msub.s.rm 31..25=0x6D 14..13=0 10=1 rm rdr rs1 rs2 rs3 +nmsub.s.rm 31..25=0x6E 14..13=0 10=1 rm rdr rs1 rs2 rs3 +nmadd.s.rm 31..25=0x6F 14..13=0 10=1 rm rdr rs1 rs2 rs3 -madd.d.rm 31..25=0x6C 14..13=3 10=1 rdr rs1 rs2 rs3 rm -msub.d.rm 31..25=0x6D 14..13=3 10=1 rdr rs1 rs2 rs3 rm -nmsub.d.rm 31..25=0x6E 14..13=3 10=1 rdr rs1 rs2 rs3 rm -nmadd.d.rm 31..25=0x6F 14..13=3 10=1 rdr rs1 rs2 rs3 rm +madd.d.rm 31..25=0x6C 14..13=3 10=1 rm rdr rs1 rs2 rs3 +msub.d.rm 31..25=0x6D 14..13=3 10=1 rm rdr rs1 rs2 rs3 +nmsub.d.rm 31..25=0x6E 14..13=3 10=1 rm rdr rs1 rs2 rs3 +nmadd.d.rm 31..25=0x6F 14..13=3 10=1 rm rdr rs1 rs2 rs3 diff --git a/parse-opcodes b/parse-opcodes index b3b93ab..50e602c 100755 --- a/parse-opcodes +++ b/parse-opcodes @@ -149,16 +149,17 @@ def str_arg(arg0,arg1,match,arguments): def str_inst(name,arguments): ret = name.upper() + ' ' for idx in range(len(arguments)): - ret = ret + arguments[idx] - if idx != len(arguments)-1: - ret = ret + ',' + if arguments[idx] != 'rm': + ret = ret + arguments[idx] + if idx != len(arguments)-1: + ret = ret + ',' return ret def print_unimp_type(name,match,arguments): print """ & -\\multicolumn{9}{|c|}{%s} & %s \\\\ -\\cline{2-10} +\\multicolumn{11}{|c|}{%s} & %s \\\\ +\\cline{2-12} """ % \ ( \ '0'*32, \ @@ -169,8 +170,8 @@ def print_j_type(name,match,arguments): print """ & \\multicolumn{1}{|c|}{%s} & -\\multicolumn{8}{c|}{%s} & %s \\\\ -\\cline{2-10} +\\multicolumn{10}{c|}{%s} & %s \\\\ +\\cline{2-12} """ % \ ( \ binary(yank(match,27,5),5), \ @@ -183,8 +184,8 @@ def print_lui_type(name,match,arguments): & \\multicolumn{2}{|c|}{%s} & \\multicolumn{1}{c|}{%s} & -\\multicolumn{6}{c|}{%s} & %s \\\\ -\\cline{2-10} +\\multicolumn{8}{c|}{%s} & %s \\\\ +\\cline{2-12} """ % \ ( \ binary(yank(match,25,7),7), \ @@ -199,9 +200,9 @@ def print_i_type(name,match,arguments): \\multicolumn{2}{|c|}{%s} & \\multicolumn{1}{c|}{%s} & \\multicolumn{1}{c|}{%s} & -\\multicolumn{1}{c|}{%s} & -\\multicolumn{4}{c|}{%s} & %s \\\\ -\\cline{2-10} +\\multicolumn{2}{c|}{%s} & +\\multicolumn{5}{c|}{%s} & %s \\\\ +\\cline{2-12} """ % \ ( \ binary(yank(match,25,7),7), \ @@ -218,9 +219,9 @@ def print_ish_type(name,match,arguments): \\multicolumn{2}{|c|}{%s} & \\multicolumn{1}{c|}{%s} & \\multicolumn{1}{c|}{%s} & -\\multicolumn{3}{c|}{%s} & +\\multicolumn{5}{c|}{%s} & \\multicolumn{2}{c|}{%s} & %s \\\\ -\\cline{2-10} +\\cline{2-12} """ % \ ( \ binary(yank(match,25,7),7), \ @@ -237,10 +238,10 @@ def print_ishw_type(name,match,arguments): \\multicolumn{2}{|c|}{%s} & \\multicolumn{1}{c|}{%s} & \\multicolumn{1}{c|}{%s} & -\\multicolumn{3}{c|}{%s} & +\\multicolumn{5}{c|}{%s} & \\multicolumn{1}{c|}{0} & \\multicolumn{1}{c|}{%s} & %s \\\\ -\\cline{2-10} +\\cline{2-12} """ % \ ( \ binary(yank(match,25,7),7), \ @@ -257,9 +258,9 @@ def print_r_type(name,match,arguments): \\multicolumn{2}{|c|}{%s} & \\multicolumn{1}{c|}{%s} & \\multicolumn{1}{c|}{%s} & -\\multicolumn{4}{c|}{%s} & +\\multicolumn{6}{c|}{%s} & \\multicolumn{1}{c|}{%s} & %s \\\\ -\\cline{2-10} +\\cline{2-12} """ % \ ( \ binary(yank(match,25,7),7), \ @@ -270,16 +271,39 @@ def print_r_type(name,match,arguments): str_inst(name,arguments) \ ) -def print_r4_type(name,match,arguments): +def print_r_rm_type(name,match,arguments): print """ & \\multicolumn{2}{|c|}{%s} & \\multicolumn{1}{c|}{%s} & \\multicolumn{1}{c|}{%s} & +\\multicolumn{1}{c|}{%s} & \\multicolumn{2}{c|}{%s} & +\\multicolumn{3}{c|}{%s} & +\\multicolumn{1}{c|}{%s} & %s \\\\ +\\cline{2-12} + """ % \ + ( \ + binary(yank(match,25,7),7), \ + str_arg('rs2','',match,arguments), \ + str_arg('rs1','',match,arguments), \ + binary(yank(match,13,2),2), \ + str_arg('rm','',match,arguments), \ + binary(yank(match,5,6),6), \ + str_arg('rdr','',match,arguments), \ + str_inst(name,arguments) \ + ) + +def print_r4_type(name,match,arguments): + print """ +& +\\multicolumn{2}{|c|}{%s} & +\\multicolumn{1}{c|}{%s} & +\\multicolumn{1}{c|}{%s} & +\\multicolumn{4}{c|}{%s} & \\multicolumn{2}{c|}{%s} & \\multicolumn{1}{c|}{%s} & %s \\\\ -\\cline{2-10} +\\cline{2-12} """ % \ ( \ binary(yank(match,25,7),7), \ @@ -291,6 +315,31 @@ def print_r4_type(name,match,arguments): str_inst(name,arguments) \ ) +def print_r4_rm_type(name,match,arguments): + print """ +& +\\multicolumn{2}{|c|}{%s} & +\\multicolumn{1}{c|}{%s} & +\\multicolumn{1}{c|}{%s} & +\\multicolumn{1}{c|}{%s} & +\\multicolumn{2}{c|}{%s} & +\\multicolumn{1}{c|}{%s} & +\\multicolumn{2}{c|}{%s} & +\\multicolumn{1}{c|}{%s} & %s \\\\ +\\cline{2-12} + """ % \ + ( \ + binary(yank(match,25,7),7), \ + str_arg('rs2','',match,arguments), \ + str_arg('rs1','',match,arguments), \ + binary(yank(match,13,2),2), \ + str_arg('rm','',match,arguments), \ + binary(yank(match,10,1),1), \ + str_arg('rs3','',match,arguments), \ + str_arg('rdr','',match,arguments), \ + str_inst(name,arguments) \ + ) + def print_header(): print """ \\newpage @@ -298,14 +347,16 @@ def print_header(): \\begin{table}[p] \\begin{small} \\begin{center} -\\begin{tabular}{rcccccccccl} +\\begin{tabular}{rcccccccccccl} & \\hspace*{0.6in} & \\hspace*{0.2in} & \\hspace*{0.5in} & \\hspace*{0.5in} & -\\hspace*{0.3in} & -\\hspace*{0.2in} & +\\hspace*{0.5in} & +\\hspace*{0.1in} & +\\hspace*{0.1in} & +\\hspace*{0.1in} & \\hspace*{0.4in} & \\hspace*{0.1in} & \\hspace*{0.5in} \\\\ @@ -314,59 +365,61 @@ def print_header(): \\instbitrange{26}{25} & \\instbitrange{24}{20} & \\instbitrange{19}{15} & -\\instbitrange{14}{12} & -\\instbitrange{11}{10} & +\\instbitrange{14}{13} & +\\instbit{12} & +\\instbit{11} & +\\instbit{10} & \\instbitrange{9}{6} & \\instbit{5} & \\instbitrange{4}{0} \\\\ -\\cline{2-10} +\\cline{2-12} & \\multicolumn{1}{|c|}{opcode5} & -\\multicolumn{8}{c|}{jump target} & J-type \\\\ -\\cline{2-10} +\\multicolumn{10}{c|}{jump target} & J-type \\\\ +\\cline{2-12} & \\multicolumn{2}{|c|}{opcode} & \\multicolumn{1}{c|}{rdi} & -\\multicolumn{6}{c|}{LUI-immediate} & LUI-type \\\\ -\\cline{2-10} +\\multicolumn{8}{c|}{LUI-immediate} & LUI-type \\\\ +\\cline{2-12} & \\multicolumn{2}{|c|}{opcode} & \\multicolumn{1}{c|}{rdi/rs2} & \\multicolumn{1}{c|}{rs1} & -\\multicolumn{1}{c|}{funct3} & -\\multicolumn{4}{c|}{immediate} & I-type \\\\ -\\cline{2-10} +\\multicolumn{2}{c|}{funct3} & +\\multicolumn{5}{c|}{immediate} & I-type \\\\ +\\cline{2-12} & \\multicolumn{2}{|c|}{opcode} & \\multicolumn{1}{c|}{rdi} & \\multicolumn{1}{c|}{rs1} & -\\multicolumn{3}{c|}{funct9} & +\\multicolumn{5}{c|}{funct9} & \\multicolumn{2}{c|}{shamt} & ISH-type \\\\ -\\cline{2-10} +\\cline{2-12} & \\multicolumn{2}{|c|}{opcode} & \\multicolumn{1}{c|}{rs2} & \\multicolumn{1}{c|}{rs1} & -\\multicolumn{4}{c|}{funct10} & +\\multicolumn{6}{c|}{funct10} & \\multicolumn{1}{c|}{rdr} & R-type \\\\ -\\cline{2-10} +\\cline{2-12} & \\multicolumn{2}{|c|}{opcode} & \\multicolumn{1}{c|}{rs2} & \\multicolumn{1}{c|}{rs1} & -\\multicolumn{2}{c|}{funct5} & +\\multicolumn{4}{c|}{funct5} & \\multicolumn{2}{c|}{rs3} & \\multicolumn{1}{c|}{rdr} & R4-type \\\\ -\\cline{2-10} +\\cline{2-12} """ def print_subtitle(title): print """ & -\\multicolumn{9}{c}{} & \\\\ +\\multicolumn{11}{c}{} & \\\\ & -\\multicolumn{9}{c}{\\bf %s} & \\\\ -\\cline{2-10} +\\multicolumn{11}{c}{\\bf %s} & \\\\ +\\cline{2-12} """ % title def print_footer(caption): @@ -401,6 +454,10 @@ def print_insts(opcode,name,type,min,max): print_ish_type(n,match[n],arguments[n]) elif types[n] == 7: print_ishw_type(n,match[n],arguments[n]) + elif types[n] == 8: + print_r4_rm_type(n,match[n],arguments[n]) + elif types[n] == 9: + print_r_rm_type(n,match[n],arguments[n]) def make_latex_table(): print_header() @@ -451,13 +508,27 @@ def make_latex_table(): print_insts(-1,'msub.d',-1,-1,-1) print_insts(-1,'nmsub.d',-1,-1,-1) print_insts(-1,'nmadd.d',-1,-1,-1) - print_subtitle('Floating-Point Compare Instructions') - print_insts(-1,'c.eq.s',-1,-1,-1) - print_insts(-1,'c.lt.s',-1,-1,-1) - print_insts(-1,'c.le.s',-1,-1,-1) - print_insts(-1,'c.eq.d',-1,-1,-1) - print_insts(-1,'c.lt.d',-1,-1,-1) - print_insts(-1,'c.le.d',-1,-1,-1) + print_insts(-1,'add.s.rm',-1,-1,-1) + print_insts(-1,'sub.s.rm',-1,-1,-1) + print_insts(-1,'mul.s.rm',-1,-1,-1) + print_insts(-1,'div.s.rm',-1,-1,-1) + print_insts(-1,'sqrt.s.rm',-1,-1,-1) + print_insts(-1,'add.d.rm',-1,-1,-1) + print_insts(-1,'sub.d.rm',-1,-1,-1) + print_insts(-1,'mul.d.rm',-1,-1,-1) + print_insts(-1,'div.d.rm',-1,-1,-1) + print_insts(-1,'sqrt.d.rm',-1,-1,-1) + print_insts(-1,'madd.s.rm',-1,-1,-1) + print_insts(-1,'msub.s.rm',-1,-1,-1) + print_insts(-1,'nmsub.s.rm',-1,-1,-1) + print_insts(-1,'nmadd.s.rm',-1,-1,-1) + print_insts(-1,'madd.d.rm',-1,-1,-1) + print_insts(-1,'msub.d.rm',-1,-1,-1) + print_insts(-1,'nmsub.d.rm',-1,-1,-1) + print_insts(-1,'nmadd.d.rm',-1,-1,-1) + print_footer(0) + + print_header() print_subtitle('Floating-Point Move \& Conversion Instructions') print_insts(-1,'sgninj.s',-1,-1,-1) print_insts(-1,'sgninjn.s',-1,-1,-1) @@ -467,9 +538,7 @@ def make_latex_table(): print_insts(-1,'sgnmul.d',-1,-1,-1) print_insts(-1,'cvt.s.d',-1,-1,-1) print_insts(-1,'cvt.d.s',-1,-1,-1) - print_footer(0) - - print_header() + print_insts(-1,'cvt.s.d.rm',-1,-1,-1) print_subtitle('Integer to Floating-Point Move \& Conversion Instructions') print_insts(-1,'cvt.s.l',-1,-1,-1) print_insts(-1,'cvtu.s.l',-1,-1,-1) @@ -479,22 +548,38 @@ def make_latex_table(): print_insts(-1,'cvtu.d.l',-1,-1,-1) print_insts(-1,'cvt.d.w',-1,-1,-1) print_insts(-1,'cvtu.d.w',-1,-1,-1) + print_insts(-1,'cvt.s.l.rm',-1,-1,-1) + print_insts(-1,'cvtu.s.l.rm',-1,-1,-1) + print_insts(-1,'cvt.s.w.rm',-1,-1,-1) + print_insts(-1,'cvtu.s.w.rm',-1,-1,-1) + print_insts(-1,'cvt.d.l.rm',-1,-1,-1) + print_insts(-1,'cvtu.d.l.rm',-1,-1,-1) print_insts(-1,'mtflh.d',-1,-1,-1) print_insts(-1,'mtf.s',-1,-1,-1) print_insts(-1,'mtf.d',-1,-1,-1) print_subtitle('Floating-Point to Integer Move \& Conversion Instructions') - print_insts(-1,'trunc.l.s',-1,-1,-1) - print_insts(-1,'truncu.l.s',-1,-1,-1) - print_insts(-1,'trunc.w.s',-1,-1,-1) - print_insts(-1,'truncu.w.s',-1,-1,-1) - print_insts(-1,'trunc.l.d',-1,-1,-1) - print_insts(-1,'truncu.l.d',-1,-1,-1) - print_insts(-1,'trunc.w.d',-1,-1,-1) - print_insts(-1,'truncu.w.d',-1,-1,-1) + print_insts(-1,'cvt.l.s.rm',-1,-1,-1) + print_insts(-1,'cvtu.l.s.rm',-1,-1,-1) + print_insts(-1,'cvt.w.s.rm',-1,-1,-1) + print_insts(-1,'cvtu.w.s.rm',-1,-1,-1) + print_insts(-1,'cvt.l.d.rm',-1,-1,-1) + print_insts(-1,'cvtu.l.d.rm',-1,-1,-1) + print_insts(-1,'cvt.w.d.rm',-1,-1,-1) + print_insts(-1,'cvtu.w.d.rm',-1,-1,-1) print_insts(-1,'mffl.d',-1,-1,-1) print_insts(-1,'mffh.d',-1,-1,-1) print_insts(-1,'mff.s',-1,-1,-1) print_insts(-1,'mff.d',-1,-1,-1) + print_footer(0) + + print_header() + print_subtitle('Floating-Point Compare Instructions') + print_insts(-1,'c.eq.s',-1,-1,-1) + print_insts(-1,'c.lt.s',-1,-1,-1) + print_insts(-1,'c.le.s',-1,-1,-1) + print_insts(-1,'c.eq.d',-1,-1,-1) + print_insts(-1,'c.lt.d',-1,-1,-1) + print_insts(-1,'c.le.d',-1,-1,-1) print_subtitle('Miscellaneous Instructions') print_insts(0x7b,'',-1,0x080,0x300) print_subtitle('Privileged Instructions') -- cgit v1.2.3