xref: /openbsd-src/gnu/gcc/gcc/config/mn10300/linux.h (revision 404b540a9034ac75a6199ad1a32d1bbc7a0d4210)
1 /* Definitions of taret machine for GNU compiler.
2    Matsushita AM33/2.0
3    Copyright 2001, 2002, 2005, 2006 Free Software Foundation, Inc.
4    Contributed by Alexandre Oliva <aoliva@redhat.com>
5 
6    This file is part of GCC.
7 
8    GCC is free software; you can redistribute it and/or modify
9    it under the terms of the GNU General Public License as published by
10    the Free Software Foundation; either version 2, or (at your option)
11    any later version.
12 
13    GCC is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16    GNU General Public License for more details.
17 
18    You should have received a copy of the GNU General Public License
19    along with GCC; see the file COPYING.  If not, write to
20    the Free Software Foundation, 51 Franklin Street, Fifth Floor,
21    Boston, MA 02110-1301, USA.  */
22 
23 #undef  PREFERRED_DEBUGGING_TYPE
24 #define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
25 
26 #define TARGET_OS_CPP_BUILTINS() LINUX_TARGET_OS_CPP_BUILTINS()
27 
28 #undef  CPP_SPEC
29 #define CPP_SPEC "%{mam33:-D__AM33__} %{!mam33:-D__AM33__=2 -D__AM33_2__} \
30   %{posix:-D_POSIX_SOURCE} \
31   %{pthread:-D_REENTRANT -D_PTHREADS}"
32 
33 #undef  ASM_SPEC
34 #define ASM_SPEC "%{Wa,*:%*}"
35 
36 #define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
37 
38 #undef  LINK_SPEC
39 #define LINK_SPEC "%{mrelax:--relax} %{shared:-shared} \
40    %{!static: \
41      %{rdynamic:-export-dynamic} \
42      %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}} \
43    %{static:-static}"
44 
45 #undef  PROCESSOR_DEFAULT
46 #define PROCESSOR_DEFAULT PROCESSOR_AM33_2
47 
48 #undef  TARGET_VERSION
49 #define TARGET_VERSION fprintf (stderr, " (AM33/2.0 GNU/Linux)");
50 
51 #define DBX_REGISTER_NUMBER(REGNO) (REGNO)
52 
53 extern int mn10300_protect_label;
54 
55 #undef  PRINT_OPERAND
56 #define PRINT_OPERAND(FILE, X, CODE)		\
57   do						\
58     {						\
59       mn10300_protect_label = 1;		\
60       print_operand ((FILE), (X), (CODE));	\
61       mn10300_protect_label = 0;		\
62     }						\
63   while (0)
64 
65 #undef  PRINT_OPERAND_ADDRESS
66 #define PRINT_OPERAND_ADDRESS(FILE, X)		\
67   do						\
68     {						\
69       mn10300_protect_label = 1;		\
70       print_operand_address ((FILE), (X));	\
71       mn10300_protect_label = 0;		\
72     }						\
73    while (0)
74 
75 #undef  ASM_OUTPUT_LABELREF
76 #define ASM_OUTPUT_LABELREF(FILE, NAME)		\
77   do						\
78     {						\
79       const char * real_name;			\
80 						\
81       real_name = (*targetm.strip_name_encoding) (NAME);	\
82       if (mn10300_protect_label)		\
83         asm_fprintf (FILE, "+");		\
84       asm_fprintf (FILE, "%U%s", real_name);	\
85     }						\
86   while (0)
87 
88