diff options
| author | Carl Shapiro <cshapiro@google.com> | 2013-05-28 17:59:10 -0700 |
|---|---|---|
| committer | Carl Shapiro <cshapiro@google.com> | 2013-05-28 17:59:10 -0700 |
| commit | 4e0a51c210ededa82809756ca1cc72b1fb1def8d (patch) | |
| tree | 73e39d7d22cc17088ea10bcd2bc0ce165b45ef0d /src/pkg/runtime/runtime.h | |
| parent | 8bbb08533dab0dcf627db0b76ba65c3fb9b1d682 (diff) | |
| download | go-4e0a51c210ededa82809756ca1cc72b1fb1def8d.tar.xz | |
cmd/5l, cmd/6l, cmd/8l, cmd/gc, runtime: generate and use bitmaps of argument pointer locations
With this change the compiler emits a bitmap for each function
covering its stack frame arguments area. If an argument word
is known to contain a pointer, a bit is set. The garbage
collector reads this information when scanning the stack by
frames and uses it to ignores locations known to not contain a
pointer.
R=golang-dev, bradfitz, daniel.morsing, dvyukov, khr, khr, iant, cshapiro
CC=golang-dev
https://golang.org/cl/9223046
Diffstat (limited to 'src/pkg/runtime/runtime.h')
| -rw-r--r-- | src/pkg/runtime/runtime.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/pkg/runtime/runtime.h b/src/pkg/runtime/runtime.h index 44cc0138c0..c7ade2beb5 100644 --- a/src/pkg/runtime/runtime.h +++ b/src/pkg/runtime/runtime.h @@ -412,6 +412,7 @@ struct Func int32 frame; // stack frame size int32 args; // in/out args size int32 locals; // locals size + Slice ptrs; // pointer map }; // layout of Itab known to compilers @@ -811,6 +812,7 @@ void runtime·netpollready(G**, PollDesc*, int32); void runtime·crash(void); #pragma varargck argpos runtime·printf 1 +#pragma varargck type "c" int32 #pragma varargck type "d" int32 #pragma varargck type "d" uint32 #pragma varargck type "D" int64 |
