Annotation of gcc/config/encrose.h, revision 1.1.1.2

1.1       root        1: /* Definitions of target machine for GNU compiler.  
                      2:    Encore Multimax (OSF/1 with OSF/rose) version.
                      3:    Copyright (C) 1991 Free Software Foundation, Inc.
                      4: 
                      5: This file is part of GNU CC.
                      6: 
                      7: GNU CC is free software; you can redistribute it and/or modify
                      8: it under the terms of the GNU General Public License as published by
                      9: the Free Software Foundation; either version 2, or (at your option)
                     10: any later version.
                     11: 
                     12: GNU CC is distributed in the hope that it will be useful,
                     13: but WITHOUT ANY WARRANTY; without even the implied warranty of
                     14: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                     15: GNU General Public License for more details.
                     16: 
                     17: You should have received a copy of the GNU General Public License
                     18: along with GNU CC; see the file COPYING.  If not, write to
                     19: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
                     20: 
                     21: /* Output a '?' so the encore assembler won't complain about
                     22:  * externals on branches it hasn't seen yet. */
                     23: 
                     24: #define EXTERNAL_PREFIX '?'
                     25: 
                     26: #include "encore.h"
                     27: 
                     28: /* External variables defined in ns32k.c */
                     29: 
                     30: extern int ns32k_num_files;
                     31: 
                     32: 
                     33: #define OSF_OS
                     34: #define NO_J_SWITCH
                     35: 
                     36: /* MACHINE MACROS controlling the compilation driver, 'gcc' */
                     37: 
                     38: #ifdef  CPP_SPEC  
                     39: #undef  CPP_SPEC
                     40: #endif
                     41: #define CPP_SPEC       "%{.S:  -D__LANGUAGE_ASSEMBLY__                 \
                     42:                                -D_LANGUAGE_ASSEMBLY                    \
                     43:                                %{!ansi:-DLANGUAGE_ASSEMBLY}}           \
                     44:                         %{!.S: -D__LANGUAGE_C__                        \
                     45:                                -D_LANGUAGE_C                           \
                     46:                                %{!ansi:-DLANGUAGE_C}}"
                     47: 
                     48: #ifdef  CC1_SPEC
                     49: #undef  CC1_SPEC
                     50: #endif
                     51: #define CC1_SPEC       ""
                     52: 
                     53: #ifndef NO_J_SWITCH
                     54: #ifdef  ASM_SPEC
                     55: #undef  ASM_SPEC
                     56: #endif
                     57: #define ASM_SPEC       "%{!j: -j}"
                     58: #endif
                     59: 
                     60: #ifdef NO_J_SWITCH
                     61: #ifdef ASM_SPEC
                     62: #undef ASM_SPEC
                     63: #endif
                     64: #define ASM_SPEC       ""
                     65: #endif
                     66: 
                     67: #ifdef  LINK_SPEC
                     68: #undef  LINK_SPEC
                     69: #endif
                     70: #define LINK_SPEC      "%{nostdlib}"
                     71: 
                     72: #ifdef  LIB_SPEC
                     73: #undef  LIB_SPEC
                     74: #endif
                     75: #define LIB_SPEC       "%{p:-lprof1} -lc"
                     76: 
                     77: #ifdef  LIBG_SPEC
                     78: #undef  LIBG_SPEC
                     79: #endif
                     80: #define LIBG_SPEC      ""
                     81: 
                     82: #ifdef  STARTFILE_SPEC  
                     83: #undef  STARTFILE_SPEC
                     84: #endif
                     85: #define STARTFILE_SPEC "%{pg:gcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}}"
                     86: 
                     87: #ifdef  MACHINE_TYPE
                     88: #undef  MACHINE_TYPE
                     89: #endif
                     90: #define MACHINE_TYPE   "Encore Multimax running OSF/1 with OSF/rose objects"
                     91: 
                     92: #ifdef  ASM_VERSION
                     93: #undef  ASM_VERSION
                     94: #endif
                     95: #define ASM_VERSION    "Encore syntax using GAS/stabs"
                     96: 
                     97: #ifdef  MD_EXEC_PREFIX  
                     98: #undef  MD_EXEC_PREFIX
                     99: #endif
                    100: #define MD_EXEC_PREFIX         "/usr/ccs/gcc/"
                    101: 
                    102: #ifdef  MD_STARTFILE_PREFIX  
                    103: #undef  MD_STARTFILE_PREFIX
                    104: #endif
                    105: #define MD_STARTFILE_PREFIX    "/usr/ccs/lib/"
                    106: 
                    107: /* MACHINE MACROS controlling run-time target specification */
                    108: 
                    109: #ifdef CPP_PREDEFINES
                    110: #undef CPP_PREDEFINES
                    111: #endif
                    112: #define CPP_PREDEFINES "-Dns32000 -Dn16 -Dns16000 -Dns32332 -Dunix -Dmultimax -DMULTIMAX -DOSF -DOSF1"
                    113: 
                    114: #ifdef  TARGET_DEFAULT
                    115: #undef  TARGET_DEFAULT
                    116: #endif
                    117: #define TARGET_DEFAULT   33  /* 32081 and no (sb) register */
                    118: 
                    119: /* MACHINE MACROS controlling the layout of C types */
                    120: 
                    121: #ifdef SIZE_TYPE  
                    122: #undef SIZE_TYPE
                    123: #endif
                    124: #define SIZE_TYPE      "long unsigned int"
                    125: 
                    126: #ifdef  PTRDIFF_TYPE
                    127: #undef  PTRDIFF_TYPE
                    128: #endif
                    129: #define PTRDIFF_TYPE   "int"
                    130: 
                    131: #ifdef  WCHAR_TYPE
                    132: #undef  WCHAR_TYPE
                    133: #endif
                    134: #define WCHAR_TYPE     "unsigned int"
                    135: 
                    136: #ifdef WCHAR_TYPE_SIZE
                    137: #undef WCHAR_TYPE_SIZE
                    138: #endif
                    139: #define WCHAR_TYPE_SIZE  BITS_PER_WORD
                    140: 
                    141: #if 0
                    142: #define WCHAR_TYPE     ((TARGET_WC8)                                   \
                    143:                                ? "unsigned char"                       \
                    144:                                : ((TARGET_WC16)                        \
                    145:                                        ? "short unsigned int"          \
                    146:                                        : "long unsigned int"))
                    147: #define MULTIBYTE_CHARS  1
                    148: #endif
                    149: 
                    150: /* MACHINE MACROS describing stack layout and calling conventions */
                    151: 
                    152: 
                    153: #ifdef  FUNCTION_PROFILER
                    154: #undef  FUNCTION_PROFILER
                    155: #endif
                    156: #define FUNCTION_PROFILER(FILE, LABELNO) fprintf (FILE, "\tjsr mcount\n")
                    157: 
                    158: /* MACHINE MACROS describing the overall framework of an
                    159:    assembly file */
                    160: 
                    161: #ifdef PRINT_OPERAND
                    162: #undef PRINT_OPERAND
                    163: #endif
                    164: 
                    165: #define PRINT_OPERAND(FILE, X, CODE)       print_operand(FILE, X, CODE)
                    166: 
                    167: #ifdef PRINT_OPERAND_ADDRESS
                    168: #undef PRINT_OPERAND_ADDRESS
                    169: #endif
                    170: 
                    171: #define PRINT_OPERAND_ADDRESS(FILE, ADDR)  print_operand_address(FILE, ADDR)
                    172: 
                    173: #define STABS_DIRECTIVE        "\t.stabs"      /* align .stabs */
                    174: #define STABN_DIRECTIVE        "\t.stabn"      /* align .stabn */
                    175: #define STABD_DIRECTIVE        "\t.stabd"      /* align .stabd */
                    176: 
                    177: /* How to tell the debugger about changes of source files.  */
                    178: 
                    179: #ifdef ASM_OUTPUT_SOURCE_FILENAME
                    180: #undef ASM_OUTPUT_SOURCE_FILENAME
                    181: #endif
                    182: 
                    183: /* Perhaps it is no longer necessary to redefine this, now that dbxout.c
                    184:    uses another macro instead.  */
                    185: #define ASM_OUTPUT_SOURCE_FILENAME(FILE, NAME)                         \
                    186: {                                                                      \
                    187:   if (ns32k_num_files++ == 0)                                          \
                    188:     fprintf (FILE, "\t.file \"%s\"\n", NAME);                          \
                    189:   else if (write_symbols == DBX_DEBUG)                                 \
                    190:   {                                                                     \
                    191:     char ltext_label_name[100];                                         \
                    192:     ASM_GENERATE_INTERNAL_LABEL(ltext_label_name, "Ltext", 0);          \
                    193:     fprintf (FILE, "%s \"%s\",%d,0,0,%s\n", STABS_DIRECTIVE,           \
                    194:             NAME, 0x84 /* N_SOL */, &ltext_label_name[1]);             \
                    195:   }                                                                     \
                    196:   else                                                                 \
                    197:     fprintf (FILE, "\t#.file \"%s\"\n", NAME);                         \
                    198: }
                    199: 
                    200: /* This is how to output a note the debugger telling it the line number
                    201:    to which the following sequence of instructions corresponds.  */
                    202: 
                    203: #ifdef ASM_OUTPUT_SOURCE_LINE
                    204: #undef ASM_OUTPUT_SOURCE_LINE
                    205: #endif
                    206: #define ASM_OUTPUT_SOURCE_LINE(FILE, LINE)                             \
                    207: {                                                                      \
                    208:   if (write_symbols != DBX_DEBUG)                                      \
                    209:     fprintf (FILE, "\t.ln %d\n", LINE);                                        \
                    210:   else                                                                 \
                    211:     fprintf (file, "%s %d,0,%d\n", STABD_DIRECTIVE, 0x44 /* N_SLINE */,        \
                    212:             LINE);                                                     \
                    213: }
                    214: 
                    215: #ifdef ASM_OUTPUT_INT
                    216: #undef ASM_OUTPUT_INT
                    217: #endif
                    218: #ifndef COLLECT
                    219: #define ASM_OUTPUT_INT(FILE,VALUE)                             \
                    220: ( fprintf (FILE, "\t.double "),                                        \
                    221:   output_addr_const (FILE, (VALUE)),                           \
                    222:   fprintf (FILE, "\n"))
                    223: #else
                    224: #define ASM_OUTPUT_INT(STREAM,VALUE)                                   \
                    225:   fprintf (STREAM, "\t.double\t%d\n", VALUE)
                    226: #endif
                    227: 
                    228: /* MACHINE MACROS describing debugging information */
                    229: 
                    230: /* We need to have the capability to generate either
                    231:    .stabs or COFF style debug info. The file ns32k.h
                    232:    define DBX_DEBUGGING_INFO. We disambiguate between
                    233:    the two based on a combination of command line or
                    234:    default behavior. */
                    235: 
                    236: #ifndef SDB_DEBUGGING_INFO
                    237: #define SDB_DEBUGGING_INFO  /* Generate COFF style debug info */
                    238: #endif
                    239: 
                    240: #ifndef DBX_DEBUGGING_INFO
                    241: #define DBX_DEBUGGING_INFO  /* Generate .stabs style debug info */
                    242: #endif
                    243: 
                    244: /* If the user just types -g, we want to use stabs */
                    245: 
                    246: #ifdef PREFERRED_DEBUGGING_TYPE
                    247: #undef PREFERRED_DEBUGGING_TYPE
                    248: #endif
                    249: 
                    250: #define PREFERRED_DEBUGGING_TYPE      DBX_DEBUG
                    251: 
                    252: /* Define the gdb extensions */
                    253: 
                    254: #define DEFAULT_GDB_EXTENSIONS        1
                    255: 
                    256: /* Tell collect that the object format is OSF/rose.  */
                    257: #define OBJECT_FORMAT_ROSE
                    258: 
                    259: /* Use atexit for static constructors/destructors, instead of defining
                    260:    our own exit function.  */
                    261: #define HAVE_ATEXIT
1.1.1.2 ! root      262: 
        !           263: /* Generate calls to memcpy, etc., not bcopy, etc.  */
        !           264: #define TARGET_MEM_FUNCTIONS
        !           265: 
        !           266: /* A C statement to output assembler commands which will identify
        !           267:    the object file as having been compiled with GNU CC (or another
        !           268:    GNU compiler).
        !           269: 
        !           270:    If you don't define this macro, the string `gcc2_compiled.:' is
        !           271:    output.  This string is calculated to define a symbol which, on
        !           272:    BSD systems, will never be defined for any other reason.  GDB
        !           273:    checks for the presence of this symbol when reading the symbol
        !           274:    table of an executable.
        !           275: 
        !           276:    On non-BSD systems, you must arrange communication with GDB in
        !           277:    some other fashion.  If GDB is not used on your system, you can
        !           278:    define this macro with an empty body.
        !           279: 
        !           280:    On OSF/1, gcc2_compiled. confuses the kernel debugger, so don't
        !           281:    put it out.  */
        !           282: 
        !           283: #define ASM_IDENTIFY_GCC(STREAM)

unix.superglobalmegacorp.com

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