]> Cypherpunks repositories - gostls13.git/commitdiff
sync/atomic: document that users must deal with 64-bit alignment
authorRuss Cox <rsc@golang.org>
Wed, 2 Jan 2013 20:44:00 +0000 (15:44 -0500)
committerRuss Cox <rsc@golang.org>
Wed, 2 Jan 2013 20:44:00 +0000 (15:44 -0500)
Update #599.

R=dvyukov, iant, minux.ma
CC=golang-dev
https://golang.org/cl/7001056

src/pkg/sync/atomic/doc.go

index 33e1bcf0aece101666f958ddb7b20cef641ad366..27a12c984884199b8ebaf927c528bd1140870fd0 100644 (file)
@@ -38,9 +38,12 @@ import (
        "unsafe"
 )
 
-// BUG(rsc): On ARM, the 64-bit functions use instructions unavailable before ARM 11.
+// BUG(rsc): On x86-32, the 64-bit functions use instructions unavailable before the Pentium MMX.
 //
-// On x86-32, the 64-bit functions use instructions unavailable before the Pentium MMX.
+// On both ARM and x86-32, it is the caller's responsibility to arrange for 64-bit
+// alignment of 64-bit words accessed atomically. The first word in a global
+// variable or in an allocated struct or slice can be relied upon to be
+// 64-bit aligned.
 
 // CompareAndSwapInt32 executes the compare-and-swap operation for an int32 value.
 func CompareAndSwapInt32(addr *int32, old, new int32) (swapped bool)