Mercurial > hg > CbC > CbC_gcc
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 |