Annotation of gcc/config/sparc/sp64-elf.h, revision 1.1

1.1     ! root        1: /* Definitions of target machine for GNU compiler,
        !             2:    for Sun SPARC-V9 on a hypothetical elf format machine.
        !             3:    Copyright (C) 1994 Free Software Foundation, Inc.
        !             4:    Contributed by Doug Evans, [email protected].
        !             5: 
        !             6: This file is part of GNU CC.
        !             7: 
        !             8: GNU CC 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 2, or (at your option)
        !            11: any later version.
        !            12: 
        !            13: GNU CC 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 GNU CC; see the file COPYING.  If not, write to
        !            20: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
        !            21: 
        !            22: /* This is a v9 only compiler.  -mv8 is not expected to work.  If you want
        !            23:    a v8/v9 compiler, this isn't the place to do it.  */
        !            24: /* ??? Until real v9 machines exist, all of this is subject to change.  */
        !            25: /* ??? This file should really be called sp64-sol2.h or some such but that
        !            26:    would be a bit misleading since no such machines exist yet.  The current
        !            27:    name is also misleading since the term "elf" is more properly applied to
        !            28:    embedded configurations.  */
        !            29: 
        !            30: #define SPARCV9 /* See sparc.h.  */
        !            31: 
        !            32: /* ??? We're taking the scheme of including another file and then overriding
        !            33:    the values we don't like a bit too far here.  The alternative is to more or
        !            34:    less duplicate all of svr4.h, sparc/sysv4.h, and sparc/sol2.h here
        !            35:    (suitably cleaned up).  Until real sparc64 machines exist, it's not clear
        !            36:    which is better.  */
        !            37: 
        !            38: #include "sparc/sol2.h"
        !            39: 
        !            40: /* A v9 compiler with stack-bias, 32 bit integers and 64 bit pointers,
        !            41:    in a Medium/Anywhere code model environment.  */
        !            42: 
        !            43: #undef TARGET_DEFAULT
        !            44: #define TARGET_DEFAULT \
        !            45:   (MASK_V9 + MASK_STACK_BIAS + MASK_MEDANY + MASK_PTR64 + MASK_HARD_QUAD + MASK_EPILOGUE + MASK_FPU)
        !            46: 
        !            47: #undef CPP_PREDEFINES
        !            48: #define CPP_PREDEFINES \
        !            49:  "-Dsun -Dsparc -Dunix -D__svr4__ -D__sparc_v9__ \
        !            50:   -Asystem(unix) -Asystem(svr4) -Acpu(sparc64) -Amachine(sparc64)"
        !            51: 
        !            52: #undef CPP_SPEC
        !            53: #define CPP_SPEC "\
        !            54: %{mint64:-D__INT_MAX__=9223372036854775807LL -D__LONG_MAX__=9223372036854775807LL} \
        !            55: %{mlong64:-D__LONG_MAX__=9223372036854775807LL} \
        !            56: "
        !            57: 
        !            58: #undef MD_EXEC_PREFIX
        !            59: #undef MD_STARTFILE_PREFIX
        !            60: 
        !            61: /* Use the default (for now).  */
        !            62: #undef STARTFILE_SPEC
        !            63: 
        !            64: /* Use the default (for now).  */
        !            65: #undef LIB_SPEC
        !            66: 
        !            67: /* This is taken from sol2.h.  */
        !            68: #undef LINK_SPEC
        !            69: #define LINK_SPEC "\
        !            70: %{!nostdlib:%{!r*:%{!e*:-e _start}}} \
        !            71: %{h*} %{V} %{v:%{!V:-V}} \
        !            72: %{b} %{Wl,*:%*} \
        !            73: %{static:-dn -Bstatic} \
        !            74: %{shared:-G -dy} \
        !            75: %{symbolic:-Bsymbolic -G -dy} \
        !            76: %{G:-G} \
        !            77: %{YP,*} \
        !            78: %{R*} \
        !            79: %{Qy:} %{!Qn:-Qy} \
        !            80: "
        !            81: 
        !            82: /* Unfortunately, svr4.h redefines these so we have to restore them to
        !            83:    their original values in sparc.h.  */
        !            84: /* ??? It might be possible to eventually get svr4.h to do the right thing.  */
        !            85: 
        !            86: #undef PTRDIFF_TYPE
        !            87: #define PTRDIFF_TYPE "long long int"
        !            88: 
        !            89: #undef SIZE_TYPE
        !            90: #define SIZE_TYPE "long long unsigned int"
        !            91: 
        !            92: /* ??? This should be 32 bits for v9 but what can we do?  */
        !            93: #undef WCHAR_TYPE
        !            94: #define WCHAR_TYPE "short unsigned int"
        !            95: 
        !            96: #undef WCHAR_TYPE_SIZE
        !            97: #define WCHAR_TYPE_SIZE 16
        !            98: 
        !            99: /* ??? Disabled for v9 as the current implementation of the Medium/Anywhere
        !           100:    code model needs this in the data segment (still true?).  Let's hope the
        !           101:    assembler is fixed.  */
        !           102: #undef JUMP_TABLES_IN_TEXT_SECTION
        !           103: 
        !           104: /* System V Release 4 uses DWARF debugging info.
        !           105:    GDB doesn't support 64 bit stabs yet and the desired debug format is DWARF
        !           106:    anyway so it is the default.  */
        !           107: 
        !           108: #define DWARF_DEBUGGING_INFO
        !           109: #define DBX_DEBUGGING_INFO
        !           110: 
        !           111: #undef PREFERRED_DEBUGGING_TYPE
        !           112: #define PREFERRED_DEBUGGING_TYPE DWARF_DEBUG
        !           113: 
        !           114: /* Define the names of various pseudo-ops used by the Sparc/svr4 assembler.
        !           115:    ??? If ints are 64 bits then UNALIGNED_INT_ASM_OP (defined elsewhere) is
        !           116:    misnamed.  These should all refer to explicit sizes (half/word/xword?),
        !           117:    anything other than short/int/long/etc.  */
        !           118: 
        !           119: #define UNALIGNED_LONGLONG_ASM_OP      ".uaxword"
        !           120: 
        !           121: /* DWARF stuff.  */
        !           122: 
        !           123: #define ASM_OUTPUT_DWARF_ADDR(FILE,LABEL)                              \
        !           124:  do {  fprintf ((FILE), "\t%s\t", UNALIGNED_LONGLONG_ASM_OP);          \
        !           125:        assemble_name (FILE, LABEL);                                    \
        !           126:        fprintf (FILE, "\n");                                           \
        !           127:   } while (0)
        !           128: 
        !           129: #define ASM_OUTPUT_DWARF_ADDR_CONST(FILE,RTX)                          \
        !           130:   do {                                                                 \
        !           131:     fprintf ((FILE), "\t%s\t", UNALIGNED_LONGLONG_ASM_OP);             \
        !           132:     output_addr_const ((FILE), (RTX));                                 \
        !           133:     fputc ('\n', (FILE));                                              \
        !           134:   } while (0)
        !           135: 
        !           136: /* ??? Not sure if this should be 4 or 8 bytes.  4 works for now.  */
        !           137: #define ASM_OUTPUT_DWARF_REF(FILE,LABEL)                               \
        !           138:  do {  fprintf ((FILE), "\t%s\t", UNALIGNED_INT_ASM_OP);               \
        !           139:        assemble_name (FILE, LABEL);                                    \
        !           140:        fprintf (FILE, "\n");                                           \
        !           141:   } while (0)

unix.superglobalmegacorp.com

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