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