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