diff options
author | Russ Cox <rsc@golang.org> | 2014-05-15 16:31:20 -0400 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2014-05-15 16:31:20 -0400 |
commit | dd1660e00b795eea2e72f10301f0ec4f2d589fa2 (patch) | |
tree | 143747d6aac16d862c3cef8d4bd97f44c9ffb7f0 | |
parent | 313cd9d49910875f26360b846b32b3db7d21fcd0 (diff) | |
download | go-dd1660e00b795eea2e72f10301f0ec4f2d589fa2.tar.gz |
sync/atomic: fix unimportant assembly errors found by go vet
None of these are real bugs.
The variable name in the reference is not semantically meaningful,
except that 'go vet' will double check the offset against the name for you.
The stack sizes being corrected really are incorrect but they are also
in NOSPLIT functions so they typically don't matter.
Found by vet.
GOOS=linux GOARCH=amd64 go vet sync/atomic
GOOS=linux GOARCH=amd64p32 go vet sync/atomic
GOOS=linux GOARCH=386 go vet sync/atomic
GOOS=linux GOARCH=arm go vet sync/atomic
GOOS=freebsd GOARCH=arm go vet sync/atomic
GOOS=netbsd GOARCH=arm go vet sync/atomic
LGTM=r
R=r, bradfitz
CC=golang-codereviews
https://codereview.appspot.com/100500043
-rw-r--r-- | src/pkg/sync/atomic/asm_386.s | 14 | ||||
-rw-r--r-- | src/pkg/sync/atomic/asm_amd64.s | 4 | ||||
-rw-r--r-- | src/pkg/sync/atomic/asm_amd64p32.s | 14 | ||||
-rw-r--r-- | src/pkg/sync/atomic/asm_linux_arm.s | 12 | ||||
-rw-r--r-- | src/pkg/sync/atomic/export_linux_arm_test.go | 2 |
5 files changed, 23 insertions, 23 deletions
diff --git a/src/pkg/sync/atomic/asm_386.s b/src/pkg/sync/atomic/asm_386.s index eaa72eabb..807c2f873 100644 --- a/src/pkg/sync/atomic/asm_386.s +++ b/src/pkg/sync/atomic/asm_386.s @@ -13,7 +13,7 @@ TEXT ·SwapUint32(SB),NOSPLIT,$0-12 MOVL addr+0(FP), BP MOVL new+4(FP), AX XCHGL AX, 0(BP) - MOVL AX, new+8(FP) + MOVL AX, old+8(FP) RET TEXT ·SwapInt64(SB),NOSPLIT,$0-20 @@ -43,8 +43,8 @@ swaploop: // success // return DX:AX - MOVL AX, new_lo+12(FP) - MOVL DX, new_hi+16(FP) + MOVL AX, old_lo+12(FP) + MOVL DX, old_hi+16(FP) RET TEXT ·SwapUintptr(SB),NOSPLIT,$0-12 @@ -155,10 +155,10 @@ TEXT ·LoadUint32(SB),NOSPLIT,$0-8 MOVL AX, val+4(FP) RET -TEXT ·LoadInt64(SB),NOSPLIT,$0-16 +TEXT ·LoadInt64(SB),NOSPLIT,$0-12 JMP ·LoadUint64(SB) -TEXT ·LoadUint64(SB),NOSPLIT,$0-16 +TEXT ·LoadUint64(SB),NOSPLIT,$0-12 MOVL addr+0(FP), AX TESTL $7, AX JZ 2(PC) @@ -186,10 +186,10 @@ TEXT ·StoreUint32(SB),NOSPLIT,$0-8 XCHGL AX, 0(BP) RET -TEXT ·StoreInt64(SB),NOSPLIT,$0-16 +TEXT ·StoreInt64(SB),NOSPLIT,$0-12 JMP ·StoreUint64(SB) -TEXT ·StoreUint64(SB),NOSPLIT,$0-16 +TEXT ·StoreUint64(SB),NOSPLIT,$0-12 MOVL addr+0(FP), AX TESTL $7, AX JZ 2(PC) diff --git a/src/pkg/sync/atomic/asm_amd64.s b/src/pkg/sync/atomic/asm_amd64.s index 0900492dc..77afa129e 100644 --- a/src/pkg/sync/atomic/asm_amd64.s +++ b/src/pkg/sync/atomic/asm_amd64.s @@ -13,7 +13,7 @@ TEXT ·SwapUint32(SB),NOSPLIT,$0-20 MOVQ addr+0(FP), BP MOVL new+8(FP), AX XCHGL AX, 0(BP) - MOVL AX, new+16(FP) + MOVL AX, old+16(FP) RET TEXT ·SwapInt64(SB),NOSPLIT,$0-24 @@ -23,7 +23,7 @@ TEXT ·SwapUint64(SB),NOSPLIT,$0-24 MOVQ addr+0(FP), BP MOVQ new+8(FP), AX XCHGQ AX, 0(BP) - MOVQ AX, new+16(FP) + MOVQ AX, old+16(FP) RET TEXT ·SwapUintptr(SB),NOSPLIT,$0-24 diff --git a/src/pkg/sync/atomic/asm_amd64p32.s b/src/pkg/sync/atomic/asm_amd64p32.s index 4c602ab59..b24ae7a59 100644 --- a/src/pkg/sync/atomic/asm_amd64p32.s +++ b/src/pkg/sync/atomic/asm_amd64p32.s @@ -11,7 +11,7 @@ TEXT ·SwapUint32(SB),NOSPLIT,$0-12 MOVL addr+0(FP), BX MOVL new+4(FP), AX XCHGL AX, 0(BX) - MOVL AX, new+8(FP) + MOVL AX, old+8(FP) RET TEXT ·SwapInt64(SB),NOSPLIT,$0-24 @@ -24,13 +24,13 @@ TEXT ·SwapUint64(SB),NOSPLIT,$0-24 MOVL 0, BX // crash with nil ptr deref MOVQ new+8(FP), AX XCHGQ AX, 0(BX) - MOVQ AX, new+16(FP) + MOVQ AX, old+16(FP) RET -TEXT ·SwapUintptr(SB),NOSPLIT,$0-24 +TEXT ·SwapUintptr(SB),NOSPLIT,$0-12 JMP ·SwapUint32(SB) -TEXT ·SwapPointer(SB),NOSPLIT,$0-24 +TEXT ·SwapPointer(SB),NOSPLIT,$0-12 JMP ·SwapUint32(SB) TEXT ·CompareAndSwapInt32(SB),NOSPLIT,$0-17 @@ -45,10 +45,10 @@ TEXT ·CompareAndSwapUint32(SB),NOSPLIT,$0-17 SETEQ swapped+16(FP) RET -TEXT ·CompareAndSwapUintptr(SB),NOSPLIT,$0-25 +TEXT ·CompareAndSwapUintptr(SB),NOSPLIT,$0-17 JMP ·CompareAndSwapUint32(SB) -TEXT ·CompareAndSwapPointer(SB),NOSPLIT,$0-25 +TEXT ·CompareAndSwapPointer(SB),NOSPLIT,$0-17 JMP ·CompareAndSwapUint32(SB) TEXT ·CompareAndSwapInt64(SB),NOSPLIT,$0-25 @@ -82,7 +82,7 @@ TEXT ·AddUint32(SB),NOSPLIT,$0-12 TEXT ·AddUintptr(SB),NOSPLIT,$0-12 JMP ·AddUint32(SB) -TEXT ·AddInt64(SB),NOSPLIT,$0-12 +TEXT ·AddInt64(SB),NOSPLIT,$0-24 JMP ·AddUint64(SB) TEXT ·AddUint64(SB),NOSPLIT,$0-24 diff --git a/src/pkg/sync/atomic/asm_linux_arm.s b/src/pkg/sync/atomic/asm_linux_arm.s index b85ca0a13..27be57aa1 100644 --- a/src/pkg/sync/atomic/asm_linux_arm.s +++ b/src/pkg/sync/atomic/asm_linux_arm.s @@ -42,7 +42,7 @@ casagain: BCC cascheck MOVW $1, R0 casret: - MOVW R0, ret+12(FP) + MOVB R0, swapped+12(FP) RET cascheck: // Kernel lies; double-check. @@ -73,7 +73,7 @@ addloop1: ADD R4, R1 BL cas<>(SB) BCC addloop1 - MOVW R1, ret+8(FP) + MOVW R1, new+8(FP) RET TEXT ·AddUintptr(SB),NOSPLIT,$0 @@ -132,13 +132,13 @@ TEXT ·generalCAS64(SB),NOSPLIT,$20-21 BEQ 2(PC) MOVW R1, (R1) MOVW R0, 4(R13) - MOVW oldlo+4(FP), R1 + MOVW old_lo+4(FP), R1 MOVW R1, 8(R13) - MOVW oldhi+8(FP), R1 + MOVW old_hi+8(FP), R1 MOVW R1, 12(R13) - MOVW newlo+12(FP), R2 + MOVW new_lo+12(FP), R2 MOVW R2, 16(R13) - MOVW newhi+16(FP), R3 + MOVW new_hi+16(FP), R3 MOVW R3, 20(R13) BL runtime·cas64(SB) MOVB R0, ret+20(FP) diff --git a/src/pkg/sync/atomic/export_linux_arm_test.go b/src/pkg/sync/atomic/export_linux_arm_test.go index 8c0b5a75c..5cd43353e 100644 --- a/src/pkg/sync/atomic/export_linux_arm_test.go +++ b/src/pkg/sync/atomic/export_linux_arm_test.go @@ -4,6 +4,6 @@ package atomic -func generalCAS64(*uint64, uint64, uint64) bool +func generalCAS64(addr *uint64, old uint64, new uint64) bool var GeneralCAS64 = generalCAS64 |