Change-Id: Ia18b8411bebc47ea71ac1acd9ff9dc570ec15dea
Reviewed-on: https://go-review.googlesource.com/2341
Reviewed-by: Dave Cheney <dave@cheney.net>
ADD R3, R1; \
ADD R3, R0; \
SUB R3, R2; \
-loop:
+loop: \
CMP $0, R2; \
B.EQ end; \
MOVBU.P 1(R1), R5; \
}
//go:nosplit
-func xchgp1(addr *unsafe.Pointer, v unsafe.Pointer) unsafe.Pointer {
+func xchgp1(addr unsafe.Pointer, v unsafe.Pointer) unsafe.Pointer {
for {
- old := *addr
- if casp1(addr, old, v) {
+ old := *(*unsafe.Pointer)(addr)
+ if casp1((*unsafe.Pointer)(addr), old, v) {
return old
}
}