summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Yunsup Lee <yunsup@cs.berkeley.edu>2013-10-29 00:57:54 -0700
committerGravatar Yunsup Lee <yunsup@cs.berkeley.edu>2013-10-29 00:57:54 -0700
commit2983e55547558ab4ca2865c9ecd517e077695730 (patch)
treed185a4fc0a9b9a695b6bb4db9d136986a1238461
parent4203522935518d84e786d6aff9c50efb85ddaf43 (diff)
changes to the instr-table
-rw-r--r--instr-table.tex100
-rwxr-xr-xparse-opcodes30
2 files changed, 85 insertions, 45 deletions
diff --git a/instr-table.tex b/instr-table.tex
index 3893683..c6c5ddb 100644
--- a/instr-table.tex
+++ b/instr-table.tex
@@ -4,13 +4,15 @@
\begin{table}[p]
\begin{small}
\begin{center}
-\begin{tabular}{rccccccccccl}
+\begin{tabular}{p{0in}p{0.4in}p{0.05in}p{0.05in}p{0.05in}p{0.05in}p{0.4in}p{0.6in}p{0.4in}p{0.6in}p{0.7in}l}
+& & & & & & & & & & \\
&
\multicolumn{1}{l}{\instbit{31}} &
\multicolumn{1}{r}{\instbit{27}} &
\instbit{26} &
\instbit{25} &
-\multicolumn{2}{c}{\instbitrange{24}{20}} &
+\multicolumn{1}{l}{\instbit{24}} &
+\multicolumn{1}{r}{\instbit{20}} &
\instbitrange{19}{15} &
\instbitrange{14}{12} &
\instbitrange{11}{7} &
@@ -41,18 +43,18 @@
\multicolumn{4}{|c|}{imm[11:5]} &
\multicolumn{2}{c|}{rs2} &
\multicolumn{1}{c|}{rs1} &
-\multicolumn{1}{c|}{imm[4:0]} &
\multicolumn{1}{c|}{funct3} &
+\multicolumn{1}{c|}{imm[4:0]} &
\multicolumn{1}{c|}{opcode} & S-type \\
\cline{2-11}
&
-\multicolumn{4}{|c|}{imm[12, 10:5]} &
+\multicolumn{4}{|c|}{imm[12$\vert$10:5]} &
\multicolumn{2}{c|}{rs2} &
\multicolumn{1}{c|}{rs1} &
\multicolumn{1}{c|}{funct3} &
-\multicolumn{1}{c|}{imm[4:1, 11]} &
+\multicolumn{1}{c|}{imm[4:1$\vert$11]} &
\multicolumn{1}{c|}{opcode} & SB-type \\
\cline{2-11}
@@ -65,7 +67,7 @@
&
-\multicolumn{8}{|c|}{imm[20, 10:1, 11, 19:12]} &
+\multicolumn{8}{|c|}{imm[20$\vert$10:1$\vert$11$\vert$19:12]} &
\multicolumn{1}{c|}{rd} &
\multicolumn{1}{c|}{opcode} & UJ-type \\
\cline{2-11}
@@ -93,7 +95,7 @@
&
-\multicolumn{8}{|c|}{imm[20, 10:1, 11, 19:12]} &
+\multicolumn{8}{|c|}{imm[20$\vert$10:1$\vert$11$\vert$19:12]} &
\multicolumn{1}{c|}{rd} &
\multicolumn{1}{c|}{1100111} & JAL rd,imm \\
\cline{2-11}
@@ -109,61 +111,61 @@
&
-\multicolumn{4}{|c|}{imm[12, 10:5]} &
+\multicolumn{4}{|c|}{imm[12$\vert$10:5]} &
\multicolumn{2}{c|}{rs2} &
\multicolumn{1}{c|}{rs1} &
\multicolumn{1}{c|}{000} &
-\multicolumn{1}{c|}{imm[4:1, 11]} &
+\multicolumn{1}{c|}{imm[4:1$\vert$11]} &
\multicolumn{1}{c|}{1100011} & BEQ rs1,rs2,imm \\
\cline{2-11}
&
-\multicolumn{4}{|c|}{imm[12, 10:5]} &
+\multicolumn{4}{|c|}{imm[12$\vert$10:5]} &
\multicolumn{2}{c|}{rs2} &
\multicolumn{1}{c|}{rs1} &
\multicolumn{1}{c|}{001} &
-\multicolumn{1}{c|}{imm[4:1, 11]} &
+\multicolumn{1}{c|}{imm[4:1$\vert$11]} &
\multicolumn{1}{c|}{1100011} & BNE rs1,rs2,imm \\
\cline{2-11}
&
-\multicolumn{4}{|c|}{imm[12, 10:5]} &
+\multicolumn{4}{|c|}{imm[12$\vert$10:5]} &
\multicolumn{2}{c|}{rs2} &
\multicolumn{1}{c|}{rs1} &
\multicolumn{1}{c|}{100} &
-\multicolumn{1}{c|}{imm[4:1, 11]} &
+\multicolumn{1}{c|}{imm[4:1$\vert$11]} &
\multicolumn{1}{c|}{1100011} & BLT rs1,rs2,imm \\
\cline{2-11}
&
-\multicolumn{4}{|c|}{imm[12, 10:5]} &
+\multicolumn{4}{|c|}{imm[12$\vert$10:5]} &
\multicolumn{2}{c|}{rs2} &
\multicolumn{1}{c|}{rs1} &
\multicolumn{1}{c|}{101} &
-\multicolumn{1}{c|}{imm[4:1, 11]} &
+\multicolumn{1}{c|}{imm[4:1$\vert$11]} &
\multicolumn{1}{c|}{1100011} & BGE rs1,rs2,imm \\
\cline{2-11}
&
-\multicolumn{4}{|c|}{imm[12, 10:5]} &
+\multicolumn{4}{|c|}{imm[12$\vert$10:5]} &
\multicolumn{2}{c|}{rs2} &
\multicolumn{1}{c|}{rs1} &
\multicolumn{1}{c|}{110} &
-\multicolumn{1}{c|}{imm[4:1, 11]} &
+\multicolumn{1}{c|}{imm[4:1$\vert$11]} &
\multicolumn{1}{c|}{1100011} & BLTU rs1,rs2,imm \\
\cline{2-11}
&
-\multicolumn{4}{|c|}{imm[12, 10:5]} &
+\multicolumn{4}{|c|}{imm[12$\vert$10:5]} &
\multicolumn{2}{c|}{rs2} &
\multicolumn{1}{c|}{rs1} &
\multicolumn{1}{c|}{111} &
-\multicolumn{1}{c|}{imm[4:1, 11]} &
+\multicolumn{1}{c|}{imm[4:1$\vert$11]} &
\multicolumn{1}{c|}{1100011} & BGEU rs1,rs2,imm \\
\cline{2-11}
@@ -428,8 +430,8 @@
&
-\multicolumn{1}{|c|}{0000} &
-\multicolumn{4}{c|}{~~~pred~~~~} &
+\multicolumn{2}{|c|}{0000} &
+\multicolumn{3}{c|}{pred} &
\multicolumn{1}{c|}{succ} &
\multicolumn{1}{c|}{00000} &
\multicolumn{1}{c|}{000} &
@@ -439,8 +441,8 @@
&
-\multicolumn{1}{|c|}{0000} &
-\multicolumn{4}{c|}{0000} &
+\multicolumn{2}{|c|}{0000} &
+\multicolumn{3}{c|}{0000} &
\multicolumn{1}{c|}{0000} &
\multicolumn{1}{c|}{00000} &
\multicolumn{1}{c|}{001} &
@@ -512,13 +514,15 @@
\begin{table}[p]
\begin{small}
\begin{center}
-\begin{tabular}{rccccccccccl}
+\begin{tabular}{p{0in}p{0.4in}p{0.05in}p{0.05in}p{0.05in}p{0.05in}p{0.4in}p{0.6in}p{0.4in}p{0.6in}p{0.7in}l}
+& & & & & & & & & & \\
&
\multicolumn{1}{l}{\instbit{31}} &
\multicolumn{1}{r}{\instbit{27}} &
\instbit{26} &
\instbit{25} &
-\multicolumn{2}{c}{\instbitrange{24}{20}} &
+\multicolumn{1}{l}{\instbit{24}} &
+\multicolumn{1}{r}{\instbit{20}} &
\instbitrange{19}{15} &
\instbitrange{14}{12} &
\instbitrange{11}{7} &
@@ -549,8 +553,8 @@
\multicolumn{4}{|c|}{imm[11:5]} &
\multicolumn{2}{c|}{rs2} &
\multicolumn{1}{c|}{rs1} &
-\multicolumn{1}{c|}{imm[4:0]} &
\multicolumn{1}{c|}{funct3} &
+\multicolumn{1}{c|}{imm[4:0]} &
\multicolumn{1}{c|}{opcode} & S-type \\
\cline{2-11}
@@ -975,13 +979,15 @@
\begin{table}[p]
\begin{small}
\begin{center}
-\begin{tabular}{rccccccccccl}
+\begin{tabular}{p{0in}p{0.4in}p{0.05in}p{0.05in}p{0.05in}p{0.05in}p{0.4in}p{0.6in}p{0.4in}p{0.6in}p{0.7in}l}
+& & & & & & & & & & \\
&
\multicolumn{1}{l}{\instbit{31}} &
\multicolumn{1}{r}{\instbit{27}} &
\instbit{26} &
\instbit{25} &
-\multicolumn{2}{c}{\instbitrange{24}{20}} &
+\multicolumn{1}{l}{\instbit{24}} &
+\multicolumn{1}{r}{\instbit{20}} &
\instbitrange{19}{15} &
\instbitrange{14}{12} &
\instbitrange{11}{7} &
@@ -1000,6 +1006,17 @@
&
+\multicolumn{2}{|c|}{rs3} &
+\multicolumn{2}{c|}{funct2} &
+\multicolumn{2}{c|}{rs2} &
+\multicolumn{1}{c|}{rs1} &
+\multicolumn{1}{c|}{funct3} &
+\multicolumn{1}{c|}{rd} &
+\multicolumn{1}{c|}{opcode} & R4-type \\
+\cline{2-11}
+
+
+&
\multicolumn{6}{|c|}{imm[11:0]} &
\multicolumn{1}{c|}{rs1} &
\multicolumn{1}{c|}{funct3} &
@@ -1012,8 +1029,8 @@
\multicolumn{4}{|c|}{imm[11:5]} &
\multicolumn{2}{c|}{rs2} &
\multicolumn{1}{c|}{rs1} &
-\multicolumn{1}{c|}{imm[4:0]} &
\multicolumn{1}{c|}{funct3} &
+\multicolumn{1}{c|}{imm[4:0]} &
\multicolumn{1}{c|}{opcode} & S-type \\
\cline{2-11}
@@ -1450,13 +1467,15 @@
\begin{table}[p]
\begin{small}
\begin{center}
-\begin{tabular}{rccccccccccl}
+\begin{tabular}{p{0in}p{0.4in}p{0.05in}p{0.05in}p{0.05in}p{0.05in}p{0.4in}p{0.6in}p{0.4in}p{0.6in}p{0.7in}l}
+& & & & & & & & & & \\
&
\multicolumn{1}{l}{\instbit{31}} &
\multicolumn{1}{r}{\instbit{27}} &
\instbit{26} &
\instbit{25} &
-\multicolumn{2}{c}{\instbitrange{24}{20}} &
+\multicolumn{1}{l}{\instbit{24}} &
+\multicolumn{1}{r}{\instbit{20}} &
\instbitrange{19}{15} &
\instbitrange{14}{12} &
\instbitrange{11}{7} &
@@ -1486,6 +1505,25 @@
&
+\multicolumn{6}{|c|}{imm[11:0]} &
+\multicolumn{1}{c|}{rs1} &
+\multicolumn{1}{c|}{funct3} &
+\multicolumn{1}{c|}{rd} &
+\multicolumn{1}{c|}{opcode} & I-type \\
+\cline{2-11}
+
+
+&
+\multicolumn{4}{|c|}{imm[11:5]} &
+\multicolumn{2}{c|}{rs2} &
+\multicolumn{1}{c|}{rs1} &
+\multicolumn{1}{c|}{funct3} &
+\multicolumn{1}{c|}{imm[4:0]} &
+\multicolumn{1}{c|}{opcode} & S-type \\
+\cline{2-11}
+
+
+&
\multicolumn{10}{c}{} & \\
&
\multicolumn{10}{c}{\bf RV64F Standard Extension (in addition to RV32F)} & \\
diff --git a/parse-opcodes b/parse-opcodes
index d46861d..b5f3cf3 100755
--- a/parse-opcodes
+++ b/parse-opcodes
@@ -140,7 +140,7 @@ def print_uj_type(name,match,arguments):
\\cline{2-11}
""" % \
( \
- str_arg('jimm20','imm[20, 10:1, 11, 19:12]',match,arguments), \
+ str_arg('jimm20','imm[20$\\vert$10:1$\\vert$11$\\vert$19:12]',match,arguments), \
str_arg('rd','',match,arguments), \
binary(yank(match,opcode_base,opcode_size),opcode_size), \
str_inst(name,arguments) \
@@ -179,11 +179,11 @@ def print_sb_type(name,match,arguments):
\\cline{2-11}
""" % \
( \
- str_arg('bimm12hi','imm[12, 10:5]',match,arguments), \
+ str_arg('bimm12hi','imm[12$\\vert$10:5]',match,arguments), \
str_arg('rs2','',match,arguments), \
str_arg('rs1','',match,arguments), \
binary(yank(match,funct_base,funct_size),funct_size), \
- str_arg('bimm12lo','imm[4:1, 11]',match,arguments), \
+ str_arg('bimm12lo','imm[4:1$\\vert$11]',match,arguments), \
binary(yank(match,opcode_base,opcode_size),opcode_size), \
str_inst(name,arguments) \
)
@@ -319,8 +319,8 @@ def print_amo_type(name,match,arguments):
def print_fence_type(name,match,arguments):
print """
&
-\\multicolumn{1}{|c|}{%s} &
-\\multicolumn{4}{c|}{%s} &
+\\multicolumn{2}{|c|}{%s} &
+\\multicolumn{3}{c|}{%s} &
\\multicolumn{1}{c|}{%s} &
\\multicolumn{1}{c|}{%s} &
\\multicolumn{1}{c|}{%s} &
@@ -330,7 +330,7 @@ def print_fence_type(name,match,arguments):
""" % \
( \
binary(yank(match,28,4),4), \
- str_arg('pred','~~~pred~~~~',match,arguments), \
+ str_arg('pred','pred',match,arguments), \
str_arg('succ','',match,arguments), \
str_arg('rs1','',match,arguments), \
binary(yank(match,funct_base,funct_size),funct_size), \
@@ -346,13 +346,15 @@ def print_header(*types):
\\begin{table}[p]
\\begin{small}
\\begin{center}
-\\begin{tabular}{rccccccccccl}
+\\begin{tabular}{p{0in}p{0.4in}p{0.05in}p{0.05in}p{0.05in}p{0.05in}p{0.4in}p{0.6in}p{0.4in}p{0.6in}p{0.7in}l}
+& & & & & & & & & & \\\\
&
\\multicolumn{1}{l}{\\instbit{31}} &
\\multicolumn{1}{r}{\\instbit{27}} &
\\instbit{26} &
\\instbit{25} &
-\\multicolumn{2}{c}{\\instbitrange{24}{20}} &
+\\multicolumn{1}{l}{\\instbit{24}} &
+\\multicolumn{1}{r}{\\instbit{20}} &
\\instbitrange{19}{15} &
\\instbitrange{14}{12} &
\\instbitrange{11}{7} &
@@ -398,19 +400,19 @@ def print_header(*types):
\\multicolumn{4}{|c|}{imm[11:5]} &
\\multicolumn{2}{c|}{rs2} &
\\multicolumn{1}{c|}{rs1} &
-\\multicolumn{1}{c|}{imm[4:0]} &
\\multicolumn{1}{c|}{funct3} &
+\\multicolumn{1}{c|}{imm[4:0]} &
\\multicolumn{1}{c|}{opcode} & S-type \\\\
\\cline{2-11}
"""
if 'sb' in types:
print """
&
-\\multicolumn{4}{|c|}{imm[12, 10:5]} &
+\\multicolumn{4}{|c|}{imm[12$\\vert$10:5]} &
\\multicolumn{2}{c|}{rs2} &
\\multicolumn{1}{c|}{rs1} &
\\multicolumn{1}{c|}{funct3} &
-\\multicolumn{1}{c|}{imm[4:1, 11]} &
+\\multicolumn{1}{c|}{imm[4:1$\\vert$11]} &
\\multicolumn{1}{c|}{opcode} & SB-type \\\\
\\cline{2-11}
"""
@@ -425,7 +427,7 @@ def print_header(*types):
if 'uj' in types:
print """
&
-\\multicolumn{8}{|c|}{imm[20, 10:1, 11, 19:12]} &
+\\multicolumn{8}{|c|}{imm[20$\\vert$10:1$\\vert$11$\\vert$19:12]} &
\\multicolumn{1}{c|}{rd} &
\\multicolumn{1}{c|}{opcode} & UJ-type \\\\
\\cline{2-11}
@@ -507,7 +509,7 @@ def make_latex_table():
print_insts('amomin.w', 'amomax.w', 'amominu.w', 'amomaxu.w')
print_footer(0)
- print_header('r','a','i','s')
+ print_header('r','r4','i','s')
print_subtitle('RV64A Standard Extension (in addition to RV32A)')
print_insts('lr.d', 'sc.d')
print_insts('amoswap.d')
@@ -524,7 +526,7 @@ def make_latex_table():
print_insts('fssr', 'frsr')
print_footer(0)
- print_header('r','r4')
+ print_header('r','r4','i','s')
print_subtitle('RV64F Standard Extension (in addition to RV32F)')
print_insts('fcvt.s.l', 'fcvt.s.lu')
print_insts('fcvt.l.s', 'fcvt.lu.s')