]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/target-def.h
backport: As described in http://gcc.gnu.org/ml/gcc/2012-08/msg00015.html...
[thirdparty/gcc.git] / gcc / target-def.h
CommitLineData
672a6f42 1/* Default initializers for a generic GCC target.
677f3fa8
JM
2 Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
3 2011 Free Software Foundation, Inc.
672a6f42 4
9dcd6f09
NC
5 This program is free software; you can redistribute it and/or modify it
6 under the terms of the GNU General Public License as published by the
7 Free Software Foundation; either version 3, or (at your option) any
8 later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program; see the file COPYING3. If not see
17 <http://www.gnu.org/licenses/>.
18
19 In other words, you are welcome to use, share and improve this program.
20 You are forbidden to forbid anyone else to use, share and improve
21 what you give them. Help stamp out software-hoarding! */
672a6f42 22
38f8b050 23/* See target.def for a description of what this file contains and how to
a8b997e8 24 use it.
672a6f42 25
a8b997e8
NB
26 We want to have non-NULL default definitions of all hook functions,
27 even if they do nothing. */
28
07c9d2eb
SS
29/* Note that if one of these macros must be defined in an OS .h file
30 rather than the .c file, then we need to wrap the default
31 definition in a #ifndef, since files include tm.h before this one. */
32
301d03af
RS
33#define TARGET_ASM_ALIGNED_HI_OP "\t.short\t"
34#define TARGET_ASM_ALIGNED_SI_OP "\t.long\t"
35#define TARGET_ASM_ALIGNED_DI_OP NULL
36#define TARGET_ASM_ALIGNED_TI_OP NULL
37
38/* GAS and SYSV4 assemblers accept these. */
4a023207 39#if defined (OBJECT_FORMAT_ELF)
301d03af
RS
40#define TARGET_ASM_UNALIGNED_HI_OP "\t.2byte\t"
41#define TARGET_ASM_UNALIGNED_SI_OP "\t.4byte\t"
42#define TARGET_ASM_UNALIGNED_DI_OP "\t.8byte\t"
43#define TARGET_ASM_UNALIGNED_TI_OP NULL
44#else
45#define TARGET_ASM_UNALIGNED_HI_OP NULL
46#define TARGET_ASM_UNALIGNED_SI_OP NULL
47#define TARGET_ASM_UNALIGNED_DI_OP NULL
48#define TARGET_ASM_UNALIGNED_TI_OP NULL
4a023207 49#endif /* OBJECT_FORMAT_ELF */
301d03af 50
2cc07db4
RH
51#if !defined(TARGET_ASM_CONSTRUCTOR) && !defined(USE_COLLECT2)
52# ifdef CTORS_SECTION_ASM_OP
53# define TARGET_ASM_CONSTRUCTOR default_ctor_section_asm_out_constructor
54# else
55# ifdef TARGET_ASM_NAMED_SECTION
56# define TARGET_ASM_CONSTRUCTOR default_named_section_asm_out_constructor
57# else
58# define TARGET_ASM_CONSTRUCTOR default_stabs_asm_out_constructor
59# endif
60# endif
61#endif
62
63#if !defined(TARGET_ASM_DESTRUCTOR) && !defined(USE_COLLECT2)
64# ifdef DTORS_SECTION_ASM_OP
65# define TARGET_ASM_DESTRUCTOR default_dtor_section_asm_out_destructor
66# else
67# ifdef TARGET_ASM_NAMED_SECTION
68# define TARGET_ASM_DESTRUCTOR default_named_section_asm_out_destructor
69# else
70# define TARGET_ASM_DESTRUCTOR default_stabs_asm_out_destructor
71# endif
72# endif
73#endif
74
2eab15c9
PE
75#if !defined(TARGET_HAVE_CTORS_DTORS)
76# if defined(TARGET_ASM_CONSTRUCTOR) && defined(TARGET_ASM_DESTRUCTOR)
77# define TARGET_HAVE_CTORS_DTORS true
2eab15c9 78# endif
2cc07db4
RH
79#endif
80
7606e68f
SS
81#ifndef TARGET_TERMINATE_DW2_EH_FRAME_INFO
82#ifdef EH_FRAME_SECTION_NAME
83#define TARGET_TERMINATE_DW2_EH_FRAME_INFO false
1bc7c5b6 84#endif
8e3e233b
DP
85#endif
86
38f8b050 87#if !defined(TARGET_ASM_OUTPUT_ANCHOR) && !defined(ASM_OUTPUT_DEF)
aacd3885
RS
88#define TARGET_ASM_OUTPUT_ANCHOR NULL
89#endif
6e2188e0 90
301d03af
RS
91#define TARGET_ASM_ALIGNED_INT_OP \
92 {TARGET_ASM_ALIGNED_HI_OP, \
93 TARGET_ASM_ALIGNED_SI_OP, \
94 TARGET_ASM_ALIGNED_DI_OP, \
95 TARGET_ASM_ALIGNED_TI_OP}
96
97#define TARGET_ASM_UNALIGNED_INT_OP \
98 {TARGET_ASM_UNALIGNED_HI_OP, \
99 TARGET_ASM_UNALIGNED_SI_OP, \
100 TARGET_ASM_UNALIGNED_DI_OP, \
101 TARGET_ASM_UNALIGNED_TI_OP}
102
b25b9e8f 103#if !defined (TARGET_FUNCTION_INCOMING_ARG)
38f8b050 104#define TARGET_FUNCTION_INCOMING_ARG TARGET_FUNCTION_ARG
ab442df7
MM
105#endif
106
38f8b050 107#include "target-hooks-def.h"
1f1d5130 108
e4ec2cac 109#include "hooks.h"
61f71b34 110#include "targhooks.h"