1 1.1 mrg /* Definitions of target machine for GNU compiler. Vxworks Aarch 64bit 2 1.1 mrg version. 3 1.1.1.2 mrg Copyright (C) 2018-2022 Free Software Foundation, Inc. 4 1.1 mrg Contributed by Douglas B Rupp 5 1.1 mrg 6 1.1 mrg This file is part of GCC. 7 1.1 mrg 8 1.1 mrg GCC is free software; you can redistribute it and/or modify it under 9 1.1 mrg the terms of the GNU General Public License as published by the Free 10 1.1 mrg Software Foundation; either version 3, or (at your option) any later 11 1.1 mrg version. 12 1.1 mrg 13 1.1 mrg GCC is distributed in the hope that it will be useful, but WITHOUT ANY 14 1.1 mrg WARRANTY; without even the implied warranty of MERCHANTABILITY or 15 1.1 mrg FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 16 1.1 mrg for more details. 17 1.1 mrg 18 1.1 mrg You should have received a copy of the GNU General Public License 19 1.1 mrg along with GCC; see the file COPYING3. If not see 20 1.1 mrg <http://www.gnu.org/licenses/>. */ 21 1.1 mrg 22 1.1 mrg #undef SUBTARGET_OVERRIDE_OPTIONS 23 1.1 mrg #define SUBTARGET_OVERRIDE_OPTIONS VXWORKS_OVERRIDE_OPTIONS 24 1.1 mrg 25 1.1 mrg #undef LINK_SPEC 26 1.1 mrg #define LINK_SPEC VXWORKS_LINK_SPEC 27 1.1 mrg 28 1.1 mrg #undef LIB_SPEC 29 1.1 mrg #define LIB_SPEC VXWORKS_LIB_SPEC 30 1.1 mrg 31 1.1 mrg #undef STARTFILE_SPEC 32 1.1 mrg #define STARTFILE_SPEC VXWORKS_STARTFILE_SPEC 33 1.1 mrg 34 1.1 mrg #undef ENDFILE_SPEC 35 1.1 mrg #define ENDFILE_SPEC VXWORKS_ENDFILE_SPEC 36 1.1 mrg 37 1.1 mrg #undef CPP_SPEC 38 1.1 mrg #define CPP_SPEC VXWORKS_ADDITIONAL_CPP_SPEC 39 1.1 mrg 40 1.1 mrg #undef CC1_SPEC 41 1.1 mrg #define CC1_SPEC VXWORKS_CC1_SPEC 42 1.1 mrg 43 1.1 mrg #undef FUNCTION_PROFILER 44 1.1 mrg #define FUNCTION_PROFILER VXWORKS_FUNCTION_PROFILER 45 1.1 mrg 46 1.1 mrg #undef TARGET_OS_CPP_BUILTINS 47 1.1 mrg #define TARGET_OS_CPP_BUILTINS() \ 48 1.1 mrg do { \ 49 1.1 mrg if (TARGET_BIG_END) \ 50 1.1 mrg builtin_define ("ARMEB"); \ 51 1.1 mrg else \ 52 1.1 mrg builtin_define ("ARMEL"); \ 53 1.1.1.2 mrg builtin_define \ 54 1.1.1.2 mrg (VX_CPU_PREFIX "CPU=" VX_CPU_PREFIX "ARMARCH8A"); \ 55 1.1 mrg VXWORKS_OS_CPP_BUILTINS (); \ 56 1.1 mrg } while (0) 57 1.1 mrg 58 1.1 mrg /* Static stack checking is supported. */ 59 1.1 mrg #define STACK_CHECK_STATIC_BUILTIN 1 60 1.1 mrg 61 1.1 mrg #undef STACK_CHECK_PROTECT 62 1.1 mrg #define STACK_CHECK_PROTECT 16384 63 1.1 mrg 64 1.1.1.2 mrg /* The VxWorks environment on aarch64 is llvm-based. */ 65 1.1 mrg #undef VXWORKS_PERSONALITY 66 1.1 mrg #define VXWORKS_PERSONALITY "llvm" 67 1.1 mrg 68 1.1.1.2 mrg /* VxWorks uses R18 as a TCB pointer. We must pick something else as 69 1.1.1.2 mrg the static chain and R18 needs to be claimed "fixed". Until we 70 1.1.1.2 mrg arrange to override the common parts of the port family to 71 1.1.1.2 mrg acknowledge the latter, configure --with-specs="-ffixed-r18". */ 72 1.1.1.2 mrg #undef STATIC_CHAIN_REGNUM 73 1.1.1.2 mrg #define STATIC_CHAIN_REGNUM 9 74 1.1 mrg 75