Annotation of GNUtools/cc/config/i386/sco.h, revision 1.1

1.1     ! root        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 "i386/sysv3.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: /* Let's guess that the SCO software FPU emulator can't handle
        !            20:    80-bit XFmode insns, so don't generate them.  */
        !            21: #undef LONG_DOUBLE_TYPE_SIZE
        !            22: #define LONG_DOUBLE_TYPE_SIZE 64
        !            23: 
        !            24: /* Use crt1.o as a startup file and crtn.o as a closing file.  */
        !            25: 
        !            26: #undef STARTFILE_SPEC
        !            27: #define STARTFILE_SPEC \
        !            28:  "%{pg:gcrt1.o%s}%{!pg:%{p:mcrt1.o%s}%{!p:crt1.o%s}} crtbegin.o%s"
        !            29: 
        !            30: #define ENDFILE_SPEC "crtend.o%s crtn.o%s"
        !            31: 
        !            32: /* Library spec, including SCO international language support. */
        !            33: 
        !            34: #undef LIB_SPEC
        !            35: #define LIB_SPEC \
        !            36:  "%{p:-L/usr/lib/libp}%{pg:-L/usr/lib/libp} %{scointl:libintl.a%s} -lc"
        !            37: 
        !            38: /* Specify predefined symbols in preprocessor.  */
        !            39: 
        !            40: #undef CPP_PREDEFINES
        !            41: #define CPP_PREDEFINES "-Dunix -Di386 -DM_UNIX -DM_I386 -DM_COFF -DM_WORDSWAP -Asystem(unix) -Asystem(svr3) -Acpu(i386) -Amachine(i386)"
        !            42: 
        !            43: #undef CPP_SPEC
        !            44: #define CPP_SPEC "%{scointl:-DM_INTERNAT}"
        !            45: 
        !            46: /* This spec is used for telling cpp whether char is signed or not.  */
        !            47: 
        !            48: #undef SIGNED_CHAR_SPEC
        !            49: #if DEFAULT_SIGNED_CHAR
        !            50: #define SIGNED_CHAR_SPEC \
        !            51:  "%{funsigned-char:-D__CHAR_UNSIGNED__ -D_CHAR_UNSIGNED}"
        !            52: #else
        !            53: #define SIGNED_CHAR_SPEC \
        !            54:  "%{!fsigned-char:-D__CHAR_UNSIGNED__ -D_CHAR_UNSIGNED}"
        !            55: #endif
        !            56: 
        !            57: /* Use atexit for static destructors, instead of defining
        !            58:    our own exit function.  */
        !            59: #define HAVE_ATEXIT
        !            60: 
        !            61: /* Specify the size_t type.  */
        !            62: #define SIZE_TYPE "unsigned int"
        !            63: 
        !            64: #if 0 /* Not yet certain whether this is needed.  */
        !            65: /* If no 387, use the general regs to return floating values,
        !            66:    since this system does not emulate the 80387.  */
        !            67: 
        !            68: #undef VALUE_REGNO
        !            69: #define VALUE_REGNO(MODE) \
        !            70:   ((TARGET_80387
        !            71:      && ((MODE) == SFmode || (MODE) == DFmode || (MODE) == XFmode)
        !            72:    ? FIRST_FLOAT_REG : 0)
        !            73: 
        !            74: #undef HARD_REGNO_MODE_OK
        !            75: #define HARD_REGNO_MODE_OK(REGNO, MODE)                                          \
        !            76:   ((REGNO) < 2 ? 1                                                       \
        !            77:    : (REGNO) < 4 ? 1                                                     \
        !            78:    : FP_REGNO_P (REGNO) ? ((GET_MODE_CLASS (MODE) == MODE_FLOAT                  \
        !            79:                           || GET_MODE_CLASS (MODE) == MODE_COMPLEX_FLOAT) \
        !            80:                          && TARGET_80387                                 \
        !            81:                          && GET_MODE_UNIT_SIZE (MODE) <= 8)              \
        !            82:    : (MODE) != QImode)
        !            83: #endif
        !            84: 
        !            85: /* caller has to pop the extra argument passed to functions that return
        !            86:    structures. */
        !            87: 
        !            88: #undef RETURN_POPS_ARGS
        !            89: #define RETURN_POPS_ARGS(FUNTYPE,SIZE)   \
        !            90:   (TREE_CODE (FUNTYPE) == IDENTIFIER_NODE ? 0                  \
        !            91:    : (TARGET_RTD                                               \
        !            92:       && (TYPE_ARG_TYPES (FUNTYPE) == 0                                \
        !            93:          || (TREE_VALUE (tree_last (TYPE_ARG_TYPES (FUNTYPE))) \
        !            94:              == void_type_node))) ? (SIZE)                     \
        !            95:    : 0)
        !            96: /* On other 386 systems, the last line looks like this:
        !            97:    : (aggregate_value_p (TREE_TYPE (FUNTYPE))) ? GET_MODE_SIZE (Pmode) : 0)  */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.