Home | History | Annotate | Line # | Download | only in aarch64
      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