+++ /dev/null
-// aix/ppc64-specific vet whitelist. See readme.txt for details.
-
-runtime/asm_ppc64x.s: [ppc64] sigreturn: function sigreturn missing Go declaration
-runtime/sys_aix_ppc64.s: [ppc64] _asmsyscall6: function _asmsyscall6 missing Go declaration
-runtime/sys_aix_ppc64.s: [ppc64] _tstart: function _tstart missing Go declaration
+++ /dev/null
-// arm64-specific vet whitelist. See readme.txt for details.
-
-// Intentionally missing declarations.
-runtime/tls_arm64.s: [arm64] load_g: function load_g missing Go declaration
-runtime/tls_arm64.s: [arm64] save_g: function save_g missing Go declaration
+++ /dev/null
-// linux/ppc64-specific vet whitelist. See readme.txt for details.
-
-runtime/sys_linux_ppc64x.s: [GOARCH] _sigtramp: function _sigtramp missing Go declaration
-runtime/sys_linux_ppc64x.s: [GOARCH] _cgoSigtramp: function _cgoSigtramp missing Go declaration
+++ /dev/null
-// mips-specific (big endian) vet whitelist. See readme.txt for details.
-
-// Work around if-def'd code. Will be fixed by golang.org/issue/17544.
-runtime/sys_linux_mipsx.s: [mips] walltime: invalid offset sec_lo+0(FP); expected sec_lo+4(FP)
-runtime/sys_linux_mipsx.s: [mips] walltime: invalid offset sec_hi+4(FP); expected sec_hi+0(FP)
-runtime/sys_linux_mipsx.s: [mips] nanotime: invalid offset ret_lo+0(FP); expected ret_lo+4(FP)
-runtime/sys_linux_mipsx.s: [mips] nanotime: invalid offset ret_hi+4(FP); expected ret_hi+0(FP)
+++ /dev/null
-// mipsle-specific vet whitelist. See readme.txt for details.
-
-// Work around if-def'd code. Will be fixed by golang.org/issue/17544.
-runtime/sys_linux_mipsx.s: [mipsle] walltime: invalid offset sec_lo+4(FP); expected sec_lo+0(FP)
-runtime/sys_linux_mipsx.s: [mipsle] walltime: invalid offset sec_hi+0(FP); expected sec_hi+4(FP)
-runtime/sys_linux_mipsx.s: [mipsle] nanotime: invalid offset ret_lo+4(FP); expected ret_lo+0(FP)
-runtime/sys_linux_mipsx.s: [mipsle] nanotime: invalid offset ret_hi+0(FP); expected ret_hi+4(FP)
// traceback from goexit1 must hit code range of goexit
MOVD R0, R0 // NOP
-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
// the goroutine exits. It's implemented in assembly mainly because that's the
// traceback from goexit1 must hit code range of goexit
BYTE $0x07; BYTE $0x00; // 2-byte nop
-TEXT runtime·sigreturn(SB),NOSPLIT,$0-0
- RET
-
TEXT ·publicationBarrier(SB),NOSPLIT|NOFRAME,$0-0
// Stores are already ordered on s390x, so this is just a
// compile barrier.
clearlt256:
CMPBEQ R5, $0, done
ADD $-1, R5
- EXRL $runtime·memclr_s390x_exrl_xc(SB), R5
+ EXRL $memclr_exrl_xc<>(SB), R5
done:
RET
// DO NOT CALL - target for exrl (execute relative long) instruction.
-TEXT runtime·memclr_s390x_exrl_xc(SB),NOSPLIT|NOFRAME,$0-0
+TEXT memclr_exrl_xc<>(SB),NOSPLIT|NOFRAME,$0-0
XC $1, 0(R4), 0(R4)
MOVD $0, 0(R0)
RET
forwards_small:
CMPBEQ R5, $0, done
ADD $-1, R5
- EXRL $runtime·memmove_s390x_exrl_mvc(SB), R5
+ EXRL $memmove_exrl_mvc<>(SB), R5
RET
move0to3:
RET
// DO NOT CALL - target for exrl (execute relative long) instruction.
-TEXT runtime·memmove_s390x_exrl_mvc(SB),NOSPLIT|NOFRAME,$0-0
+TEXT memmove_exrl_mvc<>(SB),NOSPLIT|NOFRAME,$0-0
MVC $1, 0(R4), 0(R6)
MOVD R0, 0(R0)
RET
--- /dev/null
+// Copyright 2019 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.
+
+package runtime
+
+// Called from assembly only; declared for go vet.
+func load_g()
+func save_g()
--- /dev/null
+// Copyright 2019 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
+
+package runtime
+
+// Called from assembly only; declared for go vet.
+func load_g()
+func save_g()
--- /dev/null
+// Copyright 2019 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 mips mipsle
+
+package runtime
+
+// Called from assembly only; declared for go vet.
+func load_g()
+func save_g()
--- /dev/null
+// Copyright 2019 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 ppc64 ppc64le
+
+package runtime
+
+// Called from assembly only; declared for go vet.
+func load_g()
+func save_g()
+func reginit()
--- /dev/null
+// Copyright 2019 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.
+
+package runtime
+
+// Called from assembly only; declared for go vet.
+func load_g()
+func save_g()
#include "asm_ppc64x.h"
// This function calls a C function with the function descriptor in R12
-TEXT runtime·callCfunction(SB), NOSPLIT|NOFRAME,$0
+TEXT callCfunction<>(SB), NOSPLIT|NOFRAME,$0
MOVD 0(R12), R12
MOVD R2, 40(R1)
MOVD 0(R12), R0
// It reserves a stack of 288 bytes for the C function.
// NOT USING GO CALLING CONVENTION
// runtime.asmsyscall6 is a function descriptor to the real asmsyscall6.
-DATA runtime·asmsyscall6+0(SB)/8, $runtime·_asmsyscall6(SB)
+DATA runtime·asmsyscall6+0(SB)/8, $asmsyscall6<>(SB)
DATA runtime·asmsyscall6+8(SB)/8, $TOC(SB)
DATA runtime·asmsyscall6+16(SB)/8, $0
GLOBL runtime·asmsyscall6(SB), NOPTR, $24
-TEXT runtime·_asmsyscall6(SB),NOSPLIT,$256
+TEXT asmsyscall6<>(SB),NOSPLIT,$256
MOVD R3, 48(R1) // Save libcall for later
MOVD libcall_fn(R3), R12
MOVD libcall_args(R3), R9
MOVD 24(R9), R6
MOVD 32(R9), R7
MOVD 40(R9), R8
- BL runtime·callCfunction(SB)
+ BL callCfunction<>(SB)
// Restore R0 and TOC
XOR R0, R0
// runtime.sigtramp is a function descriptor to the real sigtramp.
-DATA runtime·sigtramp+0(SB)/8, $runtime·_sigtramp(SB)
+DATA runtime·sigtramp+0(SB)/8, $sigtramp<>(SB)
DATA runtime·sigtramp+8(SB)/8, $TOC(SB)
DATA runtime·sigtramp+16(SB)/8, $0
GLOBL runtime·sigtramp(SB), NOPTR, $24
-// This funcion must not have any frame as we want to control how
+// This function must not have any frame as we want to control how
// every registers are used.
// TODO(aix): Implement SetCgoTraceback handler.
-TEXT runtime·_sigtramp(SB),NOSPLIT|NOFRAME,$0
+TEXT sigtramp<>(SB),NOSPLIT|NOFRAME,$0
MOVD LR, R0
MOVD R0, 16(R1)
// initialize essential registers (just in case)
BR (LR)
// runtime.tstart is a function descriptor to the real tstart.
-DATA runtime·tstart+0(SB)/8, $runtime·_tstart(SB)
+DATA runtime·tstart+0(SB)/8, $tstart<>(SB)
DATA runtime·tstart+8(SB)/8, $TOC(SB)
DATA runtime·tstart+16(SB)/8, $0
GLOBL runtime·tstart(SB), NOPTR, $24
-TEXT runtime·_tstart(SB),NOSPLIT,$0
+TEXT tstart<>(SB),NOSPLIT,$0
XOR R0, R0 // reset R0
// set g
SYSCALL
MOVW 4(R29), R3 // sec
MOVW 8(R29), R5 // nsec
+ MOVW $sec+0(FP), R6
#ifdef GOARCH_mips
- MOVW R3, sec_lo+4(FP)
- MOVW R0, sec_hi+0(FP)
+ MOVW R3, 4(R6)
+ MOVW R0, 0(R6)
#else
- MOVW R3, sec_lo+0(FP)
- MOVW R0, sec_hi+4(FP)
+ MOVW R3, 0(R6)
+ MOVW R0, 4(R6)
#endif
MOVW R5, nsec+8(FP)
RET
MOVW LO, R3
ADDU R5, R3
SGTU R5, R3, R4
+ MOVW $ret+0(FP), R6
#ifdef GOARCH_mips
- MOVW R3, ret_lo+4(FP)
+ MOVW R3, 4(R6)
#else
- MOVW R3, ret_lo+0(FP)
+ MOVW R3, 0(R6)
#endif
MOVW HI, R3
ADDU R4, R3
#ifdef GOARCH_mips
- MOVW R3, ret_hi+0(FP)
+ MOVW R3, 0(R6)
#else
- MOVW R3, ret_hi+4(FP)
+ MOVW R3, 4(R6)
#endif
RET
// In child, on new stack.
// Check that SP is as we expect
+ NOP R29 // tell vet R29/SP changed - stop checking offsets
MOVW 12(R29), R16
MOVW $1234, R1
BEQ R16, R1, 2(PC)
MOVD 24(R1), R2
RET
+TEXT runtime·sigreturn(SB),NOSPLIT,$0-0
+ RET
+
#ifdef GOARCH_ppc64le
// ppc64le doesn't need function descriptors
TEXT runtime·sigtramp(SB),NOSPLIT,$64
#else
// function descriptor for the real sigtramp
TEXT runtime·sigtramp(SB),NOSPLIT|NOFRAME,$0
- DWORD $runtime·_sigtramp(SB)
+ DWORD $sigtramp<>(SB)
DWORD $0
DWORD $0
-TEXT runtime·_sigtramp(SB),NOSPLIT,$64
+TEXT sigtramp<>(SB),NOSPLIT,$64
#endif
// initialize essential registers (just in case)
BL runtime·reginit(SB)
#else
// function descriptor for the real sigtramp
TEXT runtime·cgoSigtramp(SB),NOSPLIT|NOFRAME,$0
- DWORD $runtime·_cgoSigtramp(SB)
+ DWORD $cgoSigtramp<>(SB)
DWORD $0
DWORD $0
-TEXT runtime·_cgoSigtramp(SB),NOSPLIT,$0
- JMP runtime·_sigtramp(SB)
+TEXT cgoSigtramp<>(SB),NOSPLIT,$0
+ JMP sigtramp<>(SB)
#endif
TEXT runtime·sigprofNonGoWrapper<>(SB),NOSPLIT,$0
BL R5
RET
+TEXT runtime·sigreturn(SB),NOSPLIT,$0-0
+ RET
+
TEXT runtime·sigtramp(SB),NOSPLIT,$64
// initialize essential registers (just in case)
XOR R0, R0