diff options
Diffstat (limited to 'src/cmd/cc/cc.h')
-rw-r--r-- | src/cmd/cc/cc.h | 38 |
1 files changed, 22 insertions, 16 deletions
diff --git a/src/cmd/cc/cc.h b/src/cmd/cc/cc.h index af2339c97..c8aac1253 100644 --- a/src/cmd/cc/cc.h +++ b/src/cmd/cc/cc.h @@ -30,6 +30,7 @@ #include <libc.h> #include <bio.h> +#include <link.h> #ifndef EXTERN #define EXTERN extern @@ -48,13 +49,13 @@ typedef struct Type Type; typedef struct Funct Funct; typedef struct Decl Decl; typedef struct Io Io; -typedef struct Hist Hist; typedef struct Term Term; typedef struct Init Init; typedef struct Bits Bits; typedef struct Bvec Bvec; typedef struct Dynimp Dynimp; typedef struct Dynexp Dynexp; +typedef struct Var Var; typedef Rune TRune; /* target system type */ @@ -83,6 +84,14 @@ struct Bvec uint32 b[]; }; +struct Var +{ + vlong offset; + LSym* sym; + char name; + char etype; +}; + struct Node { Node* left; @@ -114,6 +123,7 @@ struct Node struct Sym { Sym* link; + LSym* lsym; Type* type; Type* suetag; Type* tenum; @@ -200,16 +210,6 @@ struct Io }; #define I ((Io*)0) -struct Hist -{ - Hist* link; - char* name; - int32 line; - int32 offset; -}; -#define H ((Hist*)0) -EXTERN Hist* hist; - struct Term { vlong mult; @@ -469,7 +469,6 @@ EXTERN int32 autoffset; EXTERN int blockno; EXTERN Decl* dclstack; EXTERN int debug[256]; -EXTERN Hist* ehist; EXTERN int32 firstbit; EXTERN Sym* firstarg; EXTERN Type* firstargtype; @@ -498,7 +497,6 @@ EXTERN int32 nsymb; EXTERN Biobuf outbuf; EXTERN Biobuf diagbuf; EXTERN char* outfile; -EXTERN char* pathname; EXTERN int peekc; EXTERN int32 stkoff; EXTERN Type* strf; @@ -508,8 +506,9 @@ EXTERN Sym* symstring; EXTERN int taggen; EXTERN Type* tfield; EXTERN Type* tufield; -EXTERN int thechar; -EXTERN char* thestring; +extern int thechar; +extern char* thestring; +extern LinkArch* thelinkarch; EXTERN Type* thisfn; EXTERN int32 thunk; EXTERN Type* types[NALLTYPES]; @@ -525,8 +524,11 @@ EXTERN int flag_largemodel; EXTERN int ncontin; EXTERN int canreach; EXTERN int warnreach; +EXTERN int nacl; EXTERN Bits zbits; EXTERN Fmt pragcgobuf; +EXTERN Biobuf bstdout; +EXTERN Var var[NVAR]; extern char *onames[], *tnames[], *gnames[]; extern char *cnames[], *qnames[], *bnames[]; @@ -556,6 +558,7 @@ extern uchar typechlpfd[]; EXTERN uchar* typeword; EXTERN uchar* typecmplx; +EXTERN Link* ctxt; extern uint32 thash1; extern uint32 thash2; @@ -603,6 +606,7 @@ int FNconv(Fmt*); int Oconv(Fmt*); int Qconv(Fmt*); int VBconv(Fmt*); +int Bconv(Fmt*); void setinclude(char*); /* @@ -612,7 +616,6 @@ void dodefine(char*); void domacro(void); Sym* getsym(void); int32 getnsn(void); -void linehist(char*, int); void macdef(void); void macprag(void); void macend(void); @@ -731,6 +734,7 @@ void diag(Node*, char*, ...); void warn(Node*, char*, ...); void yyerror(char*, ...); void fatal(Node*, char*, ...); +LSym* linksym(Sym*); /* * acid.c @@ -791,6 +795,7 @@ int32 exreg(Type*); int32 align(int32, Type*, int, int32*); int32 maxround(int32, int32); int hasdotdotdot(void); +void linkarchinit(void); extern schar ewidth[]; @@ -814,6 +819,7 @@ int machcap(Node*); #pragma varargck argpos diag 2 #pragma varargck argpos yyerror 1 +#pragma varargck type "B" Bits #pragma varargck type "F" Node* #pragma varargck type "L" int32 #pragma varargck type "Q" int32 |