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//go:build mips || mipsle
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),$20
17	NO_LOCAL_POINTERS
18	MOVW	REGCTXT, 4(R29)
19	MOVW	$argframe+0(FP), R1
20	MOVW	R1, 8(R29)
21	MOVB	R0, 20(R29)
22	ADD	$20, R29, R1
23	MOVW	R1, 12(R29)
24	MOVW	R0, 16(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),$20
33	NO_LOCAL_POINTERS
34	MOVW	REGCTXT, 4(R29)
35	MOVW	$argframe+0(FP), R1
36	MOVW	R1, 8(R29)
37	MOVB	R0, 20(R29)
38	ADD	$20, R29, R1
39	MOVW	R1, 12(R29)
40	MOVW	R0, 16(R29)
41	JAL	·callMethod(SB)
42	RET
43