home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / gcc-2.7.2.1-base.tgz / gcc-2.7.2.1-base.tar / fsf / gcc / config / m68k / ccur-GAS.h < prev    next >
C/C++ Source or Header  |  1995-06-15  |  4KB  |  129 lines

  1. /* Definitions of target machine for GNU compiler.  Concurrent 68k version.
  2.    Copyright (C) 1987, 1988, 1995 Free Software Foundation, Inc.
  3.  
  4. This file is part of GNU CC.
  5.  
  6. GNU CC is free software; you can redistribute it and/or modify
  7. it under the terms of the GNU General Public License as published by
  8. the Free Software Foundation; either version 1, or (at your option)
  9. any later version.
  10.  
  11. GNU CC is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. GNU General Public License for more details.
  15.  
  16. You should have received a copy of the GNU General Public License
  17. along with GNU CC; see the file COPYING.  If not, write to
  18. the Free Software Foundation, 59 Temple Place - Suite 330,
  19. Boston, MA 02111-1307, USA.  */
  20.  
  21. #ifndef MASSCOMP
  22. #define MASSCOMP
  23. #endif
  24.  
  25. #ifndef CONCURRENT
  26. #define CONCURRENT
  27. #endif
  28.  
  29. #ifndef __mc68000__
  30. #define __mc68000__
  31. #endif
  32.  
  33. #ifndef __mc68020__
  34. #define __mc68020__
  35. #endif
  36.  
  37. #define USE_GAS
  38. #define MOVE_RATIO 100
  39.  
  40. #define SPACE_AFTER_L_OPTION
  41. #define SWITCHES_NEED_SPACES " "
  42.  
  43. #define TARGET_DEFAULT 0407 /* See m68k.h.  7 means 68020 with 68881.  */
  44.  
  45. #include "m68k/m68k.h"
  46.  
  47. #define SIZE_TYPE "int"
  48.  
  49. /* for 68k machines this only needs to be TRUE for the 68000 */
  50.  
  51. #undef STRICT_ALIGNMENT     
  52. #define STRICT_ALIGNMENT 0
  53.  
  54. /* Names to predefine in the preprocessor for this target machine.  */
  55. #define CPP_PREDEFINES \
  56.     "-Dmc68000 -Dmasscomp -DMASSCOMP -Dunix -DLANGUAGE_C -Dconcurrent -DCONCURRENT"
  57.  
  58. #undef TARGET_VERSION
  59. #define TARGET_VERSION fprintf (stderr, " (68k, GNU GAS syntax)");
  60.  
  61. /* Discard internal local symbols beginning with 'L'. */
  62. #define LINK_SPEC "-X"
  63.  
  64. /* Every structure or union's size must be a multiple of 4 bytes. */
  65. #define STRUCTURE_SIZE_BOUNDARY 16 
  66.  
  67. /* No data type wants to be aligned rounder than this.  */
  68. #undef BIGGEST_ALIGNMENT
  69. #define BIGGEST_ALIGNMENT 32
  70.  
  71. /* Allocation boundary (in *bits*) for storing pointers in memory.  */
  72. #undef POINTER_BOUNDARY
  73. #define POINTER_BOUNDARY 32
  74.  
  75. /* Alignment of field after `int : 0' in a structure.  */
  76. #undef EMPTY_FIELD_BOUNDARY
  77. #define EMPTY_FIELD_BOUNDARY 32
  78.  
  79. /* Allocation boundary in bits for the code of a function */
  80. #undef  FUNCTION_BOUNDARY
  81. #define FUNCTION_BOUNDARY 32
  82.  
  83. /* Make strings long-word aligned so dhrystones will run faster. */
  84. #define CONSTANT_ALIGNMENT(EXP, ALIGN) \
  85.    (TREE_CODE (EXP) == STRING_CST \
  86.     && (ALIGN) < BITS_PER_WORD ? BITS_PER_WORD : (ALIGN))
  87.  
  88. /* Make arrays of chars word-aligned for the same reasons.  */
  89. #define DATA_ALIGNMENT(TYPE, ALIGN)        \
  90.   (TREE_CODE (TYPE) == ARRAY_TYPE        \
  91.    && TYPE_MODE (TREE_TYPE (TYPE)) == QImode    \
  92.    && (ALIGN) < BITS_PER_WORD ? BITS_PER_WORD : (ALIGN))
  93.  
  94. /* This is BSD, so it wants DBX format.  */
  95. #define DBX_DEBUGGING_INFO
  96.  
  97. /* Override parts of m68k.h */
  98.  
  99. #undef CALL_USED_REGISTERS
  100. #define CALL_USED_REGISTERS \
  101.  {1, 1, 0, 0, 0, 0, 0, 0, \
  102.   1, 1, 0, 0, 0, 0, 0, 1, \
  103.   1, 1, 0, 0, 0, 0, 1, 1 }
  104.  
  105. #undef REG_ALLOC_ORDER
  106. #define REG_ALLOC_ORDER \
  107. {  0,  1,  2,  3,  4,  5,  6,  7,\
  108.    8,  9, 10, 11, 12, 13, 14, 15, \
  109.   16, 17, 22, 23, 18, 19, 20, 21 }
  110.  
  111. #undef ASM_FILE_START
  112. #define ASM_FILE_START(FILE)    \
  113.   fprintf (FILE, "#NO_APP\n.globl fltused\n");
  114.  
  115. #undef ASM_OUTPUT_ALIGN
  116. #define ASM_OUTPUT_ALIGN(FILE,LOG)    \
  117. { int _LOG = LOG;                       \
  118.   if (_LOG == 1)            \
  119.     fprintf (FILE, "\t.even\n");    \
  120.   else if (_LOG == 2)                   \
  121.     fprintf (FILE, "\t.align 4\n");     \
  122.   else if (_LOG != 0)            \
  123.     fprintf (FILE, "\t.align %d\n", _LOG);\
  124. }
  125.  
  126. /* crt0.c should use the vax-bsd style of entry, with a dummy arg.  */
  127.  
  128. #define CRT0_DUMMIES bogus_fp,
  129.