summaryrefslogtreecommitdiff
path: root/src/iconc/cproto.h
blob: a32b98237d2444ceb10690c1f49937b976e13230 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
/*
 * Prototypes for functions in iconc.
 */
struct sig_lst   *add_sig    (struct code *sig, struct c_fnc *fnc);
void           addlib     (char *libname);
struct code      *alc_ary    (int n);
int               alc_cbufs  (int num, nodeptr lifetime);
int               alc_dtmp   (nodeptr lifetime);
int               alc_itmp   (nodeptr lifetime);
struct code      *alc_lbl    (char *desc, int flag);
int               alc_sbufs  (int num, nodeptr lifetime);
#ifdef OptimizeType
unsigned int   *alloc_mem_typ   (unsigned int n_types);
#endif					/* OptimizeType */
void           arth_anlz  (struct il_code *var1, struct il_code *var2,
                               int *maybe_int, int *maybe_dbl, int *chk1,
                               struct code **conv1p, int *chk2,
                               struct code **conv2p);
struct node      *aug_nd     (nodeptr op, nodeptr arg1, nodeptr arg2);
struct node      *binary_nd  (nodeptr op, nodeptr arg1, nodeptr arg2);
void         bitrange    (int typcd, int *frst_bit, int *last_bit);
nodeptr           buildarray (nodeptr a, nodeptr lb, nodeptr e);
void           callc_add  (struct c_fnc *cont);
void           callo_add  (char *oper_nm, int ret_flag,
                               struct c_fnc *cont, int need_cont,
                               struct code *arglist, struct code *on_ret);
struct node      *case_nd    (nodeptr loc_model, nodeptr expr, nodeptr cases);
int               ccomp      (char *srcname, char *exename);
void           cd_add     (struct code *cd);
struct val_loc   *chk_alc    (struct val_loc *rslt, nodeptr lifetime);
void           chkinv     (void);
void           chkstrinv  (void);
struct node      *c_str_leaf (int type,struct node *loc_model, char *c);
void	          codegen    (struct node *t);
int               cond_anlz  (struct il_code *il, struct code **cdp);
void           const_blks (void);
struct val_loc   *cvar_loc   (char *name);
int               do_inlin   (struct implement *impl, nodeptr n, int *sep_cont,
				struct op_symentry *symtab, int n_va);
void	          doiconx    (char *s);
struct val_loc   *dtmp_loc   (int n);
void          eval_arith (int indx1, int indx2, int *maybe_int, int *maybe_dbl);
int           eval_cnv   (int typcd, int indx, int def, int *cnv_flags);
int	eval_is	(int typcd,int indx);
void           findcases  (struct il_code *il, int has_dflt,
                               struct case_anlz *case_anlz);
void           fix_fncs   (struct c_fnc *fnc);
struct fentry    *flookup    (char *id);
void           gen_inlin  (struct il_code *il, struct val_loc *rslt,
                               struct code **scont_strt,
                               struct code **scont_fail, struct c_fnc *cont,
                               struct implement *impl, int nsyms,
                               struct op_symentry *symtab, nodeptr n,
                               int dcl_var, int n_va);
int	          getopr     (int ac, int *cc);
#ifdef OptimizeType
unsigned int    get_bit_vector (struct typinfo *src, int pos);
#endif					/* OptimizeType */
struct gentry    *glookup    (char *id);
void	          hsyserr    (char **av, char *file);
struct node      *i_str_leaf (int type,struct node *loc_model,char *c, int d);
long              iconint    (char *image);
struct code      *il_copy    (struct il_c *dest, struct val_loc *src);
struct code      *il_cnv     (int typcd, struct il_code *src,
                               struct il_c *dflt, struct il_c *dest);
struct code      *il_dflt    (int typcd, struct il_code *src,
                               struct il_c *dflt, struct il_c *dest);
void           implproto  (struct implement *ip);
void           init       (void);
void           init_proc  (char *name);
void           init_rec   (char *name);
void           init_src   (void);
void           install    (char *name,int flag);
struct gentry    *instl_p    (char *name, int flag);
struct node      *int_leaf   (int type,struct node *loc_model,int c);
struct val_loc   *itmp_loc   (int n);
struct node      *invk_main  (struct pentry *main_proc);
struct node      *invk_nd    (struct node *loc_model, struct node *proc,
                              struct node *args);
