view mc-codegen.h @ 456:b8f95294eb77

inline continue... if test passed.
author kono
date Wed, 01 Dec 2004 19:32:34 +0900
parents 1e5ca85d3f97
children 50a59dfb4606
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_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 */