// False positives.
// Nothing much to do about cross-package assembly. Unfortunate.
-runtime/asm_ARCHSUFF.s: [GOARCH] cannot check cross-package assembly function: call is in package reflect
internal/bytealg/equal_ARCHSUFF.s: [GOARCH] cannot check cross-package assembly function: memequal is in package runtime
internal/bytealg/equal_ARCHSUFF.s: [GOARCH] cannot check cross-package assembly function: memequal_varlen is in package runtime
// back into arg+retoffset before returning. If copying result bytes back,
// the caller must pass the argument frame type as argtype, so that
// call can execute appropriate write barriers during the copy.
+//
+//go:linkname call runtime.reflectcall
func call(argtype *rtype, fn, arg unsafe.Pointer, n uint32, retoffset uint32)
func ifaceE2I(t *rtype, src interface{}, dst unsafe.Pointer)
JMP AX
// Note: can't just "JMP NAME(SB)" - bad inlining results.
-TEXT reflect·call(SB), NOSPLIT, $0-0
- JMP ·reflectcall(SB)
-
TEXT ·reflectcall(SB), NOSPLIT, $0-20
MOVL argsize+12(FP), CX
DISPATCH(runtime·call16, 16)
JMP AX
// Note: can't just "JMP NAME(SB)" - bad inlining results.
-TEXT reflect·call(SB), NOSPLIT, $0-0
- JMP ·reflectcall(SB)
-
TEXT ·reflectcall(SB), NOSPLIT, $0-32
MOVLQZX argsize+24(FP), CX
DISPATCH(runtime·call32, 32)
JMP AX
// Note: can't just "JMP NAME(SB)" - bad inlining results.
-TEXT reflect·call(SB), NOSPLIT, $0-0
- JMP ·reflectcall(SB)
-
TEXT ·reflectcall(SB), NOSPLIT, $0-20
MOVLQZX argsize+12(FP), CX
DISPATCH(runtime·call16, 16)
MOVW $NAME(SB), R1; \
B (R1)
-TEXT reflect·call(SB), NOSPLIT, $0-0
- B ·reflectcall(SB)
-
TEXT ·reflectcall(SB),NOSPLIT|NOFRAME,$0-20
MOVW argsize+12(FP), R0
DISPATCH(runtime·call16, 16)
B (R27)
// Note: can't just "B NAME(SB)" - bad inlining results.
-TEXT reflect·call(SB), NOSPLIT, $0-0
- B ·reflectcall(SB)
-
TEXT ·reflectcall(SB), NOSPLIT|NOFRAME, $0-32
MOVWU argsize+24(FP), R16
DISPATCH(runtime·call32, 32)
JMP (R4)
// Note: can't just "BR NAME(SB)" - bad inlining results.
-TEXT reflect·call(SB), NOSPLIT, $0-0
- JMP ·reflectcall(SB)
-
TEXT ·reflectcall(SB), NOSPLIT|NOFRAME, $0-32
MOVWU argsize+24(FP), R1
DISPATCH(runtime·call32, 32)
MOVW $NAME(SB), R4; \
JMP (R4)
-TEXT reflect·call(SB),NOSPLIT,$0-20
- JMP ·reflectcall(SB)
-
TEXT ·reflectcall(SB),NOSPLIT|NOFRAME,$0-20
MOVW argsize+12(FP), R1
BR (CTR)
// Note: can't just "BR NAME(SB)" - bad inlining results.
-TEXT reflect·call(SB), NOSPLIT, $0-0
- BR ·reflectcall(SB)
-
TEXT ·reflectcall(SB), NOSPLIT|NOFRAME, $0-32
MOVWZ argsize+24(FP), R3
DISPATCH(runtime·call32, 32)
BR (R5)
// Note: can't just "BR NAME(SB)" - bad inlining results.
-TEXT reflect·call(SB), NOSPLIT, $0-0
- BR ·reflectcall(SB)
-
TEXT ·reflectcall(SB), NOSPLIT, $-8-32
MOVWZ argsize+24(FP), R3
DISPATCH(runtime·call32, 32)
JMP NAME(SB); \
End
-TEXT reflect·call(SB), NOSPLIT, $0-0
- JMP ·reflectcall(SB)
-
TEXT ·reflectcall(SB), NOSPLIT, $0-32
I64Load fn+8(FP)
I64Eqz
// one call that copies results back, in cgocallbackg1, and it does NOT pass a
// frame type, meaning there are no write barriers invoked. See that call
// site for justification.
+//
+// Package reflect accesses this symbol through a linkname.
func reflectcall(argtype *_type, fn, arg unsafe.Pointer, argsize uint32, retoffset uint32)
func procyield(cycles uint32)