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 / a29kunix.h < prev    next >
C/C++ Source or Header  |  1994-02-06  |  3KB  |  85 lines

  1. /* Definitions of target machine for GNU compiler, for AMD Am29000 CPU, Unix.
  2.    Copyright (C) 1991 Free Software Foundation, Inc.
  3.    Contributed by Richard Kenner (kenner@nyu.edu)
  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. /* This is mostly the same as a29k.h, except that we define unix instead of
  23.    EPI and define unix-style machine names.  */
  24.  
  25. #include "a29k.h"
  26.  
  27. /* Set our default target to be the 29050; that is the more interesting chip
  28.    for Unix systems.  */
  29.  
  30. #undef TARGET_DEFAULT
  31. #define TARGET_DEFAULT (1+2+8+64)
  32.  
  33. #undef CPP_PREDEFINES
  34. #define CPP_PREDEFINES "-Dam29k -Da29k -Dam29000"
  35.  
  36. #undef CPP_SPEC
  37. #define CPP_SPEC "%{!m29000:-Dam29050 -D__am29050__}"
  38.  
  39. /* Use a default linker configuration file.  */
  40. #undef LINK_SPEC
  41. #define LINK_SPEC "-T default.gld%s"
  42.  
  43. /* For some systems, it is best if double-word objects are aligned on a 
  44.    doubleword boundary.  We want to maintain compatibility with MetaWare in
  45.    a29k.h, but do not feel constrained to do so here.  */
  46.  
  47. #undef BIGGEST_ALIGNMENT
  48. #define BIGGEST_ALIGNMENT 64
  49.  
  50. /* Add shared data as a kludge for now.  */
  51.  
  52. #undef ASM_FILE_START
  53. #define ASM_FILE_START(FILE)                    \
  54. { char *p, *after_dir = main_input_filename;            \
  55.   if (TARGET_29050)                        \
  56.     fprintf (FILE, "\t.cputype 29050\n");            \
  57.   for (p = main_input_filename; *p; p++)            \
  58.     if (*p == '/')                        \
  59.       after_dir = p + 1;                    \
  60.   fprintf (FILE, "\t.file \"%s\"\n", after_dir);        \
  61.   if (flag_shared_data)                        \
  62.     fprintf (FILE, "\t.sect .shdata,data\n");            \
  63.   fprintf (FILE, "\t.sect .lit,lit\n");  }
  64.  
  65. /* Output before shared  data.  */
  66.  
  67. #define SHARED_SECTION_ASM_OP "\t.use .shdata"
  68.  
  69. /* If we want shared data, we have to turn off commons.  */
  70.  
  71. #define OVERRIDE_OPTIONS if (flag_shared_data) flag_no_common = 1;
  72.  
  73. #if 0 /* This would be needed except that the 29k doesn't have strict
  74.      alignment requirements.  */
  75.  
  76. #define FUNCTION_ARG_BOUNDARY(MODE, TYPE)                \
  77.   (((TYPE) != 0)                            \
  78.     ? ((TYPE_ALIGN(TYPE) <= PARM_BOUNDARY)                \
  79.         ? PARM_BOUNDARY                        \
  80.         : TYPE_ALIGN(TYPE))                    \
  81.     : ((GET_MODE_ALIGNMENT(MODE) <= PARM_BOUNDARY)            \
  82.         ? PARM_BOUNDARY                        \
  83.         : GET_MODE_ALIGNMENT(MODE)))
  84. #endif
  85.