Annotation of researchv10no/cmd/sml/src/mips/opcodes.sml, revision 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.