MOVL $0, DX
JMP runtime·morestack(SB)
-// reflect·call: call a function with the given argument list
+// reflectcall: call a function with the given argument list
// func call(f *FuncVal, arg *byte, argsize, retoffset uint32).
// we don't have variable-sized frames, so we use a small number
// of constant-sized-frame functions to encode a few bits of size in the pc.
JMP AX
// Note: can't just "JMP NAME(SB)" - bad inlining results.
-TEXT reflect·call(SB), NOSPLIT, $0-16
+TEXT runtime·reflectcall(SB), NOSPLIT, $0-16
MOVL argsize+8(FP), CX
DISPATCH(runtime·call16, 16)
DISPATCH(runtime·call32, 32)
MOVQ $0, 0x1003 // crash if newstack returns
RET
-// reflect·call: call a function with the given argument list
+// reflectcall: call a function with the given argument list
// func call(f *FuncVal, arg *byte, argsize, retoffset uint32).
// we don't have variable-sized frames, so we use a small number
// of constant-sized-frame functions to encode a few bits of size in the pc.
JMP AX
// Note: can't just "JMP NAME(SB)" - bad inlining results.
-TEXT reflect·call(SB), NOSPLIT, $0-24
+TEXT runtime·reflectcall(SB), NOSPLIT, $0-24
MOVLQZX argsize+16(FP), CX
DISPATCH(runtime·call16, 16)
DISPATCH(runtime·call32, 32)
MOVL $0, 0x1003 // crash if newstack returns
RET
-// reflect·call: call a function with the given argument list
+// reflectcall: call a function with the given argument list
// func call(f *FuncVal, arg *byte, argsize, retoffset uint32).
// we don't have variable-sized frames, so we use a small number
// of constant-sized-frame functions to encode a few bits of size in the pc.
JMP AX
// Note: can't just "JMP NAME(SB)" - bad inlining results.
-TEXT reflect·call(SB), NOSPLIT, $0-16
+TEXT runtime·reflectcall(SB), NOSPLIT, $0-16
MOVLQZX argsize+8(FP), CX
DISPATCH(runtime·call16, 16)
DISPATCH(runtime·call32, 32)
MOVW $0, R7
B runtime·morestack(SB)
-// reflect·call: call a function with the given argument list
+// reflectcall: call a function with the given argument list
// func call(f *FuncVal, arg *byte, argsize, retoffset uint32).
// we don't have variable-sized frames, so we use a small number
// of constant-sized-frame functions to encode a few bits of size in the pc.
MOVW $NAME(SB), R1; \
B (R1)
-TEXT reflect·call(SB),NOSPLIT,$-4-16
+TEXT runtime·reflectcall(SB),NOSPLIT,$-4-16
MOVW argsize+8(FP), R0
DISPATCH(runtime·call16, 16)
DISPATCH(runtime·call32, 32)
bitMask = bitBoundary | bitMarked
mSpanInUse = 0
+
+ concurrentSweep = true
)
// Page number (address>>pageShift)
import "unsafe"
// Declarations for runtime services implemented in C or assembly.
-// C implementations of these functions are in stubs.goc.
-// Assembly implementations are in various files, see comments with
-// each function.
const ptrSize = 4 << (^uintptr(0) >> 63) // unsafe.Sizeof(uintptr(0)) but an ideal const
const regSize = 4 << (^uintreg(0) >> 63) // unsafe.Sizeof(uintreg(0)) but an ideal const
return unsafe.Pointer(uintptr(p) + delta)
}
-// in stubs.goc
+// in runtime.c
func getg() *g
func acquirem() *m
func releasem(mp *m)
//go:noescape
func memmove(to unsafe.Pointer, from unsafe.Pointer, n uintptr)
-const (
- concurrentSweep = true
-)
-
func gosched()
func starttheworld()
func stoptheworld()
TEXT bytes·Compare(SB),NOSPLIT,$0-0
JMP runtime·cmpbytes(SB)
-TEXT runtime·reflectcall(SB), NOSPLIT, $0-0
- JMP reflect·call(SB)
+TEXT reflect·call(SB), NOSPLIT, $0-0
+ JMP runtime·reflectcall(SB)
TEXT reflect·chanclose(SB), NOSPLIT, $0-0
JMP runtime·closechan(SB)