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