diff options
| author | Russ Cox <rsc@golang.org> | 2013-07-19 16:04:09 -0400 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2013-07-19 16:04:09 -0400 |
| commit | 48769bf546ba7ad830c2edc05656e217d15a20c8 (patch) | |
| tree | e3110fce615f1250f56a7c68d69ade5ad3ff3bbb /src/cmd/8l/obj.c | |
| parent | 5d340de1f682d3b2cf10b2319c25ef3799e84078 (diff) | |
| download | go-48769bf546ba7ad830c2edc05656e217d15a20c8.tar.xz | |
runtime: use funcdata to supply garbage collection information
This CL introduces a FUNCDATA number for runtime-specific
garbage collection metadata, changes the C and Go compilers
to emit that metadata, and changes the runtime to expect it.
The old pseudo-instructions that carried this information
are gone, as is the linker code to process them.
R=golang-dev, dvyukov, cshapiro
CC=golang-dev
https://golang.org/cl/11406044
Diffstat (limited to 'src/cmd/8l/obj.c')
| -rw-r--r-- | src/cmd/8l/obj.c | 40 |
1 files changed, 0 insertions, 40 deletions
diff --git a/src/cmd/8l/obj.c b/src/cmd/8l/obj.c index 5e8988c9cb..8c84aaaea7 100644 --- a/src/cmd/8l/obj.c +++ b/src/cmd/8l/obj.c @@ -614,51 +614,12 @@ loop: pc++; goto loop; - case ALOCALS: - if(skip) - goto casdef; - cursym->locals = p->to.offset; - pc++; - goto loop; - case ATYPE: if(skip) goto casdef; pc++; goto loop; - case ANPTRS: - if(skip) - goto casdef; - if(cursym->nptrs != -1) { - diag("ldobj1: multiple pointer maps defined for %s", cursym->name); - errorexit(); - } - if(p->to.offset > cursym->args/PtrSize) { - diag("ldobj1: pointer map definition for %s exceeds its argument size", cursym->name); - errorexit(); - } - cursym->nptrs = p->to.offset; - if(cursym->nptrs != 0) - cursym->ptrs = mal((rnd(cursym->nptrs, 32) / 32) * sizeof(*cursym->ptrs)); - pc++; - goto loop; - - case APTRS: - if(skip) - goto casdef; - if(cursym->nptrs == -1 || cursym->ptrs == nil) { - diag("ldobj1: pointer map data provided for %s without a definition", cursym->name); - errorexit(); - } - if(p->from.offset*32 >= rnd(cursym->nptrs, 32)) { - diag("ldobj1: excessive pointer map data provided for %s", cursym->name); - errorexit(); - } - cursym->ptrs[p->from.offset] = p->to.offset; - pc++; - goto loop; - case ATEXT: s = p->from.sym; if(s->text != nil) { @@ -699,7 +660,6 @@ loop: s->hist = gethist(); s->value = pc; s->args = p->to.offset2; - s->nptrs = -1; lastp = p; p->pc = pc++; goto loop; |
