home *** CD-ROM | disk | FTP | other *** search
/ OpenStep (Enterprise) / OpenStepENTCD.toast / OEDEV / GNUSRC.Z / mot3300g.h < prev    next >
C/C++ Source or Header  |  1995-06-15  |  4KB  |  110 lines

  1. /* Definitions of target machine Motorola Delta 68k using GAS
  2.    for GNU Compiler.
  3.    Copyright (C) 1994 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, 59 Temple Place - Suite 330,
  20. Boston, MA 02111-1307, USA.  */
  21.  
  22.  
  23. /* Just in case someone asks */
  24. #define USE_GAS
  25.  
  26. #include "m68k/m68k.h"
  27.  
  28. /* See m68k.h.  7 means 68020 with 68881,
  29.    7 & 01400 means optimize for 68040 but allow execution on 68020. */
  30. #undef TARGET_DEFAULT
  31. #define    TARGET_DEFAULT (7 & 01400)
  32.  
  33. /* NYI: FP= is equivalent to -msoft-float
  34.    We use /lib/libp/lib* when profiling.
  35.    
  36.    NYI: if FP=M68881U library is -lc881u
  37.    NYI: if FP= library is -lc.
  38.    Default for us: FP=M68881 library is -lc881  */
  39. #undef LIB_SPEC
  40. #define LIB_SPEC "%{!shlib:%{p:-L/usr/lib/libp} %{pg:-L/usr/lib/libp} -lc881}"
  41.  
  42. #undef CPP_SPEC
  43. #define CPP_SPEC "%{!msoft-float:-D__HAVE_68881__}"
  44.  
  45. /* Shared libraries need to use crt0s.o  */
  46. #undef STARTFILE_SPEC
  47. #define STARTFILE_SPEC \
  48.   "%{!shlib:%{pg:mcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}}}\
  49.    %{shlib:crt0s.o%s shlib.ifile%s} "
  50.  
  51.   /* -m68000 requires special flags to the assembler.  */
  52. #define ASM_SPEC \
  53.  "%{m68000:-mc68000}%{mc68000:-mc68000}%{!mc68000:%{!m68000:-mc68020}}"
  54.  
  55. /* Generate calls to memcpy, memcmp and memset.  */
  56. #define TARGET_MEM_FUNCTIONS
  57.  
  58. /* size_t is unsigned int.  */
  59. #define SIZE_TYPE "unsigned int"
  60.  
  61. /* Every structure or union's size must be a multiple of 2 bytes.  */
  62. #define STRUCTURE_SIZE_BOUNDARY 16
  63.  
  64. /* man cpp on the Delta says pcc predefines "m68k", "unix", and "sysV68",
  65.    and experimentation validates this.   -jla */
  66. #define CPP_PREDEFINES "-Dm68k -Dunix -DsysV68"
  67.  
  68. /* cpp has to support a #sccs directive for the /usr/include files */
  69. #define SCCS_DIRECTIVE
  70.  
  71. /* Make sure to use MIT syntax, not Motorola */
  72. #undef MOTOROLA
  73.  
  74. /* Use SDB style because gdb on the delta doesn't understand stabs. */
  75. #define SDB_DEBUGGING_INFO
  76.  
  77. /* Use a register prefix to avoid clashes with external symbols (classic
  78.    example: `extern char PC;' in termcap).  */
  79. #undef REGISTER_PREFIX
  80. #define REGISTER_PREFIX "%"
  81.  
  82. /* In the machine description we can't use %R, because it will not be seen
  83.    by ASM_FPRINTF.  (Isn't that a design bug?).  */
  84. #undef REGISTER_PREFIX_MD
  85. #define REGISTER_PREFIX_MD "%%"
  86.  
  87. /* The file command should always begin the output.  */
  88. #undef ASM_FILE_START
  89. #define ASM_FILE_START(FILE) \
  90.     { \
  91.        fprintf (FILE, "%s", ASM_APP_OFF); \
  92.        output_file_directive ((FILE), main_input_filename); \
  93.     }
  94.  
  95. /* Undefining these will allow `output_file_directive' (in toplev.c)
  96.    to default to the right thing. */
  97. #undef ASM_OUTPUT_SOURCE_FILENAME
  98. #undef ASM_OUTPUT_MAIN_SOURCE_FILENAME
  99.  
  100. #undef REGISTER_NAMES
  101. #define REGISTER_NAMES \
  102. {"%d0", "%d1", "%d2", "%d3", "%d4", "%d5", "%d6", "%d7", \
  103.  "%a0", "%a1", "%a2", "%a3", "%a4", "%a5", "%a6", "%sp", \
  104.  "%fp0", "%fp1", "%fp2", "%fp3", "%fp4", "%fp5", "%fp6", "%fp7" }
  105.  
  106. /* Define how to jump to variable address from dispatch table of
  107.    relative addresses, for m68k.md insn.  Note the use of 2 '%'
  108.    chars to output one. */
  109. #define ASM_RETURN_CASE_JUMP return "jmp %%pc@(2,%0:w)"
  110.