home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 7 / FreshFishVol7.bin / bbs / gnu / gcc-2.3.3-src.lha / GNU / src / amiga / gcc-2.3.3 / config / i386sco.h < prev    next >
C/C++ Source or Header  |  1994-02-06  |  3KB  |  90 lines

  1. /* Definitions for Intel 386 running SCO Unix System V.  */
  2.  
  3.  
  4. /* Mostly it's like AT&T Unix System V. */
  5.  
  6. #include "i386v.h"
  7.  
  8. /* By default, target has a 80387, uses IEEE compatible arithmetic,
  9.    and returns float values in the 387, ie,
  10.    (TARGET_80387 | TARGET_FLOAT_RETURNS_IN_80387)
  11.  
  12.    SCO's software emulation of a 387 fails to handle the `fucomp'
  13.    opcode.  fucomp is only used when generating IEEE compliant code.
  14.    So don't make TARGET_IEEE_FP default for SCO. */
  15.  
  16. #undef TARGET_DEFAULT
  17. #define TARGET_DEFAULT 0201
  18.  
  19. /* Use crt1.o as a startup file and crtn.o as a closing file.  */
  20.  
  21. #undef STARTFILE_SPEC
  22. #define STARTFILE_SPEC \
  23.  "%{pg:gcrt1.o%s}%{!pg:%{p:mcrt1.o%s}%{!p:crt1.o%s}} crtbegin.o%s"
  24.  
  25. #define ENDFILE_SPEC "crtend.o%s crtn.o%s"
  26.  
  27. /* Library spec, including SCO international language support. */
  28.  
  29. #undef LIB_SPEC
  30. #define LIB_SPEC \
  31.  "%{p:-L/usr/lib/libp}%{pg:-L/usr/lib/libp} %{scointl:libintl.a%s} -lc"
  32.  
  33. /* Specify predefined symbols in preprocessor.  */
  34.  
  35. #undef CPP_PREDEFINES
  36. #define CPP_PREDEFINES "-Dunix -Di386 -DM_UNIX -DM_I386 -DM_COFF -DM_WORDSWAP"
  37.  
  38. #undef CPP_SPEC
  39. #define CPP_SPEC "%{scointl:-DM_INTERNAT}"
  40.  
  41. /* This spec is used for telling cpp whether char is signed or not.  */
  42.  
  43. #undef SIGNED_CHAR_SPEC
  44. #if DEFAULT_SIGNED_CHAR
  45. #define SIGNED_CHAR_SPEC \
  46.  "%{funsigned-char:-D__CHAR_UNSIGNED__ -D_CHAR_UNSIGNED}"
  47. #else
  48. #define SIGNED_CHAR_SPEC \
  49.  "%{!fsigned-char:-D__CHAR_UNSIGNED__ -D_CHAR_UNSIGNED}"
  50. #endif
  51.  
  52. /* Use atexit for static destructors, instead of defining
  53.    our own exit function.  */
  54. #define HAVE_ATEXIT
  55.  
  56. /* Specify the size_t type.  */
  57. #define SIZE_TYPE "unsigned int"
  58.  
  59. #if 0 /* Not yet certain whether this is needed.  */
  60. /* If no 387, use the general regs to return floating values,
  61.    since this system does not emulate the 80387.  */
  62.  
  63. #define VALUE_REGNO(MODE) \
  64.   ((TARGET_80387 && ((MODE) == SFmode || (MODE) == DFmode))
  65.    ? FIRST_FLOAT_REG : 0)
  66.  
  67. #define HARD_REGNO_MODE_OK(REGNO, MODE) \
  68.   ((REGNO) < 2 ? 1                            \
  69.    : (REGNO) < 4 ? 1                            \
  70.    : (REGNO) >= 8 ? ((GET_MODE_CLASS (MODE) == MODE_FLOAT        \
  71.               || GET_MODE_CLASS (MODE) == MODE_COMPLEX_FLOAT)    \
  72.              && TARGET_80387                    \
  73.              && GET_MODE_UNIT_SIZE (MODE) <= 8)            \
  74.    : (MODE) != QImode)
  75. #endif
  76.  
  77. /* caller has to pop the extra argument passed to functions that return
  78.    structures. */
  79.  
  80. #undef RETURN_POPS_ARGS
  81. #define RETURN_POPS_ARGS(FUNTYPE,SIZE)   \
  82.   (TREE_CODE (FUNTYPE) == IDENTIFIER_NODE ? 0            \
  83.    : (TARGET_RTD                        \
  84.       && (TYPE_ARG_TYPES (FUNTYPE) == 0                \
  85.       || (TREE_VALUE (tree_last (TYPE_ARG_TYPES (FUNTYPE)))    \
  86.           == void_type_node))) ? (SIZE)            \
  87.    : 0)
  88. /* On other 386 systems, the last line looks like this:
  89.    : (aggregate_value_p (FUNTYPE)) ? GET_MODE_SIZE (Pmode) : 0)  */
  90.