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