Annotation of researchv9/jerq/sgs/as/instab.h, revision 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.