Annotation of gcc/config/pbd.h, revision 1.1

1.1     ! root        1: /* Definitions of target machine for GNU compiler.
        !             2: 
        !             3:    Citicorp/TTI Unicom PBD version
        !             4:    (using GAS and  COFF (encapsulated is unacceptable) )
        !             5: 
        !             6:    Copyright (C) 1990 Free Software Foundation, Inc.
        !             7: 
        !             8: This file is part of GNU CC.
        !             9: 
        !            10: GNU CC is free software; you can redistribute it and/or modify
        !            11: it under the terms of the GNU General Public License as published by
        !            12: the Free Software Foundation; either version 2, or (at your option)
        !            13: any later version.
        !            14: 
        !            15: GNU CC is distributed in the hope that it will be useful,
        !            16: but WITHOUT ANY WARRANTY; without even the implied warranty of
        !            17: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        !            18: GNU General Public License for more details.
        !            19: 
        !            20: You should have received a copy of the GNU General Public License
        !            21: along with GNU CC; see the file COPYING.  If not, write to
        !            22: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
        !            23: 
        !            24: #include "sparc.h"
        !            25: 
        !            26: /* Names to predefine in the preprocessor for this target machine.  */
        !            27: 
        !            28: #undef CPP_PREDEFINES
        !            29: #define CPP_PREDEFINES "-Dsparc -DUnicomPBD -Dunix"
        !            30: 
        !            31: /* We want DBX format for use with gdb under COFF.  */
        !            32: 
        !            33: #define DBX_DEBUGGING_INFO
        !            34: #define DBX_IN_COFF
        !            35: 
        !            36: /* Generate calls to memcpy, memcmp and memset.  */
        !            37: 
        !            38: #define TARGET_MEM_FUNCTIONS
        !            39: 
        !            40: /* we use /lib/libp/lib*  when profiling */
        !            41: 
        !            42: #undef LIB_SPEC
        !            43: #define LIB_SPEC "%{!shlib:%{p:-L/lib/libp} %{pg:-L/lib/libp} -lc} \
        !            44:    %{shlib:-lc_s crtn.o%s }"
        !            45: 
        !            46: /* shared libraries need to use crt1.o  */
        !            47: 
        !            48: #ifdef USE_GPLUS_IFILE
        !            49: #define STARTFILE_SPEC \
        !            50:   "g++.ifile%s %{!shlib:%{pg:mcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}}}\
        !            51:    %{shlib:crt1.o%s } "
        !            52: #else
        !            53: #define STARTFILE_SPEC \
        !            54:   "%{!shlib:%{pg:mcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt0.o%s}}}\
        !            55:    %{shlib:crt1.o%s } "
        !            56: #endif
        !            57: 
        !            58: /* cpp has to support a #sccs directive for the /usr/include files */
        !            59: 
        !            60: #define SCCS_DIRECTIVE
        !            61: 
        !            62: #ifndef __GNUC__
        !            63: #define USE_C_ALLOCA
        !            64: #endif
        !            65: 
        !            66: 
        !            67: #undef  ASM_OUTPUT_LABELREF
        !            68: #define ASM_OUTPUT_LABELREF(FILE,NAME) \
        !            69:   fprintf (FILE, "%s", NAME)
        !            70: 
        !            71: /* fixes: */
        !            72: /*
        !            73:  *  Internal labels are prefixed with a period.
        !            74:  */
        !            75: 
        !            76: /* This is how to store into the string LABEL
        !            77:    the symbol_ref name of an internal numbered label where
        !            78:    PREFIX is the class of label and NUM is the number within the class.
        !            79:    This is suitable for output with `assemble_name'.  */
        !            80: 
        !            81: #undef ASM_GENERATE_INTERNAL_LABEL
        !            82: 
        !            83: #define ASM_GENERATE_INTERNAL_LABEL(LABEL,PREFIX,NUM)                   \
        !            84:         sprintf (LABEL, "*.%s%d", PREFIX, NUM)
        !            85: 
        !            86: 
        !            87: /* This is how to output an internal numbered label where
        !            88:    PREFIX is the class of label and NUM is the number within the class.  */
        !            89: 
        !            90: #undef  ASM_OUTPUT_INTERNAL_LABEL
        !            91: #define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM)                      \
        !            92:         fprintf (FILE, ".%s%d:\n", PREFIX, NUM)
        !            93: 
        !            94: /* This is how to output an element of a case-vector that is relative.  */
        !            95: 
        !            96: #undef  ASM_OUTPUT_ADDR_DIFF_ELT
        !            97: #define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, VALUE, REL)  \
        !            98:   fprintf (FILE, "\t.word .L%d-.L%d\n", VALUE, REL)
        !            99: 
        !           100: /* This is how to output an element of a case-vector that is absolute.
        !           101:    (The 68000 does not use such vectors,
        !           102:    but we must define this macro anyway.)  */
        !           103: 
        !           104: #undef ASM_OUTPUT_ADDR_VEC_ELT
        !           105: #define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE)  \
        !           106:   fprintf (FILE, "\t.word .L%d\n", VALUE)
        !           107: 
        !           108: /* Underscores are not used on Unicom PBB coff systems. */
        !           109: #define NO_UNDERSCORES
        !           110: 
        !           111: /* Output assembler code to FILE to increment profiler label # LABELNO
        !           112:    for profiling a function entry.  */
        !           113: 
        !           114: #undef FUNCTION_PROFILER
        !           115: #define FUNCTION_PROFILER(FILE, LABELNO)  \
        !           116:   fprintf (FILE, "\tsethi %%hi(.LP%d),%%o0\n\tcall mcount\n\tor %%lo(.LP%d),%%o0,%%o0\n", \
        !           117:           (LABELNO), (LABELNO))
        !           118: 
        !           119: /* Output assembler code to FILE to initialize this source file's
        !           120:    basic block profiling info, if that has not already been done.  */
        !           121: 
        !           122: #undef FUNCTION_BLOCK_PROFILER
        !           123: #define FUNCTION_BLOCK_PROFILER(FILE, LABELNO)  \
        !           124:   fprintf (FILE, "\tsethi %%hi(.LPBX0),%%o0\n\tld [%%lo(.LPBX0)+%%o0],%%o1\n\ttst %%o1\n\tbne .LPY%d\n\tnop\n\tcall ___bb_init_func\n\tnop\n.LPY%d:\n",  \
        !           125:           (LABELNO), (LABELNO))
        !           126: 
        !           127: /* Output assembler code to FILE to increment the entry-count for
        !           128:    the BLOCKNO'th basic block in this source file.  */
        !           129: 
        !           130: #undef BLOCK_PROFILER
        !           131: #define BLOCK_PROFILER(FILE, BLOCKNO) \
        !           132: {                                                              \
        !           133:   int blockn = (BLOCKNO);                                      \
        !           134:   fprintf (FILE, "\tsethi %%hi(.LPBX2+%d),%%g1\n\tld [%%lo(.LPBX2+%d)+%%g1],%%g2\n\
        !           135: \tadd %%g2,1,%%g2\n\tst %%g2,[%%lo(.LPBX2+%d)+%%g1]\n",                \
        !           136:           4 * blockn, 4 * blockn, 4 * blockn);                 \
        !           137:   CC_STATUS_INIT;  /* We have clobbered %g1.  Also %g2.  */    \
        !           138: }
        !           139: /*   This is needed for SunOS 4.0, and should not hurt for 3.2
        !           140:    versions either.  */
        !           141: #undef ASM_OUTPUT_SOURCE_LINE(file, line) 
        !           142: #define ASM_OUTPUT_SOURCE_LINE(file, line)             \
        !           143:   { static int sym_lineno = 1;                         \
        !           144:     fprintf (file, ".stabn 68,0,%d,.LM%d\n.LM%d:\n",   \
        !           145:             line, sym_lineno, sym_lineno);             \
        !           146:     sym_lineno += 1; }
        !           147: 
        !           148: #define ASM_INT_OP ".long "

unix.superglobalmegacorp.com

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