Mercurial > hg > CbC > old > device
view mc-codegen.h @ 463:50a59dfb4606
inline continue...
author | kono |
---|---|
date | Sat, 04 Dec 2004 12:21:47 +0900 |
parents | b8f95294eb77 |
children | f84d4525ffc8 |
line wrap: on
line source
/* for mc-codegen.c */ extern int use; /* generated value will be used in gexpr */ extern char *init_src; /* internal defenition string for each file */ /* these architecture dependent values are defined in mc-code-*.c */ extern int size_of_int; extern int size_of_short; extern int size_of_float; extern int size_of_double; extern int size_of_longlong; extern int bit_of_byte; extern int endian; extern int disp_align; #define USE_CREG (-1) #define ASM_INPUT 1 #define ASM_OUTPUT 2 #define ASM_USED 3 #define MAX_ASM_REG 30 /* used by mc-parse */ extern NMTBL * def(NMTBL *n,int ctmode); extern int arg_reorder(int arg,int new_arg); extern int assign_data(int e, int t, NMTBL *n,int offset); extern int assign_expr(int e1,int e2,int t); extern int assign_expr0(int e1,int e2,int t,int type0); extern int assop(int e1,int e2,int op,int t,int no_float); extern int backdef(void); extern int binop(int op, int e1, int e2, int t1, int t2); extern int cexpr(int e); extern int cond(int t,int e1,int e2,int e3); extern int correct_type(int e,int t); extern int csvalue(); extern int function_type(int e1,int *dots); extern int gexpr(int e1,int use0); extern int indop(int e); extern int integral(int t); extern int new_lvar(int size); extern int new_lvar0(int sz); extern int rvalue(int e); extern int rvalue_t(int e,int t); extern int search_struct_type(int type,char *name,int *dsp); extern int strop(int e,int ind); extern void arg_register(NMTBL *fnptr); extern int bexpr(int e1, char cond, int l1); extern int bexpr_u(int e1, char cond, int l1); extern void checkret(void); extern void closing(); extern void cmpdimm(int e, int csreg,int label,int cond); extern void codegen_decl_init(); /* called before each declaration */ extern void codegen_init(); /* called only once */ extern void codegen_reinit(); /* called for each file */ extern void data_closing(NMTBL *n); extern void def_label(int cslabel, int dlabel); extern void emit_init_vars(void); extern void fcheck(NMTBL *n); extern void fdecl_struct(int fntype); extern void free_lvar(int disp); extern void gen_comment(char *s); extern void gen_code_enter(char *name); extern void gen_code_enter1(int args); extern void gen_code_leave(char *name); extern void gen_enter(char *name); extern void gen_enter1(); extern void gen_jmp(int l); extern void gen_indirect_goto(int e1); extern void gen_leave(int control, char *name); extern void init_free_lvar_list(); extern void lcheck(int e); extern void opening(char *filename); extern void parallel_rassign(int assigns); extern void replace_return_struct(int func,int left); extern void ret(void); extern void gen_ret(void); extern void gen_label_call(int l); /* used by mc-cod-* */ extern int assign_expr0(int e1,int e2,int t,int type0) ; extern int b_expr(int e1, char cond, int l1,int err); extern int contains_p(int e,int (*p)(int)); extern int contains_p1(int arg,int e,int (*p)(int,int)); extern void fwddef(int l); extern int fwdlabel(void); extern int g_expr(int e1); extern int g_expr0(int e1); extern int g_expr_u(int e1); extern int is_const(int e); extern int is_memory(int e); extern int is_code(NMTBL *fnptr); extern int is_function(NMTBL *fnptr); extern int is_inline(NMTBL *fnptr); extern int scalar(int t); extern int make_mask(int from,int to); extern void init_ptr_cache(); extern void clear_ptr_cache_reg(int r); extern int last_ptr_cache(); extern void clear_ptr_cache() ; extern int get_ptr_cache(NMTBL *nptr); extern int ilog(int i); /* end */