github.com/twelsh-aw/go/src@v0.0.0-20230516233729-a56fe86a7c81/reflect/asm_mips64x.s (about) 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. 16 TEXT ·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. 32 TEXT ·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