1// Copyright 2015 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//go:build mips64 || mips64le
6
7#include "textflag.h"
8#include "funcdata.h"
9
10#define	REGCTXT	R22
11
12// makeFuncStub is the code half of the function returned by MakeFunc.
13// See the comment on the declaration of makeFuncStub in makefunc.go
14// for more details.
15// No arg size here, runtime pulls arg map out of the func value.
16TEXT ·makeFuncStub(SB),(NOSPLIT|WRAPPER),$40
17	NO_LOCAL_POINTERS
18	MOVV	REGCTXT, 8(R29)
19	MOVV	$argframe+0(FP), R1
20	MOVV	R1, 16(R29)
21	MOVB	R0, 40(R29)
22	ADDV	$40, R29, R1
23	MOVV	R1, 24(R29)
24	MOVV	R0, 32(R29)
25	JAL	·callReflect(SB)
26	RET
27
28// methodValueCall is the code half of the function returned by makeMethodValue.
29// See the comment on the declaration of methodValueCall in makefunc.go
30// for more details.
31// No arg size here; runtime pulls arg map out of the func value.
32TEXT ·methodValueCall(SB),(NOSPLIT|WRAPPER),$40
33	NO_LOCAL_POINTERS
34	MOVV	REGCTXT, 8(R29)
35	MOVV	$argframe+0(FP), R1
36	MOVV	R1, 16(R29)
37	MOVB	R0, 40(R29)
38	ADDV	$40, R29, R1
39	MOVV	R1, 24(R29)
40	MOVV	R0, 32(R29)
41	JAL	·callMethod(SB)
42	RET
43