]> Cypherpunks repositories - gostls13.git/commitdiff
reflect: add support for GOARCH=mips{,le}
authorVladimir Stefanovic <vladimir.stefanovic@imgtec.com>
Tue, 18 Oct 2016 21:50:57 +0000 (23:50 +0200)
committerBrad Fitzpatrick <bradfitz@golang.org>
Thu, 3 Nov 2016 23:01:05 +0000 (23:01 +0000)
Change-Id: I8b0c4bfe1e4c401d5c36a51b937671e6362c73a4
Reviewed-on: https://go-review.googlesource.com/31485
Reviewed-by: Cherry Zhang <cherryyz@google.com>
src/reflect/asm_mipsx.s [new file with mode: 0644]

diff --git a/src/reflect/asm_mipsx.s b/src/reflect/asm_mipsx.s
new file mode 100644 (file)
index 0000000..b6df4e6
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright 2016 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 mips mipsle
+
+#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),$8
+       NO_LOCAL_POINTERS
+       MOVW    REGCTXT, 4(R29)
+       MOVW    $argframe+0(FP), R1
+       MOVW    R1, 8(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),$8
+       NO_LOCAL_POINTERS
+       MOVW    REGCTXT, 4(R29)
+       MOVW    $argframe+0(FP), R1
+       MOVW    R1, 8(R29)
+       JAL     ·callMethod(SB)
+       RET