⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 config.h

📁 unix环境下实现的cmm语言编译器
💻 H
字号:
typedef struct {	void (*emit2)(Node);	void (*doarg)(Node);	void (*target)(Node);} Xinterface;extern int      argoffset, maxargoffset;extern unsigned freemask;extern int      offset, maxoffset;extern Symbol   rmap[];typedef struct {	unsigned marked:1; 			/*标记结点已经标记过*/	unsigned isinstruction:1; 	/*标记结点是否需要生成指令*/	unsigned emitted:1;			/*标记结点已经发送代码*/	unsigned spills:1; 			/*标记结点已经溢出*/} Xnode;						/*dag结点的后端*/typedef struct {	Symbol vbl; 				/*指向寄存器变量的符号表入口*/	short number;				/*寄存器的编号*/	unsigned mask;} *Regnode;						/*标示寄存器*/typedef struct {	char *name;	int offset;					/*局部标示符在栈中的偏移值*/	Node lastuse;				/*指向最后使用寄存器的结点*/	Regnode regnode;		Symbol *wildcard;			/*通用寄存器组*/} Xsymbol;						/*符号的后端*/enum { RX=2 };typedef struct {	int offset;} Env;enum { VREG=(29<<3) };extern void             blockbeg(Env *);extern void             blockend(Env *);extern void             gen(Node);extern void				def_array_end(void);extern void				set_eax(Node p);extern void				set_edx(Node p);extern void				put_eax(void);extern void				put_edx(void);extern void				putreg(Symbol r);extern int				equal_reg(Node p, Node kid);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -