Annotation of gcc/config/i386/isc.h, revision 1.1.1.3

1.1       root        1: /* Assembler-independent definitions for an Intel 386 running
                      2:    Interactive Unix System V. Specifically, this is for recent versions
                      3:    that support POSIX.  */
                      4: 
                      5: /* Use crt1.o, not crt0.o, as a startup file, and crtn.o as a closing file. */
                      6: #undef STARTFILE_SPEC
                      7: #define STARTFILE_SPEC \
                      8:   "%{!shlib:%{posix:%{pg:mcrtp1.o%s}%{!pg:%{p:mcrtp1.o%s}%{!p:crtp1.o%s}}}\
1.1.1.3 ! root        9:    %{Xp:%{pg:mcrtp1.o%s}%{!pg:%{p:mcrtp1.o%s}%{!p:crtp1.o%s}}}\
        !            10:    %{!posix:%{!Xp:%{pg:mcrt1.o%s}%{!pg:%{p:mcrt1.o%s}%{!p:crt1.o%s}}\
        !            11:    %{p:-L/lib/libp} %{pg:-L/lib/libp}}}}\
        !            12:    %{shlib:%{Xp:crtp1.o%s}%{posix:crtp1.o%s}%{!posix:%{!Xp:crt1.o%s}}}\
        !            13:    crtbegin.o%s"
1.1       root       14:   
                     15: #define ENDFILE_SPEC "crtend.o%s crtn.o%s"
                     16: 
                     17: /* Library spec */
                     18: #undef LIB_SPEC
1.1.1.3 ! root       19: #define LIB_SPEC "%{shlib:-lc_s} %{posix:-lcposix} %{Xp:-lcposix} -lc -lg"
        !            20: 
        !            21: #undef CPP_SPEC
        !            22: #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{Xp:-D_POSIX_SOURCE}"
1.1       root       23: 
                     24: /* ISC 2.2 uses `char' for `wchar_t'.  */
                     25: #undef WCHAR_TYPE
                     26: #define WCHAR_TYPE "char"
                     27: 
                     28: #undef WCHAR_TYPE_SIZE
                     29: #define WCHAR_TYPE_SIZE BITS_PER_UNIT
                     30: 
                     31: #if 0
                     32: /* This is apparently not true: ISC versions up to 3.0, at least, use
                     33:    the standard calling sequence in which the called function pops the
                     34:    extra arg.  */
                     35: /* caller has to pop the extra argument passed to functions that return
                     36:    structures. */
                     37: 
                     38: #undef RETURN_POPS_ARGS
1.1.1.3 ! root       39: #define RETURN_POPS_ARGS(FUNDECL,FUNTYPE,SIZE)   \
1.1       root       40:   (TREE_CODE (FUNTYPE) == IDENTIFIER_NODE ? 0                  \
                     41:    : (TARGET_RTD                                               \
                     42:       && (TYPE_ARG_TYPES (FUNTYPE) == 0                                \
                     43:          || (TREE_VALUE (tree_last (TYPE_ARG_TYPES (FUNTYPE))) \
                     44:              == void_type_node))) ? (SIZE)                     \
                     45:    : 0)
                     46: /* On other 386 systems, the last line looks like this:
1.1.1.2   root       47:    : (aggregate_value_p (TREE_TYPE (FUNTYPE))) ? GET_MODE_SIZE (Pmode) : 0)  */
1.1       root       48: #endif
                     49: 
                     50: /* Handle #pragma pack and #pragma weak.  */
                     51: #define HANDLE_SYSV_PRAGMA
                     52: 
                     53: /* By default, target has a 80387, uses IEEE compatible arithmetic,
                     54:    and returns float values in the 387, ie,
                     55:    (TARGET_80387 | TARGET_FLOAT_RETURNS_IN_80387)
                     56: 
                     57:    ISC's software emulation of a 387 fails to handle the `fucomp'
                     58:    opcode.  fucomp is only used when generating IEEE compliant code.
                     59:    So don't make TARGET_IEEE_FP default for ISC. */
                     60: 
                     61: #undef TARGET_DEFAULT
                     62: #define TARGET_DEFAULT 0201
1.1.1.2   root       63: 
                     64: /* The ISC 2.0.2 software FPU emulator apparently can't handle
                     65:    80-bit XFmode insns, so don't generate them.  */
                     66: #undef LONG_DOUBLE_TYPE_SIZE
                     67: #define LONG_DOUBLE_TYPE_SIZE 64
1.1.1.3 ! root       68: 
        !            69: /* The ISC assembler does not like a .file directive with a name
        !            70:    longer than 14 characters.  Truncating it will not permit
        !            71:    debugging to work properly, but at least we won't get an error
        !            72:    message.  */
        !            73: 
        !            74: #undef ASM_FILE_START
        !            75: #define ASM_FILE_START(FILE)                     \
        !            76:   do {                                           \
        !            77:    char c;                                       \
        !            78:    int max = 0;                                  \
        !            79:    char *string = dump_base_name;                \
        !            80:                                                  \
        !            81:     fputs ("\t.file\t\"", FILE);                                \
        !            82:                                                  \
        !            83:     while ((c = *string++) != 0 && max++ < 14) { \
        !            84:        if (c == '\"' || c == '\\')               \
        !            85:          putc ('\\', FILE);                      \
        !            86:        putc (c, FILE);                           \
        !            87:     }                                            \
        !            88:     fputs ("\"\n", FILE);                        \
        !            89:   } while (0)

unix.superglobalmegacorp.com

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