github.com/megatontech/mynoteforgo@v0.0.0-20200507084910-5d0c6ea6e890/源码/reflect/asm_mipsx.s (about) 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 // +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. 16 TEXT ·makeFuncStub(SB),(NOSPLIT|WRAPPER),$16 17 NO_LOCAL_POINTERS 18 MOVW REGCTXT, 4(R29) 19 MOVW $argframe+0(FP), R1 20 MOVW R1, 8(R29) 21 MOVB R0, 16(R29) 22 ADD $16, R29, R1 23 MOVW R1, 12(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),$16 32 NO_LOCAL_POINTERS 33 MOVW REGCTXT, 4(R29) 34 MOVW $argframe+0(FP), R1 35 MOVW R1, 8(R29) 36 MOVB R0, 16(R29) 37 ADD $16, R29, R1 38 MOVW R1, 12(R29) 39 JAL ·callMethod(SB) 40 RET