1// Copyright 2016 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	MOVD	R12, 8(R15)
15	MOVD	$argframe+0(FP), R3
16	MOVD	R3, 16(R15)
17	MOVB	$0, 40(R15)
18	ADD	$40, R15, R3
19	MOVD	R3, 24(R15)
20	MOVD	$0, 32(R15)
21	BL	·callReflect(SB)
22	RET
23
24// methodValueCall is the code half of the function returned by makeMethodValue.
25// See the comment on the declaration of methodValueCall in makefunc.go
26// for more details.
27// No arg size here; runtime pulls arg map out of the func value.
28TEXT ·methodValueCall(SB),(NOSPLIT|WRAPPER),$40
29	NO_LOCAL_POINTERS
30	MOVD	R12, 8(R15)
31	MOVD	$argframe+0(FP), R3
32	MOVD	R3, 16(R15)
33	MOVB	$0, 40(R15)
34	ADD	$40, R15, R3
35	MOVD	R3, 24(R15)
36	MOVD	$0, 32(R15)
37	BL	·callMethod(SB)
38	RET
39