view mc-codegen.h @ 83:f3f75911d62c

*** empty log message ***
author kono
date Wed, 05 Mar 2003 03:41:08 +0900 (2003-03-04)
parents f94ca1168520
children 917947ffeb7c
line wrap: on
line source

/* max stack in an expression (for each int, float ) */
#define MAX_MAX 10

extern int  creg;     /* current register */
extern int  dreg;     /* temporary register */
extern int  reg_sp;   /* REGister Stack-Pointer */

extern int rname[MAX_MAX];
extern int regs[MAX_MAX];       /* �Ȥ��Ƥ���쥸�����򼨤��ե饰 */
extern int reg_stack[MAX_MAX];  /* �ºݤΥ쥸�������ΰ� */
extern int regv[MAX_MAX];       /* �ͤ����äƤ��뤫�ɤ��� */

/* floating point registers */

extern int  freg;     /* current floating point register */
extern int  greg;     /* current floating point register */
extern int  freg_sp;  /* floating point REGister Stack-Pointer */

extern int frname[MAX_MAX];
extern int fregs[MAX_MAX];      /* �Ȥ��Ƥ���쥸�����򼨤��ե饰 */
extern int freg_stack[MAX_MAX]; /* �ºݤΥ쥸�������ΰ� */
extern int fregv[MAX_MAX];      /* �ͤ����äƤ��뤫�ɤ��� */

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

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

extern void def_label(int cslabel, int dlabel);
extern int backdef(void);
extern int csvalue();
extern int free_register_count(void);
extern int fwdlabel(void);
extern int get_register(void);
extern int pop_register(void);
extern int register_full(void);
extern int virtual(int real);
extern void use_register_var(int i) ;
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 emit_pop_free(int xreg);
extern void free_all_register(void);
extern void free_register(int i);
extern void fwddef(int l);

extern int csvalue();
extern void cmpdimm(int e, int csreg);
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 void g_expr(int e1);
extern void gen_comment(char *s);
extern void gen_gdecl(char *n, int gpc);
extern void gen_source(char *s);
extern void gexpr(int e1,int use);
extern void gexpr_init(void);
extern void jcond(int l, char cond);
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 use_register_var(int);
extern void arg_register(NMTBL *);
extern void creg_destroy();
extern void regvar_creg(int);

/* floating point */

extern void dassop(int e1);
extern void dmachinop(int e1);
extern void dassign(int e1);

/* end */