Annotation of gcc/config/mips/iris3.h, revision 1.1

1.1     ! root        1: /* Definitions of target machine for GNU compiler.  Iris version.
        !             2:    Copyright (C) 1991 Free Software Foundation, Inc.
        !             3: 
        !             4: This file is part of GNU CC.
        !             5: 
        !             6: GNU CC is free software; you can redistribute it and/or modify
        !             7: it under the terms of the GNU General Public License as published by
        !             8: the Free Software Foundation; either version 2, or (at your option)
        !             9: any later version.
        !            10: 
        !            11: GNU CC is distributed in the hope that it will be useful,
        !            12: but WITHOUT ANY WARRANTY; without even the implied warranty of
        !            13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        !            14: GNU General Public License for more details.
        !            15: 
        !            16: You should have received a copy of the GNU General Public License
        !            17: along with GNU CC; see the file COPYING.  If not, write to
        !            18: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
        !            19: 
        !            20: #define SGI_TARGET 1           /* inform other mips files this is SGI */
        !            21: 
        !            22: /* Names to predefine in the preprocessor for this target machine.  */
        !            23: 
        !            24: #define CPP_PREDEFINES "-Dunix -Dmips -Dsgi -DSVR3 -Dhost_mips -DMIPSEB -DSYSTYPE_SYSV"
        !            25: 
        !            26: #define STARTFILE_SPEC "%{pg:gcrt1.o%s}%{!pg:%{p:mcrt1.o%s}%{!p:crt1.o%s}}"
        !            27: 
        !            28: #define CPP_SPEC "\
        !            29: %{!ansi:-D__EXTENSIONS__} -D_MIPSEB -D_SYSTYPE_SYSV \
        !            30: %{.S:  -D_LANGUAGE_ASSEMBLY %{!ansi:-DLANGUAGE_ASSEMBLY}} \
        !            31: %{.cc: -D_LANGUAGE_C_PLUS_PLUS} \
        !            32: %{.cxx:        -D_LANGUAGE_C_PLUS_PLUS} \
        !            33: %{.C:  -D_LANGUAGE_C_PLUS_PLUS} \
        !            34: %{.m:  -D_LANGUAGE_OBJECTIVE_C} \
        !            35: %{!.S: %{!.cc: %{!.cxx: %{!.C: %{!.m: -D_LANGUAGE_C %{!ansi:-DLANGUAGE_C}}}}}}"
        !            36: 
        !            37: #define LIB_SPEC       "%{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p} crtn.o%s"
        !            38: 
        !            39: #define MACHINE_TYPE   "Silicon Graphics Mips"
        !            40: 
        !            41: /* SGI Iris doesn't support -EB/-EL like other MIPS processors.  */
        !            42: 
        !            43: #define ASM_SPEC "\
        !            44: %{!mgas: \
        !            45:        %{!mrnames: %{!.s:-nocpp} %{.s: %{cpp} %{nocpp}}} \
        !            46:        %{pipe: %e-pipe is not supported.} \
        !            47:        %{mips1} %{mips2} %{mips3} \
        !            48:        %{noasmopt:-O0} \
        !            49:        %{!noasmopt:%{O:-O2} %{O1:-O2} %{O2:-O2} %{O3:-O3}} \
        !            50:        %{g} %{g0} %{g1} %{g2} %{g3} %{v} %{K} \
        !            51:        %{ggdb:-g} %{ggdb0:-g0} %{ggdb1:-g1} %{ggdb2:-g2} %{ggdb3:-g3} \
        !            52:        %{gstabs:-g} %{gstabs0:-g0} %{gstabs1:-g1} %{gstabs2:-g2} %{gstabs3:-g3} \
        !            53:        %{gstabs+:-g} %{gstabs+0:-g0} %{gstabs+1:-g1} %{gstabs+2:-g2} %{gstabs+3:-g3} \
        !            54:        %{gcoff:-g} %{gstabs0:-g0} %{gcoff1:-g1} %{gcoff2:-g2} %{gcoff3:-g3}} \
        !            55: %{G*}"
        !            56: 
        !            57: #define LINK_SPEC "\
        !            58: %{G*} \
        !            59: %{!mgas: %{mips1} %{mips2} %{mips3} \
        !            60:         %{bestGnum} %{shared} %{non_shared}}"
        !            61: 
        !            62: /* Always use 1 for .file number.  I [[email protected]] wonder why
        !            63:    IRIS needs this.  */
        !            64: 
        !            65: #define SET_FILE_NUMBER() num_source_filenames = 1
        !            66: 
        !            67: /* Put out a label after a .loc.  I [[email protected]] wonder why
        !            68:    IRIS needs this.  */
        !            69: 
        !            70: #define LABEL_AFTER_LOC(STREAM) fprintf (STREAM, "LM%d:\n", ++sym_lineno)
        !            71: 
        !            72: #define STACK_ARGS_ADJUST(SIZE)                                         \
        !            73: {                                                                       \
        !            74:   SIZE.constant += 4;                                                   \
        !            75:   if (SIZE.constant < 32)                                              \
        !            76:     SIZE.constant = 32;                                                 \
        !            77: }
        !            78: 
        !            79: /* Define this macro to control use of the character `$' in
        !            80:    identifier names.  The value should be 0, 1, or 2.  0 means `$'
        !            81:    is not allowed by default; 1 means it is allowed by default if
        !            82:    `-traditional' is used; 2 means it is allowed by default provided
        !            83:    `-ansi' is not used.  1 is the default; there is no need to
        !            84:    define this macro in that case. */
        !            85: 
        !            86: #define DOLLARS_IN_IDENTIFIERS 0
        !            87: 
        !            88: /* Tell G++ not to create constructors or destructors with $'s in them.  */
        !            89: 
        !            90: #define NO_DOLLAR_IN_LABEL 1
        !            91: 
        !            92: /* Specify size_t, ptrdiff_t, and wchar_t types.  */
        !            93: #define SIZE_TYPE      "unsigned int"
        !            94: #define PTRDIFF_TYPE   "int"
        !            95: #define WCHAR_TYPE     "unsigned char"
        !            96: #define WCHAR_TYPE_SIZE BITS_PER_UNIT
        !            97: 
        !            98: /* Generate calls to memcpy, etc., not bcopy, etc.  */
        !            99: #define TARGET_MEM_FUNCTIONS
        !           100: 
        !           101: /* Plain char is unsigned in the SGI compiler.  */
        !           102: #define DEFAULT_SIGNED_CHAR 0
        !           103: 
        !           104: 
        !           105: /* A C statement to initialize the variable parts of a trampoline. 
        !           106:    ADDR is an RTX for the address of the trampoline; FNADDR is an
        !           107:    RTX for the address of the nested function; STATIC_CHAIN is an
        !           108:    RTX for the static chain value that should be passed to the
        !           109:    function when it is called.
        !           110: 
        !           111:    Silicon Graphics machines are supposed to not have a mprotect
        !           112:    function to enable execute protection, but the stack already
        !           113:    has execute protection turned on.  Because the MIPS chips have
        !           114:    no method to flush the icache without a system call, this can lose
        !           115:    if the same address is used for multiple trampolines.  */
        !           116: 
        !           117: #define INITIALIZE_TRAMPOLINE(ADDR, FUNC, CHAIN)                           \
        !           118: {                                                                          \
        !           119:   rtx addr = ADDR;                                                         \
        !           120:   emit_move_insn (gen_rtx (MEM, SImode, plus_constant (addr, 28)), FUNC);   \
        !           121:   emit_move_insn (gen_rtx (MEM, SImode, plus_constant (addr, 32)), CHAIN);  \
        !           122: }
        !           123: 
        !           124: 
        !           125: /* Attempt to turn on access permissions for the stack.  */
        !           126: 
        !           127: #define TRANSFER_FROM_TRAMPOLINE                                       \
        !           128:                                                                        \
        !           129: void                                                                   \
        !           130: __enable_execute_stack (addr)                                          \
        !           131:      char *addr;                                                       \
        !           132: {                                                                      \
        !           133: }
        !           134: 
        !           135: #include "mips/mips.h"

unix.superglobalmegacorp.com

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