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 + -
显示快捷键?