diff options
| author | Aram Hăvărneanu <aram@mgk.ro> | 2014-01-17 17:58:10 +1300 |
|---|---|---|
| committer | Joel Sing <jsing@google.com> | 2014-01-17 17:58:10 +1300 |
| commit | a46b43493154bf3c59ce634ee9557a0b273de5ce (patch) | |
| tree | 7ee539162b796ceb2188659aa6d2947f26e2f461 /src/pkg/runtime/lfstack.c | |
| parent | f8225bdb350f5c7d249f8ed090cf7543901612fa (diff) | |
| download | go-a46b43493154bf3c59ce634ee9557a0b273de5ce.tar.xz | |
runtime: add support for GOOS=solaris
R=alex.brainman, dave, jsing, gobot, rsc
CC=golang-codereviews
https://golang.org/cl/35990043
Diffstat (limited to 'src/pkg/runtime/lfstack.c')
| -rw-r--r-- | src/pkg/runtime/lfstack.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/pkg/runtime/lfstack.c b/src/pkg/runtime/lfstack.c index 140384d3dc..e94f360c24 100644 --- a/src/pkg/runtime/lfstack.c +++ b/src/pkg/runtime/lfstack.c @@ -17,6 +17,20 @@ #define PTR_MASK ((1ull<<PTR_BITS)-1) #define CNT_MASK (0ull-1) +#ifdef _64BIT +#ifdef GOOS_solaris +// SPARC64 and Solaris on AMD64 uses all 64 bits of virtual addresses. +// Use low-order three bits as ABA counter. +// http://docs.oracle.com/cd/E19120-01/open.solaris/816-5138/6mba6ua5p/index.html +#undef PTR_BITS +#undef CNT_MASK +#undef PTR_MASK +#define PTR_BITS 0 +#define CNT_MASK 7 +#define PTR_MASK ((0ull-1)<<3) +#endif +#endif + void runtime·lfstackpush(uint64 *head, LFNode *node) { |
