(root)/
gcc-13.2.0/
gcc/
config/
arm/
linux-gas.h
       1  /* Definitions of target machine for GNU compiler.
       2     ARM Linux-based GNU systems version.
       3     Copyright (C) 1997-2023 Free Software Foundation, Inc.
       4     Contributed by Russell King  <rmk92@ecs.soton.ac.uk>.
       5  
       6     This file is part of GCC.
       7  
       8     GCC is free software; you can redistribute it and/or modify it
       9     under the terms of the GNU General Public License as published
      10     by the Free Software Foundation; either version 3, or (at your
      11     option) any later version.
      12  
      13     GCC is distributed in the hope that it will be useful, but WITHOUT
      14     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
      15     or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
      16     License for more details.
      17  
      18     Under Section 7 of GPL version 3, you are granted additional
      19     permissions described in the GCC Runtime Library Exception, version
      20     3.1, as published by the Free Software Foundation.
      21  
      22     You should have received a copy of the GNU General Public License and
      23     a copy of the GCC Runtime Library Exception along with this program;
      24     see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
      25     <http://www.gnu.org/licenses/>.  */
      26  
      27  /* This is how we tell the assembler that a symbol is weak.
      28     GAS always supports weak symbols.  */
      29  
      30  /* Unsigned chars produces much better code than signed.  */
      31  #define DEFAULT_SIGNED_CHAR 0
      32  
      33  #undef  SUBTARGET_CPP_SPEC
      34  #define SUBTARGET_CPP_SPEC  "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
      35  
      36  #undef  SIZE_TYPE
      37  #define SIZE_TYPE "unsigned int"
      38  
      39  #undef  PTRDIFF_TYPE
      40  #define PTRDIFF_TYPE "int"
      41  
      42  /* Use the AAPCS type for wchar_t, or the previous Linux default for
      43     non-AAPCS.  */
      44  #undef WCHAR_TYPE
      45  #define WCHAR_TYPE (TARGET_AAPCS_BASED ? "unsigned int" : "long int")
      46  
      47  #undef  WCHAR_TYPE_SIZE
      48  #define WCHAR_TYPE_SIZE BITS_PER_WORD
      49  
      50  /* Clear the instruction cache from `beg' to `end'.  This makes an
      51     inline system call to SYS_cacheflush.  */
      52  #define CLEAR_INSN_CACHE(BEG, END)					\
      53  {									\
      54    register unsigned long _beg __asm ("a1") = (unsigned long) (BEG);	\
      55    register unsigned long _end __asm ("a2") = (unsigned long) (END);	\
      56    register unsigned long _flg __asm ("a3") = 0;				\
      57    __asm __volatile ("swi 0x9f0002		@ sys_cacheflush"	\
      58  		    : "=r" (_beg)					\
      59  		    : "0" (_beg), "r" (_end), "r" (_flg));		\
      60  }