Annotation of mstools/samples/sdktools/image/drwatson/mips/disasm.h, revision 1.1.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.