aboutsummaryrefslogtreecommitdiff
path: root/src/sync
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2014-09-16 20:53:38 -0400
committerRuss Cox <rsc@golang.org>2014-09-16 20:53:38 -0400
commitcbf97d9103b2bbfb8c798f06c751e74093062b57 (patch)
tree5efd46af66ea3c364354b8e5e010bd777ce4764d /src/sync
parentda8cf5438aa676a99e8bb55c94011b2581743e1a (diff)
downloadgo-cbf97d9103b2bbfb8c798f06c751e74093062b57.tar.xz
liblink, sync/atomic: fix arm build
The liblink code to insert the FUNCDATA for a stack map from the Go prototype was not correct for ARM (different data structure layout). Also, sync/atomic was missing some Go prototypes for ARM-specific functions. TBR=r CC=golang-codereviews https://golang.org/cl/143160045
Diffstat (limited to 'src/sync')
-rw-r--r--src/sync/atomic/64bit_arm.go6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/sync/atomic/64bit_arm.go b/src/sync/atomic/64bit_arm.go
index c08f214c7e..0aab7160e9 100644
--- a/src/sync/atomic/64bit_arm.go
+++ b/src/sync/atomic/64bit_arm.go
@@ -44,3 +44,9 @@ func swapUint64(addr *uint64, new uint64) (old uint64) {
}
return
}
+
+// Additional ARM-specific assembly routines.
+// Declaration here to give assembly routines correct stack maps for arguments.
+func armCompareAndSwapUint32(addr *uint32, old, new uint32) (swapped bool)
+func armCompareAndSwapUint64(addr *uint64, old, new uint64) (swapped bool)
+func generalCAS64(addr *uint64, old, new uint64) (swapped bool)