178346Sbenno/* Default initializers for a generic GCC target. 278346Sbenno Copyright (C) 2001-2020 Free Software Foundation, Inc. 378346Sbenno 478346Sbenno This program is free software; you can redistribute it and/or modify it 578346Sbenno under the terms of the GNU General Public License as published by the 678346Sbenno Free Software Foundation; either version 3, or (at your option) any 778346Sbenno later version. 878346Sbenno 978346Sbenno This program is distributed in the hope that it will be useful, 1078346Sbenno but WITHOUT ANY WARRANTY; without even the implied warranty of 1178346Sbenno MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1278346Sbenno GNU General Public License for more details. 1378346Sbenno 1478346Sbenno You should have received a copy of the GNU General Public License 1578346Sbenno along with this program; see the file COPYING3. If not see 1678346Sbenno <http://www.gnu.org/licenses/>. 1778346Sbenno 1878346Sbenno In other words, you are welcome to use, share and improve this program. 1978346Sbenno You are forbidden to forbid anyone else to use, share and improve 2078346Sbenno what you give them. Help stamp out software-hoarding! */ 2178346Sbenno 2278346Sbenno/* See target.def for a description of what this file contains and how to 2378346Sbenno use it. 2478346Sbenno 2578346Sbenno We want to have non-NULL default definitions of all hook functions, 2678346Sbenno even if they do nothing. */ 2778346Sbenno 2878346Sbenno/* Note that if one of these macros must be defined in an OS .h file 2978346Sbenno rather than the .c file, then we need to wrap the default 3078346Sbenno definition in a #ifndef, since files include tm.h before this one. */ 3178346Sbenno 3278346Sbenno#define TARGET_ASM_ALIGNED_HI_OP "\t.short\t" 3378346Sbenno#define TARGET_ASM_ALIGNED_SI_OP "\t.long\t" 3478346Sbenno#define TARGET_ASM_ALIGNED_DI_OP NULL 3578346Sbenno#define TARGET_ASM_ALIGNED_TI_OP NULL 3678346Sbenno 3778346Sbenno/* GAS and SYSV4 assemblers accept these. */ 3878346Sbenno#if defined (OBJECT_FORMAT_ELF) 3978346Sbenno#define TARGET_ASM_UNALIGNED_HI_OP "\t.2byte\t" 4078346Sbenno#define TARGET_ASM_UNALIGNED_SI_OP "\t.4byte\t" 4178346Sbenno#define TARGET_ASM_UNALIGNED_DI_OP "\t.8byte\t" 4288792Sjake#define TARGET_ASM_UNALIGNED_TI_OP NULL 4378346Sbenno#else 4478346Sbenno#define TARGET_ASM_UNALIGNED_HI_OP NULL 4578346Sbenno#define TARGET_ASM_UNALIGNED_SI_OP NULL 4678346Sbenno#define TARGET_ASM_UNALIGNED_DI_OP NULL 4778346Sbenno#define TARGET_ASM_UNALIGNED_TI_OP NULL 4878346Sbenno#endif /* OBJECT_FORMAT_ELF */ 4978346Sbenno 5078346Sbenno/* There is no standard way to handle P{S,D,T}Imode, targets must implement them 5178346Sbenno if required. */ 5278346Sbenno#define TARGET_ASM_ALIGNED_PSI_OP NULL 5378346Sbenno#define TARGET_ASM_UNALIGNED_PSI_OP NULL 5478346Sbenno#define TARGET_ASM_ALIGNED_PDI_OP NULL 5578346Sbenno#define TARGET_ASM_UNALIGNED_PDI_OP NULL 5678346Sbenno#define TARGET_ASM_ALIGNED_PTI_OP NULL 5778346Sbenno#define TARGET_ASM_UNALIGNED_PTI_OP NULL 5878346Sbenno 5978346Sbenno#if !defined(TARGET_ASM_CONSTRUCTOR) && !defined(USE_COLLECT2) 6078346Sbenno# ifdef CTORS_SECTION_ASM_OP 6178346Sbenno# define TARGET_ASM_CONSTRUCTOR default_ctor_section_asm_out_constructor 6278346Sbenno# else 6378346Sbenno# ifdef TARGET_ASM_NAMED_SECTION 6478346Sbenno# define TARGET_ASM_CONSTRUCTOR default_named_section_asm_out_constructor 6578346Sbenno# else 6678346Sbenno# define TARGET_ASM_CONSTRUCTOR default_stabs_asm_out_constructor 6778346Sbenno# endif 6878346Sbenno# endif 6978346Sbenno#endif 7078346Sbenno 7178346Sbenno#if !defined(TARGET_ASM_DESTRUCTOR) && !defined(USE_COLLECT2) 7278346Sbenno# ifdef DTORS_SECTION_ASM_OP 7378346Sbenno# define TARGET_ASM_DESTRUCTOR default_dtor_section_asm_out_destructor 7478346Sbenno# else 7578346Sbenno# ifdef TARGET_ASM_NAMED_SECTION 7678346Sbenno# define TARGET_ASM_DESTRUCTOR default_named_section_asm_out_destructor 7778346Sbenno# else 7878346Sbenno# define TARGET_ASM_DESTRUCTOR default_stabs_asm_out_destructor 7978346Sbenno# endif 8078346Sbenno# endif 8178346Sbenno#endif 8278346Sbenno 8378346Sbenno#if !defined(TARGET_HAVE_CTORS_DTORS) 8478346Sbenno# if defined(TARGET_ASM_CONSTRUCTOR) && defined(TARGET_ASM_DESTRUCTOR) 8578346Sbenno# define TARGET_HAVE_CTORS_DTORS true 8678346Sbenno# endif 8778346Sbenno#endif 8878346Sbenno 8983366Sjulian#ifndef TARGET_TERMINATE_DW2_EH_FRAME_INFO 9078346Sbenno#ifdef EH_FRAME_SECTION_NAME 9178346Sbenno#define TARGET_TERMINATE_DW2_EH_FRAME_INFO false 9278346Sbenno#endif 9378346Sbenno#endif 9478346Sbenno 9578346Sbenno#if !defined(TARGET_ASM_OUTPUT_ANCHOR) && !defined(ASM_OUTPUT_DEF) 9678346Sbenno#define TARGET_ASM_OUTPUT_ANCHOR NULL 9778346Sbenno#endif 9878346Sbenno 9978346Sbenno#define TARGET_ASM_ALIGNED_INT_OP \ 10078346Sbenno {TARGET_ASM_ALIGNED_HI_OP, \ 10178346Sbenno TARGET_ASM_ALIGNED_PSI_OP, \ 10278346Sbenno TARGET_ASM_ALIGNED_SI_OP, \ 10378346Sbenno TARGET_ASM_ALIGNED_PDI_OP, \ 10478346Sbenno TARGET_ASM_ALIGNED_DI_OP, \ 10578346Sbenno TARGET_ASM_ALIGNED_PTI_OP, \ 10678346Sbenno TARGET_ASM_ALIGNED_TI_OP} 10778346Sbenno 10878346Sbenno#define TARGET_ASM_UNALIGNED_INT_OP \ 10978346Sbenno {TARGET_ASM_UNALIGNED_HI_OP, \ 11078346Sbenno TARGET_ASM_UNALIGNED_PSI_OP, \ 11178346Sbenno TARGET_ASM_UNALIGNED_SI_OP, \ 11278346Sbenno TARGET_ASM_UNALIGNED_PDI_OP, \ 11378346Sbenno TARGET_ASM_UNALIGNED_DI_OP, \ 11478346Sbenno TARGET_ASM_UNALIGNED_PTI_OP, \ 11578346Sbenno TARGET_ASM_UNALIGNED_TI_OP} 11678346Sbenno 11783366Sjulian#if !defined (TARGET_FUNCTION_INCOMING_ARG) 11878346Sbenno#define TARGET_FUNCTION_INCOMING_ARG TARGET_FUNCTION_ARG 11978346Sbenno#endif 12078346Sbenno 12178346Sbenno#include "target-hooks-def.h" 12278346Sbenno 12378346Sbenno#include "hooks.h" 12478346Sbenno#include "targhooks.h" 12578346Sbenno#include "insn-target-def.h" 12678346Sbenno