summaryrefslogtreecommitdiff
path: root/libgo
diff options
context:
space:
mode:
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2013-02-20 19:45:10 +0000
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2013-02-20 19:45:10 +0000
commit27db653a7db25de172a76d7ef858f8f8a7fa273a (patch)
treed2cb694dccc6fef5094447628318832c5ff9dc7c /libgo
parent16473e06609d33f201709a174a66355b81859f60 (diff)
downloadgcc-27db653a7db25de172a76d7ef858f8f8a7fa273a.tar.gz
PR go/56320
runtime: Support Solaris AMD64 in lfstack. The address space layout is similar on SPARC64 and AMD64 when running Solaris. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196179 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgo')
-rw-r--r--libgo/runtime/lfstack.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/libgo/runtime/lfstack.c b/libgo/runtime/lfstack.c
index 00b60081e88..230ed87c43f 100644
--- a/libgo/runtime/lfstack.c
+++ b/libgo/runtime/lfstack.c
@@ -17,9 +17,10 @@
#define PTR_MASK ((1ull<<PTR_BITS)-1)
#define CNT_MASK (0ull-1)
-#if __SIZEOF_POINTER__ == 8 && defined(__sparc__)
-// SPARC64 uses all 64 bits of virtual addresses. Use low-order three
-// bits as ABA counter.
+#if __SIZEOF_POINTER__ == 8 && (defined(__sparc__) || (defined(__sun__) && defined(__amd64__)))
+// 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