From: Josh Bleecher Snyder Date: Mon, 11 Jul 2016 23:05:57 +0000 (-0700) Subject: all: fix assembly vet issues X-Git-Tag: go1.8beta1~1638 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=71ab9fa312f8266379dbb358b9ee9303cde7bd6b;p=gostls13.git all: fix assembly vet issues Add missing function prototypes. Fix function prototypes. Use FP references instead of SP references. Fix variable names. Update comments. Clean up whitespace. (Not for vet.) All fairly minor fixes to make vet happy. Updates #11041 Change-Id: Ifab2cdf235ff61cdc226ab1d84b8467b5ac9446c Reviewed-on: https://go-review.googlesource.com/27713 Run-TryBot: Josh Bleecher Snyder TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- diff --git a/src/crypto/rc4/rc4_arm.s b/src/crypto/rc4/rc4_arm.s index 05e94cbcf2..c726d6d1c0 100644 --- a/src/crypto/rc4/rc4_arm.s +++ b/src/crypto/rc4/rc4_arm.s @@ -25,8 +25,8 @@ TEXT ·xorKeyStream(SB),NOSPLIT,$0 MOVW src+4(FP), Rsrc MOVW n+8(FP), Rn MOVW state+12(FP), Rstate - MOVW pi+16(FP), Rpi - MOVW pj+20(FP), Rpj + MOVW i+16(FP), Rpi + MOVW j+20(FP), Rpj MOVBU (Rpi), Ri MOVBU (Rpj), Rj MOVW $0, Rk diff --git a/src/crypto/sha256/sha256block_386.s b/src/crypto/sha256/sha256block_386.s index e0353c3edc..33ed027e1f 100644 --- a/src/crypto/sha256/sha256block_386.s +++ b/src/crypto/sha256/sha256block_386.s @@ -141,7 +141,7 @@ MSGSCHEDULE1(index); \ SHA256ROUND(index, const, a, b, c, d, e, f, g, h) -TEXT ·block(SB),0,$296-12 +TEXT ·block(SB),0,$296-16 MOVL p_base+4(FP), SI MOVL p_len+8(FP), DX SHRL $6, DX diff --git a/src/math/modf_386.s b/src/math/modf_386.s index d9b1eebe57..e9160735d3 100644 --- a/src/math/modf_386.s +++ b/src/math/modf_386.s @@ -7,16 +7,16 @@ // func Modf(f float64) (int float64, frac float64) TEXT ·Modf(SB),NOSPLIT,$0 // special case for f == -0.0 - MOVL f+4(FP), DX // high word - MOVL f+0(FP), AX // low word + MOVL f_hi+4(FP), DX // high word + MOVL f_lo+0(FP), AX // low word CMPL DX, $(1<<31) // beginning of -0.0 JNE notNegativeZero CMPL AX, $0 // could be denormalized JNE notNegativeZero - MOVL AX, int+8(FP) - MOVL DX, int+12(FP) - MOVL AX, frac+16(FP) - MOVL DX, frac+20(FP) + MOVL AX, int_lo+8(FP) + MOVL DX, int_hi+12(FP) + MOVL AX, frac_lo+16(FP) + MOVL DX, frac_hi+20(FP) RET notNegativeZero: FMOVD f+0(FP), F0 // F0=f diff --git a/src/runtime/asm_386.s b/src/runtime/asm_386.s index b9dabc004f..f039fbf42e 100644 --- a/src/runtime/asm_386.s +++ b/src/runtime/asm_386.s @@ -843,9 +843,6 @@ TEXT runtime·ldt0setup(SB),NOSPLIT,$16-0 TEXT runtime·emptyfunc(SB),0,$0-0 RET -TEXT runtime·abort(SB),NOSPLIT,$0-0 - INT $0x3 - // memhash_varlen(p unsafe.Pointer, h seed) uintptr // redirects to memhash(p, h, size) using the size // stored in the closure. @@ -1290,15 +1287,15 @@ eq: // See runtime_test.go:eqstring_generic for // equivalent Go code. TEXT runtime·eqstring(SB),NOSPLIT,$0-17 - MOVL s1str+0(FP), SI - MOVL s2str+8(FP), DI + MOVL s1_base+0(FP), SI + MOVL s2_base+8(FP), DI CMPL SI, DI JEQ same - MOVL s1len+4(FP), BX - LEAL v+16(FP), AX + MOVL s1_len+4(FP), BX + LEAL ret+16(FP), AX JMP runtime·memeqbody(SB) same: - MOVB $1, v+16(FP) + MOVB $1, ret+16(FP) RET TEXT bytes·Equal(SB),NOSPLIT,$0-25 diff --git a/src/runtime/asm_amd64.s b/src/runtime/asm_amd64.s index 6103d54ba6..3383bbe446 100644 --- a/src/runtime/asm_amd64.s +++ b/src/runtime/asm_amd64.s @@ -1340,15 +1340,15 @@ eq: // See runtime_test.go:eqstring_generic for // equivalent Go code. TEXT runtime·eqstring(SB),NOSPLIT,$0-33 - MOVQ s1str+0(FP), SI - MOVQ s2str+16(FP), DI + MOVQ s1_base+0(FP), SI + MOVQ s2_base+16(FP), DI CMPQ SI, DI JEQ eq - MOVQ s1len+8(FP), BX - LEAQ v+32(FP), AX + MOVQ s1_len+8(FP), BX + LEAQ ret+32(FP), AX JMP runtime·memeqbody(SB) eq: - MOVB $1, v+32(FP) + MOVB $1, ret+32(FP) RET // a in SI diff --git a/src/runtime/asm_arm.s b/src/runtime/asm_arm.s index f02297e8f0..59a0e75734 100644 --- a/src/runtime/asm_arm.s +++ b/src/runtime/asm_arm.s @@ -855,13 +855,13 @@ samebytes: // See runtime_test.go:eqstring_generic for // equivalent Go code. TEXT runtime·eqstring(SB),NOSPLIT,$-4-17 - MOVW s1str+0(FP), R2 - MOVW s2str+8(FP), R3 + MOVW s1_base+0(FP), R2 + MOVW s2_base+8(FP), R3 MOVW $1, R8 - MOVB R8, v+16(FP) + MOVB R8, ret+16(FP) CMP R2, R3 RET.EQ - MOVW s1len+4(FP), R0 + MOVW s1_len+4(FP), R0 ADD R2, R0, R6 loop: CMP R2, R6 @@ -871,7 +871,7 @@ loop: CMP R4, R5 BEQ loop MOVW $0, R8 - MOVB R8, v+16(FP) + MOVB R8, ret+16(FP) RET // TODO: share code with memequal? @@ -1033,8 +1033,8 @@ TEXT runtime·usplitR0(SB),NOSPLIT,$0 SUB R1, R3, R1 RET -TEXT runtime·sigreturn(SB),NOSPLIT,$0-4 - RET +TEXT runtime·sigreturn(SB),NOSPLIT,$0-0 + RET #ifndef GOOS_nacl // This is called from .init_array and follows the platform, not Go, ABI. diff --git a/src/runtime/asm_arm64.s b/src/runtime/asm_arm64.s index 7ebd7bacb9..df74cdcf3d 100644 --- a/src/runtime/asm_arm64.s +++ b/src/runtime/asm_arm64.s @@ -869,9 +869,9 @@ samebytes: // See runtime_test.go:eqstring_generic for // equivalent Go code. TEXT runtime·eqstring(SB),NOSPLIT,$0-33 - MOVD s1str+0(FP), R0 - MOVD s1len+8(FP), R1 - MOVD s2str+16(FP), R2 + MOVD s1_base+0(FP), R0 + MOVD s1_len+8(FP), R1 + MOVD s2_base+16(FP), R2 ADD R0, R1 // end loop: CMP R0, R1 @@ -996,8 +996,8 @@ TEXT runtime·prefetcht2(SB),NOSPLIT,$0-8 TEXT runtime·prefetchnta(SB),NOSPLIT,$0-8 RET -TEXT runtime·sigreturn(SB),NOSPLIT,$0-8 - RET +TEXT runtime·sigreturn(SB),NOSPLIT,$0-0 + RET // This is called from .init_array and follows the platform, not Go, ABI. TEXT runtime·addmoduledata(SB),NOSPLIT,$0-0 diff --git a/src/runtime/asm_mips64x.s b/src/runtime/asm_mips64x.s index 7dd35aa0f5..ec7ee6c96b 100644 --- a/src/runtime/asm_mips64x.s +++ b/src/runtime/asm_mips64x.s @@ -746,13 +746,13 @@ eq: // See runtime_test.go:eqstring_generic for // equivalent Go code. TEXT runtime·eqstring(SB),NOSPLIT,$0-33 - MOVV s1str+0(FP), R1 - MOVV s2str+16(FP), R2 + MOVV s1_base+0(FP), R1 + MOVV s2_base+16(FP), R2 MOVV $1, R3 MOVB R3, ret+32(FP) BNE R1, R2, 2(PC) RET - MOVV s1len+8(FP), R3 + MOVV s1_len+8(FP), R3 ADDV R1, R3, R4 loop: BNE R1, R4, 2(PC) diff --git a/src/runtime/asm_ppc64x.s b/src/runtime/asm_ppc64x.s index 32c63c2671..874f6c68c4 100644 --- a/src/runtime/asm_ppc64x.s +++ b/src/runtime/asm_ppc64x.s @@ -908,14 +908,14 @@ equal: // See runtime_test.go:eqstring_generic for // equivalent Go code. TEXT runtime·eqstring(SB),NOSPLIT,$0-33 - MOVD s1str+0(FP), R3 - MOVD s2str+16(FP), R4 + MOVD s1_base+0(FP), R3 + MOVD s2_base+16(FP), R4 MOVD $1, R5 MOVB R5, ret+32(FP) CMP R3, R4 BNE 2(PC) RET - MOVD s1len+8(FP), R5 + MOVD s1_len+8(FP), R5 BL runtime·memeqbody(SB) MOVB R9, ret+32(FP) RET @@ -1109,8 +1109,8 @@ TEXT runtime·prefetcht2(SB),NOSPLIT,$0-8 TEXT runtime·prefetchnta(SB),NOSPLIT,$0-8 RET -TEXT runtime·sigreturn(SB),NOSPLIT,$0-8 - RET +TEXT runtime·sigreturn(SB),NOSPLIT,$0-0 + RET // prepGoExitFrame saves the current TOC pointer (i.e. the TOC pointer for the // module containing runtime) to the frame that goexit will execute in when diff --git a/src/runtime/internal/atomic/asm_386.s b/src/runtime/internal/atomic/asm_386.s index 357d830289..631f122350 100644 --- a/src/runtime/internal/atomic/asm_386.s +++ b/src/runtime/internal/atomic/asm_386.s @@ -61,7 +61,7 @@ TEXT runtime∕internal∕atomic·Cas64(SB), NOSPLIT, $0-21 SETEQ ret+20(FP) RET -// bool Casp(void **p, void *old, void *new) +// bool Casp1(void **p, void *old, void *new) // Atomically: // if(*p == old){ // *p = new; diff --git a/src/runtime/internal/atomic/asm_amd64.s b/src/runtime/internal/atomic/asm_amd64.s index 0001d2301c..32dbbf763d 100644 --- a/src/runtime/internal/atomic/asm_amd64.s +++ b/src/runtime/internal/atomic/asm_amd64.s @@ -55,7 +55,7 @@ TEXT runtime∕internal∕atomic·Loadint64(SB), NOSPLIT, $0-16 TEXT runtime∕internal∕atomic·Xaddint64(SB), NOSPLIT, $0-24 JMP runtime∕internal∕atomic·Xadd64(SB) -// bool Casp(void **val, void *old, void *new) +// bool Casp1(void **val, void *old, void *new) // Atomically: // if(*val == old){ // *val = new; diff --git a/src/runtime/internal/atomic/asm_amd64p32.s b/src/runtime/internal/atomic/asm_amd64p32.s index 22c707c325..87f7a079ca 100644 --- a/src/runtime/internal/atomic/asm_amd64p32.s +++ b/src/runtime/internal/atomic/asm_amd64p32.s @@ -55,7 +55,7 @@ TEXT runtime∕internal∕atomic·Cas64(SB), NOSPLIT, $0-25 SETEQ ret+24(FP) RET -// bool Casp(void **val, void *old, void *new) +// bool Casp1(void **val, void *old, void *new) // Atomically: // if(*val == old){ // *val = new; diff --git a/src/runtime/internal/atomic/asm_arm.s b/src/runtime/internal/atomic/asm_arm.s index 12da22390d..5e2380e07b 100644 --- a/src/runtime/internal/atomic/asm_arm.s +++ b/src/runtime/internal/atomic/asm_arm.s @@ -19,7 +19,7 @@ // B runtime∕internal∕atomic·armcas(SB) // TEXT runtime∕internal∕atomic·armcas(SB),NOSPLIT,$0-13 - MOVW valptr+0(FP), R1 + MOVW ptr+0(FP), R1 MOVW old+4(FP), R2 MOVW new+8(FP), R3 casl: diff --git a/src/runtime/internal/atomic/asm_arm64.s b/src/runtime/internal/atomic/asm_arm64.s index 929bf7189c..b6af632efa 100644 --- a/src/runtime/internal/atomic/asm_arm64.s +++ b/src/runtime/internal/atomic/asm_arm64.s @@ -47,7 +47,7 @@ TEXT runtime∕internal∕atomic·Loadint64(SB), NOSPLIT, $0-16 TEXT runtime∕internal∕atomic·Xaddint64(SB), NOSPLIT, $0-24 B runtime∕internal∕atomic·Xadd64(SB) -// bool Casp(void **val, void *old, void *new) +// bool Casp1(void **val, void *old, void *new) // Atomically: // if(*val == old){ // *val = new; diff --git a/src/runtime/internal/atomic/atomic_arm.go b/src/runtime/internal/atomic/atomic_arm.go index 244237df4d..211f52663b 100644 --- a/src/runtime/internal/atomic/atomic_arm.go +++ b/src/runtime/internal/atomic/atomic_arm.go @@ -181,3 +181,6 @@ func And8(addr *uint8, v uint8) { } } } + +//go:nosplit +func armcas(ptr *uint32, old, new uint32) bool diff --git a/src/runtime/internal/atomic/atomic_ppc64x.s b/src/runtime/internal/atomic/atomic_ppc64x.s index 1a7537ed33..c9c2d1fc0c 100644 --- a/src/runtime/internal/atomic/atomic_ppc64x.s +++ b/src/runtime/internal/atomic/atomic_ppc64x.s @@ -6,9 +6,9 @@ #include "textflag.h" -// uint32 runtime∕internal∕atomic·Load(uint32 volatile* addr) +// uint32 runtime∕internal∕atomic·Load(uint32 volatile* ptr) TEXT ·Load(SB),NOSPLIT|NOFRAME,$-8-12 - MOVD addr+0(FP), R3 + MOVD ptr+0(FP), R3 SYNC MOVWZ 0(R3), R3 CMPW R3, R3, CR7 @@ -17,9 +17,9 @@ TEXT ·Load(SB),NOSPLIT|NOFRAME,$-8-12 MOVW R3, ret+8(FP) RET -// uint64 runtime∕internal∕atomic·Load64(uint64 volatile* addr) +// uint64 runtime∕internal∕atomic·Load64(uint64 volatile* ptr) TEXT ·Load64(SB),NOSPLIT|NOFRAME,$-8-16 - MOVD addr+0(FP), R3 + MOVD ptr+0(FP), R3 SYNC MOVD 0(R3), R3 CMP R3, R3, CR7 @@ -28,9 +28,9 @@ TEXT ·Load64(SB),NOSPLIT|NOFRAME,$-8-16 MOVD R3, ret+8(FP) RET -// void *runtime∕internal∕atomic·Loadp(void *volatile *addr) +// void *runtime∕internal∕atomic·Loadp(void *volatile *ptr) TEXT ·Loadp(SB),NOSPLIT|NOFRAME,$-8-16 - MOVD addr+0(FP), R3 + MOVD ptr+0(FP), R3 SYNC MOVD 0(R3), R3 CMP R3, R3, CR7 diff --git a/src/runtime/noasm.go b/src/runtime/noasm.go index 0a8f9e6f52..586836c789 100644 --- a/src/runtime/noasm.go +++ b/src/runtime/noasm.go @@ -3,6 +3,7 @@ // license that can be found in the LICENSE file. // Routines that are implemented in assembly in asm_{amd64,386,arm,arm64,ppc64x,s390x}.s +// These routines have corresponding stubs in stubs_asm.go. // +build mips64 mips64le diff --git a/src/runtime/os3_solaris.go b/src/runtime/os3_solaris.go index 9368e0d5c6..15881cf6bb 100644 --- a/src/runtime/os3_solaris.go +++ b/src/runtime/os3_solaris.go @@ -131,7 +131,7 @@ func osinit() { ncpu = getncpu() } -func tstart_sysvicall() +func tstart_sysvicall(newm *m) uint32 // May run with m.p==nil, so write barriers are not allowed. //go:nowritebarrier @@ -565,7 +565,7 @@ func sysconf(name int32) int64 { return int64(sysvicall1(&libc_sysconf, uintptr(name))) } -func usleep1(uint32) +func usleep1(usec uint32) //go:nosplit func usleep(µs uint32) { diff --git a/src/runtime/os_darwin.go b/src/runtime/os_darwin.go index a0e3d8ed6b..8f218150b0 100644 --- a/src/runtime/os_darwin.go +++ b/src/runtime/os_darwin.go @@ -503,13 +503,15 @@ func sigaction(mode uint32, new *sigactiont, old *usigactiont) //go:noescape func sigaltstack(new, old *stackt) -func sigtramp() +// darwin/arm64 uses registers instead of stack-based arguments. +// TODO: does this matter? +func sigtramp(fn uintptr, infostyle, sig uint32, info *siginfo, ctx unsafe.Pointer) //go:noescape func setitimer(mode int32, new, old *itimerval) func raise(sig int32) -func raiseproc(int32) +func raiseproc(sig int32) //extern SigTabTT runtime·sigtab[]; diff --git a/src/runtime/os_linux.go b/src/runtime/os_linux.go index 0131c6687d..796e05a69e 100644 --- a/src/runtime/os_linux.go +++ b/src/runtime/os_linux.go @@ -133,7 +133,7 @@ const ( ) //go:noescape -func clone(flags int32, stk, mm, gg, fn unsafe.Pointer) int32 +func clone(flags int32, stk, mp, gp, fn unsafe.Pointer) int32 // May run with m.p==nil, so write barriers are not allowed. //go:nowritebarrier @@ -360,7 +360,7 @@ func memlimit() uintptr { //#endif func sigreturn() -func sigtramp() +func sigtramp(sig uint32, info *siginfo, ctx unsafe.Pointer) func cgoSigtramp() //go:noescape diff --git a/src/runtime/stubs.go b/src/runtime/stubs.go index a594c1b791..72951ae0b2 100644 --- a/src/runtime/stubs.go +++ b/src/runtime/stubs.go @@ -206,6 +206,7 @@ func asmcgocall(fn, arg unsafe.Pointer) int32 const _NoArgs = ^uintptr(0) func morestack() +func morestack_noctxt() func rt0_go() // stackBarrier records that the stack has been unwound past a certain @@ -273,3 +274,6 @@ func round(n, a uintptr) uintptr { // checkASM returns whether assembly runtime checks have passed. func checkASM() bool + +func memequal_varlen(a, b unsafe.Pointer) bool +func eqstring(s1, s2 string) bool diff --git a/src/runtime/stubs_asm.go b/src/runtime/stubs_asm.go new file mode 100644 index 0000000000..fd2eed95d6 --- /dev/null +++ b/src/runtime/stubs_asm.go @@ -0,0 +1,11 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !mips64,!mips64le + +// Declarations for routines that are implemented in noasm.go. + +package runtime + +func cmpstring(s1, s2 string) int diff --git a/src/runtime/sys_darwin_386.s b/src/runtime/sys_darwin_386.s index b5e65e6869..d19e56317c 100644 --- a/src/runtime/sys_darwin_386.s +++ b/src/runtime/sys_darwin_386.s @@ -280,26 +280,26 @@ TEXT runtime·sigreturn(SB),NOSPLIT,$12-8 // It is called with the following arguments on the stack: // 0(SP) "return address" - ignored // 4(SP) actual handler -// 8(SP) signal number -// 12(SP) siginfo style +// 8(SP) siginfo style +// 12(SP) signal number // 16(SP) siginfo // 20(SP) context TEXT runtime·sigtramp(SB),NOSPLIT,$20 MOVL fn+0(FP), BX MOVL BX, 0(SP) - MOVL style+4(FP), BX + MOVL infostyle+4(FP), BX MOVL BX, 4(SP) MOVL sig+8(FP), BX MOVL BX, 8(SP) MOVL info+12(FP), BX MOVL BX, 12(SP) - MOVL context+16(FP), BX + MOVL ctx+16(FP), BX MOVL BX, 16(SP) CALL runtime·sigtrampgo(SB) // call sigreturn - MOVL context+16(FP), CX - MOVL style+4(FP), BX + MOVL ctx+16(FP), CX + MOVL infostyle+4(FP), BX MOVL $0, 0(SP) // "caller PC" - ignored MOVL CX, 4(SP) MOVL BX, 8(SP) diff --git a/src/runtime/sys_darwin_amd64.s b/src/runtime/sys_darwin_amd64.s index ea2cc068f6..69cee55299 100644 --- a/src/runtime/sys_darwin_amd64.s +++ b/src/runtime/sys_darwin_amd64.s @@ -197,7 +197,7 @@ TEXT time·now(SB),NOSPLIT,$0-12 RET TEXT runtime·sigprocmask(SB),NOSPLIT,$0 - MOVL sig+0(FP), DI + MOVL how+0(FP), DI MOVQ new+8(FP), SI MOVQ old+16(FP), DX MOVL $(0x2000000+329), AX // pthread_sigmask (on OS X, sigprocmask==entire process) diff --git a/src/runtime/sys_darwin_arm.s b/src/runtime/sys_darwin_arm.s index 985ff50245..2c03c91683 100644 --- a/src/runtime/sys_darwin_arm.s +++ b/src/runtime/sys_darwin_arm.s @@ -106,7 +106,7 @@ TEXT runtime·raiseproc(SB),NOSPLIT,$24 MOVW $SYS_getpid, R12 SWI $0x80 // arg 1 pid already in R0 from getpid - MOVW arg+0(FP), R1 // arg 2 - signal + MOVW sig+0(FP), R1 // arg 2 - signal MOVW $1, R2 // arg 3 - posix MOVW $SYS_kill, R12 SWI $0x80 @@ -286,7 +286,7 @@ ret: B runtime·exit(SB) TEXT runtime·sigprocmask(SB),NOSPLIT,$0 - MOVW sig+0(FP), R0 + MOVW how+0(FP), R0 MOVW new+4(FP), R1 MOVW old+8(FP), R2 MOVW $SYS_pthread_sigmask, R12 diff --git a/src/runtime/sys_darwin_arm64.s b/src/runtime/sys_darwin_arm64.s index 8e6b5b1ebf..c02d000774 100644 --- a/src/runtime/sys_darwin_arm64.s +++ b/src/runtime/sys_darwin_arm64.s @@ -271,7 +271,7 @@ ret: B runtime·exit(SB) TEXT runtime·sigprocmask(SB),NOSPLIT,$0 - MOVW sig+0(FP), R0 + MOVW how+0(FP), R0 MOVD new+8(FP), R1 MOVD old+16(FP), R2 MOVW $SYS_pthread_sigmask, R16 diff --git a/src/runtime/sys_dragonfly_amd64.s b/src/runtime/sys_dragonfly_amd64.s index be964cb3ec..76dff10670 100644 --- a/src/runtime/sys_dragonfly_amd64.s +++ b/src/runtime/sys_dragonfly_amd64.s @@ -333,11 +333,11 @@ TEXT runtime·kqueue(SB),NOSPLIT,$0 // int32 runtime·kevent(int kq, Kevent *changelist, int nchanges, Kevent *eventlist, int nevents, Timespec *timeout); TEXT runtime·kevent(SB),NOSPLIT,$0 - MOVL fd+0(FP), DI - MOVQ ev1+8(FP), SI - MOVL nev1+16(FP), DX - MOVQ ev2+24(FP), R10 - MOVL nev2+32(FP), R8 + MOVL kq+0(FP), DI + MOVQ ch+8(FP), SI + MOVL nch+16(FP), DX + MOVQ ev+24(FP), R10 + MOVL nev+32(FP), R8 MOVQ ts+40(FP), R9 MOVL $363, AX SYSCALL diff --git a/src/runtime/sys_freebsd_amd64.s b/src/runtime/sys_freebsd_amd64.s index 9700117d0f..2455abe141 100644 --- a/src/runtime/sys_freebsd_amd64.s +++ b/src/runtime/sys_freebsd_amd64.s @@ -311,11 +311,11 @@ TEXT runtime·kqueue(SB),NOSPLIT,$0 // int32 runtime·kevent(int kq, Kevent *changelist, int nchanges, Kevent *eventlist, int nevents, Timespec *timeout); TEXT runtime·kevent(SB),NOSPLIT,$0 - MOVL fd+0(FP), DI - MOVQ ev1+8(FP), SI - MOVL nev1+16(FP), DX - MOVQ ev2+24(FP), R10 - MOVL nev2+32(FP), R8 + MOVL kq+0(FP), DI + MOVQ ch+8(FP), SI + MOVL nch+16(FP), DX + MOVQ ev+24(FP), R10 + MOVL nev+32(FP), R8 MOVQ ts+40(FP), R9 MOVL $363, AX SYSCALL diff --git a/src/runtime/sys_linux_386.s b/src/runtime/sys_linux_386.s index 4fe07e0837..8b41275bd0 100644 --- a/src/runtime/sys_linux_386.s +++ b/src/runtime/sys_linux_386.s @@ -227,7 +227,7 @@ TEXT runtime·sigtramp(SB),NOSPLIT,$12 MOVL BX, 0(SP) MOVL info+4(FP), BX MOVL BX, 4(SP) - MOVL context+8(FP), BX + MOVL ctx+8(FP), BX MOVL BX, 8(SP) CALL runtime·sigtrampgo(SB) RET @@ -297,15 +297,15 @@ TEXT runtime·futex(SB),NOSPLIT,$0 TEXT runtime·clone(SB),NOSPLIT,$0 MOVL $120, AX // clone MOVL flags+0(FP), BX - MOVL stack+4(FP), CX + MOVL stk+4(FP), CX MOVL $0, DX // parent tid ptr MOVL $0, DI // child tid ptr // Copy mp, gp, fn off parent stack for use by child. SUBL $16, CX - MOVL mm+8(FP), SI + MOVL mp+8(FP), SI MOVL SI, 0(CX) - MOVL gg+12(FP), SI + MOVL gp+12(FP), SI MOVL SI, 4(CX) MOVL fn+16(FP), SI MOVL SI, 8(CX) diff --git a/src/runtime/sys_linux_amd64.s b/src/runtime/sys_linux_amd64.s index 8a8f3cce8b..830441ed78 100644 --- a/src/runtime/sys_linux_amd64.s +++ b/src/runtime/sys_linux_amd64.s @@ -388,10 +388,10 @@ TEXT runtime·futex(SB),NOSPLIT,$0 MOVL AX, ret+40(FP) RET -// int32 clone(int32 flags, void *stack, M *mp, G *gp, void (*fn)(void)); +// int32 clone(int32 flags, void *stk, M *mp, G *gp, void (*fn)(void)); TEXT runtime·clone(SB),NOSPLIT,$0 MOVL flags+0(FP), DI - MOVQ stack+8(FP), SI + MOVQ stk+8(FP), SI MOVQ $0, DX MOVQ $0, R10 @@ -548,7 +548,7 @@ TEXT runtime·access(SB),NOSPLIT,$0 TEXT runtime·connect(SB),NOSPLIT,$0-28 MOVL fd+0(FP), DI MOVQ addr+8(FP), SI - MOVL addrlen+16(FP), DX + MOVL len+16(FP), DX MOVL $42, AX // syscall entry SYSCALL MOVL AX, ret+24(FP) @@ -557,8 +557,8 @@ TEXT runtime·connect(SB),NOSPLIT,$0-28 // int socket(int domain, int type, int protocol) TEXT runtime·socket(SB),NOSPLIT,$0-20 MOVL domain+0(FP), DI - MOVL type+4(FP), SI - MOVL protocol+8(FP), DX + MOVL typ+4(FP), SI + MOVL prot+8(FP), DX MOVL $41, AX // syscall entry SYSCALL MOVL AX, ret+16(FP) diff --git a/src/runtime/sys_linux_arm.s b/src/runtime/sys_linux_arm.s index 5e5fcf0e6f..ede558c5b7 100644 --- a/src/runtime/sys_linux_arm.s +++ b/src/runtime/sys_linux_arm.s @@ -235,13 +235,12 @@ TEXT runtime·nanotime(SB),NOSPLIT,$32 // int32 futex(int32 *uaddr, int32 op, int32 val, // struct timespec *timeout, int32 *uaddr2, int32 val2); TEXT runtime·futex(SB),NOSPLIT,$0 - // TODO: Rewrite to use FP references. Vet complains. - MOVW 4(R13), R0 - MOVW 8(R13), R1 - MOVW 12(R13), R2 - MOVW 16(R13), R3 - MOVW 20(R13), R4 - MOVW 24(R13), R5 + MOVW addr+0(FP), R0 + MOVW op+4(FP), R1 + MOVW val+8(FP), R2 + MOVW ts+12(FP), R3 + MOVW addr2+16(FP), R4 + MOVW val3+20(FP), R5 MOVW $SYS_futex, R7 SWI $0 MOVW R0, ret+24(FP) @@ -259,9 +258,9 @@ TEXT runtime·clone(SB),NOSPLIT,$0 // Copy mp, gp, fn off parent stack for use by child. // TODO(kaib): figure out which registers are clobbered by clone and avoid stack copying MOVW $-16(R1), R1 - MOVW mm+8(FP), R6 + MOVW mp+8(FP), R6 MOVW R6, 0(R1) - MOVW gg+12(FP), R6 + MOVW gp+12(FP), R6 MOVW R6, 4(R1) MOVW fn+16(FP), R6 MOVW R6, 8(R1) @@ -491,7 +490,7 @@ TEXT runtime·access(SB),NOSPLIT,$0 TEXT runtime·connect(SB),NOSPLIT,$0 MOVW fd+0(FP), R0 MOVW addr+4(FP), R1 - MOVW addrlen+8(FP), R2 + MOVW len+8(FP), R2 MOVW $SYS_connect, R7 SWI $0 MOVW R0, ret+12(FP) @@ -499,8 +498,8 @@ TEXT runtime·connect(SB),NOSPLIT,$0 TEXT runtime·socket(SB),NOSPLIT,$0 MOVW domain+0(FP), R0 - MOVW type+4(FP), R1 - MOVW protocol+8(FP), R2 + MOVW typ+4(FP), R1 + MOVW prot+8(FP), R2 MOVW $SYS_socket, R7 SWI $0 MOVW R0, ret+12(FP) diff --git a/src/runtime/sys_linux_arm64.s b/src/runtime/sys_linux_arm64.s index 1bee8477ed..52c51f6579 100644 --- a/src/runtime/sys_linux_arm64.s +++ b/src/runtime/sys_linux_arm64.s @@ -319,8 +319,8 @@ TEXT runtime·clone(SB),NOSPLIT,$-8 MOVD stk+8(FP), R1 // Copy mp, gp, fn off parent stack for use by child. - MOVD mm+16(FP), R10 - MOVD gg+24(FP), R11 + MOVD mp+16(FP), R10 + MOVD gp+24(FP), R11 MOVD fn+32(FP), R12 MOVD R10, -8(R1) diff --git a/src/runtime/sys_linux_mips64x.s b/src/runtime/sys_linux_mips64x.s index d4a81ca364..d0141bce78 100644 --- a/src/runtime/sys_linux_mips64x.s +++ b/src/runtime/sys_linux_mips64x.s @@ -309,8 +309,8 @@ TEXT runtime·clone(SB),NOSPLIT,$-8 // Copy mp, gp, fn off parent stack for use by child. // Careful: Linux system call clobbers ???. - MOVV mm+16(FP), R16 - MOVV gg+24(FP), R17 + MOVV mp+16(FP), R16 + MOVV gp+24(FP), R17 MOVV fn+32(FP), R18 MOVV R16, -8(R5) diff --git a/src/runtime/sys_linux_ppc64x.s b/src/runtime/sys_linux_ppc64x.s index 883aef8409..0afd333b36 100644 --- a/src/runtime/sys_linux_ppc64x.s +++ b/src/runtime/sys_linux_ppc64x.s @@ -304,8 +304,8 @@ TEXT runtime·clone(SB),NOSPLIT|NOFRAME,$0 // Copy mp, gp, fn off parent stack for use by child. // Careful: Linux system call clobbers ???. - MOVD mm+16(FP), R7 - MOVD gg+24(FP), R8 + MOVD mp+16(FP), R7 + MOVD gp+24(FP), R8 MOVD fn+32(FP), R12 MOVD R7, -8(R4) diff --git a/src/runtime/sys_nacl_386.s b/src/runtime/sys_nacl_386.s index e69a0b7bfe..05de20c546 100644 --- a/src/runtime/sys_nacl_386.s +++ b/src/runtime/sys_nacl_386.s @@ -368,9 +368,9 @@ ret: // func getRandomData([]byte) TEXT runtime·getRandomData(SB),NOSPLIT,$8-12 - MOVL buf+0(FP), AX + MOVL arg_base+0(FP), AX MOVL AX, 0(SP) - MOVL len+4(FP), AX + MOVL arg_len+4(FP), AX MOVL AX, 4(SP) NACL_SYSCALL(SYS_get_random_bytes) RET diff --git a/src/runtime/sys_netbsd_amd64.s b/src/runtime/sys_netbsd_amd64.s index d6b5d35232..8c3dca264e 100644 --- a/src/runtime/sys_netbsd_amd64.s +++ b/src/runtime/sys_netbsd_amd64.s @@ -337,11 +337,11 @@ TEXT runtime·kqueue(SB),NOSPLIT,$0 // int32 runtime·kevent(int kq, Kevent *changelist, int nchanges, Kevent *eventlist, int nevents, Timespec *timeout) TEXT runtime·kevent(SB),NOSPLIT,$0 - MOVL fd+0(FP), DI - MOVQ ev1+8(FP), SI - MOVL nev1+16(FP), DX - MOVQ ev2+24(FP), R10 - MOVL nev2+32(FP), R8 + MOVL kq+0(FP), DI + MOVQ ch+8(FP), SI + MOVL nch+16(FP), DX + MOVQ ev+24(FP), R10 + MOVL nev+32(FP), R8 MOVQ ts+40(FP), R9 MOVL $435, AX SYSCALL diff --git a/src/runtime/sys_openbsd_amd64.s b/src/runtime/sys_openbsd_amd64.s index c9fb8322c5..944188cda2 100644 --- a/src/runtime/sys_openbsd_amd64.s +++ b/src/runtime/sys_openbsd_amd64.s @@ -327,11 +327,11 @@ TEXT runtime·kqueue(SB),NOSPLIT,$0 // int32 runtime·kevent(int kq, Kevent *changelist, int nchanges, Kevent *eventlist, int nevents, Timespec *timeout); TEXT runtime·kevent(SB),NOSPLIT,$0 - MOVL fd+0(FP), DI - MOVQ ev1+8(FP), SI - MOVL nev1+16(FP), DX - MOVQ ev2+24(FP), R10 - MOVL nev2+32(FP), R8 + MOVL kq+0(FP), DI + MOVQ ch+8(FP), SI + MOVL nch+16(FP), DX + MOVQ ev+24(FP), R10 + MOVL nev+32(FP), R8 MOVQ ts+40(FP), R9 MOVL $72, AX SYSCALL diff --git a/src/runtime/sys_openbsd_arm.s b/src/runtime/sys_openbsd_arm.s index 952069bc1a..7815ca6541 100644 --- a/src/runtime/sys_openbsd_arm.s +++ b/src/runtime/sys_openbsd_arm.s @@ -15,7 +15,7 @@ // Exit the entire program (like C exit) TEXT runtime·exit(SB),NOSPLIT,$-4 - MOVW status+0(FP), R0 // arg 1 - status + MOVW code+0(FP), R0 // arg 1 - status MOVW $1, R12 // sys_exit SWI $0 MOVW.CS $0, R8 // crash on syscall failure @@ -31,9 +31,9 @@ TEXT runtime·exit1(SB),NOSPLIT,$-4 RET TEXT runtime·open(SB),NOSPLIT,$-4 - MOVW path+0(FP), R0 // arg 1 - path - MOVW flags+4(FP), R1 // arg 2 - flags - MOVW mode+8(FP), R2 // arg 3 - mode + MOVW name+0(FP), R0 // arg 1 - path + MOVW mode+4(FP), R1 // arg 2 - mode + MOVW perm+8(FP), R2 // arg 3 - perm MOVW $5, R12 // sys_open SWI $0 MOVW.CS $-1, R0 @@ -41,7 +41,7 @@ TEXT runtime·open(SB),NOSPLIT,$-4 RET TEXT runtime·closefd(SB),NOSPLIT,$-4 - MOVW path+0(FP), R0 // arg 1 - path + MOVW fd+0(FP), R0 // arg 1 - fd MOVW $6, R12 // sys_close SWI $0 MOVW.CS $-1, R0 @@ -50,8 +50,8 @@ TEXT runtime·closefd(SB),NOSPLIT,$-4 TEXT runtime·read(SB),NOSPLIT,$-4 MOVW fd+0(FP), R0 // arg 1 - fd - MOVW buf+4(FP), R1 // arg 2 - buf - MOVW nbyte+8(FP), R2 // arg 3 - nbyte + MOVW p+4(FP), R1 // arg 2 - buf + MOVW n+8(FP), R2 // arg 3 - nbyte MOVW $3, R12 // sys_read SWI $0 MOVW.CS $-1, R0 @@ -60,8 +60,8 @@ TEXT runtime·read(SB),NOSPLIT,$-4 TEXT runtime·write(SB),NOSPLIT,$-4 MOVW fd+0(FP), R0 // arg 1 - fd - MOVW buf+4(FP), R1 // arg 2 - buf - MOVW nbyte+8(FP), R2 // arg 3 - nbyte + MOVW p+4(FP), R1 // arg 2 - buf + MOVW n+8(FP), R2 // arg 3 - nbyte MOVW $4, R12 // sys_write SWI $0 MOVW.CS $-1, R0 @@ -104,14 +104,14 @@ TEXT runtime·raiseproc(SB),NOSPLIT,$12 TEXT runtime·mmap(SB),NOSPLIT,$16 MOVW addr+0(FP), R0 // arg 1 - addr - MOVW len+4(FP), R1 // arg 2 - len + MOVW n+4(FP), R1 // arg 2 - len MOVW prot+8(FP), R2 // arg 3 - prot MOVW flags+12(FP), R3 // arg 4 - flags MOVW fd+16(FP), R4 // arg 5 - fd (on stack) MOVW R4, 4(R13) MOVW $0, R5 // arg 6 - pad (on stack) MOVW R5, 8(R13) - MOVW offset+20(FP), R6 // arg 7 - offset (on stack) + MOVW off+20(FP), R6 // arg 7 - offset (on stack) MOVW R6, 12(R13) // lower 32 bits (from Go runtime) MOVW $0, R7 MOVW R7, 16(R13) // high 32 bits @@ -124,7 +124,7 @@ TEXT runtime·mmap(SB),NOSPLIT,$16 TEXT runtime·munmap(SB),NOSPLIT,$0 MOVW addr+0(FP), R0 // arg 1 - addr - MOVW len+4(FP), R1 // arg 2 - len + MOVW n+4(FP), R1 // arg 2 - len MOVW $73, R12 // sys_munmap SWI $0 MOVW.CS $0, R8 // crash on syscall failure @@ -133,8 +133,8 @@ TEXT runtime·munmap(SB),NOSPLIT,$0 TEXT runtime·madvise(SB),NOSPLIT,$0 MOVW addr+0(FP), R0 // arg 1 - addr - MOVW len+4(FP), R1 // arg 2 - len - MOVW behav+8(FP), R2 // arg 2 - behav + MOVW n+4(FP), R1 // arg 2 - len + MOVW flags+8(FP), R2 // arg 2 - flags MOVW $75, R12 // sys_madvise SWI $0 MOVW.CS $0, R8 // crash on syscall failure @@ -142,9 +142,9 @@ TEXT runtime·madvise(SB),NOSPLIT,$0 RET TEXT runtime·setitimer(SB),NOSPLIT,$0 - MOVW which+0(FP), R0 // arg 1 - which - MOVW value+4(FP), R1 // arg 2 - value - MOVW ovalue+8(FP), R2 // arg 3 - ovalue + MOVW mode+0(FP), R0 // arg 1 - mode + MOVW new+4(FP), R1 // arg 2 - new value + MOVW old+8(FP), R2 // arg 3 - old value MOVW $69, R12 // sys_setitimer SWI $0 RET @@ -189,9 +189,9 @@ TEXT runtime·nanotime(SB),NOSPLIT,$32 RET TEXT runtime·sigaction(SB),NOSPLIT,$0 - MOVW signum+0(FP), R0 // arg 1 - signum - MOVW nsa+4(FP), R1 // arg 2 - nsa - MOVW osa+8(FP), R2 // arg 3 - osa + MOVW sig+0(FP), R0 // arg 1 - signum + MOVW new+4(FP), R1 // arg 2 - new sigaction + MOVW old+8(FP), R2 // arg 3 - old sigaction MOVW $46, R12 // sys_sigaction SWI $0 MOVW.CS $3, R8 // crash on syscall failure @@ -199,8 +199,8 @@ TEXT runtime·sigaction(SB),NOSPLIT,$0 RET TEXT runtime·sigprocmask(SB),NOSPLIT,$0 - MOVW how+0(FP), R0 // arg 1 - how - MOVW mask+4(FP), R1 // arg 2 - mask + MOVW mode+0(FP), R0 // arg 1 - mode + MOVW new+4(FP), R1 // arg 2 - new MOVW $48, R12 // sys_sigprocmask SWI $0 MOVW.CS $3, R8 // crash on syscall failure @@ -274,8 +274,8 @@ TEXT runtime·tfork(SB),NOSPLIT,$0 RET TEXT runtime·sigaltstack(SB),NOSPLIT,$0 - MOVW nss+0(FP), R0 // arg 1 - nss - MOVW oss+4(FP), R1 // arg 2 - oss + MOVW new+0(FP), R0 // arg 1 - new sigaltstack + MOVW old+4(FP), R1 // arg 2 - old sigaltstack MOVW $288, R12 // sys_sigaltstack SWI $0 MOVW.CS $0, R8 // crash on syscall failure @@ -290,7 +290,7 @@ TEXT runtime·osyield(SB),NOSPLIT,$0 TEXT runtime·thrsleep(SB),NOSPLIT,$4 MOVW ident+0(FP), R0 // arg 1 - ident MOVW clock_id+4(FP), R1 // arg 2 - clock_id - MOVW tp+8(FP), R2 // arg 3 - tp + MOVW tsp+8(FP), R2 // arg 3 - tsp MOVW lock+12(FP), R3 // arg 4 - lock MOVW abort+16(FP), R4 // arg 5 - abort (on stack) MOVW R4, 4(R13) @@ -310,13 +310,13 @@ TEXT runtime·thrwakeup(SB),NOSPLIT,$0 RET TEXT runtime·sysctl(SB),NOSPLIT,$8 - MOVW name+0(FP), R0 // arg 1 - name - MOVW namelen+4(FP), R1 // arg 2 - namelen - MOVW oldp+8(FP), R2 // arg 3 - oldp - MOVW oldlenp+12(FP), R3 // arg 4 - oldlenp - MOVW newp+16(FP), R4 // arg 5 - newp (on stack) + MOVW mib+0(FP), R0 // arg 1 - mib + MOVW miblen+4(FP), R1 // arg 2 - miblen + MOVW out+8(FP), R2 // arg 3 - out + MOVW size+12(FP), R3 // arg 4 - size + MOVW dst+16(FP), R4 // arg 5 - dest (on stack) MOVW R4, 4(R13) - MOVW newlen+20(FP), R5 // arg 6 - newlen (on stack) + MOVW ndst+20(FP), R5 // arg 6 - newlen (on stack) MOVW R5, 8(R13) ADD $4, R13 MOVW $202, R12 // sys___sysctl @@ -337,13 +337,13 @@ TEXT runtime·kqueue(SB),NOSPLIT,$0 // int32 runtime·kevent(int kq, Kevent *changelist, int nchanges, Kevent *eventlist, int nevents, Timespec *timeout); TEXT runtime·kevent(SB),NOSPLIT,$8 - MOVW fd+0(FP), R0 // arg 1 - fd - MOVW changelist+4(FP), R1 // arg 2 - changelist - MOVW nchanges+8(FP), R2 // arg 3 - nchanges - MOVW eventlist+12(FP), R3 // arg 4 - eventlist - MOVW nevents+16(FP), R4 // arg 5 - nevents (on stack) + MOVW kq+0(FP), R0 // arg 1 - kq + MOVW ch+4(FP), R1 // arg 2 - changelist + MOVW nch+8(FP), R2 // arg 3 - nchanges + MOVW ev+12(FP), R3 // arg 4 - eventlist + MOVW nev+16(FP), R4 // arg 5 - nevents (on stack) MOVW R4, 4(R13) - MOVW timeout+20(FP), R5 // arg 6 - timeout (on stack) + MOVW ts+20(FP), R5 // arg 6 - timeout (on stack) MOVW R5, 8(R13) ADD $4, R13 MOVW $72, R12 // sys_kevent diff --git a/src/runtime/vlop_386.s b/src/runtime/vlop_386.s index 92232d57bc..0a84bde55b 100644 --- a/src/runtime/vlop_386.s +++ b/src/runtime/vlop_386.s @@ -29,28 +29,28 @@ * C runtime for 64-bit divide. */ -// runtime·_mul64x32(r *uint64, a uint64, b uint32) uint32 -// sets *r = low 64 bits of 96-bit product a*b; returns high 32 bits. +// runtime·_mul64x32(lo64 *uint64, a uint64, b uint32) (hi32 uint32) +// sets *lo64 = low 64 bits of 96-bit product a*b; returns high 32 bits. TEXT runtime·_mul64by32(SB), NOSPLIT, $0 - MOVL r+0(FP), CX - MOVL a+4(FP), AX + MOVL lo64+0(FP), CX + MOVL a_lo+4(FP), AX MULL b+12(FP) MOVL AX, 0(CX) MOVL DX, BX - MOVL a+8(FP), AX + MOVL a_hi+8(FP), AX MULL b+12(FP) ADDL AX, BX ADCL $0, DX MOVL BX, 4(CX) MOVL DX, AX - MOVL AX, ret+16(FP) + MOVL AX, hi32+16(FP) RET TEXT runtime·_div64by32(SB), NOSPLIT, $0 MOVL r+12(FP), CX - MOVL a+0(FP), AX - MOVL a+4(FP), DX + MOVL a_lo+0(FP), AX + MOVL a_hi+4(FP), DX DIVL b+8(FP) MOVL DX, 0(CX) - MOVL AX, ret+16(FP) + MOVL AX, q+16(FP) RET diff --git a/src/sync/atomic/asm_arm.s b/src/sync/atomic/asm_arm.s index d35ea2a4e0..77b0b248bc 100644 --- a/src/sync/atomic/asm_arm.s +++ b/src/sync/atomic/asm_arm.s @@ -35,11 +35,11 @@ casloop: BNE casloop MOVW $1, R0 DMB_ISH_7 - MOVBU R0, ret+12(FP) + MOVBU R0, swapped+12(FP) RET casfail: MOVW $0, R0 - MOVBU R0, ret+12(FP) + MOVBU R0, swapped+12(FP) RET TEXT ·armCompareAndSwapUint64(SB),NOSPLIT,$0-21 @@ -49,10 +49,10 @@ TEXT ·armCompareAndSwapUint64(SB),NOSPLIT,$0-21 AND.S $7, R1, R2 BEQ 2(PC) MOVW R2, (R2) - MOVW oldlo+4(FP), R2 - MOVW oldhi+8(FP), R3 - MOVW newlo+12(FP), R4 - MOVW newhi+16(FP), R5 + MOVW old_lo+4(FP), R2 + MOVW old_hi+8(FP), R3 + MOVW new_lo+12(FP), R4 + MOVW new_hi+16(FP), R5 cas64loop: // LDREXD and STREXD were introduced in ARMv6k. LDREXD (R1), R6 // loads R6 and R7 @@ -66,11 +66,11 @@ cas64loop: BNE cas64loop MOVW $1, R0 DMB_ISH_7 - MOVBU R0, ret+20(FP) + MOVBU R0, swapped+20(FP) RET cas64fail: MOVW $0, R0 - MOVBU R0, ret+20(FP) + MOVBU R0, swapped+20(FP) RET TEXT ·armAddUint32(SB),NOSPLIT,$0-12 @@ -85,7 +85,7 @@ addloop: CMP $0, R0 BNE addloop DMB_ISH_7 - MOVW R3, ret+8(FP) + MOVW R3, new+8(FP) RET TEXT ·armAddUint64(SB),NOSPLIT,$0-20 @@ -95,8 +95,8 @@ TEXT ·armAddUint64(SB),NOSPLIT,$0-20 AND.S $7, R1, R2 BEQ 2(PC) MOVW R2, (R2) - MOVW deltalo+4(FP), R2 - MOVW deltahi+8(FP), R3 + MOVW delta_lo+4(FP), R2 + MOVW delta_hi+8(FP), R3 add64loop: // LDREXD and STREXD were introduced in ARMv6k. LDREXD (R1), R4 // loads R4 and R5 @@ -107,8 +107,8 @@ add64loop: CMP $0, R0 BNE add64loop DMB_ISH_7 - MOVW R4, retlo+12(FP) - MOVW R5, rethi+16(FP) + MOVW R4, new_lo+12(FP) + MOVW R5, new_hi+16(FP) RET TEXT ·armSwapUint32(SB),NOSPLIT,$0-12 @@ -132,8 +132,8 @@ TEXT ·armSwapUint64(SB),NOSPLIT,$0-20 AND.S $7, R1, R2 BEQ 2(PC) MOVW R2, (R2) - MOVW newlo+4(FP), R2 - MOVW newhi+8(FP), R3 + MOVW new_lo+4(FP), R2 + MOVW new_hi+8(FP), R3 swap64loop: // LDREXD and STREXD were introduced in ARMv6k. LDREXD (R1), R4 // loads R4 and R5 @@ -142,8 +142,8 @@ swap64loop: CMP $0, R0 BNE swap64loop DMB_ISH_7 - MOVW R4, oldlo+12(FP) - MOVW R5, oldhi+16(FP) + MOVW R4, old_lo+12(FP) + MOVW R5, old_hi+16(FP) RET TEXT ·armLoadUint64(SB),NOSPLIT,$0-12 @@ -160,8 +160,8 @@ load64loop: CMP $0, R0 BNE load64loop DMB_ISH_7 - MOVW R2, vallo+4(FP) - MOVW R3, valhi+8(FP) + MOVW R2, val_lo+4(FP) + MOVW R3, val_hi+8(FP) RET TEXT ·armStoreUint64(SB),NOSPLIT,$0-12 @@ -171,8 +171,8 @@ TEXT ·armStoreUint64(SB),NOSPLIT,$0-12 AND.S $7, R1, R2 BEQ 2(PC) MOVW R2, (R2) - MOVW vallo+4(FP), R2 - MOVW valhi+8(FP), R3 + MOVW val_lo+4(FP), R2 + MOVW val_hi+8(FP), R3 store64loop: LDREXD (R1), R4 // loads R4 and R5 DMB_ISHST_7 diff --git a/src/sync/atomic/asm_mips64x.s b/src/sync/atomic/asm_mips64x.s index b3c4627116..b7d4168a42 100644 --- a/src/sync/atomic/asm_mips64x.s +++ b/src/sync/atomic/asm_mips64x.s @@ -104,7 +104,7 @@ TEXT ·AddUint32(SB),NOSPLIT,$0-20 MOVV R4, R1 SC(2, 4) // *R2 = R4 BEQ R4, -4(PC) - MOVW R1, ret+16(FP) + MOVW R1, new+16(FP) SYNC RET @@ -123,7 +123,7 @@ TEXT ·AddUint64(SB),NOSPLIT,$0-24 MOVV R4, R1 SCV(2, 4) // *R2 = R4 BEQ R4, -4(PC) - MOVV R1, ret+16(FP) + MOVV R1, new+16(FP) SYNC RET diff --git a/src/sync/atomic/asm_ppc64x.s b/src/sync/atomic/asm_ppc64x.s index 2474e96435..44e26698b4 100644 --- a/src/sync/atomic/asm_ppc64x.s +++ b/src/sync/atomic/asm_ppc64x.s @@ -92,7 +92,7 @@ TEXT ·AddUint32(SB),NOSPLIT,$0-20 STWCCC R5, (R3) BNE -3(PC) ISYNC - MOVW R5, ret+16(FP) + MOVW R5, new+16(FP) RET TEXT ·AddUintptr(SB),NOSPLIT,$0-24 @@ -110,7 +110,7 @@ TEXT ·AddUint64(SB),NOSPLIT,$0-24 STDCCC R5, (R3) BNE -3(PC) ISYNC - MOVD R5, ret+16(FP) + MOVD R5, new+16(FP) RET TEXT ·LoadInt32(SB),NOSPLIT,$0-12 diff --git a/src/syscall/asm9_unix1_amd64.s b/src/syscall/asm9_unix1_amd64.s index 67433aa763..29af78c801 100644 --- a/src/syscall/asm9_unix1_amd64.s +++ b/src/syscall/asm9_unix1_amd64.s @@ -4,9 +4,6 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// TODO(rsc): Rewrite all nn(SP) references into name+(nn-8)(FP) -// so that go vet can check that they are correct. - #include "textflag.h" #include "funcdata.h" @@ -17,16 +14,16 @@ // func Syscall9(trap int64, a1, a2, a3, a4, a5, a6, a7, a8, a9 int64) (r1, r2, err int64); TEXT ·Syscall9(SB),NOSPLIT,$0-104 CALL runtime·entersyscall(SB) - MOVQ 8(SP), AX // syscall entry - MOVQ 16(SP), DI - MOVQ 24(SP), SI - MOVQ 32(SP), DX - MOVQ 40(SP), R10 - MOVQ 48(SP), R8 - MOVQ 56(SP), R9 - MOVQ 64(SP), R11 - MOVQ 72(SP), R12 - MOVQ 80(SP), R13 + MOVQ num+0(FP), AX // syscall entry + MOVQ a1+8(FP), DI + MOVQ a2+16(FP), SI + MOVQ a3+24(FP), DX + MOVQ a4+32(FP), R10 + MOVQ a5+40(FP), R8 + MOVQ a6+48(FP), R9 + MOVQ a7+56(FP), R11 + MOVQ a8+64(FP), R12 + MOVQ a9+72(FP), R13 SUBQ $32, SP MOVQ R11, 8(SP) // arg 7 MOVQ R12, 16(SP) // arg 8 diff --git a/src/syscall/asm9_unix2_amd64.s b/src/syscall/asm9_unix2_amd64.s index ee95fa7ed0..11a6c1f485 100644 --- a/src/syscall/asm9_unix2_amd64.s +++ b/src/syscall/asm9_unix2_amd64.s @@ -4,9 +4,6 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// TODO(rsc): Rewrite all nn(SP) references into name+(nn-8)(FP) -// so that go vet can check that they are correct. - #include "textflag.h" #include "funcdata.h" @@ -17,33 +14,33 @@ // func Syscall9(trap int64, a1, a2, a3, a4, a5, a6, a7, a8, a9 int64) (r1, r2, err int64); TEXT ·Syscall9(SB),NOSPLIT,$0-104 CALL runtime·entersyscall(SB) - MOVQ 8(SP), AX // syscall entry - MOVQ 16(SP), DI - MOVQ 24(SP), SI - MOVQ 32(SP), DX - MOVQ 40(SP), R10 - MOVQ 48(SP), R8 - MOVQ 56(SP), R9 + MOVQ num+0(FP), AX // syscall entry + MOVQ a1+8(FP), DI + MOVQ a2+16(FP), SI + MOVQ a3+24(FP), DX + MOVQ a4+32(FP), R10 + MOVQ a5+40(FP), R8 + MOVQ a6+48(FP), R9 // shift around the last three arguments so they're at the // top of the stack when the syscall is called. - MOVQ 64(SP), R11 // arg 7 + MOVQ a7+56(FP), R11 // arg 7 MOVQ R11, 8(SP) - MOVQ 72(SP), R11 // arg 8 + MOVQ a8+64(FP), R11 // arg 8 MOVQ R11, 16(SP) - MOVQ 80(SP), R11 // arg 9 + MOVQ a9+72(FP), R11 // arg 9 MOVQ R11, 24(SP) SYSCALL JCC ok9 - MOVQ $-1, 88(SP) // r1 - MOVQ $0, 96(SP) // r2 - MOVQ AX, 104(SP) // errno + MOVQ $-1, r1+80(FP) // r1 + MOVQ $0, r2+88(FP) // r2 + MOVQ AX, err+96(FP) // errno CALL runtime·exitsyscall(SB) RET ok9: - MOVQ AX, 88(SP) // r1 - MOVQ DX, 96(SP) // r2 - MOVQ $0, 104(SP) // errno + MOVQ AX, r1+80(FP) // r1 + MOVQ DX, r2+88(FP) // r2 + MOVQ $0, err+96(FP) // errno CALL runtime·exitsyscall(SB) RET diff --git a/src/syscall/asm_darwin_arm64.s b/src/syscall/asm_darwin_arm64.s index e18ff6a124..95b6dc0db5 100644 --- a/src/syscall/asm_darwin_arm64.s +++ b/src/syscall/asm_darwin_arm64.s @@ -8,10 +8,10 @@ // System call support for ARM64, Darwin // -// func Syscall(syscall uintptr, a1, a2, a3 uintptr) (r1, r2, err uintptr) +// func Syscall(trap uintptr, a1, a2, a3 uintptr) (r1, r2, err uintptr) TEXT ·Syscall(SB),NOSPLIT,$0-56 BL runtime·entersyscall(SB) - MOVD syscall+0(FP), R16 + MOVD trap+0(FP), R16 MOVD a1+8(FP), R0 MOVD a2+16(FP), R1 MOVD a3+24(FP), R2 @@ -20,19 +20,19 @@ TEXT ·Syscall(SB),NOSPLIT,$0-56 MOVD $-1, R1 MOVD R1, r1+32(FP) // r1 MOVD ZR, r2+40(FP) // r2 - MOVD R0, errno+48(FP) // errno + MOVD R0, err+48(FP) // err BL runtime·exitsyscall(SB) RET ok: MOVD R0, r1+32(FP) // r1 MOVD R1, r2+40(FP) // r2 - MOVD ZR, errno+48(FP) // errno + MOVD ZR, err+48(FP) // err BL runtime·exitsyscall(SB) RET // func RawSyscall(trap uintptr, a1, a2, a3 uintptr) (r1, r2, err uintptr) TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - MOVD syscall+0(FP), R16 // syscall entry + MOVD trap+0(FP), R16 // syscall entry MOVD a1+8(FP), R0 MOVD a2+16(FP), R1 MOVD a3+24(FP), R2 @@ -41,18 +41,18 @@ TEXT ·RawSyscall(SB),NOSPLIT,$0-56 MOVD $-1, R1 MOVD R1, r1+32(FP) // r1 MOVD ZR, r2+40(FP) // r2 - MOVD R0, errno+48(FP) // errno + MOVD R0, err+48(FP) // err RET ok: MOVD R0, r1+32(FP) // r1 MOVD R1, r2+40(FP) // r2 - MOVD ZR, errno+48(FP) // errno + MOVD ZR, err+48(FP) // err RET // func Syscall6(trap uintptr, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr) TEXT ·Syscall6(SB),NOSPLIT,$0-80 BL runtime·entersyscall(SB) - MOVD syscall+0(FP), R16 // syscall entry + MOVD trap+0(FP), R16 // syscall entry MOVD a1+8(FP), R0 MOVD a2+16(FP), R1 MOVD a3+24(FP), R2 @@ -64,13 +64,13 @@ TEXT ·Syscall6(SB),NOSPLIT,$0-80 MOVD $-1, R1 MOVD R1, r1+56(FP) // r1 MOVD ZR, r2+64(FP) // r2 - MOVD R0, errno+72(FP) // errno + MOVD R0, err+72(FP) // err BL runtime·exitsyscall(SB) RET ok: MOVD R0, r1+56(FP) // r1 MOVD R1, r2+64(FP) // r2 - MOVD ZR, errno+72(FP) // errno + MOVD ZR, err+72(FP) // err BL runtime·exitsyscall(SB) RET @@ -88,19 +88,19 @@ TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 MOVD $-1, R1 MOVD R1, r1+56(FP) // r1 MOVD ZR, r2+64(FP) // r2 - MOVD R0, errno+72(FP) // errno + MOVD R0, err+72(FP) // err RET ok: MOVD R0, r1+56(FP) // r1 MOVD R1, r2+64(FP) // r2 MOVD ZR, R0 - MOVD R0, errno+72(FP) // errno + MOVD R0, err+72(FP) // err RET // Actually Syscall7 TEXT ·Syscall9(SB),NOSPLIT,$0-104 BL runtime·entersyscall(SB) - MOVD syscall+0(FP), R16 // syscall entry + MOVD num+0(FP), R16 // syscall entry MOVD a1+8(FP), R0 MOVD a2+16(FP), R1 MOVD a3+24(FP), R2 @@ -115,13 +115,13 @@ TEXT ·Syscall9(SB),NOSPLIT,$0-104 MOVD $-1, R1 MOVD R1, r1+80(FP) // r1 MOVD ZR, r2+88(FP) // r2 - MOVD R0, errno+96(FP) // errno + MOVD R0, err+96(FP) // err BL runtime·exitsyscall(SB) RET ok: MOVD R0, r1+80(FP) // r1 MOVD R1, r2+88(FP) // r2 - MOVD ZR, errno+96(FP) // errno + MOVD ZR, err+96(FP) // err BL runtime·exitsyscall(SB) RET diff --git a/src/syscall/asm_openbsd_arm.s b/src/syscall/asm_openbsd_arm.s index 4f034a0898..9279ed960f 100644 --- a/src/syscall/asm_openbsd_arm.s +++ b/src/syscall/asm_openbsd_arm.s @@ -17,7 +17,7 @@ TEXT ·Syscall(SB),NOSPLIT,$0-28 BL runtime·entersyscall(SB) - MOVW syscall+0(FP), R12 // syscall number + MOVW trap+0(FP), R12 // syscall number MOVW a1+4(FP), R0 // arg 1 MOVW a2+8(FP), R1 // arg 2 MOVW a3+12(FP), R2 // arg 3 @@ -39,7 +39,7 @@ error: TEXT ·Syscall6(SB),NOSPLIT,$0-40 BL runtime·entersyscall(SB) - MOVW syscall+0(FP), R12 // syscall number + MOVW trap+0(FP), R12 // syscall number MOVW a1+4(FP), R0 // arg 1 MOVW a2+8(FP), R1 // arg 2 MOVW a3+12(FP), R2 // arg 3 @@ -65,7 +65,7 @@ error6: TEXT ·Syscall9(SB),NOSPLIT,$0-52 BL runtime·entersyscall(SB) - MOVW syscall+0(FP), R12 // syscall number + MOVW num+0(FP), R12 // syscall number MOVW a1+4(FP), R0 // arg 1 MOVW a2+8(FP), R1 // arg 2 MOVW a3+12(FP), R2 // arg 3 @@ -90,7 +90,7 @@ error9: RET TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - MOVW syscall+0(FP), R12 // syscall number + MOVW trap+0(FP), R12 // syscall number MOVW a1+4(FP), R0 // arg 1 MOVW a2+8(FP), R1 // arg 2 MOVW a3+12(FP), R2 // arg 3 @@ -109,7 +109,7 @@ errorr: RET TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - MOVW syscall+0(FP), R12 // syscall number + MOVW trap+0(FP), R12 // syscall number MOVW a1+4(FP), R0 // arg 1 MOVW a2+8(FP), R1 // arg 2 MOVW a3+12(FP), R2 // arg 3 diff --git a/src/syscall/asm_plan9_386.s b/src/syscall/asm_plan9_386.s index fc13640b93..59764a7b66 100644 --- a/src/syscall/asm_plan9_386.s +++ b/src/syscall/asm_plan9_386.s @@ -20,10 +20,10 @@ // Trap # in AX, args on stack above caller pc. TEXT ·Syscall(SB),NOSPLIT,$0-32 CALL runtime·entersyscall(SB) - MOVL 4(SP), AX // syscall entry + MOVL trap+0(FP), AX // syscall entry // slide args down on top of system call number - LEAL 8(SP), SI - LEAL 4(SP), DI + LEAL 8(SP), SI + LEAL 4(SP), DI CLD MOVSL MOVSL @@ -55,10 +55,10 @@ copyresult3: TEXT ·Syscall6(SB),NOSPLIT,$0-44 CALL runtime·entersyscall(SB) - MOVL 4(SP), AX // syscall entry + MOVL trap+0(FP), AX // syscall entry // slide args down on top of system call number - LEAL 8(SP), SI - LEAL 4(SP), DI + LEAL 8(SP), SI + LEAL 4(SP), DI CLD MOVSL MOVSL @@ -92,10 +92,10 @@ copyresult4: RET TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - MOVL 4(SP), AX // syscall entry + MOVL trap+0(FP), AX // syscall entry // slide args down on top of system call number - LEAL 8(SP), SI - LEAL 4(SP), DI + LEAL 8(SP), SI + LEAL 4(SP), DI CLD MOVSL MOVSL @@ -107,10 +107,10 @@ TEXT ·RawSyscall(SB),NOSPLIT,$0-28 RET TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - MOVL 4(SP), AX // syscall entry + MOVL trap+0(SP), AX // syscall entry // slide args down on top of system call number - LEAL 8(SP), SI - LEAL 4(SP), DI + LEAL 8(SP), SI + LEAL 4(SP), DI CLD MOVSL MOVSL @@ -136,8 +136,8 @@ TEXT ·seek(SB),NOSPLIT,$0-36 CMPL AX, $-1 JNE ok6 - MOVL AX, 24(SP) // newoffset low - MOVL AX, 28(SP) // newoffset high + MOVL AX, newoffset_lo+20(FP) + MOVL AX, newoffset_hi+24(FP) SUBL $8, SP CALL syscall·errstr(SB) diff --git a/src/syscall/asm_plan9_amd64.s b/src/syscall/asm_plan9_amd64.s index 92419b7172..cb1d104b7b 100644 --- a/src/syscall/asm_plan9_amd64.s +++ b/src/syscall/asm_plan9_amd64.s @@ -19,7 +19,7 @@ TEXT ·Syscall(SB),NOSPLIT,$0-64 CALL runtime·entersyscall(SB) - MOVQ 8(SP), BP // syscall entry + MOVQ trap+0(FP), BP // syscall entry // slide args down on top of system call number LEAQ 16(SP), SI LEAQ 8(SP), DI @@ -54,10 +54,10 @@ copyresult3: TEXT ·Syscall6(SB),NOSPLIT,$0-88 CALL runtime·entersyscall(SB) - MOVQ 8(SP), BP // syscall entry + MOVQ trap+0(FP), BP // syscall entry // slide args down on top of system call number - LEAQ 16(SP), SI - LEAQ 8(SP), DI + LEAQ 16(SP), SI + LEAQ 8(SP), DI CLD MOVSQ MOVSQ @@ -91,10 +91,10 @@ copyresult4: RET TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - MOVQ 8(SP), BP // syscall entry + MOVQ trap+0(FP), BP // syscall entry // slide args down on top of system call number - LEAQ 16(SP), SI - LEAQ 8(SP), DI + LEAQ 16(SP), SI + LEAQ 8(SP), DI CLD MOVSQ MOVSQ @@ -106,10 +106,10 @@ TEXT ·RawSyscall(SB),NOSPLIT,$0-56 RET TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - MOVQ 8(SP), BP // syscall entry + MOVQ trap+0(FP), BP // syscall entry // slide args down on top of system call number - LEAQ 16(SP), SI - LEAQ 8(SP), DI + LEAQ 16(SP), SI + LEAQ 8(SP), DI CLD MOVSQ MOVSQ diff --git a/src/syscall/asm_unix_386.s b/src/syscall/asm_unix_386.s index df7a07d732..263355c493 100644 --- a/src/syscall/asm_unix_386.s +++ b/src/syscall/asm_unix_386.s @@ -4,9 +4,6 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// TODO(rsc): Rewrite all nn(SP) references into name+(nn-8)(FP) -// so that go vet can check that they are correct. - #include "textflag.h" #include "funcdata.h" @@ -20,7 +17,7 @@ TEXT ·Syscall(SB),NOSPLIT,$0-28 CALL runtime·entersyscall(SB) - MOVL 4(SP), AX // syscall entry + MOVL trap+0(FP), AX // syscall entry // slide args down on top of system call number LEAL 8(SP), SI LEAL 4(SP), DI @@ -30,21 +27,21 @@ TEXT ·Syscall(SB),NOSPLIT,$0-28 MOVSL INT $0x80 JAE ok - MOVL $-1, 20(SP) // r1 - MOVL $-1, 24(SP) // r2 - MOVL AX, 28(SP) // errno + MOVL $-1, r1+16(FP) // r1 + MOVL $-1, r2+20(FP) // r2 + MOVL AX, err+24(FP) // errno CALL runtime·exitsyscall(SB) RET ok: - MOVL AX, 20(SP) // r1 - MOVL DX, 24(SP) // r2 - MOVL $0, 28(SP) // errno + MOVL AX, r1+16(FP) // r1 + MOVL DX, r2+20(FP) // r2 + MOVL $0, err+24(FP) // errno CALL runtime·exitsyscall(SB) RET TEXT ·Syscall6(SB),NOSPLIT,$0-40 CALL runtime·entersyscall(SB) - MOVL 4(SP), AX // syscall entry + MOVL trap+0(FP), AX // syscall entry // slide args down on top of system call number LEAL 8(SP), SI LEAL 4(SP), DI @@ -57,21 +54,21 @@ TEXT ·Syscall6(SB),NOSPLIT,$0-40 MOVSL INT $0x80 JAE ok6 - MOVL $-1, 32(SP) // r1 - MOVL $-1, 36(SP) // r2 - MOVL AX, 40(SP) // errno + MOVL $-1, r1+28(FP) // r1 + MOVL $-1, r2+32(FP) // r2 + MOVL AX, err+36(FP) // errno CALL runtime·exitsyscall(SB) RET ok6: - MOVL AX, 32(SP) // r1 - MOVL DX, 36(SP) // r2 - MOVL $0, 40(SP) // errno + MOVL AX, r1+28(FP) // r1 + MOVL DX, r2+32(FP) // r2 + MOVL $0, err+36(FP) // errno CALL runtime·exitsyscall(SB) RET TEXT ·Syscall9(SB),NOSPLIT,$0-52 CALL runtime·entersyscall(SB) - MOVL 4(SP), AX // syscall entry + MOVL num+0(FP), AX // syscall entry // slide args down on top of system call number LEAL 8(SP), SI LEAL 4(SP), DI @@ -87,20 +84,20 @@ TEXT ·Syscall9(SB),NOSPLIT,$0-52 MOVSL INT $0x80 JAE ok9 - MOVL $-1, 44(SP) // r1 - MOVL $-1, 48(SP) // r2 - MOVL AX, 52(SP) // errno + MOVL $-1, r1+40(FP) // r1 + MOVL $-1, r2+44(FP) // r2 + MOVL AX, err+48(FP) // errno CALL runtime·exitsyscall(SB) RET ok9: - MOVL AX, 44(SP) // r1 - MOVL DX, 48(SP) // r2 - MOVL $0, 52(SP) // errno + MOVL AX, r1+40(FP) // r1 + MOVL DX, r2+44(FP) // r2 + MOVL $0, err+48(FP) // errno CALL runtime·exitsyscall(SB) RET TEXT ·RawSyscall(SB),NOSPLIT,$0-28 - MOVL 4(SP), AX // syscall entry + MOVL trap+0(FP), AX // syscall entry // slide args down on top of system call number LEAL 8(SP), SI LEAL 4(SP), DI @@ -110,18 +107,18 @@ TEXT ·RawSyscall(SB),NOSPLIT,$0-28 MOVSL INT $0x80 JAE ok1 - MOVL $-1, 20(SP) // r1 - MOVL $-1, 24(SP) // r2 - MOVL AX, 28(SP) // errno + MOVL $-1, r1+16(FP) // r1 + MOVL $-1, r2+20(FP) // r2 + MOVL AX, err+24(FP) // errno RET ok1: - MOVL AX, 20(SP) // r1 - MOVL DX, 24(SP) // r2 - MOVL $0, 28(SP) // errno + MOVL AX, r1+16(FP) // r1 + MOVL DX, r2+20(FP) // r2 + MOVL $0, err+24(FP) // errno RET TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 - MOVL 4(SP), AX // syscall entry + MOVL trap+0(FP), AX // syscall entry // slide args down on top of system call number LEAL 8(SP), SI LEAL 4(SP), DI @@ -134,12 +131,12 @@ TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 MOVSL INT $0x80 JAE ok2 - MOVL $-1, 32(SP) // r1 - MOVL $-1, 36(SP) // r2 - MOVL AX, 40(SP) // errno + MOVL $-1, r1+28(FP) // r1 + MOVL $-1, r2+32(FP) // r2 + MOVL AX, err+36(FP) // errno RET ok2: - MOVL AX, 32(SP) // r1 - MOVL DX, 36(SP) // r2 - MOVL $0, 40(SP) // errno + MOVL AX, r1+28(FP) // r1 + MOVL DX, r2+32(FP) // r2 + MOVL $0, err+36(FP) // errno RET diff --git a/src/syscall/asm_unix_amd64.s b/src/syscall/asm_unix_amd64.s index cba80159d0..025408f9e1 100644 --- a/src/syscall/asm_unix_amd64.s +++ b/src/syscall/asm_unix_amd64.s @@ -4,9 +4,6 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// TODO(rsc): Rewrite all nn(SP) references into name+(nn-8)(FP) -// so that go vet can check that they are correct. - #include "textflag.h" #include "funcdata.h" @@ -14,92 +11,92 @@ // System call support for AMD64 unixes // -// func Syscall(trap int64, a1, a2, a3 int64) (r1, r2, err int64); -// func Syscall6(trap int64, a1, a2, a3, a4, a5, a6 int64) (r1, r2, err int64); +// func Syscall(trap int64, a1, a2, a3 int64) (r1, r2, err int64) +// func Syscall6(trap int64, a1, a2, a3, a4, a5, a6 int64) (r1, r2, err int64) // Trap # in AX, args in DI SI DX, return in AX DX TEXT ·Syscall(SB),NOSPLIT,$0-56 CALL runtime·entersyscall(SB) - MOVQ 8(SP), AX // syscall entry - MOVQ 16(SP), DI - MOVQ 24(SP), SI - MOVQ 32(SP), DX + MOVQ trap+0(FP), AX // syscall entry + MOVQ a1+8(FP), DI + MOVQ a2+16(FP), SI + MOVQ a3+24(FP), DX MOVQ $0, R10 MOVQ $0, R8 MOVQ $0, R9 SYSCALL JCC ok - MOVQ $-1, 40(SP) // r1 - MOVQ $0, 48(SP) // r2 - MOVQ AX, 56(SP) // errno + MOVQ $-1, r1+32(FP) // r1 + MOVQ $0, r2+40(FP) // r2 + MOVQ AX, err+48(FP) // errno CALL runtime·exitsyscall(SB) RET ok: - MOVQ AX, 40(SP) // r1 - MOVQ DX, 48(SP) // r2 - MOVQ $0, 56(SP) // errno + MOVQ AX, r1+32(FP) // r1 + MOVQ DX, r2+40(FP) // r2 + MOVQ $0, err+48(FP) // errno CALL runtime·exitsyscall(SB) RET TEXT ·Syscall6(SB),NOSPLIT,$0-80 CALL runtime·entersyscall(SB) - MOVQ 8(SP), AX // syscall entry - MOVQ 16(SP), DI - MOVQ 24(SP), SI - MOVQ 32(SP), DX - MOVQ 40(SP), R10 - MOVQ 48(SP), R8 - MOVQ 56(SP), R9 + MOVQ trap+0(FP), AX // syscall entry + MOVQ a1+8(FP), DI + MOVQ a2+16(FP), SI + MOVQ a3+24(FP), DX + MOVQ a4+32(FP), R10 + MOVQ a5+40(FP), R8 + MOVQ a6+48(FP), R9 SYSCALL JCC ok6 - MOVQ $-1, 64(SP) // r1 - MOVQ $0, 72(SP) // r2 - MOVQ AX, 80(SP) // errno + MOVQ $-1, r1+56(FP) // r1 + MOVQ $0, r2+64(FP) // r2 + MOVQ AX, err+72(FP) // errno CALL runtime·exitsyscall(SB) RET ok6: - MOVQ AX, 64(SP) // r1 - MOVQ DX, 72(SP) // r2 - MOVQ $0, 80(SP) // errno + MOVQ AX, r1+56(FP) // r1 + MOVQ DX, r2+64(FP) // r2 + MOVQ $0, err+72(FP) // errno CALL runtime·exitsyscall(SB) RET TEXT ·RawSyscall(SB),NOSPLIT,$0-56 - MOVQ 16(SP), DI - MOVQ 24(SP), SI - MOVQ 32(SP), DX + MOVQ a1+8(FP), DI + MOVQ a2+16(FP), SI + MOVQ a3+24(FP), DX MOVQ $0, R10 MOVQ $0, R8 MOVQ $0, R9 - MOVQ 8(SP), AX // syscall entry + MOVQ trap+0(FP), AX // syscall entry SYSCALL JCC ok1 - MOVQ $-1, 40(SP) // r1 - MOVQ $0, 48(SP) // r2 - MOVQ AX, 56(SP) // errno + MOVQ $-1, r1+32(FP) // r1 + MOVQ $0, r2+40(FP) // r2 + MOVQ AX, err+48(FP) // errno RET ok1: - MOVQ AX, 40(SP) // r1 - MOVQ DX, 48(SP) // r2 - MOVQ $0, 56(SP) // errno + MOVQ AX, r1+32(FP) // r1 + MOVQ DX, r2+40(FP) // r2 + MOVQ $0, err+48(FP) // errno RET TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 - MOVQ 16(SP), DI - MOVQ 24(SP), SI - MOVQ 32(SP), DX - MOVQ 40(SP), R10 - MOVQ 48(SP), R8 - MOVQ 56(SP), R9 - MOVQ 8(SP), AX // syscall entry + MOVQ a1+8(FP), DI + MOVQ a2+16(FP), SI + MOVQ a3+24(FP), DX + MOVQ a4+32(FP), R10 + MOVQ a5+40(FP), R8 + MOVQ a6+48(FP), R9 + MOVQ trap+0(FP), AX // syscall entry SYSCALL JCC ok2 - MOVQ $-1, 64(SP) // r1 - MOVQ $0, 72(SP) // r2 - MOVQ AX, 80(SP) // errno + MOVQ $-1, r1+56(FP) // r1 + MOVQ $0, r2+64(FP) // r2 + MOVQ AX, err+72(FP) // errno RET ok2: - MOVQ AX, 64(SP) // r1 - MOVQ DX, 72(SP) // r2 - MOVQ $0, 80(SP) // errno + MOVQ AX, r1+56(FP) // r1 + MOVQ DX, r2+64(FP) // r2 + MOVQ $0, err+72(FP) // errno RET diff --git a/src/syscall/syscall_netbsd.go b/src/syscall/syscall_netbsd.go index 7fd6e2bf46..081af62cc5 100644 --- a/src/syscall/syscall_netbsd.go +++ b/src/syscall/syscall_netbsd.go @@ -26,7 +26,7 @@ type SockaddrDatalink struct { raw RawSockaddrDatalink } -func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) +func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) func sysctlNodes(mib []_C_int) (nodes []Sysctlnode, err error) { var olen uintptr diff --git a/src/syscall/syscall_openbsd.go b/src/syscall/syscall_openbsd.go index e196e5966c..68218cf93b 100644 --- a/src/syscall/syscall_openbsd.go +++ b/src/syscall/syscall_openbsd.go @@ -26,7 +26,7 @@ type SockaddrDatalink struct { raw RawSockaddrDatalink } -func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) +func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) func nametomib(name string) (mib []_C_int, err error) {