Annotation of mstools/samples/sdktools/image/drwatson/mips/disasm.h, revision 1.1

1.1     ! root        1: #define opnNone         0x0
        !             2: #define opnPreRt        0x1         //  contains trailing comma
        !             3: #define opnRd           0x2
        !             4: #define opnFd           0x4
        !             5: #define opnRdComma      0x8
        !             6: #define opnRdOptRs      0x10        //  [Rd,] Rs
        !             7: #define opnRs           0x20
        !             8: #define opnFs           0x40
        !             9: #define opnRsComma      0x80
        !            10: #define opnRt           0x100
        !            11: #define opnFt           0x200
        !            12: #define opnRtComma      0x400
        !            13: #define opnPostRs       0x800
        !            14: #define opnImm16        0x1000
        !            15: #define opnRel16        0x2000
        !            16: #define opnImm10        0x4000
        !            17: #define opnImm20        0x8000
        !            18: #define opnImm26        0x10000
        !            19: #define opnAddr26       0x20000
        !            20: 
        !            21: #define opnByteIndex    0x40000
        !            22: #define opnWordIndex    0x80000
        !            23: #define opnDwordIndex   0x100000
        !            24: #define opnLeftIndex    0x200000
        !            25: #define opnRightIndex   0x400000
        !            26: #define opnAnyIndex     0x7c0000
        !            27: 
        !            28: #define opnShift        0x800000
        !            29: #define opnCache        0x1000000
        !            30: 
        !            31: #define opnR4000        0x2000000
        !            32: 
        !            33: #define opnRdRsRt       opnRd + opnRdComma + opnRs + opnRsComma + opnRt
        !            34: #define opnRtRsImm16    opnPreRt + opnRs + opnRsComma + opnImm16
        !            35: #define opnRsRtRel16    opnRs + opnRsComma + opnRt + opnRtComma + opnRel16
        !            36: #define opnRsRel16      opnRs + opnRsComma + opnRel16
        !            37: #define opnRtRd         opnPreRt + opnRd
        !            38: #define opnRsRt         opnRs + opnRsComma + opnRt
        !            39: #define opnRsRtImm10    opnRs + opnRsComma + opnRt + opnRtComma + opnImm10
        !            40: #define opnRdRs         opnRd + opnRdComma + opnRs
        !            41: #define opnRtByteIndex  opnPreRt + opnByteIndex
        !            42: #define opnRtWordIndex  opnPreRt + opnWordIndex
        !            43: #define opnRtDwordIndex opnPreRt + opnDwordIndex
        !            44: #define opnRtLeftIndex  opnPreRt + opnLeftIndex
        !            45: #define opnRtRightIndex opnPreRt + opnRightIndex
        !            46: #define opnRtImm16      opnPreRt + opnImm16
        !            47: #define opnRdRtShift    opnRd + opnRdComma + opnRt + opnRtComma + opnShift
        !            48: #define opnRdRtRs       opnRd + opnRdComma + opnRt + opnRtComma + opnPostRs
        !            49: #define opnFdFs         opnFd + opnRdComma + opnFs
        !            50: #define opnFdFsFt       opnFd + opnRdComma + opnFs + opnRsComma + opnFt
        !            51: #define opnFsFt         opnFs + opnRsComma + opnFt
        !            52: #define opnRtFs         opnPreRt + opnFs
        !            53: #define opnFtDwordIndex opnFt + opnRtComma + opnDwordIndex
        !            54: #define opnRsImm16      opnRs + opnRsComma + opnImm16
        !            55: #define opnCacheRightIndex opnCache + opnRightIndex
        !            56: 
        !            57: typedef union instr {
        !            58:     ULONG   instruction;
        !            59:     struct _jump_instr {
        !            60:         ULONG   Target  : 26;
        !            61:         ULONG   Opcode  : 6;
        !            62:         } jump_instr;
        !            63:     struct _break_instr {
        !            64:         ULONG   Opcode  : 6;
        !            65:         ULONG   Fill    : 10;
        !            66:         ULONG   Value   : 10;
        !            67:         ULONG   Special : 6;
        !            68:         } break_instr;
        !            69:     struct _trap_instr {
        !            70:         ULONG   Opcode  : 6;
        !            71:         ULONG   Value   : 10;
        !            72:         ULONG   RT      : 5;
        !            73:         ULONG   RS      : 5;
        !            74:         ULONG   Special : 6;
        !            75:         } trap_instr;
        !            76:     struct _immed_instr {
        !            77:         ULONG   Value   : 16;
        !            78:         ULONG   RT      : 5;
        !            79:         ULONG   RS      : 5;
        !            80:         ULONG   Opcode  : 6;
        !            81:         } immed_instr;
        !            82:     struct _special_instr {
        !            83:         ULONG   Funct   : 6;
        !            84:         ULONG   RE      : 5;
        !            85:         ULONG   RD      : 5;
        !            86:         ULONG   RT      : 5;
        !            87:         ULONG   RS      : 5;
        !            88:         ULONG   Opcode  : 6;
        !            89:         } special_instr;
        !            90:     struct _float_instr {
        !            91:         ULONG   Funct   : 6;
        !            92:         ULONG   FD      : 5;
        !            93:         ULONG   FS      : 5;
        !            94:         ULONG   FT      : 5;
        !            95:         ULONG   Format  : 5;
        !            96:         ULONG   Opcode  : 6;
        !            97:         } float_instr;
        !            98:     } INSTR;
        !            99: 

unix.superglobalmegacorp.com

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