diff options
author | Andrew Waterman <waterman@s144.Millennium.Berkeley.EDU> | 2011-03-25 19:02:52 -0700 |
---|---|---|
committer | Andrew Waterman <waterman@s144.Millennium.Berkeley.EDU> | 2011-03-25 19:02:52 -0700 |
commit | 474d9bb318bee21ac52e23a53cd4ec4f7a18f965 (patch) | |
tree | 623fc8924630b395543837f437999b3f7f9cfbee /parse-opcodes | |
parent | 2a0cc20059583ea27e2933ae80c638a3039b13b3 (diff) | |
download | riscv-opcodes-474d9bb318bee21ac52e23a53cd4ec4f7a18f965.zip riscv-opcodes-474d9bb318bee21ac52e23a53cd4ec4f7a18f965.tar.gz riscv-opcodes-474d9bb318bee21ac52e23a53cd4ec4f7a18f965.tar.bz2 |
[opcodes] fixed up instruction table
Diffstat (limited to 'parse-opcodes')
-rwxr-xr-x | parse-opcodes | 404 |
1 files changed, 197 insertions, 207 deletions
diff --git a/parse-opcodes b/parse-opcodes index ad07965..78ff655 100755 --- a/parse-opcodes +++ b/parse-opcodes @@ -42,12 +42,18 @@ typelut[0x2F] = 4 typelut[0x77] = 4 typelut[0x07] = 3 typelut[0x27] = 10 -typelut[0x53] = 4 -typelut[0x43] = 5 -typelut[0x47] = 5 -typelut[0x4B] = 5 -typelut[0x4F] = 5 +typelut[0x53] = 9 +typelut[0x43] = 8 +typelut[0x47] = 8 +typelut[0x4B] = 8 +typelut[0x4F] = 8 typelut[0x7B] = 4 +typelut[0x2B] = 4 + +opcode_base = 0 +opcode_size = 7 +funct_base = 7 +funct_size = 3 def binary(n, digits=0): rep = bin(n)[2:] @@ -61,11 +67,6 @@ def make_disasm_table(match,mask): print '#define MASK_%s %s' % (name2, hex(mask[name])) def make_switch(match,mask): - opcode_base = 0 - opcode_size = 7 - funct_base = 7 - funct_size = 3 - opcode_mask = ((1<<(opcode_base+opcode_size))-(1<<opcode_base)) funct_mask = ((1<<(funct_base+funct_size))-(1<<funct_base)) @@ -151,19 +152,22 @@ def str_arg(arg0,arg1,match,arguments): def str_inst(name,arguments): ret = name.upper() + ' ' + if 'imm12hi' in arguments and 'imm12lo' in arguments: + arguments.remove('imm12hi') + arguments.remove('imm12lo') + arguments.append('imm12') for idx in range(len(arguments)): ret = ret + arguments[idx] if idx != len(arguments)-1: ret = ret + ',' - ret = ret.replace('imm12lo,imm12hi','imm12') ret = ret.replace(',rm','[,rm]') return ret def print_unimp_type(name,match,arguments): print """ & -\\multicolumn{9}{|c|}{%s} & %s \\\\ -\\cline{2-10} +\\multicolumn{10}{|c|}{%s} & %s \\\\ +\\cline{2-11} """ % \ ( \ '0'*32, \ @@ -173,13 +177,13 @@ def print_unimp_type(name,match,arguments): def print_j_type(name,match,arguments): print """ & -\\multicolumn{1}{|c|}{%s} & -\\multicolumn{8}{c|}{%s} & %s \\\\ -\\cline{2-10} +\\multicolumn{9}{|c|}{%s} & +\\multicolumn{1}{c|}{%s} & %s \\\\ +\\cline{2-11} """ % \ ( \ - binary(yank(match,25,7),7), \ str_arg('imm25','',match,arguments), \ + binary(yank(match,opcode_base,opcode_size),opcode_size), \ str_inst(name,arguments) \ ) @@ -187,14 +191,14 @@ def print_lui_type(name,match,arguments): print """ & \\multicolumn{1}{|c|}{%s} & -\\multicolumn{7}{c|}{%s} & +\\multicolumn{8}{c|}{%s} & \\multicolumn{1}{c|}{%s} & %s \\\\ -\\cline{2-10} +\\cline{2-11} """ % \ ( \ - binary(yank(match,25,7),7), \ - str_arg('imm20','',match,arguments), \ str_arg('rd','',match,arguments), \ + str_arg('imm20','',match,arguments), \ + binary(yank(match,opcode_base,opcode_size),opcode_size), \ str_inst(name,arguments) \ ) @@ -202,20 +206,20 @@ def print_b_type(name,match,arguments): print """ & \\multicolumn{1}{|c|}{%s} & -\\multicolumn{2}{c|}{%s} & -\\multicolumn{3}{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-11} """ % \ ( \ - binary(yank(match,25,7),7), \ - binary(yank(match,22,3),3), \ str_arg('imm12hi','',match,arguments), \ - str_arg('rs2','',match,arguments), \ str_arg('rs1','',match,arguments), \ + str_arg('rs2','',match,arguments), \ str_arg('imm12lo','',match,arguments), \ + binary(yank(match,funct_base,funct_size),funct_size), \ + binary(yank(match,opcode_base,opcode_size),opcode_size), \ str_inst(name,arguments) \ ) @@ -223,18 +227,18 @@ def print_i_type(name,match,arguments): print """ & \\multicolumn{1}{|c|}{%s} & -\\multicolumn{2}{c|}{%s} & -\\multicolumn{4}{c|}{%s} & \\multicolumn{1}{c|}{%s} & +\\multicolumn{5}{c|}{%s} & +\\multicolumn{2}{c|}{%s} & \\multicolumn{1}{c|}{%s} & %s \\\\ -\\cline{2-10} +\\cline{2-11} """ % \ ( \ - binary(yank(match,25,7),7), \ - binary(yank(match,22,3),3), \ - str_arg('imm12','',match,arguments), \ - str_arg('rs1','',match,arguments), \ str_arg('rd','',match,arguments), \ + str_arg('rs1','',match,arguments), \ + str_arg('imm12','',match,arguments), \ + binary(yank(match,funct_base,funct_size),funct_size), \ + binary(yank(match,opcode_base,opcode_size),opcode_size), \ str_inst(name,arguments) \ ) @@ -242,20 +246,20 @@ def print_ish_type(name,match,arguments): print """ & \\multicolumn{1}{|c|}{%s} & +\\multicolumn{1}{c|}{%s} & \\multicolumn{2}{c|}{%s} & +\\multicolumn{3}{c|}{%s} & \\multicolumn{2}{c|}{%s} & -\\multicolumn{2}{c|}{%s} & -\\multicolumn{1}{c|}{%s} & \\multicolumn{1}{c|}{%s} & %s \\\\ -\\cline{2-10} +\\cline{2-11} """ % \ ( \ - binary(yank(match,25,7),7), \ - binary(yank(match,22,3),3), \ + str_arg('rd','',match,arguments), \ + str_arg('rs1','',match,arguments), \ binary(yank(match,16,6),6), \ str_arg('shamt','',match,arguments), \ - str_arg('rs1','',match,arguments), \ - str_arg('rd','',match,arguments), \ + binary(yank(match,funct_base,funct_size),funct_size), \ + binary(yank(match,opcode_base,opcode_size),opcode_size), \ str_inst(name,arguments) \ ) @@ -263,21 +267,20 @@ def print_ishw_type(name,match,arguments): print """ & \\multicolumn{1}{|c|}{%s} & +\\multicolumn{1}{c|}{%s} & +\\multicolumn{3}{c|}{%s} & \\multicolumn{2}{c|}{%s} & \\multicolumn{2}{c|}{%s} & -\\multicolumn{1}{c|}{0} & -\\multicolumn{1}{c|}{%s} & -\\multicolumn{1}{c|}{%s} & \\multicolumn{1}{c|}{%s} & %s \\\\ -\\cline{2-10} +\\cline{2-11} """ % \ ( \ - binary(yank(match,25,7),7), \ - binary(yank(match,22,3),3), \ - binary(yank(match,16,6),6), \ - str_arg('shamtw','',match,arguments), \ str_arg('rd','',match,arguments), \ str_arg('rs1','',match,arguments), \ + binary(yank(match,15,7),7), \ + str_arg('shamtw','',match,arguments), \ + binary(yank(match,funct_base,funct_size),funct_size), \ + binary(yank(match,opcode_base,opcode_size),opcode_size), \ str_inst(name,arguments) \ ) @@ -285,18 +288,20 @@ def print_r_type(name,match,arguments): print """ & \\multicolumn{1}{|c|}{%s} & -\\multicolumn{5}{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-11} """ % \ ( \ - binary(yank(match,25,7),7), \ - binary(yank(match,15,10),10), \ - str_arg('rs2','',match,arguments), \ - str_arg('rs1','',match,arguments), \ str_arg('rd','',match,arguments), \ + str_arg('rs1','',match,arguments), \ + str_arg('rs2','',match,arguments), \ + binary(yank(match,10,7),7), \ + binary(yank(match,funct_base,funct_size),funct_size), \ + binary(yank(match,opcode_base,opcode_size),opcode_size), \ str_inst(name,arguments) \ ) @@ -305,42 +310,21 @@ def print_r_rm_type(name,match,arguments): & \\multicolumn{1}{|c|}{%s} & \\multicolumn{1}{c|}{%s} & -\\multicolumn{2}{c|}{%s} & -\\multicolumn{2}{c|}{%s} & -\\multicolumn{1}{c|}{%s} & \\multicolumn{1}{c|}{%s} & -\\multicolumn{1}{c|}{%s} & %s \\\\ -\\cline{2-10} - """ % \ - ( \ - binary(yank(match,25,7),7), \ - binary(yank(match,23,2),2), \ - str_arg('rm','',match,arguments), \ - binary(yank(match,15,5),5), \ - str_arg('rs2','',match,arguments), \ - str_arg('rs1','',match,arguments), \ - str_arg('rd','',match,arguments), \ - str_inst(name,arguments) \ - ) - -def print_r4_type(name,match,arguments): - print """ -& -\\multicolumn{1}{|c|}{%s} & \\multicolumn{3}{c|}{%s} & \\multicolumn{2}{c|}{%s} & \\multicolumn{1}{c|}{%s} & -\\multicolumn{1}{c|}{%s} & \\multicolumn{1}{c|}{%s} & %s \\\\ -\\cline{2-10} +\\cline{2-11} """ % \ ( \ - binary(yank(match,25,7),7), \ - binary(yank(match,20,5),5), \ - str_arg('rs3','',match,arguments), \ - str_arg('rs2','',match,arguments), \ - str_arg('rs1','',match,arguments), \ str_arg('rd','',match,arguments), \ + str_arg('rs1','',match,arguments), \ + str_arg('rs2','',match,arguments), \ + binary(yank(match,12,5),5), \ + str_arg('rm','',match,arguments), \ + binary(yank(match,7,2),2), \ + binary(yank(match,opcode_base,opcode_size),opcode_size), \ str_inst(name,arguments) \ ) @@ -349,21 +333,21 @@ def print_r4_rm_type(name,match,arguments): & \\multicolumn{1}{|c|}{%s} & \\multicolumn{1}{c|}{%s} & -\\multicolumn{2}{c|}{%s} & -\\multicolumn{2}{c|}{%s} & \\multicolumn{1}{c|}{%s} & +\\multicolumn{3}{c|}{%s} & +\\multicolumn{2}{c|}{%s} & \\multicolumn{1}{c|}{%s} & \\multicolumn{1}{c|}{%s} & %s \\\\ -\\cline{2-10} +\\cline{2-11} """ % \ ( \ - binary(yank(match,25,7),7), \ - binary(yank(match,23,2),2), \ - str_arg('rm','',match,arguments), \ - str_arg('rs3','',match,arguments), \ - str_arg('rs2','',match,arguments), \ - str_arg('rs1','',match,arguments), \ str_arg('rd','',match,arguments), \ + str_arg('rs1','',match,arguments), \ + str_arg('rs2','',match,arguments), \ + str_arg('rs3','',match,arguments), \ + str_arg('rm','',match,arguments), \ + binary(yank(match,7,2),2), \ + binary(yank(match,opcode_base,opcode_size),opcode_size), \ str_inst(name,arguments) \ ) @@ -374,11 +358,12 @@ def print_header(): \\begin{table}[p] \\begin{small} \\begin{center} -\\begin{tabular}{rcccccccccl} +\\begin{tabular}{rccccccccccl} & \\hspace*{0.6in} & \\hspace*{0.3in} & \\hspace*{0.1in} & +\\hspace*{0.1in} & \\hspace*{0.2in} & \\hspace*{0.2in} & \\hspace*{0.1in} & @@ -386,64 +371,66 @@ def print_header(): \\hspace*{0.3in} & \\hspace*{0.3in} \\\\ & -\\instbitrange{31}{25} & -\\instbitrange{24}{23} & -\\instbit{22} & -\\instbitrange{21}{20} & -\\instbitrange{19}{16} & +\\instbitrange{31}{27} & +\\instbitrange{26}{22} & +\\instbitrange{21}{17} & +\\instbit{16} & \\instbit{15} & -\\instbitrange{14}{10} & -\\instbitrange{9}{5} & -\\instbitrange{4}{0} \\\\ -\\cline{2-10} +\\instbitrange{14}{12} & +\\instbitrange{11}{10} & +\\instbit{9} & +\\instbitrange{8}{7} & +\\instbitrange{6}{0} \\\\ +\\cline{2-11} & -\\multicolumn{1}{|c|}{opcode} & -\\multicolumn{8}{c|}{jump target} & J-type \\\\ -\\cline{2-10} +\\multicolumn{9}{|c|}{jump target} & +\\multicolumn{1}{c|}{opcode} & J-type \\\\ +\\cline{2-11} & -\\multicolumn{1}{|c|}{opcode} & -\\multicolumn{7}{c|}{LUI-immediate} & -\\multicolumn{1}{c|}{rd} & LUI-type \\\\ -\\cline{2-10} +\\multicolumn{1}{|c|}{rd} & +\\multicolumn{8}{c|}{LUI-immediate} & +\\multicolumn{1}{c|}{opcode} & LUI-type \\\\ +\\cline{2-11} & -\\multicolumn{1}{|c|}{opcode} & -\\multicolumn{2}{c|}{funct3} & -\\multicolumn{4}{c|}{immediate} & +\\multicolumn{1}{|c|}{rd} & \\multicolumn{1}{c|}{rs1} & -\\multicolumn{1}{c|}{rd} & I-type \\\\ -\\cline{2-10} -& -\\multicolumn{1}{|c|}{opcode} & +\\multicolumn{1}{c|}{imm[11:7]} & +\\multicolumn{4}{c|}{imm[6:0]} & \\multicolumn{2}{c|}{funct3} & -\\multicolumn{3}{c|}{immed[11:5]} & -\\multicolumn{1}{c|}{rs2} & -\\multicolumn{1}{c|}{rs1} & -\\multicolumn{1}{c|}{immed[4:0]} & B-type \\\\ -\\cline{2-10} +\\multicolumn{1}{c|}{opcode} & I-type \\\\ +\\cline{2-11} & -\\multicolumn{1}{|c|}{opcode} & -\\multicolumn{5}{c|}{funct10} & -\\multicolumn{1}{c|}{rs2} & +\\multicolumn{1}{|c|}{imm[11:7]} & \\multicolumn{1}{c|}{rs1} & -\\multicolumn{1}{c|}{rd} & R-type \\\\ -\\cline{2-10} +\\multicolumn{1}{c|}{rs2} & +\\multicolumn{4}{c|}{imm[6:0]} & +\\multicolumn{2}{c|}{funct3} & +\\multicolumn{1}{c|}{opcode} & B-type \\\\ +\\cline{2-11} & -\\multicolumn{1}{|c|}{opcode} & -\\multicolumn{3}{c|}{funct5} & -\\multicolumn{2}{c|}{rs3} & +\\multicolumn{1}{|c|}{rd} & +\\multicolumn{1}{c|}{rs1} & \\multicolumn{1}{c|}{rs2} & +\\multicolumn{6}{c|}{funct10} & +\\multicolumn{1}{c|}{opcode} & R-type \\\\ +\\cline{2-11} +& +\\multicolumn{1}{|c|}{rd} & \\multicolumn{1}{c|}{rs1} & -\\multicolumn{1}{c|}{rd} & R4-type \\\\ -\\cline{2-10} +\\multicolumn{1}{c|}{rs2} & +\\multicolumn{3}{c|}{rs3} & +\\multicolumn{3}{c|}{funct5} & +\\multicolumn{1}{c|}{opcode} & R4-type \\\\ +\\cline{2-11} """ def print_subtitle(title): print """ & -\\multicolumn{9}{c}{} & \\\\ +\\multicolumn{10}{c}{} & \\\\ & -\\multicolumn{9}{c}{\\bf %s} & \\\\ -\\cline{2-10} +\\multicolumn{10}{c}{\\bf %s} & \\\\ +\\cline{2-11} """ % title def print_footer(caption): @@ -458,7 +445,7 @@ def print_footer(caption): def print_insts(opcode,name,type,min,max): for n in namelist: - if yank(match[n],25,7) == opcode or n == name: + if yank(match[n],opcode_base,opcode_size) == opcode or n == name: if type == -1 or types[n] == type: if types[n] == 0: print_unimp_type(n,match[n],arguments[n]) @@ -490,101 +477,104 @@ def make_latex_table(): print_subtitle('Unimplemented Instruction') print_insts(0x00,'',-1,-1,-1) print_subtitle('Control Transfer Instructions') - print_insts(0x60,'',-1,-1,-1) - print_insts(0x61,'',-1,-1,-1) - print_insts(0x62,'',-1,-1,-1) + print_insts(0x67,'',-1,-1,-1) + print_insts(0x6f,'',-1,-1,-1) print_insts(0x63,'',-1,-1,-1) + print_insts(0x6b,'',-1,-1,-1) print_subtitle('Memory Instructions') - print_insts(0x78,'',-1,-1,-1) - print_insts(0x79,'',-1,-1,-1) + print_insts(0x03,'',-1,-1,-1) + print_insts(0x23,'',-1,-1,-1) print_subtitle('Atomic Memory Instructions') - print_insts(0x7a,'',-1,-1,-1) + print_insts(0x2b,'',-1,-1,-1) print_footer(0) print_header() print_subtitle('Integer Compute Instructions') - print_insts(0x71,'',-1,-1,-1) - print_insts(0x74,'',-1,-1,-1) - print_insts(0x75,'',-1,-1,-1) + print_insts(0x13,'',-1,-1,-1) + print_insts(0x33,'',-1,-1,-1) + print_insts(0x37,'',-1,-1,-1) print_subtitle('32-bit Integer Compute Instructions') - print_insts(0x76,'',-1,-1,-1) - print_insts(0x77,'',-1,-1,-1) + print_insts(0x1b,'',-1,-1,-1) + print_insts(0x3b,'',-1,-1,-1) print_footer(0) print_header() print_subtitle('Floating-Point Memory Instructions') - print_insts(0x68,'',-1,-1,-1) - print_insts(0x69,'',-1,-1,-1) + print_insts(0x07,'',-1,-1,-1) + print_insts(0x27,'',-1,-1,-1) print_subtitle('Floating-Point Compute Instructions') - print_insts(-1,'add.s',-1,-1,-1) - print_insts(-1,'sub.s',-1,-1,-1) - print_insts(-1,'mul.s',-1,-1,-1) - print_insts(-1,'div.s',-1,-1,-1) - print_insts(-1,'sqrt.s',-1,-1,-1) - print_insts(-1,'add.d',-1,-1,-1) - print_insts(-1,'sub.d',-1,-1,-1) - print_insts(-1,'mul.d',-1,-1,-1) - print_insts(-1,'div.d',-1,-1,-1) - print_insts(-1,'sqrt.d',-1,-1,-1) - print_insts(-1,'madd.s',-1,-1,-1) - print_insts(-1,'msub.s',-1,-1,-1) - print_insts(-1,'nmsub.s',-1,-1,-1) - print_insts(-1,'nmadd.s',-1,-1,-1) - print_insts(-1,'madd.d',-1,-1,-1) - 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_insts(-1,'fadd.s',-1,-1,-1) + print_insts(-1,'fsub.s',-1,-1,-1) + print_insts(-1,'fmul.s',-1,-1,-1) + print_insts(-1,'fdiv.s',-1,-1,-1) + print_insts(-1,'fsqrt.s',-1,-1,-1) + print_insts(-1,'fmin.s',-1,-1,-1) + print_insts(-1,'fmax.s',-1,-1,-1) + print_insts(-1,'fadd.d',-1,-1,-1) + print_insts(-1,'fsub.d',-1,-1,-1) + print_insts(-1,'fmul.d',-1,-1,-1) + print_insts(-1,'fdiv.d',-1,-1,-1) + print_insts(-1,'fsqrt.d',-1,-1,-1) + print_insts(-1,'fmin.d',-1,-1,-1) + print_insts(-1,'fmax.d',-1,-1,-1) + print_insts(-1,'fmadd.s',-1,-1,-1) + print_insts(-1,'fmsub.s',-1,-1,-1) + print_insts(-1,'fnmsub.s',-1,-1,-1) + print_insts(-1,'fnmadd.s',-1,-1,-1) + print_insts(-1,'fmadd.d',-1,-1,-1) + print_insts(-1,'fmsub.d',-1,-1,-1) + print_insts(-1,'fnmsub.d',-1,-1,-1) + print_insts(-1,'fnmadd.d',-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) - print_insts(-1,'sgnmul.s',-1,-1,-1) - print_insts(-1,'sgninj.d',-1,-1,-1) - print_insts(-1,'sgninjn.d',-1,-1,-1) - 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_insts(-1,'fsgnj.s',-1,-1,-1) + print_insts(-1,'fsgnjn.s',-1,-1,-1) + print_insts(-1,'fsgnjx.s',-1,-1,-1) + print_insts(-1,'fsgnj.d',-1,-1,-1) + print_insts(-1,'fsgnjn.d',-1,-1,-1) + print_insts(-1,'fsgnjx.d',-1,-1,-1) + print_insts(-1,'fcvt.s.d',-1,-1,-1) + print_insts(-1,'fcvt.d.s',-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) - print_insts(-1,'cvt.s.w',-1,-1,-1) - print_insts(-1,'cvtu.s.w',-1,-1,-1) - print_insts(-1,'cvt.d.l',-1,-1,-1) - 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,'mtflh.d',-1,-1,-1) - print_insts(-1,'mtf.s',-1,-1,-1) - print_insts(-1,'mtf.d',-1,-1,-1) + print_insts(-1,'fcvt.s.l',-1,-1,-1) + print_insts(-1,'fcvt.s.lu',-1,-1,-1) + print_insts(-1,'fcvt.s.w',-1,-1,-1) + print_insts(-1,'fcvt.s.wu',-1,-1,-1) + print_insts(-1,'fcvt.d.l',-1,-1,-1) + print_insts(-1,'fcvt.d.lu',-1,-1,-1) + print_insts(-1,'fcvt.d.w',-1,-1,-1) + print_insts(-1,'fcvt.d.wu',-1,-1,-1) + print_insts(-1,'mxtf.s',-1,-1,-1) + print_insts(-1,'mxtf.d',-1,-1,-1) + print_insts(-1,'mtfsr',-1,-1,-1) print_subtitle('Floating-Point to Integer Move \& Conversion Instructions') - print_insts(-1,'cvt.l.s',-1,-1,-1) - print_insts(-1,'cvtu.l.s',-1,-1,-1) - print_insts(-1,'cvt.w.s',-1,-1,-1) - print_insts(-1,'cvtu.w.s',-1,-1,-1) - print_insts(-1,'cvt.l.d',-1,-1,-1) - print_insts(-1,'cvtu.l.d',-1,-1,-1) - print_insts(-1,'cvt.w.d',-1,-1,-1) - print_insts(-1,'cvtu.w.d',-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_insts(-1,'fcvt.l.s',-1,-1,-1) + print_insts(-1,'fcvt.lu.s',-1,-1,-1) + print_insts(-1,'fcvt.w.s',-1,-1,-1) + print_insts(-1,'fcvt.wu.s',-1,-1,-1) + print_insts(-1,'fcvt.l.d',-1,-1,-1) + print_insts(-1,'fcvt.lu.d',-1,-1,-1) + print_insts(-1,'fcvt.w.d',-1,-1,-1) + print_insts(-1,'fcvt.wu.d',-1,-1,-1) + print_insts(-1,'mftx.s',-1,-1,-1) + print_insts(-1,'mftx.d',-1,-1,-1) + print_insts(-1,'mffsr',-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,-1,-1) - print_subtitle('Privileged Instructions') - print_insts(0x6b,'',-1,-1,-1) + print_insts(-1,'feq.s',-1,-1,-1) + print_insts(-1,'flt.s',-1,-1,-1) + print_insts(-1,'fle.s',-1,-1,-1) + print_insts(-1,'feq.d',-1,-1,-1) + print_insts(-1,'flt.d',-1,-1,-1) + print_insts(-1,'fle.d',-1,-1,-1) + print_subtitle('Miscellaneous Memory Instructions') + print_insts(0x2f,'',-1,-1,-1) + print_subtitle('System Instructions') + print_insts(0x77,'',-1,-1,-1) print_footer(1) def str_verilog_arg(arg0,arg1,match,arguments): |