blob: 5a14c6f81dcfce661a8e177a629f6ea095b500b5 [file] [log] [blame]
Russ Coxba4625c2012-09-24 20:06:32 -04001// Copyright 2012 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
Rob Pike8bca1482014-08-12 17:04:45 -07005#include "textflag.h"
Russ Coxf0d44db2014-09-12 07:29:19 -04006#include "funcdata.h"
Keith Randall8b789e12013-08-12 10:25:36 -07007
Russ Coxba4625c2012-09-24 20:06:32 -04008// makeFuncStub is jumped to by the code generated by MakeFunc.
Russ Cox3be70362013-03-21 16:59:16 -04009// See the comment on the declaration of makeFuncStub in makefunc.go
Russ Coxba4625c2012-09-24 20:06:32 -040010// for more details.
Dmitriy Vyukov8679d5f2013-07-31 20:00:33 +040011// No argsize here, gc generates argsize info at call site.
Russ Cox7276c022013-09-12 14:00:16 -040012TEXT ·makeFuncStub(SB),(NOSPLIT|WRAPPER),$8
Russ Coxf0d44db2014-09-12 07:29:19 -040013 NO_LOCAL_POINTERS
Russ Coxb1b67a32013-02-22 15:23:57 -050014 MOVW R7, 4(R13)
Russ Cox07720b62013-03-22 12:57:55 -040015 MOVW $argframe+0(FP), R1
Russ Coxba4625c2012-09-24 20:06:32 -040016 MOVW R1, 8(R13)
Russ Coxba4625c2012-09-24 20:06:32 -040017 BL ·callReflect(SB)
18 RET
Russ Cox3be70362013-03-21 16:59:16 -040019
20// methodValueCall is the code half of the function returned by makeMethodValue.
21// See the comment on the declaration of methodValueCall in makefunc.go
22// for more details.
Dmitriy Vyukov8679d5f2013-07-31 20:00:33 +040023// No argsize here, gc generates argsize info at call site.
Russ Cox7276c022013-09-12 14:00:16 -040024TEXT ·methodValueCall(SB),(NOSPLIT|WRAPPER),$8
Russ Coxf0d44db2014-09-12 07:29:19 -040025 NO_LOCAL_POINTERS
Russ Cox3be70362013-03-21 16:59:16 -040026 MOVW R7, 4(R13)
Russ Cox07720b62013-03-22 12:57:55 -040027 MOVW $argframe+0(FP), R1
Russ Cox3be70362013-03-21 16:59:16 -040028 MOVW R1, 8(R13)
29 BL ·callMethod(SB)
30 RET