From: Joel Sing Date: Sun, 3 Nov 2019 18:09:14 +0000 (+1100) Subject: reflect: add support for riscv64 X-Git-Tag: go1.14rc1~100 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=91d75f4e4c32b737baf32cac42756c70fbd487e8;p=gostls13.git reflect: add support for riscv64 Based on riscv-go port. Update #27532 Change-Id: I791924f71078fd8dfe9c2fc03a3f21a3bc673721 Reviewed-on: https://go-review.googlesource.com/c/go/+/204634 Run-TryBot: Joel Sing TryBot-Result: Gobot Gobot Reviewed-by: Keith Randall --- diff --git a/src/reflect/asm_riscv64.s b/src/reflect/asm_riscv64.s new file mode 100644 index 0000000000..f5886e537a --- /dev/null +++ b/src/reflect/asm_riscv64.s @@ -0,0 +1,36 @@ +// Copyright 2019 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. + +#include "textflag.h" +#include "funcdata.h" + +// 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),$32 + NO_LOCAL_POINTERS + MOV CTXT, 8(SP) + MOV $argframe+0(FP), T0 + MOV T0, 16(SP) + ADD $32, SP, T1 + MOV T1, 24(SP) + MOVB R0, 32(SP) + CALL ·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),$32 + NO_LOCAL_POINTERS + MOV CTXT, 8(SP) + MOV $argframe+0(FP), T0 + MOV T0, 16(SP) + ADD $32, SP, T1 + MOV T1, 24(SP) + MOVB R0, 32(SP) + CALL ·callMethod(SB) + RET