Annotation of gcc/halfpic.h, revision 1.1.1.3

1.1       root        1: /* OSF/rose half-pic support definitions.
                      2:    Copyright (C) 1992 Free Software Foundation, Inc.
                      3: 
                      4: This file is part of GNU CC.
                      5: 
                      6: GNU CC is free software; you can redistribute it and/or modify
                      7: it under the terms of the GNU General Public License as published by
                      8: the Free Software Foundation; either version 2, or (at your option)
                      9: any later version.
                     10: 
                     11: GNU CC is distributed in the hope that it will be useful,
                     12: but WITHOUT ANY WARRANTY; without even the implied warranty of
                     13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                     14: GNU General Public License for more details.
                     15: 
                     16: You should have received a copy of the GNU General Public License
                     17: along with GNU CC; see the file COPYING.  If not, write to
                     18: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
                     19: 
1.1.1.3 ! root       20: /* Add prototype support.  */
        !            21: #ifndef PROTO
        !            22: #if defined (USE_PROTOTYPES) ? USE_PROTOTYPES : defined (__STDC__)
        !            23: #define PROTO(ARGS) ARGS
        !            24: #else
        !            25: #define PROTO(ARGS) ()
        !            26: #endif
        !            27: #endif
        !            28: 
        !            29: #ifndef STDIO_PROTO
        !            30: #ifdef BUFSIZ
        !            31: #define STDIO_PROTO(ARGS) PROTO(ARGS)
        !            32: #else
        !            33: #define STDIO_PROTO(ARGS) ()
        !            34: #endif
        !            35: #endif
        !            36: 
        !            37: #if defined (USE_PROTOTYPES) ? USE_PROTOTYPES : defined (__STDC__)
        !            38: union tree_node;               /* forward reference */
        !            39: struct rtx_def;
        !            40: #endif
        !            41: 
        !            42: /* Declare the variable flag_half_pic as 'int' instead of 'extern
        !            43:    int', so that BSS variables are created (even though this is not
        !            44:    strict ANSI).  This is because rtl.c now refers to the
        !            45:    CONSTANT_ADDRESS_P macro, which in turn refers to flag_half_pic,
        !            46:    and wants to call half_pic_address_p, whose address we also store
        !            47:    in in a BSS variable.  This way, the gen* programs won't get
        !            48:    unknown symbol errors when being linked (flag_half_pic will never
        !            49:    be true in the gen* programs).  */
        !            50: 
        !            51: int flag_half_pic;                     /* Global half-pic flag.  */
        !            52: int (*ptr_half_pic_address_p) ();      /* ptr to half_pic_address_p () */
        !            53: 
        !            54: extern int  half_pic_number_ptrs;                              /* # distinct pointers found */
        !            55: extern int  half_pic_number_refs;                              /* # half-pic references */
        !            56: extern void half_pic_encode PROTO((union tree_node *));                /* encode whether half-pic */
        !            57: extern void half_pic_declare PROTO((char *));                  /* declare object local */
        !            58: extern void half_pic_init PROTO((void));                       /* half_pic initialization */
        !            59: extern void half_pic_finish STDIO_PROTO((FILE *));             /* half_pic termination */
        !            60: extern int  half_pic_address_p PROTO((struct rtx_def *));      /* true if an address is half-pic */
        !            61: extern struct rtx_def *half_pic_ptr PROTO((struct rtx_def *)); /* return RTX for half-pic pointer */
1.1       root       62: 
                     63: /* Macros to provide access to the half-pic stuff (so they can easily
                     64:    be stubbed out.  */
                     65: 
                     66: #define HALF_PIC_P()           (flag_half_pic)
1.1.1.2   root       67: #define HALF_PIC_NUMBER_PTRS   (half_pic_number_ptrs)
                     68: #define HALF_PIC_NUMBER_REFS   (half_pic_number_refs)
                     69: 
1.1       root       70: #define HALF_PIC_ENCODE(DECL)  half_pic_encode (DECL)
1.1.1.2   root       71: #define HALF_PIC_DECLARE(NAME) half_pic_declare (NAME)
1.1       root       72: #define HALF_PIC_INIT()                half_pic_init ()
1.1.1.2   root       73: #define HALF_PIC_FINISH(STREAM)        half_pic_finish (STREAM)
1.1.1.3 ! root       74: #define HALF_PIC_ADDRESS_P(X)  ((*ptr_half_pic_address_p) (X))
1.1.1.2   root       75: #define HALF_PIC_PTR(X)                half_pic_ptr (X)
                     76: 
                     77: /* Prefix for half-pic names */
                     78: #ifndef HALF_PIC_PREFIX
                     79: #define        HALF_PIC_PREFIX "__pic_"
                     80: #endif

unix.superglobalmegacorp.com

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