|
|
1.1 ! root 1: /* ! 2: * static char *ID_instabh = "@(#) instab.h: 1.3 12/10/83"; ! 3: */ ! 4: ! 5: #define SHFT_MSK 0x1F ! 6: #define DUMMY 0x01 ! 7: #define INSTRX 0x10 ! 8: #define INSTRB 0x11 ! 9: #define INSTRH 0x12 ! 10: #define INSTRW 0x13 ! 11: #if FLOAT ! 12: #define INSTRD 0x14 ! 13: #endif ! 14: #define INSTRBH 0x15 ! 15: #define INSTRBW 0x16 ! 16: #define INSTRHW 0x17 ! 17: #define INSTRWH 0x18 ! 18: #define INSTRWB 0x19 ! 19: #define INSTRHB 0x20 ! 20: /* ! 21: * the following defines are not needed at this time ! 22: * but are included for completeness ! 23: * ! 24: #if FLOAT ! 25: #define INSTRHD 0x21 ! 26: #define INSTRWD 0x22 ! 27: #define INSTRDH 0x23 ! 28: #define INSTRDW 0x24 ! 29: #endif ! 30: * ! 31: */ ! 32: #define PSEUDO 0x25 ! 33: #define IS25 0x40 ! 34: #define REGMD 0x1 /* register mode */ ! 35: #define REGDFMD 0x2 /* register defered mode */ ! 36: #define IMMD 0x3 /* immediate mode */ ! 37: #define ABSMD 0x4 /* absolute address mode */ ! 38: #define ABSDFMD 0x5 /* absolute address deferred mode */ ! 39: #define EXADMD 0x6 /* external address mode */ ! 40: #define EXADDFMD 0x7 /* external address deferred mode */ ! 41: #define DSPMD 0x8 /* displacement mode */ ! 42: #define DSPDFMD 0x9 /* displacement deferred mode */ ! 43: ! 44: #define CREGMD 0x4 /* register mode */ ! 45: #define CREGDFMD 0x5 /* register deferred mode */ ! 46: #define CFPDSPMD 0x6 /* FP displacement mode */ ! 47: #define CAPDSPMD 0x7 /* AP displacement mode */ ! 48: #define CDSPMD 0x8 /* displacement mode */ ! 49: #define CDSPDFMD 0x9 /* displacement deferred mode */ ! 50: #define CHDSPMD 0xA /* halfword displacement mode */ ! 51: #define CHDSPDFMD 0xB /* halfword displacement deferred mode */ ! 52: #define CBDSPMD 0xC /* byte displacement mode */ ! 53: #define CBDSPDFMD 0xD /* byte displacement deferred mode */ ! 54: #define CEXPAND 0xE /* expand byte */ ! 55: #define CIMMD 0x4F /* immediate mode */ ! 56: #define CHIMMD 0x5F /* halfword immediate */ ! 57: #define CBIMMD 0x6F /* byte immediate */ ! 58: #define CABSMD 0x7F /* absolute address mode */ ! 59: #define CABSDFMD 0xEF /* absolute address deferred mode */ ! 60: ! 61: #if FLOAT ! 62: #define FPIMMD 0x13 /* dummy floating point immediate mode */ ! 63: #define CDIMMD 0xCF /* floating point double immediate mode */ ! 64: #endif ! 65: ! 66: #define FPREG 0x9 /* FP register number */ ! 67: #define APREG 0xA /* AP register number */ ! 68: #define PSWREG 0xB /* PSW register number */ ! 69: #define SPREG 0xC /* SP register number */ ! 70: #define PCREG 0xF /* PC register number */ ! 71: ! 72: #define UBYTE 0x3 ! 73: #define SBYTE 0x7 ! 74: #define UHALF 0x2 ! 75: #define SHALF 0x6 ! 76: #define UWORD 0x0 ! 77: #define SWORD 0x4 ! 78: #define NOTYPE 0xF /* no new type (i.e. {...}) specified */ ! 79: ! 80: #define JMPOPCD 0x24L ! 81: ! 82: #define NULLSPEC 0x00L ! 83: #define BYTESPEC 0x01L ! 84: #define HALFSPEC 0x02L ! 85: #define WORDSPEC 0x03L ! 86: #define LITERALSPEC 0x04L ! 87: #define SHORTSPEC 0x05L ! 88: ! 89: typedef struct { ! 90: short exptype; ! 91: symbol *symptr; ! 92: long expval; /* holds value of integer expression, coded ! 93: float or first word of a double constant */ ! 94: #if FLOAT ! 95: long fdexpval2; /* holds second word of a double constant */ ! 96: #endif ! 97: /* variables that may be needed in future fp releases ! 98: * short fptype; 1=single fp ; 2=double fp constant ! 99: * double fpexpval; holds value of floating point expression ! 100: */ ! 101: } rexpr; ! 102: ! 103: typedef struct { ! 104: short newtype; /* only need BYTE, but short keeps the structure even */ ! 105: BYTE admode; ! 106: BYTE adreg; ! 107: rexpr adexpr; ! 108: /* ! 109: * The expression specifier describes the size of the expression ! 110: * and is kept here. ! 111: */ ! 112: long expspec; ! 113: } addrmode;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.