view mc-codegen.h @ 412:6b3385124e5e arm-self-compile

ARM regsiter var pattern fix.
author kono
date Tue, 19 Oct 2004 23:39:42 +0900
parents 33a09aa401ba
children 626d705471d5
line wrap: on
line source

/* for mc-codegen.c */

extern int use;         /* generated value will be used in gexpr */
extern char *init_src;
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);
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 void bexpr(int e1, char cond, int l1);
extern void 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_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);

/* used by mc-cod-* */

extern int assign_expr0(int e1,int e2,int t,int type0) ;
extern void b_expr(int e1, char cond, int l1,int err);
extern int contains_p(int e,int (*p)(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_code(NMTBL *fnptr);
extern int is_function(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 */