aboutsummaryrefslogtreecommitdiff
path: root/src/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime')
-rw-r--r--src/runtime/alg.go4
-rw-r--r--src/runtime/stubs.go9
-rw-r--r--src/runtime/stubs_amd64.go4
-rw-r--r--src/runtime/stubs_arm.go6
-rw-r--r--src/runtime/stubs_arm64.go8
-rw-r--r--src/runtime/stubs_loong64.go8
-rw-r--r--src/runtime/stubs_mips64x.go4
-rw-r--r--src/runtime/stubs_mipsx.go6
-rw-r--r--src/runtime/stubs_ppc64x.go10
-rw-r--r--src/runtime/stubs_riscv64.go8
-rw-r--r--src/runtime/stubs_s390x.go8
11 files changed, 73 insertions, 2 deletions
diff --git a/src/runtime/alg.go b/src/runtime/alg.go
index 9b726b2180..e99acf8242 100644
--- a/src/runtime/alg.go
+++ b/src/runtime/alg.go
@@ -80,8 +80,12 @@ var useAeshash bool
//go:linkname memhash
func memhash(p unsafe.Pointer, h, s uintptr) uintptr
+// Accessed in internal/runtime/maps.
+//
+//go:linknamestd memhash32
func memhash32(p unsafe.Pointer, h uintptr) uintptr
+//go:linknamestd memhash64
func memhash64(p unsafe.Pointer, h uintptr) uintptr
// strhash should be an internal detail,
diff --git a/src/runtime/stubs.go b/src/runtime/stubs.go
index 31e35c74f5..d4c79d288c 100644
--- a/src/runtime/stubs.go
+++ b/src/runtime/stubs.go
@@ -203,12 +203,14 @@ func noEscapePtr[T any](p *T) *T {
// Not all cgocallback frames are actually cgocallback,
// so not all have these arguments. Mark them uintptr so that the GC
// does not misinterpret memory when the arguments are not present.
-// cgocallback is not called from Go, only from crosscall2.
+// cgocallback is not called from Go, only from crosscall2 in runtime/cgo.
// This in turn calls cgocallbackg, which is where we'll find
// pointer-declared arguments.
//
// When fn is nil (frame is saved g), call dropm instead,
// this is used when the C thread is exiting.
+//
+//go:linknamestd cgocallback
func cgocallback(fn, frame, ctxt uintptr)
func gogo(buf *gobuf)
@@ -260,6 +262,7 @@ func breakpoint()
// only in a very limited callee of reflectcall, the stackArgs are copied, and
// regArgs is only used in the reflectcall frame.
//
+//go:linknamestd reflectcall
//go:noescape
func reflectcall(stackArgsType *_type, fn, stackArgs unsafe.Pointer, stackArgsSize, stackRetOffset, frameSize uint32, regArgs *abi.RegArgs)
@@ -409,6 +412,10 @@ func bool2int(x bool) int {
// (e.g., an INT3 on x86). A crash in abort is recognized by the
// signal handler, which will attempt to tear down the runtime
// immediately.
+//
+// Also called from runtime test.
+//
+//go:linkname abort
func abort()
// Called from compiled code; declared for vet; do NOT call from Go.
diff --git a/src/runtime/stubs_amd64.go b/src/runtime/stubs_amd64.go
index 6d0b113740..9517d03283 100644
--- a/src/runtime/stubs_amd64.go
+++ b/src/runtime/stubs_amd64.go
@@ -48,7 +48,11 @@ func asmcgocall_landingpad()
//
// Spills/loads arguments in registers to/from an internal/abi.RegArgs
// respectively. Does not follow the Go ABI.
+//
+//go:linknamestd spillArgs
func spillArgs()
+
+//go:linknamestd unspillArgs
func unspillArgs()
// getfp returns the frame pointer register of its caller or 0 if not implemented.
diff --git a/src/runtime/stubs_arm.go b/src/runtime/stubs_arm.go
index 49bfd9ef04..786d90174b 100644
--- a/src/runtime/stubs_arm.go
+++ b/src/runtime/stubs_arm.go
@@ -14,12 +14,16 @@ func _mod()
func _modu()
// Called from assembly only; declared for go vet.
-func usplitR0()
+//
+// load_g is also called from runtime/cgo.
+//
+//go:linknamestd load_g
func load_g()
func save_g()
func emptyfunc()
func _initcgo()
func read_tls_fallback()
+func usplitR0()
//go:noescape
func asmcgocall_no_g(fn, arg unsafe.Pointer)
diff --git a/src/runtime/stubs_arm64.go b/src/runtime/stubs_arm64.go
index df04e64291..f6cba6c2fa 100644
--- a/src/runtime/stubs_arm64.go
+++ b/src/runtime/stubs_arm64.go
@@ -7,6 +7,10 @@ package runtime
import "unsafe"
// Called from assembly only; declared for go vet.
+//
+// load_g is also called from runtime/cgo.
+//
+//go:linknamestd load_g
func load_g()
func save_g()
@@ -19,7 +23,11 @@ func emptyfunc()
//
// Spills/loads arguments in registers to/from an internal/abi.RegArgs
// respectively. Does not follow the Go ABI.
+//
+//go:linknamestd spillArgs
func spillArgs()
+
+//go:linknamestd unspillArgs
func unspillArgs()
// getfp returns the frame pointer register of its caller or 0 if not implemented.
diff --git a/src/runtime/stubs_loong64.go b/src/runtime/stubs_loong64.go
index dfcfff2d16..9b73e8d963 100644
--- a/src/runtime/stubs_loong64.go
+++ b/src/runtime/stubs_loong64.go
@@ -9,6 +9,10 @@ package runtime
import "unsafe"
// Called from assembly only; declared for go vet.
+//
+// load_g is also called from runtime/cgo.
+//
+//go:linknamestd load_g
func load_g()
func save_g()
@@ -19,7 +23,11 @@ func asmcgocall_no_g(fn, arg unsafe.Pointer)
//
// Spills/loads arguments in registers to/from an internal/abi.RegArgs
// respectively. Does not follow the Go ABI.
+//
+//go:linknamestd spillArgs
func spillArgs()
+
+//go:linknamestd unspillArgs
func unspillArgs()
// getfp returns the frame pointer register of its caller or 0 if not implemented.
diff --git a/src/runtime/stubs_mips64x.go b/src/runtime/stubs_mips64x.go
index fb5220b0de..f73fbefad7 100644
--- a/src/runtime/stubs_mips64x.go
+++ b/src/runtime/stubs_mips64x.go
@@ -9,6 +9,10 @@ package runtime
import "unsafe"
// Called from assembly only; declared for go vet.
+//
+// load_g is also called from runtime/cgo.
+//
+//go:linknamestd load_g
func load_g()
func save_g()
diff --git a/src/runtime/stubs_mipsx.go b/src/runtime/stubs_mipsx.go
index 175d4f9741..242a7e4554 100644
--- a/src/runtime/stubs_mipsx.go
+++ b/src/runtime/stubs_mipsx.go
@@ -6,7 +6,13 @@
package runtime
+import _ "unsafe" // for linkname
+
// Called from assembly only; declared for go vet.
+//
+// load_g is also called from runtime/cgo.
+//
+//go:linknamestd load_g
func load_g()
func save_g()
diff --git a/src/runtime/stubs_ppc64x.go b/src/runtime/stubs_ppc64x.go
index dbc82c8453..7a0d8cec36 100644
--- a/src/runtime/stubs_ppc64x.go
+++ b/src/runtime/stubs_ppc64x.go
@@ -9,6 +9,10 @@ package runtime
import "unsafe"
// Called from assembly only; declared for go vet.
+//
+// load_g is also called from runtime/cgo.
+//
+//go:linknamestd load_g
func load_g()
func save_g()
func reginit()
@@ -16,9 +20,15 @@ func reginit()
//go:noescape
func asmcgocall_no_g(fn, arg unsafe.Pointer)
+// Used by reflectcall and the reflect package.
+//
// Spills/loads arguments in registers to/from an internal/abi.RegArgs
// respectively. Does not follow the Go ABI.
+//
+//go:linknamestd spillArgs
func spillArgs()
+
+//go:linknamestd unspillArgs
func unspillArgs()
// getfp returns the frame pointer register of its caller or 0 if not implemented.
diff --git a/src/runtime/stubs_riscv64.go b/src/runtime/stubs_riscv64.go
index 2306ba878b..302a0f41e8 100644
--- a/src/runtime/stubs_riscv64.go
+++ b/src/runtime/stubs_riscv64.go
@@ -7,6 +7,10 @@ package runtime
import "unsafe"
// Called from assembly only; declared for go vet.
+//
+// load_g is also called from runtime/cgo.
+//
+//go:linknamestd load_g
func load_g()
func save_g()
@@ -17,7 +21,11 @@ func asmcgocall_no_g(fn, arg unsafe.Pointer)
//
// Spills/loads arguments in registers to/from an internal/abi.RegArgs
// respectively. Does not follow the Go ABI.
+//
+//go:linknamestd spillArgs
func spillArgs()
+
+//go:linknamestd unspillArgs
func unspillArgs()
// getfp returns the frame pointer register of its caller or 0 if not implemented.
diff --git a/src/runtime/stubs_s390x.go b/src/runtime/stubs_s390x.go
index c872799a56..ee62dcf3b5 100644
--- a/src/runtime/stubs_s390x.go
+++ b/src/runtime/stubs_s390x.go
@@ -7,6 +7,10 @@ package runtime
import "unsafe"
// Called from assembly only; declared for go vet.
+//
+// load_g is also called from runtime/cgo.
+//
+//go:linknamestd load_g
func load_g()
func save_g()
@@ -17,7 +21,11 @@ func asmcgocall_no_g(fn, arg unsafe.Pointer)
//
// Spills/loads arguments in registers to/from an internal/abi.RegArgs
// respectively. Does not follow the Go ABI.
+//
+//go:linknamestd spillArgs
func spillArgs()
+
+//go:linknamestd unspillArgs
func unspillArgs()
// getfp returns the frame pointer register of its caller or 0 if not implemented.