1// Copyright 2018 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5#include "textflag.h"
6#include "funcdata.h"
7
8// makeFuncStub is the code half of the function returned by MakeFunc.
9// See the comment on the declaration of makeFuncStub in makefunc.go
10// for more details.
11// No arg size here; runtime pulls arg map out of the func value.
12TEXT ·makeFuncStub(SB),(NOSPLIT|WRAPPER),$40
13	NO_LOCAL_POINTERS
14
15	MOVD CTXT, 0(SP)
16
17	Get SP
18	Get SP
19	I64ExtendI32U
20	I64Const $argframe+0(FP)
21	I64Add
22	I64Store $8
23
24	MOVB $0, 32(SP)
25	MOVD $32(SP), 16(SP)
26	MOVD $0, 24(SP)
27
28	CALL ·callReflect(SB)
29	RET
30
31// methodValueCall is the code half of the function returned by makeMethodValue.
32// See the comment on the declaration of methodValueCall in makefunc.go
33// for more details.
34// No arg size here; runtime pulls arg map out of the func value.
35TEXT ·methodValueCall(SB),(NOSPLIT|WRAPPER),$40
36	NO_LOCAL_POINTERS
37
38	MOVD CTXT, 0(SP)
39
40	Get SP
41	Get SP
42	I64ExtendI32U
43	I64Const $argframe+0(FP)
44	I64Add
45	I64Store $8
46
47	MOVB $0, 32(SP)
48	MOVD $32(SP), 16(SP)
49	MOVD $0, 24(SP)
50
51	CALL ·callMethod(SB)
52	RET
53