Annotation of researchv10no/cmd/sml/src/mips/opcodes.sml, revision 1.1.1.1

1.1       root        1: (* Copyright 1989 by AT&T Bell Laboratories *)
                      2: structure Opcodes = struct
                      3: val andb = Bits.andb
                      4: fun lshift(op1,amt) = 
                      5:     if amt<0 then Bits.rshift(op1,0-amt)
                      6:     else Bits.lshift(op1,amt)
                      7: nonfix sub
                      8: nonfix div
                      9: val S_fmt = 16+0
                     10: val D_fmt = 16+1
                     11: val W_fmt = 16+4
                     12: fun op'LO(A1) = 0
                     13: fun op'HI(A1) = lshift(A1,10)
                     14: fun rsLO(A1) = 0
                     15: fun rsHI(A1) = lshift(A1,5)
                     16: fun rtLO(A1) = 0
                     17: fun rtHI(A1) = lshift(A1,0)
                     18: fun immedLO(A1) = andb(lshift(A1,0),65535)
                     19: fun immedHI(A1) = 0
                     20: fun offsetLO(A1) = andb(lshift(A1,0),65535)
                     21: fun offsetHI(A1) = 0
                     22: fun baseLO(A1) = 0
                     23: fun baseHI(A1) = lshift(A1,5)
                     24: fun targetLO(A1) = andb(lshift(A1,0),65535)
                     25: fun targetHI(A1) = lshift(A1,~16)
                     26: fun rdLO(A1) = andb(lshift(A1,11),65535)
                     27: fun rdHI(A1) = 0
                     28: fun shamtLO(A1) = andb(lshift(A1,6),65535)
                     29: fun shamtHI(A1) = 0
                     30: fun functLO(A1) = andb(lshift(A1,0),65535)
                     31: fun functHI(A1) = 0
                     32: fun condLO(A1) = 0
                     33: fun condHI(A1) = lshift(A1,0)
                     34: fun ftLO(A1) = 0
                     35: fun ftHI(A1) = lshift(A1,0)
                     36: fun fmtLO(A1) = 0
                     37: fun fmtHI(A1) = lshift(A1,5)
                     38: fun fsLO(A1) = andb(lshift(A1,11),65535)
                     39: fun fsHI(A1) = 0
                     40: fun fdLO(A1) = andb(lshift(A1,6),65535)
                     41: fun fdHI(A1) = 0
                     42: fun add(A1,A2,A3) = (rdHI(A1)+rsHI(A2)+rtHI(A3)+op'HI(0)+functHI(32), rdLO(A1)+rsLO(A2)+rtLO(A3)+op'LO(0)+functLO(32))
                     43: fun addi(A1,A2,A3) = (rtHI(A1)+rsHI(A2)+immedHI(A3)+op'HI(8), rtLO(A1)+rsLO(A2)+immedLO(A3)+op'LO(8))
                     44: fun addiu(A1,A2,A3) = (rtHI(A1)+rsHI(A2)+immedHI(A3)+op'HI(9), rtLO(A1)+rsLO(A2)+immedLO(A3)+op'LO(9))
                     45: fun addu(A1,A2,A3) = (rdHI(A1)+rsHI(A2)+rtHI(A3)+op'HI(0)+functHI(33), rdLO(A1)+rsLO(A2)+rtLO(A3)+op'LO(0)+functLO(33))
                     46: fun and'(A1,A2,A3) = (rdHI(A1)+rsHI(A2)+rtHI(A3)+op'HI(0)+functHI(36), rdLO(A1)+rsLO(A2)+rtLO(A3)+op'LO(0)+functLO(36))
                     47: fun andi(A1,A2,A3) = (rtHI(A1)+rsHI(A2)+immedHI(A3)+op'HI(12), rtLO(A1)+rsLO(A2)+immedLO(A3)+op'LO(12))
                     48: fun beq(A1,A2,A3) = (rsHI(A1)+rtHI(A2)+offsetHI(A3)+op'HI(4), rsLO(A1)+rtLO(A2)+offsetLO(A3)+op'LO(4))
                     49: fun bgez(A1,A2) = (rsHI(A1)+offsetHI(A2)+op'HI(1)+condHI(1), rsLO(A1)+offsetLO(A2)+op'LO(1)+condLO(1))
                     50: fun bgezal(A1,A2) = (rsHI(A1)+offsetHI(A2)+op'HI(1)+condHI(17), rsLO(A1)+offsetLO(A2)+op'LO(1)+condLO(17))
                     51: fun bgtz(A1,A2) = (rsHI(A1)+offsetHI(A2)+op'HI(7), rsLO(A1)+offsetLO(A2)+op'LO(7))
                     52: fun blez(A1,A2) = (rsHI(A1)+offsetHI(A2)+op'HI(6), rsLO(A1)+offsetLO(A2)+op'LO(6))
                     53: fun bltz(A1,A2) = (rsHI(A1)+offsetHI(A2)+op'HI(1)+condHI(0), rsLO(A1)+offsetLO(A2)+op'LO(1)+condLO(0))
                     54: fun bltzal(A1,A2) = (rsHI(A1)+offsetHI(A2)+op'HI(1)+condHI(16), rsLO(A1)+offsetLO(A2)+op'LO(1)+condLO(16))
                     55: fun bne(A1,A2,A3) = (rsHI(A1)+rtHI(A2)+offsetHI(A3)+op'HI(5), rsLO(A1)+rtLO(A2)+offsetLO(A3)+op'LO(5))
                     56: val break = (op'HI(0)+functHI(13), op'LO(0)+functLO(13))
                     57: fun div(A1,A2) = (rsHI(A1)+rtHI(A2)+op'HI(0)+functHI(26), rsLO(A1)+rtLO(A2)+op'LO(0)+functLO(26))
                     58: fun divu(A1,A2) = (rsHI(A1)+rtHI(A2)+op'HI(0)+functHI(27), rsLO(A1)+rtLO(A2)+op'LO(0)+functLO(27))
                     59: fun j(A1) = (targetHI(A1)+op'HI(2), targetLO(A1)+op'LO(2))
                     60: fun jal(A1) = (targetHI(A1)+op'HI(3), targetLO(A1)+op'LO(3))
                     61: fun jalr(A1,A2) = (rsHI(A1)+rdHI(A2)+op'HI(0)+functHI(9), rsLO(A1)+rdLO(A2)+op'LO(0)+functLO(9))
                     62: fun jr(A1) = (rsHI(A1)+op'HI(0)+functHI(8), rsLO(A1)+op'LO(0)+functLO(8))
                     63: fun lb(A1,A2,A3) = (rtHI(A1)+offsetHI(A2)+baseHI(A3)+op'HI(32), rtLO(A1)+offsetLO(A2)+baseLO(A3)+op'LO(32))
                     64: fun lbu(A1,A2,A3) = (rtHI(A1)+offsetHI(A2)+baseHI(A3)+op'HI(36), rtLO(A1)+offsetLO(A2)+baseLO(A3)+op'LO(36))
                     65: fun lh(A1,A2,A3) = (rtHI(A1)+offsetHI(A2)+baseHI(A3)+op'HI(33), rtLO(A1)+offsetLO(A2)+baseLO(A3)+op'LO(33))
                     66: fun lb(A1,A2,A3) = (rtHI(A1)+offsetHI(A2)+baseHI(A3)+op'HI(32), rtLO(A1)+offsetLO(A2)+baseLO(A3)+op'LO(32))
                     67: fun lhu(A1,A2,A3) = (rtHI(A1)+offsetHI(A2)+baseHI(A3)+op'HI(37), rtLO(A1)+offsetLO(A2)+baseLO(A3)+op'LO(37))
                     68: fun lui(A1,A2) = (rtHI(A1)+immedHI(A2)+op'HI(15), rtLO(A1)+immedLO(A2)+op'LO(15))
                     69: fun lw(A1,A2,A3) = (rtHI(A1)+offsetHI(A2)+baseHI(A3)+op'HI(35), rtLO(A1)+offsetLO(A2)+baseLO(A3)+op'LO(35))
                     70: fun lwl(A1,A2,A3) = (rtHI(A1)+offsetHI(A2)+baseHI(A3)+op'HI(34), rtLO(A1)+offsetLO(A2)+baseLO(A3)+op'LO(34))
                     71: fun lwr(A1,A2,A3) = (rtHI(A1)+offsetHI(A2)+baseHI(A3)+op'HI(38), rtLO(A1)+offsetLO(A2)+baseLO(A3)+op'LO(38))
                     72: fun mfhi(A1) = (rdHI(A1)+op'HI(0)+functHI(16), rdLO(A1)+op'LO(0)+functLO(16))
                     73: fun mflo(A1) = (rdHI(A1)+op'HI(0)+functHI(18), rdLO(A1)+op'LO(0)+functLO(18))
                     74: fun mthi(A1) = (rsHI(A1)+op'HI(0)+functHI(17), rsLO(A1)+op'LO(0)+functLO(17))
                     75: fun mtlo(A1) = (rsHI(A1)+op'HI(0)+functHI(19), rsLO(A1)+op'LO(0)+functLO(19))
                     76: fun mult(A1,A2) = (rsHI(A1)+rtHI(A2)+op'HI(0)+functHI(24), rsLO(A1)+rtLO(A2)+op'LO(0)+functLO(24))
                     77: fun multu(A1,A2) = (rsHI(A1)+rtHI(A2)+op'HI(0)+functHI(25), rsLO(A1)+rtLO(A2)+op'LO(0)+functLO(25))
                     78: fun nor(A1,A2,A3) = (rdHI(A1)+rsHI(A2)+rtHI(A3)+op'HI(0)+functHI(39), rdLO(A1)+rsLO(A2)+rtLO(A3)+op'LO(0)+functLO(39))
                     79: fun or(A1,A2,A3) = (rdHI(A1)+rsHI(A2)+rtHI(A3)+op'HI(0)+functHI(37), rdLO(A1)+rsLO(A2)+rtLO(A3)+op'LO(0)+functLO(37))
                     80: fun ori(A1,A2,A3) = (rtHI(A1)+rsHI(A2)+immedHI(A3)+op'HI(13), rtLO(A1)+rsLO(A2)+immedLO(A3)+op'LO(13))
                     81: fun sb(A1,A2,A3) = (rtHI(A1)+offsetHI(A2)+baseHI(A3)+op'HI(40), rtLO(A1)+offsetLO(A2)+baseLO(A3)+op'LO(40))
                     82: fun sh(A1,A2,A3) = (rtHI(A1)+offsetHI(A2)+baseHI(A3)+op'HI(41), rtLO(A1)+offsetLO(A2)+baseLO(A3)+op'LO(41))
                     83: fun sll(A1,A2,A3) = (rdHI(A1)+rtHI(A2)+shamtHI(A3)+op'HI(0)+functHI(0), rdLO(A1)+rtLO(A2)+shamtLO(A3)+op'LO(0)+functLO(0))
                     84: fun sllv(A1,A2,A3) = (rdHI(A1)+rtHI(A2)+rsHI(A3)+op'HI(0)+functHI(4), rdLO(A1)+rtLO(A2)+rsLO(A3)+op'LO(0)+functLO(4))
                     85: fun slt(A1,A2,A3) = (rdHI(A1)+rsHI(A2)+rtHI(A3)+op'HI(0)+functHI(42), rdLO(A1)+rsLO(A2)+rtLO(A3)+op'LO(0)+functLO(42))
                     86: fun slti(A1,A2,A3) = (rtHI(A1)+rsHI(A2)+immedHI(A3)+op'HI(10), rtLO(A1)+rsLO(A2)+immedLO(A3)+op'LO(10))
                     87: fun sltiu(A1,A2,A3) = (rtHI(A1)+rsHI(A2)+immedHI(A3)+op'HI(11), rtLO(A1)+rsLO(A2)+immedLO(A3)+op'LO(11))
                     88: fun sltu(A1,A2,A3) = (rdHI(A1)+rsHI(A2)+rtHI(A3)+op'HI(0)+functHI(43), rdLO(A1)+rsLO(A2)+rtLO(A3)+op'LO(0)+functLO(43))
                     89: fun sra(A1,A2,A3) = (rdHI(A1)+rtHI(A2)+shamtHI(A3)+op'HI(0)+functHI(3), rdLO(A1)+rtLO(A2)+shamtLO(A3)+op'LO(0)+functLO(3))
                     90: fun srav(A1,A2,A3) = (rdHI(A1)+rtHI(A2)+rsHI(A3)+op'HI(0)+functHI(7), rdLO(A1)+rtLO(A2)+rsLO(A3)+op'LO(0)+functLO(7))
                     91: fun srl(A1,A2,A3) = (rdHI(A1)+rtHI(A2)+shamtHI(A3)+op'HI(0)+functHI(2), rdLO(A1)+rtLO(A2)+shamtLO(A3)+op'LO(0)+functLO(2))
                     92: fun srlv(A1,A2,A3) = (rdHI(A1)+rtHI(A2)+rsHI(A3)+op'HI(0)+functHI(6), rdLO(A1)+rtLO(A2)+rsLO(A3)+op'LO(0)+functLO(6))
                     93: fun sub(A1,A2,A3) = (rdHI(A1)+rsHI(A2)+rtHI(A3)+op'HI(0)+functHI(34), rdLO(A1)+rsLO(A2)+rtLO(A3)+op'LO(0)+functLO(34))
                     94: fun subu(A1,A2,A3) = (rdHI(A1)+rsHI(A2)+rtHI(A3)+op'HI(0)+functHI(35), rdLO(A1)+rsLO(A2)+rtLO(A3)+op'LO(0)+functLO(35))
                     95: fun sw(A1,A2,A3) = (rtHI(A1)+offsetHI(A2)+baseHI(A3)+op'HI(43), rtLO(A1)+offsetLO(A2)+baseLO(A3)+op'LO(43))
                     96: fun swl(A1,A2,A3) = (rtHI(A1)+offsetHI(A2)+baseHI(A3)+op'HI(42), rtLO(A1)+offsetLO(A2)+baseLO(A3)+op'LO(42))
                     97: fun swr(A1,A2,A3) = (rtHI(A1)+offsetHI(A2)+baseHI(A3)+op'HI(46), rtLO(A1)+offsetLO(A2)+baseLO(A3)+op'LO(46))
                     98: val syscall = (op'HI(0)+functHI(12), op'LO(0)+functLO(12))
                     99: fun xor(A1,A2,A3) = (rdHI(A1)+rsHI(A2)+rtHI(A3)+op'HI(0)+functHI(38), rdLO(A1)+rsLO(A2)+rtLO(A3)+op'LO(0)+functLO(38))
                    100: fun xori(A1,A2,A3) = (rtHI(A1)+rsHI(A2)+immedHI(A3)+op'HI(14), rtLO(A1)+rsLO(A2)+immedLO(A3)+op'LO(14))
                    101: fun add_fmt(A1,A2,A3,A4) = (fmtHI(A1)+fdHI(A2)+fsHI(A3)+ftHI(A4)+op'HI(17)+functHI(0), fmtLO(A1)+fdLO(A2)+fsLO(A3)+ftLO(A4)+op'LO(17)+functLO(0))
                    102: fun div_fmt(A1,A2,A3,A4) = (fmtHI(A1)+fdHI(A2)+fsHI(A3)+ftHI(A4)+op'HI(17)+functHI(3), fmtLO(A1)+fdLO(A2)+fsLO(A3)+ftLO(A4)+op'LO(17)+functLO(3))
                    103: fun lwc1(A1,A2,A3) = (ftHI(A1)+offsetHI(A2)+baseHI(A3)+op'HI(49), ftLO(A1)+offsetLO(A2)+baseLO(A3)+op'LO(49))
                    104: fun mul_fmt(A1,A2,A3,A4) = (fmtHI(A1)+fdHI(A2)+fsHI(A3)+ftHI(A4)+op'HI(17)+functHI(2), fmtLO(A1)+fdLO(A2)+fsLO(A3)+ftLO(A4)+op'LO(17)+functLO(2))
                    105: fun neg_fmt(A1,A2,A3) = (fmtHI(A1)+fdHI(A2)+fsHI(A3)+op'HI(17)+functHI(7), fmtLO(A1)+fdLO(A2)+fsLO(A3)+op'LO(17)+functLO(7))
                    106: fun sub_fmt(A1,A2,A3,A4) = (fmtHI(A1)+fdHI(A2)+fsHI(A3)+ftHI(A4)+op'HI(17)+functHI(1), fmtLO(A1)+fdLO(A2)+fsLO(A3)+ftLO(A4)+op'LO(17)+functLO(1))
                    107: fun swc1(A1,A2,A3) = (ftHI(A1)+offsetHI(A2)+baseHI(A3)+op'HI(57), ftLO(A1)+offsetLO(A2)+baseLO(A3)+op'LO(57))
                    108: fun c_seq(A1,A2,A3) = (fmtHI(A1)+fsHI(A2)+ftHI(A3)+op'HI(17)+functHI(58), fmtLO(A1)+fsLO(A2)+ftLO(A3)+op'LO(17)+functLO(58))
                    109: fun c_lt(A1,A2,A3) = (fmtHI(A1)+fsHI(A2)+ftHI(A3)+op'HI(17)+functHI(60), fmtLO(A1)+fsLO(A2)+ftLO(A3)+op'LO(17)+functLO(60))
                    110: fun cop1(A1,A2,A3) = (rsHI(A1)+rtHI(A2)+offsetHI(A3)+op'HI(17), rsLO(A1)+rtLO(A2)+offsetLO(A3)+op'LO(17))
                    111: end (* Opcodes *)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.