view mc-codegen.h @ 320:183726ccd83d

asm minor fix. ia32 table jmp fix.
author kono
date Sat, 19 Jun 2004 00:13:36 +0900
parents 117baacd1ed0
children da2e3f2d127d
line wrap: on
line source

/* for mc-codegen.c */

extern int use;         /* generated value will be used in gexpr */

#define USE_CREG (-1)
#define ASM_INPUT	1
#define ASM_OUTPUT	2
#define ASM_USED	3
#define MAX_ASM_REG	30

/* function provided by mc-code-*.c */

extern int get_register_var(NMTBL *);
extern int get_dregister_var(NMTBL *,int);
extern int get_lregister_var(NMTBL *);

extern void arg_register(NMTBL *fnptr);

/* function provided by mc-codegen.c */

extern void codegen_init();

extern void def_label(int cslabel, int dlabel);
extern int backdef(void);
extern int free_register_count(int);
extern int fwdlabel(void);
extern void b_expr(int e1, char cond, int l1,int err);
extern void bexpr(int e1, char cond, int l1);
extern void emit_init(void);
extern void fwddef(int l);

extern int is_code(NMTBL *fnptr);
extern int is_function(NMTBL *fnptr);
extern int function_type(int e1,int *dots);
extern void parallel_rassign(int list);

extern int csvalue();
extern void cmpdimm(int e, int csreg,int label,int cond);
extern void code_enter(char *name) ;
extern void code_enter1(int args);
extern void code_init(void);
extern void code_leave(char *name) ;
extern void emit_data(int e, int t, NMTBL *n);
extern void emit_data_closing(NMTBL *n);
extern void emit_init(void);
extern void enter(char *name);
extern void enter1();
extern int g_expr(int e1);
extern int g_expr_u(int e1);
extern void gen_comment(char *s);
extern void gen_gdecl(char *n, int gpc);
extern void gen_source(char *s);
extern int gexpr(int e1,int use);
extern void gexpr_init(void);
extern void jmp(int l);
extern void jmp_eq_label(int l);
extern void jmp_label(int l);
extern void leave(int control, char *name);
extern void opening(char *filename);
extern void closing();
extern void ret(void);
extern void creg_destroy();

extern int contains(int e,int type);
extern int contains_in_list(int e,int type);
extern int contains_p(int e,int (*p)(int));
extern int contains_in_list_p(int e,int (*p)(int));


/* end */