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/pkg/runtime/runtime.h | |
| 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/pkg/runtime/runtime.h')
| -rw-r--r-- | src/pkg/runtime/runtime.h | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/pkg/runtime/runtime.h b/src/pkg/runtime/runtime.h index 811ec76653..f405287aa8 100644 --- a/src/pkg/runtime/runtime.h +++ b/src/pkg/runtime/runtime.h @@ -407,10 +407,10 @@ struct Func // TODO: Remove these fields. int32 args; // in/out args size - int32 locals; // locals size + int32 x1; // locals size int32 frame; // legacy frame size; use pcsp if possible - int32 ptrsoff; - int32 ptrslen; + int32 x2; + int32 x3; int32 pcsp; int32 pcfile; @@ -677,10 +677,9 @@ struct Stkframe uintptr lr; // program counter at caller aka link register uintptr sp; // stack pointer at pc uintptr fp; // stack pointer at caller aka frame pointer + byte* varp; // top of local variables byte* argp; // pointer to function arguments uintptr arglen; // number of bytes at argp - byte* varp; // pointer to local variables - uintptr varlen; // number of bytes at varp }; int32 runtime·gentraceback(uintptr, uintptr, uintptr, G*, int32, uintptr*, int32, void(*)(Stkframe*, void*), void*, bool); @@ -856,6 +855,7 @@ void runtime·netpollready(G**, PollDesc*, int32); void runtime·crash(void); void runtime·parsedebugvars(void); void _rt0_go(void); +void* runtime·funcdata(Func*, int32); #pragma varargck argpos runtime·printf 1 #pragma varargck type "c" int32 |
