Annotation of researchv9/jerq/sgs/as/instab.h, revision 1.1.1.1

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;

unix.superglobalmegacorp.com

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