github.com/mtsmfm/go/src@v0.0.0-20221020090648-44bdcb9f8fde/reflect/asm_loong64.s (about) 1 // Copyright 2022 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 #include "textflag.h" 6 #include "funcdata.h" 7 8 #define REGCTXT R29 9 10 // makeFuncStub is the code half of the function returned by MakeFunc. 11 // See the comment on the declaration of makeFuncStub in makefunc.go 12 // for more details. 13 // No arg size here, runtime pulls arg map out of the func value. 14 TEXT ·makeFuncStub(SB),(NOSPLIT|WRAPPER),$40 15 NO_LOCAL_POINTERS 16 MOVV REGCTXT, 8(R3) 17 MOVV $argframe+0(FP), R19 18 MOVV R19, 16(R3) 19 MOVB R0, 40(R3) 20 ADDV $40, R3, R19 21 MOVV R19, 24(R3) 22 MOVV R0, 32(R3) 23 JAL ·callReflect(SB) 24 RET 25 26 // methodValueCall is the code half of the function returned by makeMethodValue. 27 // See the comment on the declaration of methodValueCall in makefunc.go 28 // for more details. 29 // No arg size here; runtime pulls arg map out of the func value. 30 TEXT ·methodValueCall(SB),(NOSPLIT|WRAPPER),$40 31 NO_LOCAL_POINTERS 32 MOVV REGCTXT, 8(R3) 33 MOVV $argframe+0(FP), R19 34 MOVV R19, 16(R3) 35 MOVB R0, 40(R3) 36 ADDV $40, R3, R19 37 MOVV R19, 24(R3) 38 MOVV R0, 32(R3) 39 JAL ·callMethod(SB) 40 RET