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

📄 config.h

📁 lcc,一个可变目标c语言编译器的源码
💻 H
字号:
/* $Id: config.h,v 1.1 2002/08/28 23:12:42 drh Exp $ */typedef struct {	unsigned char max_unaligned_load;	Symbol (*rmap)(int);	void (*blkfetch)(int size, int off, int reg, int tmp);	void (*blkstore)(int size, int off, int reg, int tmp);	void (*blkloop)(int dreg, int doff,	                 int sreg, int soff,	                 int size, int tmps[]);	void (*_label)(Node);	int (*_rule)(void*, int);	short **_nts;	void (*_kids)(Node, int, Node*);	char **_string;	char **_templates;	char *_isinstruction;	char **_ntname;	void (*emit2)(Node);	void (*doarg)(Node);	void (*target)(Node);	void (*clobber)(Node);} Xinterface;extern int     askregvar(Symbol, Symbol);extern void    blkcopy(int, int, int, int, int, int[]);extern unsigned emitasm(Node, int);extern int     getregnum(Node);extern int     mayrecalc(Node);extern int     mkactual(int, int);extern void    mkauto(Symbol);extern Symbol  mkreg(char *, int, int, int);extern Symbol  mkwildcard(Symbol *);extern int     move(Node);extern int     notarget(Node);extern void    parseflags(int, char **);extern int     range(Node, int, int);extern unsigned regloc(Symbol);  /* omit */extern void    rtarget(Node, int, Symbol);extern void    setreg(Node, Symbol);extern void    spill(unsigned, int, Node);extern int     widens(Node);extern int      argoffset, maxargoffset;extern int      bflag, dflag;extern int      dalign, salign;extern int      framesize;extern unsigned freemask[], usedmask[];extern int      offset, maxoffset;extern int      swap;extern unsigned tmask[], vmask[];typedef struct {	unsigned listed:1;	unsigned registered:1;	unsigned emitted:1;	unsigned copy:1;	unsigned equatable:1;	unsigned spills:1;	unsigned mayrecalc:1;	void *state;	short inst;	Node kids[3];	Node prev, next;	Node prevuse;	short argno;} Xnode;typedef struct {	Symbol vbl;	short set;	short number;	unsigned mask;} *Regnode;enum { IREG=0, FREG=1 };typedef struct {	char *name;	unsigned int eaddr;  /* omit */	int offset;	Node lastuse;	int usecount;	Regnode regnode;	Symbol *wildcard;} Xsymbol;enum { RX=2 };typedef struct {	int offset;	unsigned freemask[2];} Env;#define LBURG_MAX SHRT_MAXenum { VREG=(44<<4) };/* Exported for the front end */extern void             blockbeg(Env *);extern void             blockend(Env *);extern void             emit(Node);extern Node             gen(Node);extern unsigned         emitbin(Node, int);#ifdef NDEBUG#define debug(x) (void)0#else#define debug(x) (void)(dflag&&((x),0))#endif

⌨️ 快捷键说明

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