c.h

来自「基于4个mips核的noc设计」· C头文件 代码 · 共 725 行 · 第 1/2 页

H
725
字号
			int size;			long *values;			Symbol *labels;		} swtch;	} u;};struct swtch {	Symbol sym;	int lab;	Symbol deflab;	int ncases;	int size;	long *values;	Symbol *labels;};struct symbol {	char *name;	int scope;	Coordinate src;	Symbol up;	List uses;	int sclass;	unsigned structarg:1;	unsigned addressed:1;	unsigned computed:1;	unsigned temporary:1;	unsigned generated:1;	unsigned defined:1;	Type type;	float ref;	union {		struct {			int label;			Symbol equatedto;		} l;		struct {			unsigned cfields:1;			unsigned vfields:1;			Table ftab;		/* omit */			Field flist;		} s;		int value;		Symbol *idlist;		struct {			Value min, max;		} limits;		struct {			Value v;			Symbol loc;		} c;		struct {			Coordinate pt;			int label;			int ncalls;			Symbol *callee;		} f;		int seg;		Symbol alias;		struct {			Node cse;			int replace;			Symbol next;		} t;	} u;	Xsymbol x;};enum { CONSTANTS=1, LABELS, GLOBAL, PARAM, LOCAL };struct tree {	int op;	Type type;	Tree kids[2];	Node node;	union {		Value v;		Symbol sym;		Field field;	} u;};enum {	AND=38<<4,	NOT=39<<4,	OR=40<<4,	COND=41<<4,	RIGHT=42<<4,	FIELD=43<<4};struct type {	int op;	Type type;	int align;	int size;	union {		Symbol sym;		struct {			unsigned oldstyle:1;			Type *proto;		} f;	} u;	Xtype x;};struct field {	char *name;	Type type;	int offset;	short bitsize;	short lsb;	Field link;};extern int assignargs;extern int prunetemps;extern int nodecount;extern Symbol cfunc;extern Symbol retv;extern Tree (*optree[])(int, Tree, Tree);extern char kind[];extern int errcnt;extern int errlimit;extern int wflag;extern Events events;extern float refinc;extern unsigned char *cp;extern unsigned char *limit;extern char *firstfile;extern char *file;extern char *line;extern int lineno;extern int t;extern char *token;extern Symbol tsym;extern Coordinate src;extern int Aflag;extern int Pflag;extern Symbol YYnull;extern Symbol YYcheck;extern int glevel;extern int xref;extern int ncalled;extern int npoints;extern int needconst;extern int explicitCast;extern struct code codehead;extern Code codelist;extern Table stmtlabs;extern float density;extern Table constants;extern Table externals;extern Table globals;extern Table identifiers;extern Table labels;extern Table types;extern int level;extern List loci, symbols;extern List symbols;extern int where;extern Type chartype;extern Type doubletype;extern Type floattype;extern Type inttype;extern Type longdouble;extern Type longtype;extern Type longlong;extern Type shorttype;extern Type signedchar;extern Type unsignedchar;extern Type unsignedlonglong;extern Type unsignedlong;extern Type unsignedshort;extern Type unsignedtype;extern Type charptype;extern Type funcptype;extern Type voidptype;extern Type voidtype;extern Type unsignedptr;extern Type signedptr;extern Type widechar;extern void  *allocate(unsigned long n, unsigned a);extern void deallocate(unsigned a);extern void *newarray(unsigned long m, unsigned long n, unsigned a);extern void walk(Tree e, int tlab, int flab);extern Node listnodes(Tree e, int tlab, int flab);extern Node newnode(int op, Node left, Node right, Symbol p);extern Tree cvtconst(Tree);extern void printdag(Node, int);extern void compound(int, Swtch, int);extern void defglobal(Symbol, int);extern void finalize(void);extern void program(void);extern Tree vcall(Symbol func, Type ty, ...);extern Tree addrof(Tree);extern Tree asgn(Symbol, Tree);extern Tree asgntree(int, Tree, Tree);extern Type assign(Type, Tree);extern Tree bittree(int, Tree, Tree);extern Tree call(Tree, Type, Coordinate);extern Tree calltree(Tree, Type, Tree, Symbol);extern Tree condtree(Tree, Tree, Tree);extern Tree cnsttree(Type, ...);extern Tree consttree(unsigned int, Type);extern Tree eqtree(int, Tree, Tree);extern int iscallb(Tree);extern Tree shtree(int, Tree, Tree);extern void typeerror(int, Tree, Tree);extern void test(int tok, char set[]);extern void expect(int tok);extern void skipto(int tok, char set[]);extern void error(const char *, ...);extern int fatal(const char *, const char *, int);extern void warning(const char *, ...);typedef void (*Apply)(void *, void *, void *);extern void attach(Apply, void *, List *);extern void apply(List event, void *arg1, void *arg2);extern Tree retype(Tree p, Type ty);extern Tree rightkid(Tree p);extern int hascall(Tree p);extern Type binary(Type, Type);extern Tree cast(Tree, Type);extern Tree cond(Tree);extern Tree expr0(int);extern Tree expr(int);extern Tree expr1(int);extern Tree field(Tree, const char *);extern char *funcname(Tree);extern Tree idtree(Symbol);extern Tree incr(int, Tree, Tree);extern Tree lvalue(Tree);extern Tree nullcall(Type, Symbol, Tree, Tree);extern Tree pointer(Tree);extern Tree rvalue(Tree);extern Tree value(Tree);extern void defpointer(Symbol);extern Type initializer(Type, int);extern void swtoseg(int);extern void input_init(int, char *[]);extern void fillbuf(void);extern void nextline(void);extern int getchr(void);extern int gettok(void);extern void emitcode(void);extern void gencode (Symbol[], Symbol[]);extern void fprint(FILE *f, const char *fmt, ...);extern char *stringf(const char *, ...);extern void check(Node);extern void print(const char *, ...);extern List append(void *x, List list);extern int  length(List list);extern void *ltov (List *list, unsigned a);extern void init(int, char *[]);extern Type typename(void);extern void checklab(Symbol p, void *cl);extern Type enumdcl(void);extern void main_init(int, char *[]);extern int main(int, char *[]);extern void vfprint(FILE *, char *, const char *, va_list);extern int process(char *);extern int findfunc(char *, char *);extern int findcount(char *, int, int);extern Tree constexpr(int);extern int intexpr(int, int);extern Tree simplify(int, Type, Tree, Tree);extern int ispow2(unsigned long u);extern int reachable(int);extern void addlocal(Symbol);extern void branch(int);extern Code code(int);extern void definelab(int);extern void definept(Coordinate *);extern void equatelab(Symbol, Symbol);extern Node jump(int);extern void retcode(Tree);extern void statement(int, Swtch, int);extern void swcode(Swtch, int *, int, int);extern void swgen(Swtch);extern char * string(const char *str);extern char *stringn(const char *str, int len);extern char *stringd(long n);extern Symbol relocate(const char *name, Table src, Table dst);extern void use(Symbol p, Coordinate src);extern void locus(Table tp, Coordinate *cp);extern Symbol allsymbols(Table);extern Symbol constant(Type, Value);extern void enterscope(void);extern void exitscope(void);extern Symbol findlabel(int);extern Symbol findtype(Type);extern void foreach(Table, int, void (*)(Symbol, void *), void *);extern Symbol genident(int, Type, int);extern int genlabel(int);extern Symbol install(const char *, Table *, int, int);extern Symbol intconst(int);extern Symbol lookup(const char *, Table);extern Symbol mkstr(char *);extern Symbol mksymbol(int, const char *, Type);extern Symbol newtemp(int, int, int);extern Table table(Table, int);extern Symbol temporary(int, Type);extern char *vtoa(Type, Value);extern int nodeid(Tree);extern char *opname(int);extern int *printed(int);extern void printtree(Tree, int);extern Tree root(Tree);extern Tree texpr(Tree (*)(int), int, int);extern Tree tree(int, Type, Tree, Tree);extern void type_init(int, char *[]);extern Type signedint(Type);extern int hasproto(Type);extern void outtype(Type, FILE *);extern void printdecl (Symbol p, Type ty);extern void printproto(Symbol p, Symbol args[]);extern char *typestring(Type ty, char *id);extern Field fieldref(const char *name, Type ty);extern Type array(Type, int, int);extern Type atop(Type);extern Type btot(int, int);extern Type compose(Type, Type);extern Type deref(Type);extern int eqtype(Type, Type, int);extern Field fieldlist(Type);extern Type freturn(Type);extern Type ftype(Type, Type);extern Type func(Type, Type *, int);extern Field newfield(char *, Type, Type);extern Type newstruct(int, char *);extern void printtype(Type, int);extern Type promote(Type);extern Type ptr(Type);extern Type qual(int, Type);extern void rmtypes(int);extern int ttob(Type);extern int variadic(Type);

⌨️ 快捷键说明

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