Annotation of researchv10no/cmd/lcc/gen2/mips/config.h, revision 1.1

1.1     ! root        1: /* C compiler: MIPS configuration parameters */
        !             2: 
        !             3: #define        IREG    0       /* a general-purpose register */
        !             4: #define        FREG    1       /* a floating-point register */
        !             5: 
        !             6: #include "gen.h"
        !             7: 
        !             8: dclproto(extern Symbol argreg,(int, int, int, int));
        !             9: dclproto(extern void emitargb,(Node));
        !            10: dclproto(extern void emitasgnb,(Node));
        !            11: dclproto(extern void addnops,(void));
        !            12: extern int framesize;
        !            13: extern int gnum;
        !            14: extern char *nrflag;
        !            15: 
        !            16: #define announce(p) (bflag ? put.stackvar(p) : (unsigned)0)
        !            17: #define strtod(a,b) atof(a)
        !            18: dclproto(extern double atof,(char *));
        !            19: 
        !            20: struct emit {
        !            21:        dclproto(void (*seg),(int));
        !            22:        dclproto(void (*spacen),(int, char *));
        !            23:        dclproto(void (*string),(char*, char*, int, char*));
        !            24:        dclproto(unsigned (*emit),(unsigned, int, int, int, int));
        !            25:        dclproto(void (*addr),(Symbol, Symbol, int));
        !            26:        dclproto(unsigned (*def),(Symbol));
        !            27:        dclproto(void (*defaddr),(Symbol));
        !            28:        dclproto(void (*end),(Symbol));
        !            29:        dclproto(void (*entry),(Symbol, int, int));
        !            30:        dclproto(int (*offset),(int));
        !            31:        dclproto(void (*symbol),(int, Symbol));
        !            32:        dclproto(void (*word),(unsigned, int));
        !            33: };
        !            34: 
        !            35: extern struct emit put;
        !            36: 
        !            37: #define        r_at    1
        !            38: #define        r_gp    28
        !            39: #define r_sp   29
        !            40: 
        !            41: #define ea_base(wd)    ((wd >> 21) & 0x001f)
        !            42: #define ea_offset(wd)  ((wd) & 0xffff)
        !            43: #define ea_addr(off,base) (assert(ea_base(off)==0), (((base&0x001f)<<21) | ea_offset(off)))
        !            44: 
        !            45: #define o_add_s                (((unsigned)021<<26)|(020<<21)|0)
        !            46: #define o_add_d                (((unsigned)021<<26)|(021<<21)|0)
        !            47: #define o_sub_s                (((unsigned)021<<26)|(020<<21)|1)
        !            48: #define o_sub_d                (((unsigned)021<<26)|(021<<21)|1)
        !            49: #define o_mul_s                (((unsigned)021<<26)|(020<<21)|2)
        !            50: #define o_mul_d                (((unsigned)021<<26)|(021<<21)|2)
        !            51: #define o_div_s                (((unsigned)021<<26)|(020<<21)|3)
        !            52: #define o_div_d                (((unsigned)021<<26)|(021<<21)|3)
        !            53: #define o_mov_s                (((unsigned)021<<26)|(020<<21)|6)
        !            54: #define o_mov_d                (((unsigned)021<<26)|(021<<21)|6)
        !            55: #define o_neg_s                (((unsigned)021<<26)|(020<<21)|7)
        !            56: #define o_neg_d                (((unsigned)021<<26)|(021<<21)|7)
        !            57: #define o_cvt_d_s      (((unsigned)021<<26)|(020<<21)|33)
        !            58: #define o_cvt_d_w      (((unsigned)021<<26)|(024<<21)|33)
        !            59: #define o_cvt_s_d      (((unsigned)021<<26)|(021<<21)|32)
        !            60: #define o_cvt_w_s      (((unsigned)021<<26)|(020<<21)|36)
        !            61: #define o_cvt_w_d      (((unsigned)021<<26)|(021<<21)|36)
        !            62: #define o_c_eq_s       (((unsigned)021<<26)|(020<<21)|50)
        !            63: #define o_c_eq_d       (((unsigned)021<<26)|(021<<21)|50)
        !            64: #define o_c_le_s       (((unsigned)021<<26)|(020<<21)|62)
        !            65: #define o_c_le_d       (((unsigned)021<<26)|(021<<21)|62)
        !            66: #define o_c_lt_s       (((unsigned)021<<26)|(020<<21)|60)
        !            67: #define o_c_lt_d       (((unsigned)021<<26)|(021<<21)|60)
        !            68: #define o_mfc1_s       (((unsigned)021<<26)|(0<<21)|0) /* mfc1 */
        !            69: #define o_mtc1_s       (((unsigned)021<<26)|(4<<21)|0) /* mtc1 */
        !            70: #define o_mfc1_d       (((unsigned)021<<26)|(1<<21)|0) /* fake mfc1 */
        !            71: #define o_mtc1_d       (((unsigned)021<<26)|(5<<21)|0) /* fake mtc1 */
        !            72: #define o_cfc1         (((unsigned)021<<26)|(2<<21)|0)
        !            73: #define o_ctc1         (((unsigned)021<<26)|(6<<21)|0)
        !            74: #define o_l_s          ((unsigned)061<<26)             /* lwc1 */
        !            75: #define o_l_d          ((unsigned)065<<26)             /* ldc1 */
        !            76: #define o_s_s          ((unsigned)071<<26)             /* swc1 */
        !            77: #define o_s_d          ((unsigned)075<<26)             /* sdc1 */
        !            78: #define o_bc1f         (((unsigned)021<<26)|(0400<<16))
        !            79: #define o_bc1t         (((unsigned)021<<26)|(0401<<16))
        !            80: #define o_lui          ((unsigned)017<<26)
        !            81: #define o_lb           ((unsigned)040<<26)
        !            82: #define o_lbu          ((unsigned)044<<26)
        !            83: #define o_lh           ((unsigned)041<<26)
        !            84: #define o_lhu          ((unsigned)045<<26)
        !            85: #define o_lw           ((unsigned)043<<26)
        !            86: #define o_sb           ((unsigned)050<<26)
        !            87: #define o_sh           ((unsigned)051<<26)
        !            88: #define o_sw           ((unsigned)053<<26)
        !            89: #define o_lwl          ((unsigned)042<<26)
        !            90: #define o_lwr          ((unsigned)046<<26)
        !            91: #define o_swl          ((unsigned)052<<26)
        !            92: #define o_swr          ((unsigned)056<<26)
        !            93: #define o_add          (((unsigned)0<<26)|040)
        !            94: #define o_addu         (((unsigned)0<<26)|041)
        !            95: #define o_addi         ((unsigned)010<<26)
        !            96: #define o_addui                ((unsigned)011<<26)             /* addiu */
        !            97: #define o_and          (((unsigned)0<<26)|044)
        !            98: #define o_andi         ((unsigned)014<<26)
        !            99: #define o_sub          (((unsigned)0<<26)|042)
        !           100: #define o_subu         (((unsigned)0<<26)|043)
        !           101: #define o_subui                ((unsigned)011<<26)             /* addiu */
        !           102: #define o_or           (((unsigned)0<<26)|045)
        !           103: #define o_ori          ((unsigned)015<<26)
        !           104: #define o_xor          (((unsigned)0<<26)|046)
        !           105: #define o_xori         ((unsigned)016<<26)
        !           106: #define o_not          (((unsigned)0<<26)|047)         /* nor */
        !           107: #define o_mul          (((unsigned)0<<26)|030)
        !           108: #define o_mulu         (((unsigned)0<<26)|031)
        !           109: #define o_div          (((unsigned)0<<26)|032)
        !           110: #define o_divu         (((unsigned)0<<26)|033)
        !           111: #define o_rem          o_div
        !           112: #define o_remu         o_divu
        !           113: #define o_negu         o_subu
        !           114: #define o_sll          (((unsigned)0<<26)|04)          /* sllv */
        !           115: #define o_slli         (((unsigned)0<<26)|0)           /* sll */
        !           116: #define o_srl          (((unsigned)0<<26)|06)          /* srlv */
        !           117: #define o_srli         (((unsigned)0<<26)|02)          /* srl */
        !           118: #define o_sra          (((unsigned)0<<26)|07)          /* srav */
        !           119: #define o_srai         (((unsigned)0<<26)|03)          /* sra */
        !           120: #define        o_slt           (((unsigned)0<<26)|052)
        !           121: #define o_slti         ((unsigned)012<<26)
        !           122: #define        o_sltu          (((unsigned)0<<26)|053)
        !           123: #define o_sltui                ((unsigned)013<<26)
        !           124: #define o_beq          ((unsigned)04<<26)
        !           125: #define o_bne          ((unsigned)05<<26)
        !           126: #define o_bge          (((unsigned)01<<26)|(1<<16))    /* bgez */
        !           127: #define o_bgt          ((unsigned)07<<26)              /* bgtz */
        !           128: #define o_ble          ((unsigned)06<<26)              /* blez */
        !           129: #define o_blt          (((unsigned)01<<26)|(0<<16))    /* bltz */
        !           130: #define o_b            ((unsigned)02<<26)              /* j */
        !           131: #define o_jal          ((unsigned)03<<26)              /* jalr */
        !           132: #define o_jalr         (((unsigned)0<<26)|011)         /* jalr */
        !           133: #define o_jr           (((unsigned)0<<26)|010)         /* jr */
        !           134: #define o_move         o_addu
        !           135: #define o_mfhi         (((unsigned)0<<26)|020)
        !           136: #define o_mflo         (((unsigned)0<<26)|022)
        !           137: #define o_break                (((unsigned)0<<26)|015)
        !           138: #define o_syscall      (((unsigned)0<<26)|014)

unix.superglobalmegacorp.com

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