(root)/
gcc-13.2.0/
gcc/
config/
i386/
netbsd64.h
       1  /* Definitions of target machine for GCC,
       2     for x86-64/ELF NetBSD systems.
       3     Copyright (C) 2002-2023 Free Software Foundation, Inc.
       4     Contributed by Wasabi Systems, Inc.
       5  
       6  This file is part of GCC.
       7  
       8  GCC is free software; you can redistribute it and/or modify
       9  it under the terms of the GNU General Public License as published by
      10  the Free Software Foundation; either version 3, or (at your option)
      11  any later version.
      12  
      13  GCC is distributed in the hope that it will be useful,
      14  but WITHOUT ANY WARRANTY; without even the implied warranty of
      15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      16  GNU General Public License for more details.
      17  
      18  You should have received a copy of the GNU General Public License
      19  along with GCC; see the file COPYING3.  If not see
      20  <http://www.gnu.org/licenses/>.  */
      21  
      22  #define TARGET_OS_CPP_BUILTINS()		\
      23    do						\
      24      {						\
      25        NETBSD_OS_CPP_BUILTINS_ELF();		\
      26      }						\
      27    while (0)
      28  
      29  
      30  /* Extra specs needed for NetBSD/x86-64 ELF.  */
      31  
      32  #undef SUBTARGET_EXTRA_SPECS
      33  #define SUBTARGET_EXTRA_SPECS			\
      34    { "netbsd_cpp_spec", NETBSD_CPP_SPEC },	\
      35    { "netbsd_link_spec", NETBSD_LINK_SPEC_ELF },	\
      36    { "netbsd_entry_point", NETBSD_ENTRY_POINT },
      37  
      38  
      39  /* Provide a LINK_SPEC appropriate for a NetBSD/x86-64 ELF target.  */
      40  
      41  #undef LINK_SPEC
      42  #define LINK_SPEC \
      43    "%{m32:-m elf_i386} \
      44     %{m64:-m elf_x86_64} \
      45     %(netbsd_link_spec)"
      46  
      47  #define NETBSD_ENTRY_POINT "_start"
      48  
      49  
      50  /* Provide a CPP_SPEC appropriate for NetBSD.  */
      51  
      52  #undef CPP_SPEC
      53  #define CPP_SPEC "%(netbsd_cpp_spec)"
      54  
      55  
      56  /* Output assembler code to FILE to call the profiler.  */
      57  
      58  #undef FUNCTION_PROFILER
      59  #define FUNCTION_PROFILER(FILE, LABELNO)				\
      60  {									\
      61    if (TARGET_64BIT && flag_pic)						\
      62      fprintf (FILE, "\tcall *__mcount@PLT\n");				\
      63    else if (flag_pic)							\
      64      fprintf (FILE, "\tcall *__mcount@PLT\n");				\
      65    else									\
      66      fprintf (FILE, "\tcall __mcount\n");				\
      67  }
      68  
      69  #define HAVE_ENABLE_EXECUTE_STACK