144
|
1 /* for mc-codegen.c */
|
61
|
2
|
221
|
3 extern int use; /* generated value will be used in gexpr */
|
327
|
4 extern char *init_src;
|
|
5 extern int size_of_int;
|
|
6 extern int size_of_short;
|
|
7 extern int size_of_float;
|
|
8 extern int size_of_double;
|
|
9 extern int size_of_longlong;
|
|
10 extern int bit_of_byte;
|
|
11 extern int endian;
|
83
|
12
|
221
|
13 #define USE_CREG (-1)
|
320
|
14 #define ASM_INPUT 1
|
|
15 #define ASM_OUTPUT 2
|
|
16 #define ASM_USED 3
|
|
17 #define MAX_ASM_REG 30
|
61
|
18
|
327
|
19 /* used by mc-parse */
|
104
|
20
|
327
|
21 extern int rvalue(int e);
|
|
22 extern int rvalue_t(int e,int t);
|
|
23 extern int integral(int t);
|
|
24
|
137
|
25
|
|
26 extern void arg_register(NMTBL *fnptr);
|
327
|
27 extern int arg_reorder(int arg,int new_arg);
|
|
28 extern int assign_data(int e, int t, NMTBL *n,int offset);
|
|
29 extern int assop(int e1,int e2,int op,int t,int no_float);
|
|
30 extern int backdef(void);
|
|
31 extern int cexpr(int e);
|
|
32 extern void checkret(void);
|
|
33 extern void closing();
|
|
34 extern void cmpdimm(int e, int csreg,int label,int cond);
|
|
35 extern void codegen_init(); /* called only once */
|
|
36 extern void codegen_reinit(); /* called for each file */
|
|
37 extern void codegen_decl_init(); /* called before each declaration */
|
|
38 extern int cond(int t,int e1,int e2,int e3);
|
|
39 extern int correct_type(int e,int t);
|
|
40 extern int csvalue();
|
|
41 extern void def_label(int cslabel, int dlabel);
|
|
42 extern void emit_init_vars(void);
|
|
43 extern void fdecl_struct(int fntype);
|
|
44 extern int function_type(int e1,int *dots);
|
|
45 extern void lcheck(int e);
|
|
46 extern void opening(char *filename);
|
|
47 extern void parallel_rassign(int assigns);
|
|
48 extern int strop(int e,int ind);
|
102
|
49
|
61
|
50 extern void def_label(int cslabel, int dlabel);
|
327
|
51 extern NMTBL * def(NMTBL *n);
|
|
52 extern int search_struct_type(int type,char *name,int *dsp);
|
|
53 extern int gexpr(int e1,int use0);
|
|
54 extern void bexpr_u(int e1, char cond, int l1);
|
|
55 extern void bexpr(int e1, char cond, int l1);
|
|
56 extern void ret(void);
|
|
57 extern void replace_return_struct(int func,int left);
|
|
58 extern int assign_expr0(int e1,int e2,int t,int type0);
|
|
59 extern int assign_expr(int e1,int e2,int t,int type);
|
|
60 extern int binop(int op, int e1, int e2, int t1, int t2);
|
|
61 extern int indop(int e);
|
|
62 extern void fcheck(NMTBL *n);
|
|
63
|
|
64 extern void init_free_lvar_list();
|
|
65 extern void free_lvar(int disp);
|
|
66 extern int new_lvar(int size);
|
|
67 extern int new_lvar0(int sz);
|
|
68
|
|
69 extern void gen_code_enter(char *name);
|
|
70 extern void gen_code_enter1(int args);
|
|
71 extern void gen_code_leave(char *name);
|
|
72 extern void gen_enter(char *name);
|
|
73 extern void gen_enter1();
|
|
74 extern void gen_leave(int control, char *name);
|
|
75 extern void gen_jmp(int l);
|
|
76
|
|
77
|
|
78 extern int assign_expr0(int e1,int e2,int t,int type0) ;
|
|
79 extern int assign_expr(int e1,int e2,int t,int type) ;
|
|
80 extern void bexpr_u(int e1, char cond, int l1);
|
|
81 extern int binop(int op, int e1, int e2, int t1, int t2);
|
|
82 extern void fcheck(NMTBL *n);
|
|
83 extern void replace_return_struct(int func,int left) ;
|
|
84 extern int gexpr(int e1,int use0);
|
|
85 extern void bexpr_u(int e1, char cond, int l1);
|
|
86 extern void bexpr(int e1, char cond, int l1);
|
|
87 extern void ret(void);
|
|
88 extern void def_label(int cslabel, int dlabel);
|
|
89 extern NMTBL * def(NMTBL *n);
|
|
90 extern int indop(int e);
|
|
91 extern int search_struct_type(int type,char *name,int *dsp);
|
|
92
|
|
93 /* used by mc-cod-* */
|
|
94
|
|
95 extern int assign_expr0(int e1,int e2,int t,int type0) ;
|
61
|
96 extern void b_expr(int e1, char cond, int l1,int err);
|
327
|
97 extern int contains_p(int e,int (*p)(int));
|
61
|
98 extern void fwddef(int l);
|
327
|
99 extern int fwdlabel(void);
|
|
100 extern int g_expr(int e1);
|
|
101 extern int g_expr0(int e1);
|
|
102 extern int g_expr_u(int e1);
|
98
|
103 extern int is_code(NMTBL *fnptr);
|
|
104 extern int is_function(NMTBL *fnptr);
|
327
|
105 extern int scalar(int t);
|
61
|
106
|
|
107 /* end */
|