Mercurial > hg > CbC > old > device
annotate mc-codegen.h @ 479:51c1b795b4f3
fix broken $gp in jal in code segement
author | kono |
---|---|
date | Sat, 26 Nov 2005 09:50:55 +0900 |
parents | 50a59dfb4606 |
children | f84d4525ffc8 |
rev | line source |
---|---|
144 | 1 /* for mc-codegen.c */ |
61 | 2 |
452 | 3 extern int use; /* generated value will be used in gexpr */ |
4 extern char *init_src; /* internal defenition string for each file */ | |
5 | |
6 /* these architecture dependent values are defined in mc-code-*.c */ | |
7 | |
327 | 8 extern int size_of_int; |
9 extern int size_of_short; | |
10 extern int size_of_float; | |
11 extern int size_of_double; | |
12 extern int size_of_longlong; | |
13 extern int bit_of_byte; | |
14 extern int endian; | |
397 | 15 extern int disp_align; |
83 | 16 |
221 | 17 #define USE_CREG (-1) |
320 | 18 #define ASM_INPUT 1 |
19 #define ASM_OUTPUT 2 | |
20 #define ASM_USED 3 | |
21 #define MAX_ASM_REG 30 | |
61 | 22 |
327 | 23 /* used by mc-parse */ |
104 | 24 |
445 | 25 extern NMTBL * def(NMTBL *n,int ctmode); |
331 | 26 extern int arg_reorder(int arg,int new_arg); |
27 extern int assign_data(int e, int t, NMTBL *n,int offset); | |
28 extern int assign_expr(int e1,int e2,int t); | |
29 extern int assign_expr0(int e1,int e2,int t,int type0); | |
30 extern int assop(int e1,int e2,int op,int t,int no_float); | |
31 extern int backdef(void); | |
32 extern int binop(int op, int e1, int e2, int t1, int t2); | |
33 extern int cexpr(int e); | |
34 extern int cond(int t,int e1,int e2,int e3); | |
35 extern int correct_type(int e,int t); | |
36 extern int csvalue(); | |
37 extern int function_type(int e1,int *dots); | |
38 extern int gexpr(int e1,int use0); | |
39 extern int indop(int e); | |
40 extern int integral(int t); | |
41 extern int new_lvar(int size); | |
42 extern int new_lvar0(int sz); | |
327 | 43 extern int rvalue(int e); |
44 extern int rvalue_t(int e,int t); | |
331 | 45 extern int search_struct_type(int type,char *name,int *dsp); |
46 extern int strop(int e,int ind); | |
137 | 47 extern void arg_register(NMTBL *fnptr); |
438
626d705471d5
Unexecuted code in conditional. Lazy jmp code generation.
kono
parents:
397
diff
changeset
|
48 extern int bexpr(int e1, char cond, int l1); |
626d705471d5
Unexecuted code in conditional. Lazy jmp code generation.
kono
parents:
397
diff
changeset
|
49 extern int bexpr_u(int e1, char cond, int l1); |
327 | 50 extern void checkret(void); |
51 extern void closing(); | |
52 extern void cmpdimm(int e, int csreg,int label,int cond); | |
331 | 53 extern void codegen_decl_init(); /* called before each declaration */ |
327 | 54 extern void codegen_init(); /* called only once */ |
55 extern void codegen_reinit(); /* called for each file */ | |
328 | 56 extern void data_closing(NMTBL *n); |
327 | 57 extern void def_label(int cslabel, int dlabel); |
58 extern void emit_init_vars(void); | |
331 | 59 extern void fcheck(NMTBL *n); |
327 | 60 extern void fdecl_struct(int fntype); |
61 extern void free_lvar(int disp); | |
456 | 62 extern void gen_comment(char *s); |
327 | 63 extern void gen_code_enter(char *name); |
64 extern void gen_code_enter1(int args); | |
65 extern void gen_code_leave(char *name); | |
66 extern void gen_enter(char *name); | |
67 extern void gen_enter1(); | |
331 | 68 extern void gen_jmp(int l); |
363 | 69 extern void gen_indirect_goto(int e1); |
327 | 70 extern void gen_leave(int control, char *name); |
331 | 71 extern void init_free_lvar_list(); |
72 extern void lcheck(int e); | |
73 extern void opening(char *filename); | |
74 extern void parallel_rassign(int assigns); | |
75 extern void replace_return_struct(int func,int left); | |
327 | 76 extern void ret(void); |
450
eaf9e2746c83
parallel assign for simple expr. (too complex solution)
kono
parents:
449
diff
changeset
|
77 extern void gen_ret(void); |
eaf9e2746c83
parallel assign for simple expr. (too complex solution)
kono
parents:
449
diff
changeset
|
78 extern void gen_label_call(int l); |
327 | 79 |
80 /* used by mc-cod-* */ | |
81 | |
82 extern int assign_expr0(int e1,int e2,int t,int type0) ; | |
438
626d705471d5
Unexecuted code in conditional. Lazy jmp code generation.
kono
parents:
397
diff
changeset
|
83 extern int b_expr(int e1, char cond, int l1,int err); |
327 | 84 extern int contains_p(int e,int (*p)(int)); |
449 | 85 extern int contains_p1(int arg,int e,int (*p)(int,int)); |
61 | 86 extern void fwddef(int l); |
327 | 87 extern int fwdlabel(void); |
88 extern int g_expr(int e1); | |
89 extern int g_expr0(int e1); | |
90 extern int g_expr_u(int e1); | |
456 | 91 extern int is_const(int e); |
463 | 92 extern int is_memory(int e); |
98 | 93 extern int is_code(NMTBL *fnptr); |
94 extern int is_function(NMTBL *fnptr); | |
453 | 95 extern int is_inline(NMTBL *fnptr); |
327 | 96 extern int scalar(int t); |
336 | 97 extern int make_mask(int from,int to); |
98 | |
341 | 99 extern void init_ptr_cache(); |
100 extern void clear_ptr_cache_reg(int r); | |
101 extern int last_ptr_cache(); | |
102 extern void clear_ptr_cache() ; | |
103 extern int get_ptr_cache(NMTBL *nptr); | |
61 | 104 |
366 | 105 extern int ilog(int i); |
106 | |
61 | 107 /* end */ |