comparison gcc/config/arm/bpabi.h @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents f6334be47118
children 84e7813d76e9
comparison
equal deleted inserted replaced
68:561a7518be6b 111:04ced10e8804
1 /* Configuration file for ARM BPABI targets. 1 /* Configuration file for ARM BPABI targets.
2 Copyright (C) 2004, 2005, 2007, 2008, 2009, 2010 2 Copyright (C) 2004-2017 Free Software Foundation, Inc.
3 Free Software Foundation, Inc.
4 Contributed by CodeSourcery, LLC 3 Contributed by CodeSourcery, LLC
5 4
6 This file is part of GCC. 5 This file is part of GCC.
7 6
8 GCC is free software; you can redistribute it and/or modify it 7 GCC is free software; you can redistribute it and/or modify it
13 GCC is distributed in the hope that it will be useful, but WITHOUT 12 GCC is distributed in the hope that it will be useful, but WITHOUT
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 14 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
16 License for more details. 15 License for more details.
17 16
18 You should have received a copy of the GNU General Public License 17 Under Section 7 of GPL version 3, you are granted additional
19 along with GCC; see the file COPYING3. If not see 18 permissions described in the GCC Runtime Library Exception, version
19 3.1, as published by the Free Software Foundation.
20
21 You should have received a copy of the GNU General Public License and
22 a copy of the GCC Runtime Library Exception along with this program;
23 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
20 <http://www.gnu.org/licenses/>. */ 24 <http://www.gnu.org/licenses/>. */
21 25
22 /* Use the AAPCS ABI by default. */ 26 /* Use the AAPCS ABI by default. */
23 #define ARM_DEFAULT_ABI ARM_ABI_AAPCS 27 #define ARM_DEFAULT_ABI ARM_ABI_AAPCS
24 28
25 /* Assume that AAPCS ABIs should adhere to the full BPABI. */ 29 /* Assume that AAPCS ABIs should adhere to the full BPABI. */
26 #define TARGET_BPABI (TARGET_AAPCS_BASED) 30 #define TARGET_BPABI (TARGET_AAPCS_BASED)
27 31
28 /* BPABI targets use EABI frame unwinding tables. */ 32 /* BPABI targets use EABI frame unwinding tables. */
29 #undef ARM_UNWIND_INFO 33 #undef ARM_UNWIND_INFO
30 #define ARM_UNWIND_INFO 1 34 #define ARM_UNWIND_INFO 1
31
32 /* Section 4.1 of the AAPCS requires the use of VFP format. */
33 #undef FPUTYPE_DEFAULT
34 #define FPUTYPE_DEFAULT "vfp"
35 35
36 /* TARGET_BIG_ENDIAN_DEFAULT is set in 36 /* TARGET_BIG_ENDIAN_DEFAULT is set in
37 config.gcc for big endian configurations. */ 37 config.gcc for big endian configurations. */
38 #if TARGET_BIG_ENDIAN_DEFAULT 38 #if TARGET_BIG_ENDIAN_DEFAULT
39 #define TARGET_ENDIAN_DEFAULT MASK_BIG_END 39 #define TARGET_ENDIAN_DEFAULT MASK_BIG_END
53 #define TARGET_LIB_INT_CMP_BIASED !TARGET_BPABI 53 #define TARGET_LIB_INT_CMP_BIASED !TARGET_BPABI
54 54
55 #define TARGET_FIX_V4BX_SPEC " %{mcpu=arm8|mcpu=arm810|mcpu=strongarm*"\ 55 #define TARGET_FIX_V4BX_SPEC " %{mcpu=arm8|mcpu=arm810|mcpu=strongarm*"\
56 "|march=armv4|mcpu=fa526|mcpu=fa626:--fix-v4bx}" 56 "|march=armv4|mcpu=fa526|mcpu=fa626:--fix-v4bx}"
57 57
58 #define BE8_LINK_SPEC " %{mbig-endian:%{march=armv7-a|mcpu=cortex-a5"\ 58 #define BE8_LINK_SPEC \
59 "|mcpu=cortex-a8|mcpu=cortex-a9|mcpu=cortex-a15:%{!r:--be8}}}" 59 "%{!r:%{!mbe32:%:be8_linkopt(%{mlittle-endian:little}" \
60 " %{mbig-endian:big}" \
61 " %{mbe8:be8}" \
62 " %{march=*:arch %*})}}"
60 63
61 /* Tell the assembler to build BPABI binaries. */ 64 /* Tell the assembler to build BPABI binaries. */
62 #undef SUBTARGET_EXTRA_ASM_SPEC 65 #undef SUBTARGET_EXTRA_ASM_SPEC
63 #define SUBTARGET_EXTRA_ASM_SPEC \ 66 #define SUBTARGET_EXTRA_ASM_SPEC \
64 "%{mabi=apcs-gnu|mabi=atpcs:-meabi=gnu;:-meabi=5}" TARGET_FIX_V4BX_SPEC 67 "%{mabi=apcs-gnu|mabi=atpcs:-meabi=gnu;:-meabi=5}" TARGET_FIX_V4BX_SPEC
65 68
66 #ifndef SUBTARGET_EXTRA_LINK_SPEC 69 #ifndef SUBTARGET_EXTRA_LINK_SPEC
67 #define SUBTARGET_EXTRA_LINK_SPEC "" 70 #define SUBTARGET_EXTRA_LINK_SPEC ""
68 #endif 71 #endif
69 72
73 /* Split out the EABI common values so other targets can use it. */
74 #define EABI_LINK_SPEC \
75 TARGET_FIX_V4BX_SPEC BE8_LINK_SPEC
76
70 /* The generic link spec in elf.h does not support shared libraries. */ 77 /* The generic link spec in elf.h does not support shared libraries. */
71 #define BPABI_LINK_SPEC \ 78 #define BPABI_LINK_SPEC \
72 "%{mbig-endian:-EB} %{mlittle-endian:-EL} " \ 79 "%{mbig-endian:-EB} %{mlittle-endian:-EL} " \
73 "%{static:-Bstatic} %{shared:-shared} %{symbolic:-Bsymbolic} " \ 80 "%{static:-Bstatic} %{shared:-shared} %{symbolic:-Bsymbolic} " \
74 "-X" SUBTARGET_EXTRA_LINK_SPEC TARGET_FIX_V4BX_SPEC BE8_LINK_SPEC 81 "-X" SUBTARGET_EXTRA_LINK_SPEC EABI_LINK_SPEC
75 82
76 #undef LINK_SPEC 83 #undef LINK_SPEC
77 #define LINK_SPEC BPABI_LINK_SPEC 84 #define LINK_SPEC BPABI_LINK_SPEC
78 85
79 /* The BPABI requires that we always use an out-of-line implementation 86 /* The BPABI requires that we always use an out-of-line implementation