diff options
author | Ken Thompson <ken@golang.org> | 2008-11-18 19:24:37 -0800 |
---|---|---|
committer | Ken Thompson <ken@golang.org> | 2008-11-18 19:24:37 -0800 |
commit | 4bf15b40fa33e98c482ed71411673911f30ef25f (patch) | |
tree | bdb5dcac84a5eb0582a3a1cc2f6da58af50abc15 /src/cmd/6g/obj.c | |
parent | 6e160f185b07be86556fbbad266fc8203473b9a7 (diff) | |
download | golang-4bf15b40fa33e98c482ed71411673911f30ef25f.tar.gz |
first cut at optimizing
R=r
OCL=19564
CL=19564
Diffstat (limited to 'src/cmd/6g/obj.c')
-rw-r--r-- | src/cmd/6g/obj.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/cmd/6g/obj.c b/src/cmd/6g/obj.c index 20763cf38..38ba1ad58 100644 --- a/src/cmd/6g/obj.c +++ b/src/cmd/6g/obj.c @@ -90,6 +90,15 @@ dumpobj(void) } sym = 1; + // fix up pc + pcloc = 0; + for(pl=plist; pl!=nil; pl=pl->link) { + for(p=pl->firstpc; p!=P; p=p->link) { + p->loc = pcloc; + pcloc++; + } + } + // put out functions for(pl=plist; pl!=nil; pl=pl->link) { @@ -204,8 +213,13 @@ zaddr(Biobuf *b, Addr *a, int s) t |= T_SYM; switch(a->type) { + + case D_BRANCH: + a->offset = a->branch->loc; + default: t |= T_TYPE; + case D_NONE: if(a->offset != 0) { t |= T_OFFSET; |