home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 7 / FreshFishVol7.bin / bbs / gnu / gcc-2.3.3-src.lha / GNU / src / amiga / gcc-2.3.3 / config / encrose.h < prev    next >
C/C++ Source or Header  |  1994-02-06  |  8KB  |  284 lines

  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 */, <ext_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
  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)
  284.