mirror of
https://github.com/golang/go
synced 2024-11-26 00:57:56 -07:00
runtime: update comment for the "extern register" variables g and m.
R=rsc, minux.ma, ality CC=dave, golang-dev https://golang.org/cl/6620050
This commit is contained in:
parent
5abf4bdc27
commit
90ad6a2d11
@ -82,19 +82,18 @@ typedef struct ParFor ParFor;
|
||||
typedef struct ParForThread ParForThread;
|
||||
|
||||
/*
|
||||
* per-cpu declaration.
|
||||
* Per-CPU declaration.
|
||||
*
|
||||
* "extern register" is a special storage class implemented by 6c, 8c, etc.
|
||||
* on machines with lots of registers, it allocates a register that will not be
|
||||
* used in generated code. on the x86, it allocates a slot indexed by a
|
||||
* segment register.
|
||||
* On the ARM, it is an actual register; elsewhere it is a slot in thread-
|
||||
* local storage indexed by a segment register. See zasmhdr in
|
||||
* src/cmd/dist/buildruntime.c for details, and be aware that the linker may
|
||||
* make further OS-specific changes to the compiler's output. For example,
|
||||
* 6l/linux rewrites 0(GS) as -16(FS).
|
||||
*
|
||||
* amd64: allocated downwards from R15
|
||||
* x86: allocated upwards from 0(GS)
|
||||
* arm: allocated downwards from R10
|
||||
*
|
||||
* every C file linked into a Go program must include runtime.h
|
||||
* so that the C compiler knows to avoid other uses of these registers.
|
||||
* the Go compilers know to avoid them.
|
||||
* Every C file linked into a Go program must include runtime.h so that the
|
||||
* C compiler (6c, 8c, etc.) knows to avoid other uses of these dedicated
|
||||
* registers. The Go compiler (6g, 8g, etc.) knows to avoid them.
|
||||
*/
|
||||
extern register G* g;
|
||||
extern register M* m;
|
||||
|
Loading…
Reference in New Issue
Block a user