From 91d75f4e4c32b737baf32cac42756c70fbd487e8 Mon Sep 17 00:00:00 2001 From: Joel Sing Date: Mon, 4 Nov 2019 05:09:14 +1100 Subject: [PATCH] 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 --- src/reflect/asm_riscv64.s | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/reflect/asm_riscv64.s 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 -- 2.50.0