1  /* Definitions of target machine for GNU compiler.  "embedded" 68XXX.
       2     This is meant to be included after m68k.h.
       3     Copyright (C) 1994-2023 Free Software Foundation, Inc.  */
       4  
       5  /* Override the SVR4 ABI for this target.  */
       6  
       7  #define PTRDIFF_TYPE "long int"
       8  #define SIZE_TYPE "long unsigned int"
       9  
      10  /* In order for bitfields to work on a 68000, or with -mnobitfield, we must
      11     define either PCC_BITFIELD_TYPE_MATTERS or STRUCTURE_SIZE_BOUNDARY.
      12     Defining STRUCTURE_SIZE_BOUNDARY results in structure packing problems,
      13     so we define PCC_BITFIELD_TYPE_MATTERS.  */
      14  #define PCC_BITFIELD_TYPE_MATTERS 1
      15  
      16  /* Don't default to pcc-struct-return, so that we can return small structures
      17     and unions in registers, which is slightly more efficient.  */
      18  #define DEFAULT_PCC_STRUCT_RETURN 0
      19  
      20  #undef FUNCTION_VALUE
      21  #define FUNCTION_VALUE(VALTYPE,FUNC) LIBCALL_VALUE (TYPE_MODE (VALTYPE))
      22  
      23  #undef LIBCALL_VALUE
      24  #define LIBCALL_VALUE(MODE)					\
      25    m68k_libcall_value (MODE)
      26  
      27  #undef FUNCTION_VALUE_REGNO_P
      28  #define FUNCTION_VALUE_REGNO_P(N)			\
      29    ((N) == D0_REG || (TARGET_68881 && (N) == FP0_REG))
      30  
      31  #undef NEEDS_UNTYPED_CALL
      32  #define NEEDS_UNTYPED_CALL 1
      33  
      34  /* Target OS builtins.  */
      35  #define TARGET_OS_CPP_BUILTINS()		\
      36    do						\
      37      {						\
      38        builtin_define ("__embedded__");		\
      39      }						\
      40    while (0)
      41  
      42  /* Override the default LIB_SPEC from gcc.cc.  We don't currently support
      43     profiling, or libg.a.  */
      44  
      45  #undef  LIB_SPEC
      46  #define LIB_SPEC "-lc"
      47  
      48  /* Make this be null, since we want the crt0.o to come from the linker
      49     script */
      50  
      51  #undef  STARTFILE_SPEC
      52  #define STARTFILE_SPEC ""