void           invoc_grp  (char *grp);
void           invocbl    (nodeptr op, int arity);
struct node      *key_leaf   (nodeptr loc_model, char *keyname);
void           liveness (nodeptr n, nodeptr resumer, nodeptr *failer, int *gen);
struct node      *list_nd    (nodeptr loc_model, nodeptr args);
void           lnkdcl     (char *name);
void	          readdb     (char *db_name);
struct val_loc   *loc_cpy    (struct val_loc *loc, int mod_access);
#ifdef OptimizeType
void           mark_recs (struct fentry *fp, struct typinfo *typ,
                              int *num_offsets, int *offset, int *bad_recs);
#else					/* OptimizeType */
void           mark_recs (struct fentry *fp, unsigned int *typ,
                              int *num_offsets, int *offset, int *bad_recs);
#endif					/* OptimizeType */
struct code      *mk_goto    (struct code *label);
struct node      *multiunary (char *op, nodeptr loc_model, nodeptr oprnd);
struct sig_act   *new_sgact  (struct code *sig, struct code *cd,
                               struct sig_act *next);
int               nextchar   (void);
void           nfatal     (struct node *n, char *s1, char *s2);
int               n_arg_sym  (struct implement *ip);
void           outerfnc   (struct c_fnc *fnc);
int               past_prms  (struct node *n);
void           proccode   (struct pentry *proc);
void           prt_fnc    (struct c_fnc *fnc);
void           prt_frame  (char *prefix, int ntend, int n_itmp,
				int i, int j, int k);
struct centry    *putlit     (char *image,int littype,int len);
struct lentry    *putloc     (char *id,int id_type);
void	          quit       (char *msg);
void	          quitf      (char *msg,char *arg);
void           recconstr  (struct rentry *r);
void           resolve    (struct pentry *proc);
unsigned int      round2     (unsigned int n);
struct code      *sig_cd     (struct code *fail, struct c_fnc *fnc);
void           src_file   (char *name);
struct node      *sect_nd    (nodeptr op, nodeptr arg1, nodeptr arg2,
                               nodeptr arg3);
void           tfatal     (char *s1,char *s2);
struct node      *to_nd      (nodeptr loc_model, nodeptr arg1,
                               nodeptr arg2);
struct node      *toby_nd    (nodeptr loc_model, nodeptr arg1,
                               nodeptr arg2, nodeptr arg3);
int               trans      (void);
struct node      *tree1      (int type);
struct node      *tree2      (int type,struct node *loc_model);
struct node      *tree3      (int type,struct node *loc_model,
                               struct node *c);
struct node      *tree4      (int type, struct node *loc_model,
                               struct node *c, struct node *d);
struct node      *tree5      (int type, struct node *loc_model,
			       struct node *c, struct node *d,
			       struct node *e);
struct node      *tree6      (int type,struct node *loc_model,
			       struct node *c, struct node *d,
			       struct node *e, struct node *f);
void	          tsyserr    (char *s);
void	          twarn      (char *s1,char *s2);
struct code      *typ_chk    (struct il_code *var, int typcd);
int               type_case  (struct il_code *il, int (*fnc)(),
                               struct case_anlz *case_anlz);
void           typeinfer  (void);
struct node      *unary_nd   (nodeptr op, nodeptr arg);
void           var_dcls   (void);
#ifdef OptimizeType
int               varsubtyp  (struct typinfo *typ, struct lentry **single);
#else					/* OptimizeType */
int               varsubtyp  (unsigned int *typ, struct lentry **single);
#endif					/* OptimizeType */
void	          writecheck (int rc);
void	          yyerror    (int tok,struct node *lval,int state);
int               yylex      (void);
int               yyparse    (void);
#ifdef OptimizeType
void         xfer_packed_types (struct typinfo *type);
#endif					/* OptimizeType */

#ifdef DeBug
void symdump (void);
void ldump   (struct lentry **lhash);
void gdump   (void);
void cdump   (void);
void fdump   (void);
void rdump   (void);
#endif					/* DeBug */