Annotation of GNUtools/cc/halfpic.h, revision 1.1.1.1

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: 
                     20: #ifndef NO_HALF_PIC
                     21: 
                     22: /* Add prototype support.  */
                     23: #ifndef PROTO
                     24: #if defined (USE_PROTOTYPES) ? USE_PROTOTYPES : defined (__STDC__)
                     25: #define PROTO(ARGS) ARGS
                     26: #else
                     27: #define PROTO(ARGS) ()
                     28: #endif
                     29: #endif
                     30: 
                     31: #ifndef STDIO_PROTO
                     32: #ifdef BUFSIZ
                     33: #define STDIO_PROTO(ARGS) PROTO(ARGS)
                     34: #else
                     35: #define STDIO_PROTO(ARGS) ()
                     36: #endif
                     37: #endif
                     38: 
                     39: #if defined (USE_PROTOTYPES) ? USE_PROTOTYPES : defined (__STDC__)
                     40: union tree_node;               /* forward reference */
                     41: struct rtx_def;
                     42: #endif
                     43: 
                     44: /* Declare the variable flag_half_pic as 'int' instead of 'extern
                     45:    int', so that BSS variables are created (even though this is not
                     46:    strict ANSI).  This is because rtl.c now refers to the
                     47:    CONSTANT_ADDRESS_P macro, which in turn refers to flag_half_pic,
                     48:    and wants to call half_pic_address_p, whose address we also store
                     49:    in in a BSS variable.  This way, the gen* programs won't get
                     50:    unknown symbol errors when being linked (flag_half_pic will never
                     51:    be true in the gen* programs).  */
                     52: 
                     53: int flag_half_pic;                     /* Global half-pic flag.  */
                     54: int (*ptr_half_pic_address_p) ();      /* ptr to half_pic_address_p () */
                     55: 
                     56: extern int  half_pic_number_ptrs;                              /* # distinct pointers found */
                     57: extern int  half_pic_number_refs;                              /* # half-pic references */
                     58: extern void half_pic_encode PROTO((union tree_node *));                /* encode whether half-pic */
                     59: extern void half_pic_declare PROTO((char *));                  /* declare object local */
                     60: extern void half_pic_external PROTO((char *));                 /* declare object external */
                     61: extern void half_pic_init PROTO((void));                       /* half_pic initialization */
                     62: extern void half_pic_finish STDIO_PROTO((FILE *));             /* half_pic termination */
                     63: extern int  half_pic_address_p PROTO((struct rtx_def *));      /* true if an address is half-pic */
                     64: extern struct rtx_def *half_pic_ptr PROTO((struct rtx_def *)); /* return RTX for half-pic pointer */
                     65: 
                     66: /* Macros to provide access to the half-pic stuff (so they can easily
                     67:    be stubbed out.  */
                     68: 
                     69: #define HALF_PIC_P()           (flag_half_pic)
                     70: #define HALF_PIC_NUMBER_PTRS   (half_pic_number_ptrs)
                     71: #define HALF_PIC_NUMBER_REFS   (half_pic_number_refs)
                     72: 
                     73: #define HALF_PIC_ENCODE(DECL)  half_pic_encode (DECL)
                     74: #define HALF_PIC_DECLARE(NAME) half_pic_declare (NAME)
                     75: #define HALF_PIC_EXTERNAL(NAME)        half_pic_external (NAME)
                     76: #define HALF_PIC_INIT()                half_pic_init ()
                     77: #define HALF_PIC_FINISH(STREAM)        half_pic_finish (STREAM)
                     78: #define HALF_PIC_ADDRESS_P(X)  ((*ptr_half_pic_address_p) (X))
                     79: #define HALF_PIC_PTR(X)                half_pic_ptr (X)
                     80: 
                     81: /* Prefix for half-pic names */
                     82: #ifndef HALF_PIC_PREFIX
                     83: #define        HALF_PIC_PREFIX "__pic_"
                     84: #endif
                     85: 
                     86: #endif /* NO_HALF_PIC */

unix.superglobalmegacorp.com

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