OSDN Git Service

* i386.h (CONST_COSTS): set cost of constants representable in
[pf3gnuchains/gcc-fork.git] / gcc / config / i386 / vsta.h
1 /* Configuration for an i386 running VSTa micro-kernel.
2    Copyright (C) 1994 Free Software Foundation, Inc.
3    Contributed by Rob Savoye (rob@cygnus.com).
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 #define YES_UNDERSCORES
23
24 #include "i386/gas.h"
25
26 #ifdef CPP_PREDEFINES
27 #undef CPP_PREDEFINES
28 #endif
29 #define CPP_PREDEFINES "-Dunix -DVSTA -Asystem=unix -Asystem=vsta"
30
31 #undef EXTRA_SECTIONS
32 #define EXTRA_SECTIONS in_ctor, in_dtor
33
34 #undef EXTRA_SECTION_FUNCTIONS
35 #define EXTRA_SECTION_FUNCTIONS                                 \
36   CTOR_SECTION_FUNCTION                                         \
37   DTOR_SECTION_FUNCTION
38
39 #define CTOR_SECTION_FUNCTION                                   \
40 void                                                            \
41 ctor_section ()                                                 \
42 {                                                               \
43   if (in_section != in_ctor)                                    \
44     {                                                           \
45       fprintf (asm_out_file, "\t.section .ctor\n");             \
46       in_section = in_ctor;                                     \
47     }                                                           \
48 }
49
50 #define DTOR_SECTION_FUNCTION                                   \
51 void                                                            \
52 dtor_section ()                                                 \
53 {                                                               \
54   if (in_section != in_dtor)                                    \
55     {                                                           \
56       fprintf (asm_out_file, "\t.section .dtor\n");             \
57       in_section = in_dtor;                                     \
58     }                                                           \
59 }
60
61 #define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME)       \
62   do {                                          \
63     ctor_section ();                            \
64     fputs (ASM_LONG, FILE);                     \
65     assemble_name (FILE, NAME);                 \
66     fprintf (FILE, "\n");                       \
67   } while (0)
68
69 #define ASM_OUTPUT_DESTRUCTOR(FILE,NAME)        \
70   do {                                          \
71     dtor_section ();                            \
72     fputs (ASM_LONG, FILE);                     \
73     assemble_name (FILE, NAME);                 \
74     fprintf (FILE, "\n");                       \
75   } while (0)
76
77