📄 config.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 + -