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#include "textflag.h" 6#include "funcdata.h" 7 8// makeFuncStub is the code half of the function returned by MakeFunc. 9// See the comment on the declaration of makeFuncStub in makefunc.go 10// for more details. 11// No arg size here, runtime pulls arg map out of the func value. 12TEXT ·makeFuncStub(SB),(NOSPLIT|WRAPPER),$40 13 NO_LOCAL_POINTERS 14 MOVD R12, 8(R15) 15 MOVD $argframe+0(FP), R3 16 MOVD R3, 16(R15) 17 MOVB $0, 40(R15) 18 ADD $40, R15, R3 19 MOVD R3, 24(R15) 20 MOVD $0, 32(R15) 21 BL ·callReflect(SB) 22 RET 23 24// methodValueCall is the code half of the function returned by makeMethodValue. 25// See the comment on the declaration of methodValueCall in makefunc.go 26// for more details. 27// No arg size here; runtime pulls arg map out of the func value. 28TEXT ·methodValueCall(SB),(NOSPLIT|WRAPPER),$40 29 NO_LOCAL_POINTERS 30 MOVD R12, 8(R15) 31 MOVD $argframe+0(FP), R3 32 MOVD R3, 16(R15) 33 MOVB $0, 40(R15) 34 ADD $40, R15, R3 35 MOVD R3, 24(R15) 36 MOVD $0, 32(R15) 37 BL ·callMethod(SB) 38 RET 39