diff options
author | Russ Cox <rsc@golang.org> | 2013-12-16 12:51:58 -0500 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2013-12-16 12:51:58 -0500 |
commit | 43cad0aa4d6d397630daa553bf4ed28a078637f0 (patch) | |
tree | ecb464b206a70772c61e514e72a3b14d4c776b71 /src/liblink/asm8.c | |
parent | 737d6de29569572e16839f9cf6d91cc1db75b622 (diff) | |
download | go-43cad0aa4d6d397630daa553bf4ed28a078637f0.tar.gz |
cmd/ld: move instruction selection + layout into compilers, assemblers
- new object file reader/writer (liblink/objfile.c)
- remove old object file writing routines
- add pcdata iterator
- remove all trace of "line number stack" and "path fragments" from
object files, linker (!!!)
- dwarf now writes a single "compilation unit" instead of one per package
This CL disables the check for chains of no-split functions that
could overflow the stack red zone. A future CL will attack the problem
of reenabling that check (issue 6931).
This CL is just the liblink and cmd/ld changes.
There are minor associated adjustments in CL 37030045.
Each depends on the other.
R=golang-dev, dave, iant
CC=golang-dev
https://codereview.appspot.com/39680043
Diffstat (limited to 'src/liblink/asm8.c')
-rw-r--r-- | src/liblink/asm8.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/liblink/asm8.c b/src/liblink/asm8.c index 624627656..e2ff530cc 100644 --- a/src/liblink/asm8.c +++ b/src/liblink/asm8.c @@ -155,11 +155,15 @@ static uchar ytext[] = }; static uchar ynop[] = { - Ynone, Ynone, Zpseudo,1, - Ynone, Yml, Zpseudo,1, - Ynone, Yrf, Zpseudo,1, - Yml, Ynone, Zpseudo,1, - Yrf, Ynone, Zpseudo,1, + Ynone, Ynone, Zpseudo,0, + Ynone, Yiauto, Zpseudo,0, + Ynone, Yml, Zpseudo,0, + Ynone, Yrf, Zpseudo,0, + Yiauto, Ynone, Zpseudo,0, + Ynone, Yxr, Zpseudo,0, + Yml, Ynone, Zpseudo,0, + Yrf, Ynone, Zpseudo,0, + Yxr, Ynone, Zpseudo,1, 0 }; static uchar yfuncdata[] = @@ -1255,6 +1259,7 @@ span8(Link *ctxt, LSym *s) sysfatal("bad code"); } } while(loop); + c += -c&(FuncAlign-1); s->size = c; if(0 /* debug['a'] > 1 */) { |