diff options
author | Russ Cox <rsc@golang.org> | 2009-01-06 11:34:02 -0800 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2009-01-06 11:34:02 -0800 |
commit | 4e7f479e4451fded4d4228ae439fe1e7a7eac440 (patch) | |
tree | d93097d45db8e1e106cf45575380d8e788267854 | |
parent | e2569c5a134802141a43dd44113893538db86220 (diff) | |
download | golang-4e7f479e4451fded4d4228ae439fe1e7a7eac440.tar.gz |
make 8a, 8c, 8l build in go environment.
,s/int32/long/g in 8a, 8c, 8l.
delete dead code.
move enam.c, 8.out.h, mkenam from 8c to 8l.
R=r
DELTA=1850 (581 added, 983 deleted, 286 changed)
OCL=22119
CL=22129
-rw-r--r-- | src/cmd/8a/Makefile | 42 | ||||
-rw-r--r-- | src/cmd/8a/a.h | 48 | ||||
-rw-r--r-- | src/cmd/8a/a.y | 2 | ||||
-rw-r--r-- | src/cmd/8a/lex.c | 2 | ||||
-rw-r--r-- | src/cmd/8c/Makefile | 41 | ||||
-rw-r--r-- | src/cmd/8c/cgen.c | 12 | ||||
-rw-r--r-- | src/cmd/8c/cgen64.c | 96 | ||||
-rw-r--r-- | src/cmd/8c/div.c | 18 | ||||
-rw-r--r-- | src/cmd/8c/gc.h | 92 | ||||
-rw-r--r-- | src/cmd/8c/mul.c | 20 | ||||
-rw-r--r-- | src/cmd/8c/reg.c | 68 | ||||
-rw-r--r-- | src/cmd/8c/sgen.c | 4 | ||||
-rw-r--r-- | src/cmd/8c/swt.c | 46 | ||||
-rw-r--r-- | src/cmd/8c/txt.c | 16 | ||||
-rw-r--r-- | src/cmd/8l/8.out.h (renamed from src/cmd/8c/8.out.h) | 4 | ||||
-rw-r--r-- | src/cmd/8l/Makefile | 37 | ||||
-rw-r--r-- | src/cmd/8l/asm.c | 18 | ||||
-rw-r--r-- | src/cmd/8l/l.h | 94 | ||||
-rw-r--r-- | src/cmd/8l/mkenam (renamed from src/cmd/8c/mkenam) | 2 | ||||
-rw-r--r-- | src/cmd/8l/obj.c | 76 | ||||
-rw-r--r-- | src/cmd/8l/pass.c | 32 | ||||
-rw-r--r-- | src/cmd/8l/span.c | 36 |
22 files changed, 390 insertions, 416 deletions
diff --git a/src/cmd/8a/Makefile b/src/cmd/8a/Makefile new file mode 100644 index 000000000..690c6251d --- /dev/null +++ b/src/cmd/8a/Makefile @@ -0,0 +1,42 @@ +# Copyright 2009 The Go Authors. All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. + +include ../../Make.conf + +TARG=\ + 8a\ + +HFILES=\ + a.h\ + y.tab.h\ + ../8l/8.out.h\ + compat.h\ + +OFILES=\ + y.tab.$O\ + lex.$O\ + compat.$O\ + ../8l/enam.$O\ + +YFILES=\ + a.y\ + +$(TARG): $(OFILES) + $(LD) -o $(TARG) -L$(GOROOT)/lib $(OFILES) -lbio -l9 + +$(OFILES): $(HFILES) + +lex.$O: ../cc/macbody ../cc/lexbody + +y.tab.h: $(YFILES) + bison -y $(YFLAGS) $(YFILES) + +y.tab.c: y.tab.h + test -f y.tab.c && touch y.tab.c + +clean: + rm -f $(OFILES) $(TARG) *.6 enam.c 6.out a.out y.tab.h y.tab.c + +install: $(TARG) + cp $(TARG) $(BIN)/$(TARG) diff --git a/src/cmd/8a/a.h b/src/cmd/8a/a.h index 90d162ee8..8b5f7d9ef 100644 --- a/src/cmd/8a/a.h +++ b/src/cmd/8a/a.h @@ -28,9 +28,11 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. -#include <lib9.h> +#include <u.h> +#include <libc.h> #include <bio.h> -#include "../8c/8.out.h" +#include "../8l/8.out.h" +#include "compat.h" #ifndef EXTERN @@ -63,7 +65,7 @@ struct Sym Sym* link; Ref* ref; char* macro; - long value; + int32 value; ushort type; char *name; char sym; @@ -101,7 +103,7 @@ struct Gen { double dval; char sval[8]; - long offset; + int32 offset; Sym* sym; short type; short index; @@ -117,8 +119,8 @@ struct Hist { Hist* link; char* name; - long line; - long offset; + int32 line; + int32 offset; }; #define H ((Hist*)0) @@ -143,24 +145,24 @@ EXTERN char* include[NINCLUDE]; EXTERN Io* iofree; EXTERN Io* ionext; EXTERN Io* iostack; -EXTERN long lineno; +EXTERN int32 lineno; EXTERN int nerrors; -EXTERN long nhunk; +EXTERN int32 nhunk; EXTERN int ninclude; EXTERN Gen nullgen; EXTERN char* outfile; EXTERN int pass; EXTERN char* pathname; -EXTERN long pc; +EXTERN int32 pc; EXTERN int peekc; EXTERN int sym; EXTERN char symb[NSYMB]; EXTERN int thechar; EXTERN char* thestring; -EXTERN long thunk; +EXTERN int32 thunk; EXTERN Biobuf obuf; -void* allocn(void*, long, long); +void* allocn(void*, int32, int32); void errorexit(void); void pushio(void); void newio(void); @@ -168,7 +170,7 @@ void newfile(char*, int); Sym* slookup(char*); Sym* lookup(void); void syminit(Sym*); -long yylex(void); +int32 yylex(void); int getc(void); int getnsc(void); void unget(int); @@ -195,30 +197,10 @@ void maclin(void); void macif(int); void macend(void); void dodefine(char*); -void prfile(long); +void prfile(int32); void linehist(char*, int); void gethunk(void); void yyerror(char*, ...); int yyparse(void); void setinclude(char*); int assemble(char*); - -/* - * Posix.c/Inferno.c/Nt.c - */ -enum /* keep in synch with ../cc/cc.h */ -{ - Plan9 = 1<<0, - Unix = 1<<1, - Windows = 1<<2 -}; -int mywait(int*); -int mycreat(char*, int); -int systemtype(int); -int pathchar(void); -char* mygetwd(char*, int); -int myexec(char*, char*[]); -int mydup(int, int); -int myfork(void); -int mypipe(int*); -void* mysbrk(ulong); diff --git a/src/cmd/8a/a.y b/src/cmd/8a/a.y index 835400022..505defd28 100644 --- a/src/cmd/8a/a.y +++ b/src/cmd/8a/a.y @@ -33,7 +33,7 @@ %} %union { Sym *sym; - long lval; + int32 lval; double dval; char sval[8]; Gen gen; diff --git a/src/cmd/8a/lex.c b/src/cmd/8a/lex.c index 00f4472bc..8576f01b7 100644 --- a/src/cmd/8a/lex.c +++ b/src/cmd/8a/lex.c @@ -156,7 +156,7 @@ assemble(char *file) } } - of = mycreat(outfile, 0664); + of = mycreate(outfile, 0664); if(of < 0) { yyerror("%ca: cannot create %s", thechar, outfile); errorexit(); diff --git a/src/cmd/8c/Makefile b/src/cmd/8c/Makefile new file mode 100644 index 000000000..9893ef63f --- /dev/null +++ b/src/cmd/8c/Makefile @@ -0,0 +1,41 @@ +# Copyright 2009 The Go Authors. All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. + +include ../../Make.conf + +TARG=\ + 8c\ + +HFILES=\ + gc.h\ + ../8l/8.out.h\ + ../cc/cc.h\ + +OFILES=\ + cgen.$O\ + cgen64.$O\ + div.$O\ + list.$O\ + machcap.$O\ + mul.$O\ + peep.$O\ + reg.$O\ + sgen.$O\ + swt.$O\ + txt.$O\ + ../8l/enam.$O\ + +LIB=\ + ../cc/cc.a$O + +$(TARG): $(OFILES) $(LIB) + $(LD) -o $(TARG) -L$(GOROOT)/lib $(OFILES) $(LIB) -lbio -l9 + +$(OFILES): $(HFILES) + +clean: + rm -f $(OFILES) $(TARG) *.8 8.out a.out + +install: $(TARG) + cp $(TARG) $(BIN)/$(TARG) diff --git a/src/cmd/8c/cgen.c b/src/cmd/8c/cgen.c index cd2cc8136..8c5bf7b15 100644 --- a/src/cmd/8c/cgen.c +++ b/src/cmd/8c/cgen.c @@ -39,7 +39,7 @@ cgen(Node *n, Node *nn) Prog *p1; Node nod, nod1, nod2, nod3, nod4; int o, hardleft; - long v, curs; + int32 v, curs; vlong c; if(debug['g']) { @@ -1031,7 +1031,7 @@ cgen(Node *n, Node *nn) diag(n, "DOT and no offset"); break; } - nod.xoffset += (long)r->vconst; + nod.xoffset += (int32)r->vconst; nod.type = n->type; cgen(&nod, nn); break; @@ -1133,7 +1133,7 @@ void reglcgen(Node *t, Node *n, Node *nn) { Node *r; - long v; + int32 v; regialloc(t, n, nn); if(n->op == OIND) { @@ -1217,7 +1217,7 @@ boolgen(Node *n, int true, Node *nn) int o; Prog *p1, *p2; Node *l, *r, nod, nod1; - long curs; + int32 curs; if(debug['g']) { prtree(nn, "boolgen lhs"); @@ -1429,7 +1429,7 @@ boolgen(Node *n, int true, Node *nn) } void -sugen(Node *n, Node *nn, long w) +sugen(Node *n, Node *nn, int32 w) { Prog *p1; Node nod0, nod1, nod2, nod3, nod4, *h, *l, *r; @@ -1500,7 +1500,7 @@ sugen(Node *n, Node *nn, long w) diag(n, "DOT and no offset"); break; } - nod1.xoffset += (long)r->vconst; + nod1.xoffset += (int32)r->vconst; nod1.type = n->type; sugen(&nod1, nn, w); break; diff --git a/src/cmd/8c/cgen64.c b/src/cmd/8c/cgen64.c index 75f87f91e..ce1512c51 100644 --- a/src/cmd/8c/cgen64.c +++ b/src/cmd/8c/cgen64.c @@ -54,22 +54,22 @@ vaddr(Node *n, int a) return 0; } -long +int32 hi64v(Node *n) { if(align(0, types[TCHAR], Aarg1)) /* isbigendian */ - return (long)(n->vconst) & ~0L; + return (int32)(n->vconst) & ~0L; else - return (long)((uvlong)n->vconst>>32) & ~0L; + return (int32)((uvlong)n->vconst>>32) & ~0L; } -long +int32 lo64v(Node *n) { if(align(0, types[TCHAR], Aarg1)) /* isbigendian */ - return (long)((uvlong)n->vconst>>32) & ~0L; + return (int32)((uvlong)n->vconst>>32) & ~0L; else - return (long)(n->vconst) & ~0L; + return (int32)(n->vconst) & ~0L; } Node * @@ -218,70 +218,6 @@ storepair(Node *n, Node *nn, int f) freepair(n); } -/* generate a cast t from n to tt */ -static void -cast(Node *n, Type *t, Node *nn) -{ - Node *r; - - r = new(OCAST, n, Z); - r->type = t; - sugen(r, nn, 8); -} - -static void -swapregs(Node *a, Node *b) -{ - int t; - - t = a->reg; - a->reg = b->reg; - b->reg = t; -} - -static void -swappairs(Node *a, Node *b) -{ - swapregs(a->left, b->left); - swapregs(a->right, b->right); -} - -static int -saveme(Node *n) -{ - int r; - - r = n->reg; - return r >= D_AX && r <= D_DI; -} - -static void -saveit(Node *n, Node *t, Node *r) -{ - Node nod; - - if(saveme(n)) { - t->reg = n->reg; - gins(AMOVL, t, r); - r->xoffset += SZ_LONG; - if(n->reg == D_AX) { - regalloc(&nod, n, Z); - regfree(n); - n->reg = nod.reg; - } - } -} - -static void -restoreit(Node *n, Node *t, Node *r) -{ - if(saveme(n)) { - t->reg = n->reg; - gins(AMOVL, r, t); - r->xoffset += SZ_LONG; - } -} - enum { /* 4 only, see WW */ @@ -349,26 +285,6 @@ vfunc(Node *n, Node *nn) return t; } -static int -forcereg(Node *d, int r, int o, Node *t) -{ - int a; - - if(d->reg != D_NONE) - diag(Z, "force alloc"); - d->reg = r; - a = 0; - if(reg[r]) { - reg[o]++; - regalloc(t, d, Z); - a = 1; - gins(AMOVL, d, t); - reg[o]--; - } - reg[r]++; - return a; -} - /* try to steal a reg */ static int getreg(Node **np, Node *t, int r) diff --git a/src/cmd/8c/div.c b/src/cmd/8c/div.c index 3be47730f..538e3522c 100644 --- a/src/cmd/8c/div.c +++ b/src/cmd/8c/div.c @@ -41,7 +41,7 @@ #define T32 TN(32) int -multiplier(ulong d, int p, uvlong *mp) +multiplier(uint32 d, int p, uvlong *mp) { int l; uvlong mlo, mhi, tlo, thi; @@ -67,7 +67,7 @@ multiplier(ulong d, int p, uvlong *mp) } int -sdiv(ulong d, ulong *mp, int *sp) +sdiv(uint32 d, uint32 *mp, int *sp) { int s; uvlong m; @@ -82,7 +82,7 @@ sdiv(ulong d, ulong *mp, int *sp) } int -udiv(ulong d, ulong *mp, int *sp, int *pp) +udiv(uint32 d, uint32 *mp, int *sp, int *pp) { int p, s; uvlong m; @@ -113,14 +113,14 @@ void sdivgen(Node *l, Node *r, Node *ax, Node *dx) { int a, s; - ulong m; + uint32 m; vlong c; c = r->vconst; if(c < 0) c = -c; a = sdiv(c, &m, &s); -//print("a=%d i=%ld s=%d m=%lux\n", a, (long)r->vconst, s, m); +//print("a=%d i=%ld s=%d m=%lux\n", a, (int32)r->vconst, s, m); gins(AMOVL, nodconst(m), ax); gins(AIMULL, l, Z); gins(AMOVL, l, ax); @@ -137,11 +137,11 @@ void udivgen(Node *l, Node *r, Node *ax, Node *dx) { int a, s, t; - ulong m; + uint32 m; Node nod; a = udiv(r->vconst, &m, &s, &t); -//print("a=%ud i=%ld p=%d s=%d m=%lux\n", a, (long)r->vconst, t, s, m); +//print("a=%ud i=%ld p=%d s=%d m=%lux\n", a, (int32)r->vconst, t, s, m); if(t != 0) { gins(AMOVL, l, ax); gins(ASHRL, nodconst(t), ax); @@ -184,7 +184,7 @@ sext(Node *d, Node *s, Node *l) } void -sdiv2(long c, int v, Node *l, Node *n) +sdiv2(int32 c, int v, Node *l, Node *n) { Node nod; @@ -206,7 +206,7 @@ sdiv2(long c, int v, Node *l, Node *n) } void -smod2(long c, int v, Node *l, Node *n) +smod2(int32 c, int v, Node *l, Node *n) { Node nod; diff --git a/src/cmd/8c/gc.h b/src/cmd/8c/gc.h index 866c1f94b..c30eb55bc 100644 --- a/src/cmd/8c/gc.h +++ b/src/cmd/8c/gc.h @@ -29,7 +29,7 @@ // THE SOFTWARE. #include "../cc/cc.h" -#include "../8c/8.out.h" +#include "../8l/8.out.h" /* * 8c/386 @@ -65,7 +65,7 @@ EXTERN struct struct Adr { - long offset; + int32 offset; double dval; char sval[NSNAME]; @@ -83,7 +83,7 @@ struct Prog Adr from; Adr to; Prog* link; - long lineno; + int32 lineno; short as; }; #define P ((Prog*)0) @@ -91,21 +91,21 @@ struct Prog struct Case { Case* link; - long val; - long label; + int32 val; + int32 label; char def; }; #define C ((Case*)0) struct C1 { - long val; - long label; + int32 val; + int32 label; }; struct Var { - long offset; + int32 offset; Sym* sym; char name; char etype; @@ -113,8 +113,8 @@ struct Var struct Reg { - long pc; - long rpo; /* reverse post ordering */ + int32 pc; + int32 rpo; /* reverse post ordering */ Bits set; Bits use1; @@ -127,11 +127,11 @@ struct Reg Bits regdiff; Bits act; - long regu; - long loop; /* could be shorter */ + int32 regu; + int32 loop; /* could be shorter */ Reg* log5; - long active; + int32 active; Reg* p1; Reg* p2; @@ -160,25 +160,25 @@ struct Rgn short regno; }; -EXTERN long breakpc; +EXTERN int32 breakpc; EXTERN Case* cases; EXTERN Node constnode; EXTERN Node fconstnode; -EXTERN long continpc; -EXTERN long curarg; -EXTERN long cursafe; +EXTERN int32 continpc; +EXTERN int32 curarg; +EXTERN int32 cursafe; EXTERN Prog* firstp; EXTERN Prog* lastp; -EXTERN long maxargsafe; +EXTERN int32 maxargsafe; EXTERN int mnstring; EXTERN int retok; EXTERN Node* nodrat; EXTERN Node* nodret; EXTERN Node* nodsafe; -EXTERN long nrathole; -EXTERN long nstring; +EXTERN int32 nrathole; +EXTERN int32 nstring; EXTERN Prog* p; -EXTERN long pc; +EXTERN int32 pc; EXTERN Node regnode; EXTERN Node fregnode0; EXTERN Node fregnode1; @@ -187,8 +187,8 @@ EXTERN Sym* symrathole; EXTERN Node znode; EXTERN Prog zprog; EXTERN int reg[D_NONE]; -EXTERN long exregoffset; -EXTERN long exfregoffset; +EXTERN int32 exregoffset; +EXTERN int32 exfregoffset; #define BLOAD(r) band(bnot(r->refbehind), r->refahead) #define BSTORE(r) band(bnot(r->calbehind), r->calahead) @@ -212,8 +212,8 @@ EXTERN Bits params; EXTERN Bits consts; EXTERN Bits addrs; -EXTERN long regbits; -EXTERN long exregbits; +EXTERN int32 regbits; +EXTERN int32 exregbits; EXTERN int change; EXTERN int suppress; @@ -223,9 +223,9 @@ EXTERN Reg* lastr; EXTERN Reg zreg; EXTERN Reg* freer; EXTERN Var var[NVAR]; -EXTERN long* idom; +EXTERN int32* idom; EXTERN Reg** rpo2r; -EXTERN long maxnr; +EXTERN int32 maxnr; extern char* anames[]; @@ -249,7 +249,7 @@ void reglcgen(Node*, Node*, Node*); void lcgen(Node*, Node*); void bcgen(Node*, int); void boolgen(Node*, int, Node*); -void sugen(Node*, Node*, long); +void sugen(Node*, Node*, int32); int needreg(Node*, int); /* @@ -268,7 +268,7 @@ void gclean(void); void nextpc(void); void gargs(Node*, Node*, Node*); void garg1(Node*, Node*, Node*, int, Node**); -Node* nodconst(long); +Node* nodconst(int32); Node* nodfconst(double); int nodreg(Node*, Node*, int); int isreg(Node*, int); @@ -288,7 +288,7 @@ void fgopcode(int, Node*, Node*, int, int); void gopcode(int, Type*, Node*, Node*); int samaddr(Node*, Node*); void gbranch(int); -void patch(Prog*, long); +void patch(Prog*, int32); int sconst(Node*); void gpseudo(int, Sym*, Node*); @@ -297,14 +297,14 @@ void gpseudo(int, Sym*, Node*); */ int swcmp(const void*, const void*); void doswit(Node*); -void swit1(C1*, int, long, Node*); +void swit1(C1*, int, int32, Node*); void cas(void); void bitload(Node*, Node*, Node*, Node*, Node*); void bitstore(Node*, Node*, Node*, Node*, Node*); -long outstring(char*, long); +int32 outstring(char*, int32); void nullwarn(Node*, Node*); -void sextern(Sym*, Node*, long, long); -void gextern(Sym*, Node*, long, long); +void sextern(Sym*, Node*, int32, int32); +void gextern(Sym*, Node*, int32, int32); void outcode(void); void ieeedtod(Ieee*, double); @@ -329,12 +329,12 @@ void regopt(Prog*); void addmove(Reg*, int, int, int); Bits mkvar(Reg*, Adr*); void prop(Reg*, Bits, Bits); -void loopit(Reg*, long); +void loopit(Reg*, int32); void synch(Reg*, Bits); -ulong allreg(ulong, Rgn*); +uint32 allreg(uint32, Rgn*); void paint1(Reg*, int); -ulong paint2(Reg*, int); -void paint3(Reg*, int, long, int); +uint32 paint2(Reg*, int); +void paint3(Reg*, int, int32, int); void addreg(Adr*, int); /* @@ -356,10 +356,10 @@ int copyau(Adr*, Adr*); int copysub(Adr*, Adr*, Adr*, int); int copysub1(Prog*, Adr*, Adr*, int); -long RtoB(int); -long FtoB(int); -int BtoR(long); -int BtoF(long); +int32 RtoB(int); +int32 FtoB(int); +int BtoR(int32); +int BtoF(int32); #define D_HI D_NONE #define D_LO D_NONE @@ -376,8 +376,8 @@ int cond(int); int com64(Node*); void com64init(void); void bool64(Node*); -long lo64v(Node*); -long hi64v(Node*); +int32 lo64v(Node*); +int32 hi64v(Node*); Node* lo64(Node*); Node* hi64(Node*); @@ -386,8 +386,8 @@ Node* hi64(Node*); */ void sdivgen(Node*, Node*, Node*, Node*); void udivgen(Node*, Node*, Node*, Node*); -void sdiv2(long, int, Node*, Node*); -void smod2(long, int, Node*, Node*); +void sdiv2(int32, int, Node*, Node*); +void smod2(int32, int, Node*, Node*); void mulgen(Type*, Node*, Node*); void genmuladd(Node*, Node*, int, Node*); void shiftit(Type*, Node*, Node*); diff --git a/src/cmd/8c/mul.c b/src/cmd/8c/mul.c index 06394cdd5..2b7332d54 100644 --- a/src/cmd/8c/mul.c +++ b/src/cmd/8c/mul.c @@ -40,7 +40,7 @@ struct Malg struct Mparam { - ulong value; + uint32 value; char alg; char neg; char shift; @@ -64,10 +64,10 @@ static Malg malgs[] = * return position of lowest 1 */ int -lowbit(ulong v) +lowbit(uint32 v) { int s, i; - ulong m; + uint32 m; s = 0; m = 0xFFFFFFFFUL; @@ -97,13 +97,13 @@ genmuladd(Node *d, Node *s, int m, Node *a) } void -mulparam(ulong m, Mparam *mp) +mulparam(uint32 m, Mparam *mp) { int c, i, j, n, o, q, s; int bc, bi, bn, bo, bq, bs, bt; char *p; - long u; - ulong t; + int32 u; + uint32 t; bc = bq = 10; bi = bn = bo = bs = bt = 0; @@ -122,7 +122,7 @@ mulparam(ulong m, Mparam *mp) u = -u; } n = lowbit(u); - t = (ulong)u >> n; + t = (uint32)u >> n; switch(i) { case 0: if(t == 1) { @@ -321,9 +321,9 @@ m2(int a) void shiftit(Type *t, Node *s, Node *d) { - long c; + int32 c; - c = (long)s->vconst & 31; + c = (int32)s->vconst & 31; switch(c) { case 0: break; @@ -336,7 +336,7 @@ shiftit(Type *t, Node *s, Node *d) } static int -mulgen1(ulong v, Node *n) +mulgen1(uint32 v, Node *n) { int i, o; Mparam *p; diff --git a/src/cmd/8c/reg.c b/src/cmd/8c/reg.c index 94b41534e..a94653fff 100644 --- a/src/cmd/8c/reg.c +++ b/src/cmd/8c/reg.c @@ -66,13 +66,13 @@ regopt(Prog *p) Reg *r, *r1, *r2; Prog *p1; int i, z; - long initpc, val, npc; - ulong vreg; + int32 initpc, val, npc; + uint32 vreg; Bits bit; struct { - long m; - long c; + int32 m; + int32 c; Reg* p; } log5[6], *lp; @@ -647,10 +647,10 @@ addmove(Reg *r, int bn, int rn, int f) print("%P\t.a%P\n", p, p1); } -ulong +uint32 doregbits(int r) { - ulong b; + uint32 b; b = 0; if(r >= D_INDIR) @@ -671,7 +671,7 @@ mkvar(Reg *r, Adr *a) { Var *v; int i, t, n, et, z; - long o; + int32 o; Bits bit; Sym *s; @@ -817,8 +817,8 @@ prop(Reg *r, Bits ref, Bits cal) * such a node is a loop head. * recursively, all preds with a greater rpo number are in the loop */ -long -postorder(Reg *r, Reg **rpo2r, long n) +int32 +postorder(Reg *r, Reg **rpo2r, int32 n) { Reg *r1; @@ -834,10 +834,10 @@ postorder(Reg *r, Reg **rpo2r, long n) return n; } -long -rpolca(long *idom, long rpo1, long rpo2) +int32 +rpolca(int32 *idom, int32 rpo1, int32 rpo2) { - long t; + int32 t; if(rpo1 == -1) return rpo2; @@ -858,7 +858,7 @@ rpolca(long *idom, long rpo1, long rpo2) } int -doms(long *idom, long r, long s) +doms(int32 *idom, int32 r, int32 s) { while(s > r) s = idom[s]; @@ -866,9 +866,9 @@ doms(long *idom, long r, long s) } int -loophead(long *idom, Reg *r) +loophead(int32 *idom, Reg *r) { - long src; + int32 src; src = r->rpo; if(r->p1 != R && doms(idom, src, r->p1->rpo)) @@ -880,7 +880,7 @@ loophead(long *idom, Reg *r) } void -loopmark(Reg **rpo2r, long head, Reg *r) +loopmark(Reg **rpo2r, int32 head, Reg *r) { if(r->rpo < head || r->active == head) return; @@ -893,14 +893,14 @@ loopmark(Reg **rpo2r, long head, Reg *r) } void -loopit(Reg *r, long nr) +loopit(Reg *r, int32 nr) { Reg *r1; - long i, d, me; + int32 i, d, me; if(nr > maxnr) { rpo2r = alloc(nr * sizeof(Reg*)); - idom = alloc(nr * sizeof(long)); + idom = alloc(nr * sizeof(int32)); maxnr = nr; } @@ -963,8 +963,8 @@ synch(Reg *r, Bits dif) } } -ulong -allreg(ulong b, Rgn *r) +uint32 +allreg(uint32 b, Rgn *r) { Var *v; int i; @@ -1007,7 +1007,7 @@ paint1(Reg *r, int bn) Reg *r1; Prog *p; int z; - ulong bb; + uint32 bb; z = bn/32; bb = 1L<<(bn%32); @@ -1087,10 +1087,10 @@ paint1(Reg *r, int bn) } } -ulong -regset(Reg *r, ulong bb) +uint32 +regset(Reg *r, uint32 bb) { - ulong b, set; + uint32 b, set; Adr v; int c; @@ -1106,10 +1106,10 @@ regset(Reg *r, ulong bb) return set; } -ulong -reguse(Reg *r, ulong bb) +uint32 +reguse(Reg *r, uint32 bb) { - ulong b, set; + uint32 b, set; Adr v; int c; @@ -1125,12 +1125,12 @@ reguse(Reg *r, ulong bb) return set; } -ulong +uint32 paint2(Reg *r, int bn) { Reg *r1; int z; - ulong bb, vreg, x; + uint32 bb, vreg, x; z = bn/32; bb = 1L << (bn%32); @@ -1186,12 +1186,12 @@ paint2(Reg *r, int bn) } void -paint3(Reg *r, int bn, long rb, int rn) +paint3(Reg *r, int bn, int32 rb, int rn) { Reg *r1; Prog *p; int z; - ulong bb; + uint32 bb; z = bn/32; bb = 1L << (bn%32); @@ -1265,7 +1265,7 @@ addreg(Adr *a, int rn) a->type = rn; } -long +int32 RtoB(int r) { @@ -1275,7 +1275,7 @@ RtoB(int r) } int -BtoR(long b) +BtoR(int32 b) { b &= 0xffL; diff --git a/src/cmd/8c/sgen.c b/src/cmd/8c/sgen.c index d7f56d51c..14bd32adb 100644 --- a/src/cmd/8c/sgen.c +++ b/src/cmd/8c/sgen.c @@ -93,7 +93,7 @@ codgen(Node *n, Node *nn) void supgen(Node *n) { - long spc; + int32 spc; Prog *sp; if(n == Z) @@ -114,7 +114,7 @@ gen(Node *n) Node *l, nod; Prog *sp, *spc, *spb; Case *cn; - long sbc, scc; + int32 sbc, scc; int f, o; loop: diff --git a/src/cmd/8c/swt.c b/src/cmd/8c/swt.c index 63866d56e..13e9a51e3 100644 --- a/src/cmd/8c/swt.c +++ b/src/cmd/8c/swt.c @@ -47,7 +47,7 @@ doswit(Node *n) { Case *c; C1 *q, *iq; - long def, nc, i; + int32 def, nc, i; def = 0; nc = 0; @@ -83,7 +83,7 @@ doswit(Node *n) } void -swit1(C1 *q, int nc, long def, Node *n) +swit1(C1 *q, int nc, int32 def, Node *n) { C1 *r; int i; @@ -132,7 +132,7 @@ void bitload(Node *b, Node *n1, Node *n2, Node *n3, Node *nn) { int sh; - long v; + int32 v; Node *l; /* @@ -170,7 +170,7 @@ bitload(Node *b, Node *n1, Node *n2, Node *n3, Node *nn) void bitstore(Node *b, Node *n1, Node *n2, Node *n3, Node *nn) { - long v; + int32 v; Node nod; int sh; @@ -194,10 +194,10 @@ bitstore(Node *b, Node *n1, Node *n2, Node *n3, Node *nn) regfree(n3); } -long -outstring(char *s, long n) +int32 +outstring(char *s, int32 n) { - long r; + int32 r; if(suppress) return nstring; @@ -219,12 +219,12 @@ outstring(char *s, long n) return r; } -long -outlstring(ushort *s, long n) +int32 +outlstring(ushort *s, int32 n) { char buf[2]; int c; - long r; + int32 r; if(suppress) return nstring; @@ -257,9 +257,9 @@ nullwarn(Node *l, Node *r) } void -sextern(Sym *s, Node *a, long o, long w) +sextern(Sym *s, Node *a, int32 o, int32 w) { - long e, lw; + int32 e, lw; for(e=0; e<w; e+=NSNAME) { lw = NSNAME; @@ -274,7 +274,7 @@ sextern(Sym *s, Node *a, long o, long w) } void -gextern(Sym *s, Node *a, long o, long w) +gextern(Sym *s, Node *a, int32 o, int32 w) { if(a->op == OCONST && typev[a->type->etype]) { gpseudo(ADATA, s, lo64(a)); @@ -477,7 +477,7 @@ void zname(Biobuf *b, Sym *s, int t) { char *n; - ulong sig; + uint32 sig; if(debug['T'] && t == D_EXTERN && s->sig != SIGDONE && s->type != types[TENUM] && s != symrathole){ sig = sign(s); @@ -506,7 +506,7 @@ zname(Biobuf *b, Sym *s, int t) void zaddr(Biobuf *b, Adr *a, int s) { - long l; + int32 l; int i, t; char *n; Ieee e; @@ -598,13 +598,13 @@ ieeedtod(Ieee *ieee, double native) fr = modf(fr*f, &ho); ieee->l = ho; ieee->l <<= 16; - ieee->l |= (long)(fr*f); + ieee->l |= (int32)(fr*f); } -long -align(long i, Type *t, int op) +int32 +align(int32 i, Type *t, int op) { - long o; + int32 o; Type *v; int w; @@ -661,17 +661,17 @@ align(long i, Type *t, int op) o = align(o, t, Ael2); break; } - o = round(o, w); + o = xround(o, w); if(debug['A']) print("align %s %ld %T = %ld\n", bnames[op], i, t, o); return o; } -long -maxround(long max, long v) +int32 +maxround(int32 max, int32 v) { v += SZ_LONG-1; if(v > max) - max = round(v, SZ_LONG); + max = xround(v, SZ_LONG); return max; } diff --git a/src/cmd/8c/txt.c b/src/cmd/8c/txt.c index 88c4b1715..5aab9dba9 100644 --- a/src/cmd/8c/txt.c +++ b/src/cmd/8c/txt.c @@ -173,7 +173,7 @@ nextpc(void) void gargs(Node *n, Node *tn1, Node *tn2) { - long regs; + int32 regs; Node fnxargs[20], *fnxp; regs = cursafe; @@ -259,7 +259,7 @@ garg1(Node *n, Node *tn1, Node *tn2, int f, Node **fnxp) } Node* -nodconst(long v) +nodconst(int32 v) { constnode.vconst = v; return &constnode; @@ -433,7 +433,7 @@ regind(Node *n, Node *nn) void naddr(Node *n, Adr *a) { - long v; + int32 v; a->type = D_NONE; if(n == Z) @@ -938,7 +938,7 @@ void doindex(Node *n) { Node nod, nod1; - long v; + int32 v; if(debug['Y']) prtree(n, "index"); @@ -1348,7 +1348,7 @@ gbranch(int o) } void -patch(Prog *op, long pc) +patch(Prog *op, int32 pc) { op->to.offset = pc; @@ -1374,7 +1374,7 @@ gpseudo(int a, Sym *s, Node *n) int sconst(Node *n) { - long v; + int32 v; if(n->op == OCONST && !typefd[n->type->etype]) { v = n->vconst; @@ -1384,7 +1384,7 @@ sconst(Node *n) return 0; } -long +int32 exreg(Type *t) { @@ -1415,7 +1415,7 @@ schar ewidth[NTYPE] = -1, /*[TUNION]*/ SZ_INT, /*[TENUM]*/ }; -long ncast[NTYPE] = +int32 ncast[NTYPE] = { 0, /*[TXXX]*/ BCHAR|BUCHAR, /*[TCHAR]*/ diff --git a/src/cmd/8c/8.out.h b/src/cmd/8l/8.out.h index e7d3f76d4..647c1dd59 100644 --- a/src/cmd/8c/8.out.h +++ b/src/cmd/8l/8.out.h @@ -468,8 +468,8 @@ enum typedef struct ieee Ieee; struct ieee { - long l; /* contains ls-man 0xffffffff */ - long h; /* contains sign 0x80000000 + int32 l; /* contains ls-man 0xffffffff */ + int32 h; /* contains sign 0x80000000 exp 0x7ff00000 ms-man 0x000fffff */ }; diff --git a/src/cmd/8l/Makefile b/src/cmd/8l/Makefile new file mode 100644 index 000000000..e11b6687a --- /dev/null +++ b/src/cmd/8l/Makefile @@ -0,0 +1,37 @@ +# Copyright 2009 The Go Authors. All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. + +include ../../Make.conf + +TARG=\ + 8l\ + +OFILES=\ + asm.$O\ + compat.$O\ + enam.$O\ + list.$O\ + obj.$O\ + optab.$O\ + pass.$O\ + span.$O\ + +HFILES=\ + l.h\ + ../8l/8.out.h\ + + +$(TARG): $(OFILES) + $(LD) -o $(TARG) -L$(GOROOT)/lib $(OFILES) -lbio -l9 + +$(OFILES): $(HFILES) + +enam.c: 8.out.h + sh mkenam + +clean: + rm -f $(OFILES) $(TARG) *.8 enam.c 8.out a.out + +install: $(TARG) + cp $(TARG) $(BIN)/$(TARG) diff --git a/src/cmd/8l/asm.c b/src/cmd/8l/asm.c index 87188967f..ecf84b7bd 100644 --- a/src/cmd/8l/asm.c +++ b/src/cmd/8l/asm.c @@ -32,7 +32,7 @@ #define Dbufslop 100 -long +int32 entryvalue(void) { char *a; @@ -74,7 +74,7 @@ void asmb(void) { Prog *p; - long v, magic; + int32 v, magic; int a; uchar *op1; @@ -335,7 +335,7 @@ asmb(void) } void -lput(long l) +lput(int32 l) { cput(l>>24); cput(l>>16); @@ -344,7 +344,7 @@ lput(long l) } void -lputl(long l) +lputl(int32 l) { cput(l); cput(l>>8); @@ -376,11 +376,11 @@ cflush(void) } void -datblk(long s, long n) +datblk(int32 s, int32 n) { Prog *p; char *cast; - long l, fl, j; + int32 l, fl, j; int i, c; memset(buf.dbuf, 0, n+Dbufslop); @@ -516,10 +516,10 @@ datblk(long s, long n) write(cout, buf.dbuf, n); } -long -rnd(long v, long r) +int32 +rnd(int32 v, int32 r) { - long c; + int32 c; if(r <= 0) return v; diff --git a/src/cmd/8l/l.h b/src/cmd/8l/l.h index 199811685..ed752125b 100644 --- a/src/cmd/8l/l.h +++ b/src/cmd/8l/l.h @@ -30,7 +30,7 @@ #include <lib9.h> #include <bio.h> -#include "../8c/8.out.h" +#include "../8l/8.out.h" #ifndef EXTERN #define EXTERN extern @@ -54,7 +54,7 @@ struct Adr { union { - long u0offset; + int32 u0offset; char u0scon[8]; Prog *u0cond; /* not used, but should be D_BRANCH */ Ieee u0ieee; @@ -65,7 +65,7 @@ struct Adr Sym* u1sym; } u1; short type; - char index; + uchar index; char scale; }; @@ -84,8 +84,8 @@ struct Prog Prog *forwd; Prog* link; Prog* pcond; /* work on this */ - long pc; - long line; + int32 pc; + int32 line; uchar mark; /* work on these */ uchar back; @@ -96,7 +96,7 @@ struct Auto { Sym* asym; Auto* link; - long aoffset; + int32 aoffset; short type; }; struct Sym @@ -108,8 +108,8 @@ struct Sym short frame; uchar subtype; ushort file; - long value; - long sig; + int32 value; + int32 sig; Sym* link; }; struct Optab @@ -232,15 +232,15 @@ EXTERN union #pragma varargck type "R" int #pragma varargck type "S" char* -EXTERN long HEADR; -EXTERN long HEADTYPE; -EXTERN long INITDAT; -EXTERN long INITRND; -EXTERN long INITTEXT; +EXTERN int32 HEADR; +EXTERN int32 HEADTYPE; +EXTERN int32 INITDAT; +EXTERN int32 INITRND; +EXTERN int32 INITTEXT; EXTERN char* INITENTRY; /* entry point */ EXTERN Biobuf bso; -EXTERN long bsssize; -EXTERN long casepc; +EXTERN int32 bsssize; +EXTERN int32 casepc; EXTERN int cbc; EXTERN char* cbp; EXTERN char* pcstr; @@ -251,13 +251,13 @@ EXTERN Prog* curp; EXTERN Prog* curtext; EXTERN Prog* datap; EXTERN Prog* edatap; -EXTERN long datsize; +EXTERN int32 datsize; EXTERN char debug[128]; EXTERN char literal[32]; EXTERN Prog* etextp; EXTERN Prog* firstp; -EXTERN char fnuxi8[8]; -EXTERN char fnuxi4[4]; +EXTERN uchar fnuxi8[8]; +EXTERN uchar fnuxi4[4]; EXTERN Sym* hash[NHASH]; EXTERN Sym* histfrog[MAXHIST]; EXTERN int histfrogp; @@ -266,29 +266,27 @@ EXTERN char* library[50]; EXTERN char* libraryobj[50]; EXTERN int libraryp; EXTERN int xrefresolv; -EXTERN char* hunk; -EXTERN char inuxi1[1]; -EXTERN char inuxi2[2]; -EXTERN char inuxi4[4]; -EXTERN char ycover[Ymax*Ymax]; +EXTERN uchar inuxi1[1]; +EXTERN uchar inuxi2[2]; +EXTERN uchar inuxi4[4]; +EXTERN uchar ycover[Ymax*Ymax]; EXTERN uchar* andptr; EXTERN uchar and[30]; EXTERN char reg[D_NONE]; EXTERN Prog* lastp; -EXTERN long lcsize; +EXTERN int32 lcsize; EXTERN int maxop; EXTERN int nerrors; -EXTERN long nhunk; -EXTERN long nsymbol; +EXTERN int32 nsymbol; EXTERN char* noname; EXTERN char* outfile; -EXTERN long pc; -EXTERN long spsize; +EXTERN int32 pc; +EXTERN int32 spsize; EXTERN Sym* symlist; -EXTERN long symsize; +EXTERN int32 symsize; EXTERN Prog* textp; -EXTERN long textsize; -EXTERN long thunk; +EXTERN int32 textsize; +EXTERN int32 thunk; EXTERN int version; EXTERN Prog zprg; EXTERN int dtype; @@ -310,7 +308,7 @@ int Dconv(Fmt*); int Pconv(Fmt*); int Rconv(Fmt*); int Sconv(Fmt*); -void addhist(long, int); +void addhist(int32, int); Prog* appendp(Prog*); void asmb(void); void asmdyn(void); @@ -318,41 +316,41 @@ void asmins(Prog*); void asmlc(void); void asmsp(void); void asmsym(void); -long atolwhex(char*); +int32 atolwhex(char*); Prog* brchain(Prog*); Prog* brloop(Prog*); void cflush(void); -void ckoff(Sym*, long); +void ckoff(Sym*, int32); Prog* copyp(Prog*); double cputime(void); -void datblk(long, long); +void datblk(int32, int32); void diag(char*, ...); void dodata(void); void doinit(void); void doprof1(void); void doprof2(void); void dostkoff(void); -void dynreloc(Sym*, ulong, int); -long entryvalue(void); +void dynreloc(Sym*, uint32, int); +int32 entryvalue(void); void errorexit(void); void export(void); -int find1(long, int); -int find2(long, int); +int find1(int32, int); +int find2(int32, int); void follow(void); void gethunk(void); void histtoauto(void); double ieeedtod(Ieee*); -long ieeedtof(Ieee*); +int32 ieeedtof(Ieee*); void import(void); -void ldobj(int, long, char*); +void ldobj(int, int32, char*); void loadlib(void); void listinit(void); Sym* lookup(char*, int); -void lput(long); -void lputl(long); +void lput(int32); +void lputl(int32); void main(int, char*[]); void mkfwd(void); -void* mysbrk(ulong); +void* mal(uint32); void nuxiinit(void); void objfile(char*); int opsize(Prog*); @@ -360,15 +358,15 @@ void patch(void); Prog* prg(void); void readundefs(char*, int); int relinv(int); -long reuse(Prog*, Sym*); -long rnd(long, long); +int32 reuse(Prog*, Sym*); +int32 rnd(int32, int32); void s8put(char*); void span(void); void undef(void); void undefsym(Sym*); -long vaddr(Adr*); +int32 vaddr(Adr*); void wputb(ushort); -void xdefine(char*, int, long); +void xdefine(char*, int, int32); void xfol(Prog*); int zaddr(uchar*, Adr*, Sym*[]); void zerosig(char*); diff --git a/src/cmd/8c/mkenam b/src/cmd/8l/mkenam index a40140c92..b33fec7cc 100644 --- a/src/cmd/8c/mkenam +++ b/src/cmd/8l/mkenam @@ -28,7 +28,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -ed - ../8c/8.out.h <<'!' +ed - ../8l/8.out.h <<'!' v/^ A/d ,s/^ A/ "/ g/ .*$/s/// diff --git a/src/cmd/8l/obj.c b/src/cmd/8l/obj.c index 9bdf55638..388c30097 100644 --- a/src/cmd/8l/obj.c +++ b/src/cmd/8l/obj.c @@ -354,7 +354,7 @@ void loadlib(void) { int i; - long h; + int32 h; Sym *s; loop: @@ -386,7 +386,7 @@ errorexit(void) void objfile(char *file) { - long off, esym, cnt, l; + int32 off, esym, cnt, l; int f, work; Sym *s; char magbuf[SARMAG]; @@ -494,7 +494,7 @@ int zaddr(uchar *p, Adr *a, Sym *h[]) { int c, t, i; - long l; + int32 l; Sym *s; Auto *u; @@ -553,12 +553,7 @@ zaddr(uchar *p, Adr *a, Sym *h[]) } } - while(nhunk < sizeof(Auto)) - gethunk(); - u = (Auto*)hunk; - nhunk -= sizeof(Auto); - hunk += sizeof(Auto); - + u = mal(sizeof(Auto)); u->link = curauto; curauto = u; u->asym = s; @@ -636,7 +631,7 @@ addlib(char *obj) } void -addhist(long line, int type) +addhist(int32 line, int type) { Auto *u; Sym *s; @@ -737,14 +732,14 @@ readsome(int f, uchar *buf, uchar *good, uchar *stop, int max) } void -ldobj(int f, long c, char *pn) +ldobj(int f, int32 c, char *pn) { - long ipc; + int32 ipc; Prog *p, *t; uchar *bloc, *bsize, *stop; int v, o, r, skip; Sym *h[NSYM], *s, *di; - ulong sig; + uint32 sig; static int files; static char **filen; char **nfilen; @@ -848,12 +843,7 @@ loop: goto loop; } - while(nhunk < sizeof(Prog)) - gethunk(); - p = (Prog*)hunk; - nhunk -= sizeof(Prog); - hunk += sizeof(Prog); - + p = mal(sizeof(*p)); p->as = o; p->line = bloc[2] | (bloc[3] << 8) | (bloc[4] << 16) | (bloc[5] << 24); p->back = 2; @@ -1096,7 +1086,7 @@ lookup(char *symb, int v) { Sym *s; char *p; - long h; + int32 h; int l, c; h = v; @@ -1111,12 +1101,7 @@ lookup(char *symb, int v) if(memcmp(s->name, symb, l) == 0) return s; - while(nhunk < sizeof(Sym)) - gethunk(); - s = (Sym*)hunk; - nhunk -= sizeof(Sym); - hunk += sizeof(Sym); - + s = mal(sizeof(Sym)); s->name = malloc(l + 1); memmove(s->name, symb, l); @@ -1135,12 +1120,7 @@ prg(void) { Prog *p; - while(nhunk < sizeof(Prog)) - gethunk(); - p = (Prog*)hunk; - nhunk -= sizeof(Prog); - hunk += sizeof(Prog); - + p = mal(sizeof(Prog)); *p = zprg; return p; } @@ -1168,32 +1148,10 @@ appendp(Prog *q) } void -gethunk(void) -{ - char *h; - long nh; - - nh = NHUNK; - if(thunk >= 5L*NHUNK) { - nh = 5L*NHUNK; - if(thunk >= 25L*NHUNK) - nh = 25L*NHUNK; - } - h = mysbrk(nh); - if(h == (char*)-1) { - diag("out of memory"); - errorexit(); - } - hunk = h; - nhunk = nh; - thunk += nh; -} - -void doprof1(void) { Sym *s; - long n; + int32 n; Prog *p, *q; if(debug['v']) @@ -1377,7 +1335,7 @@ nuxiinit(void) } int -find1(long l, int c) +find1(int32 l, int c) { char *p; int i; @@ -1390,7 +1348,7 @@ find1(long l, int c) } int -find2(long l, int c) +find2(int32 l, int c) { short *p; int i; @@ -1405,11 +1363,11 @@ find2(long l, int c) return 0; } -long +int32 ieeedtof(Ieee *e) { int exp; - long v; + int32 v; if(e->h == 0) return 0; diff --git a/src/cmd/8l/pass.c b/src/cmd/8l/pass.c index 7f756b495..aa69c5849 100644 --- a/src/cmd/8l/pass.c +++ b/src/cmd/8l/pass.c @@ -36,7 +36,7 @@ dodata(void) int i; Sym *s; Prog *p; - long t, u; + int32 t, u; if(debug['v']) Bprint(&bso, "%5.2f dodata\n", cputime()); @@ -314,10 +314,10 @@ doinit(void) void patch(void) { - long c; + int32 c; Prog *p, *q; Sym *s; - long vexit; + int32 vexit; if(debug['v']) Bprint(&bso, "%5.2f mkfwd\n", cputime()); @@ -392,7 +392,7 @@ mkfwd(void) { Prog *p; int i; - long dwn[LOG], cnt[LOG]; + int32 dwn[LOG], cnt[LOG]; Prog *lst[LOG]; for(i=0; i<LOG; i++) { @@ -441,7 +441,7 @@ void dostkoff(void) { Prog *p, *q; - long autoffset, deltasp; + int32 autoffset, deltasp; int a, f, curframe, curbecome, maxbecome; curframe = 0; @@ -595,10 +595,10 @@ dostkoff(void) } } -long +int32 atolwhex(char *s) { - long n; + int32 n; int f; n = 0; @@ -666,7 +666,7 @@ import(void) } void -ckoff(Sym *s, long v) +ckoff(Sym *s, int32 v) { if(v < 0 || v >= 1<<Roffset) diag("relocation offset %ld for %s out of range", v, s->name); @@ -738,13 +738,13 @@ export(void) /* Bprint(&bso, "EXPORT: %s sig=%lux t=%d\n", s->name, s->sig, s->type); */ /* signature */ - p = newdata(et, off, sizeof(long), D_EXTERN); - off += sizeof(long); + p = newdata(et, off, sizeof(int32), D_EXTERN); + off += sizeof(int32); p->to.offset = s->sig; /* address */ - p = newdata(et, off, sizeof(long), D_EXTERN); - off += sizeof(long); + p = newdata(et, off, sizeof(int32), D_EXTERN); + off += sizeof(int32); p->to.type = D_ADDR; p->to.index = D_EXTERN; p->to.sym = s; @@ -766,8 +766,8 @@ export(void) } /* name */ - p = newdata(et, off, sizeof(long), D_EXTERN); - off += sizeof(long); + p = newdata(et, off, sizeof(int32), D_EXTERN); + off += sizeof(int32); p->to.type = D_ADDR; p->to.index = D_STATIC; p->to.sym = str; @@ -781,8 +781,8 @@ export(void) } for(i = 0; i < 3; i++){ - newdata(et, off, sizeof(long), D_EXTERN); - off += sizeof(long); + newdata(et, off, sizeof(int32), D_EXTERN); + off += sizeof(int32); } et->value = off; if(sv == 0) diff --git a/src/cmd/8l/span.c b/src/cmd/8l/span.c index a6f15772f..4b1cc6b45 100644 --- a/src/cmd/8l/span.c +++ b/src/cmd/8l/span.c @@ -34,7 +34,7 @@ void span(void) { Prog *p, *q; - long v, c, idat; + int32 v, c, idat; int m, n, again; xdefine("etext", STEXT, 0L); @@ -132,7 +132,7 @@ loop: } void -xdefine(char *p, int t, long v) +xdefine(char *p, int t, int32 v) { Sym *s; @@ -146,7 +146,7 @@ xdefine(char *p, int t, long v) } void -putsymb(char *s, int t, long v, int ver) +putsymb(char *s, int t, int32 v, int ver) { int i, f; @@ -256,9 +256,9 @@ asmsym(void) void asmlc(void) { - long oldpc, oldlc; + int32 oldpc, oldlc; Prog *p; - long v, s; + int32 v, s; oldpc = INITTEXT; oldlc = 0; @@ -336,7 +336,7 @@ asmlc(void) int oclass(Adr *a) { - long v; + int32 v; if(a->type >= D_INDIR || a->index != D_NONE) { if(a->index != D_NONE && a->scale == 0) { @@ -530,7 +530,7 @@ bad: } static void -put4(long v) +put4(int32 v) { if(dlm && curp != P && reloca != nil){ dynreloc(reloca->sym, curp->pc + andptr - &and[0], 1); @@ -543,11 +543,11 @@ put4(long v) andptr += 4; } -long +int32 vaddr(Adr *a) { int t; - long v; + int32 v; Sym *s; t = a->type; @@ -579,7 +579,7 @@ vaddr(Adr *a) void asmand(Adr *a, int r) { - long v; + int32 v; int t; Adr aa; @@ -851,7 +851,7 @@ doasm(Prog *p) Prog *q, pp; uchar *t; int z, op, ft, tt; - long v; + int32 v; o = &optab[p->as]; ft = oclass(&p->from) * Ymax; @@ -1279,7 +1279,7 @@ struct Reloc int n; int t; uchar *m; - ulong *a; + uint32 *a; }; Reloc rels; @@ -1289,26 +1289,26 @@ grow(Reloc *r) { int t; uchar *m, *nm; - ulong *a, *na; + uint32 *a, *na; t = r->t; r->t += 64; m = r->m; a = r->a; r->m = nm = malloc(r->t*sizeof(uchar)); - r->a = na = malloc(r->t*sizeof(ulong)); + r->a = na = malloc(r->t*sizeof(uint32)); memmove(nm, m, t*sizeof(uchar)); - memmove(na, a, t*sizeof(ulong)); + memmove(na, a, t*sizeof(uint32)); free(m); free(a); } void -dynreloc(Sym *s, ulong v, int abs) +dynreloc(Sym *s, uint32 v, int abs) { int i, k, n; uchar *m; - ulong *a; + uint32 *a; Reloc *r; if(s->type == SUNDEF) @@ -1353,7 +1353,7 @@ asmdyn() { int i, n, t, c; Sym *s; - ulong la, ra, *a; + uint32 la, ra, *a; vlong off; uchar *m; Reloc *r; |