1 /* Default initializers for a generic GCC target. 2 Copyright (C) 2001-2020 Free Software Foundation, Inc. 3 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! */ 21 22 /* See target.def for a description of what this file contains and how to 23 use it. 24 25 We want to have non-NULL default definitions of all hook functions, 26 even if they do nothing. */ 27 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 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. */ 38 #if defined (OBJECT_FORMAT_ELF) 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 48 #endif /* OBJECT_FORMAT_ELF */ 49 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 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 83 #if !defined(TARGET_HAVE_CTORS_DTORS) 84 # if defined(TARGET_ASM_CONSTRUCTOR) && defined(TARGET_ASM_DESTRUCTOR) 85 # define TARGET_HAVE_CTORS_DTORS true 86 # endif 87 #endif 88 89 #ifndef TARGET_TERMINATE_DW2_EH_FRAME_INFO 90 #ifdef EH_FRAME_SECTION_NAME 91 #define TARGET_TERMINATE_DW2_EH_FRAME_INFO false 92 #endif 93 #endif 94 95 #if !defined(TARGET_ASM_OUTPUT_ANCHOR) && !defined(ASM_OUTPUT_DEF) 96 #define TARGET_ASM_OUTPUT_ANCHOR NULL 97 #endif 98 99 #define TARGET_ASM_ALIGNED_INT_OP \ 100 {TARGET_ASM_ALIGNED_HI_OP, \ 101 TARGET_ASM_ALIGNED_PSI_OP, \ 102 TARGET_ASM_ALIGNED_SI_OP, \ 103 TARGET_ASM_ALIGNED_PDI_OP, \ 104 TARGET_ASM_ALIGNED_DI_OP, \ 105 TARGET_ASM_ALIGNED_PTI_OP, \ 106 TARGET_ASM_ALIGNED_TI_OP} 107 108 #define TARGET_ASM_UNALIGNED_INT_OP \ 109 {TARGET_ASM_UNALIGNED_HI_OP, \ 110 TARGET_ASM_UNALIGNED_PSI_OP, \ 111 TARGET_ASM_UNALIGNED_SI_OP, \ 112 TARGET_ASM_UNALIGNED_PDI_OP, \ 113 TARGET_ASM_UNALIGNED_DI_OP, \ 114 TARGET_ASM_UNALIGNED_PTI_OP, \ 115 TARGET_ASM_UNALIGNED_TI_OP} 116 117 #if !defined (TARGET_FUNCTION_INCOMING_ARG) 118 #define TARGET_FUNCTION_INCOMING_ARG TARGET_FUNCTION_ARG 119 #endif 120 121 #include "target-hooks-def.h" 122 123 #include "hooks.h" 124 #include "targhooks.h" 125 #include "insn-target-def.h" 126