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