|
|
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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.