]> Cypherpunks repositories - gostls13.git/commitdiff
reflect: added support for mips64{,le}
authorYao Zhang <lunaria21@gmail.com>
Thu, 10 Sep 2015 01:47:09 +0000 (21:47 -0400)
committerMinux Ma <minux@golang.org>
Thu, 12 Nov 2015 04:50:18 +0000 (04:50 +0000)
Change-Id: I84ced3734410d3d05f195901f44d33f4ae6036b1
Reviewed-on: https://go-review.googlesource.com/14452
Reviewed-by: Minux Ma <minux@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/reflect/asm_mips64x.s [new file with mode: 0644]

diff --git a/src/reflect/asm_mips64x.s b/src/reflect/asm_mips64x.s
new file mode 100644 (file)
index 0000000..159d3d5
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright 2015 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build mips64 mips64le
+
+#include "textflag.h"
+#include "funcdata.h"
+
+#define        REGCTXT R22
+
+// makeFuncStub is the code half of the function returned by MakeFunc.
+// See the comment on the declaration of makeFuncStub in makefunc.go
+// for more details.
+// No arg size here, runtime pulls arg map out of the func value.
+TEXT ·makeFuncStub(SB),(NOSPLIT|WRAPPER),$16
+       NO_LOCAL_POINTERS
+       MOVV    REGCTXT, 8(R29)
+       MOVV    $argframe+0(FP), R1
+       MOVV    R1, 16(R29)
+       JAL     ·callReflect(SB)
+       RET
+
+// methodValueCall is the code half of the function returned by makeMethodValue.
+// See the comment on the declaration of methodValueCall in makefunc.go
+// for more details.
+// No arg size here; runtime pulls arg map out of the func value.
+TEXT ·methodValueCall(SB),(NOSPLIT|WRAPPER),$16
+       NO_LOCAL_POINTERS
+       MOVV    REGCTXT, 8(R29)
+       MOVV    $argframe+0(FP), R1
+       MOVV    R1, 16(R29)
+       JAL     ·callMethod(SB)
+       RET