github.com/megatontech/mynoteforgo@v0.0.0-20200507084910-5d0c6ea6e890/源码/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 // +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),$32 17 NO_LOCAL_POINTERS 18 MOVV REGCTXT, 8(R29) 19 MOVV $argframe+0(FP), R1 20 MOVV R1, 16(R29) 21 MOVB R0, 32(R29) 22 ADDV $32, R29, R1 23 MOVV R1, 24(R29) 24 JAL ·callReflect(SB) 25 RET 26 27 // methodValueCall is the code half of the function returned by makeMethodValue. 28 // See the comment on the declaration of methodValueCall in makefunc.go 29 // for more details. 30 // No arg size here; runtime pulls arg map out of the func value. 31 TEXT ·methodValueCall(SB),(NOSPLIT|WRAPPER),$32 32 NO_LOCAL_POINTERS 33 MOVV REGCTXT, 8(R29) 34 MOVV $argframe+0(FP), R1 35 MOVV R1, 16(R29) 36 MOVB R0, 32(R29) 37 ADDV $32, R29, R1 38 MOVV R1, 24(R29) 39 JAL ·callMethod(SB) 40 RET