aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/go/alldocs.go
diff options
context:
space:
mode:
authorMark Ryan <markdryan@rivosinc.com>2023-11-07 10:09:49 +0100
committerJoel Sing <joel@sing.id.au>2024-01-24 07:25:25 +0000
commitb4e7d630bc6fbf654a20a4bebda94a8150811bea (patch)
tree496a37c6588cbe32311b8534619138e7cf0ef345 /src/cmd/go/alldocs.go
parentb3acaa8230e95c232a6f5c30eb7619a0c859ab16 (diff)
downloadgo-b4e7d630bc6fbf654a20a4bebda94a8150811bea.tar.gz
go-b4e7d630bc6fbf654a20a4bebda94a8150811bea.zip
cmd/go: add GORISCV64 environment variable
The variable represents the RISC-V user-mode application profile for which to compile. Valid values are rva20u64 (the default) and rva22u64. Setting GORISCV64=rva20u64 defines the riscv64.rva20u64 build tag, sets the internal variable buildcfg.GORISCV64 to 20 and defines the macro GORISCV64_rva20u64 for use in assembly language code. Setting GORISCV64=rva22u64 defines the riscv64.rva20u64 and riscv64.rva22u64 build tags, sets the internal variable buildcfg.GORISCV64 to 22 and defines the macro GORISCV64_rva22u64 for use in assembly language code. This patch only provides a mechanism for the compiler and hand-coded assembly language functions to take advantage of the RISC-V extensions mandated by the application profiles. Further patches will be required to get the compiler/assembler and assembly language functions to actually generate and use these extensions. Fixes #61476 Change-Id: I9195ae6ee71703cd2112160e89157ab63b8391af Reviewed-on: https://go-review.googlesource.com/c/go/+/541135 Reviewed-by: M Zhuo <mengzhuo1203@gmail.com> Reviewed-by: Joel Sing <joel@sing.id.au> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Wang Yaduo <wangyaduo@linux.alibaba.com> Reviewed-by: Cherry Mui <cherryyz@google.com> Reviewed-by: Bryan Mills <bcmills@google.com> Run-TryBot: M Zhuo <mengzhuo1203@gmail.com> TryBot-Result: Gopher Robot <gobot@golang.org>
Diffstat (limited to 'src/cmd/go/alldocs.go')
-rw-r--r--src/cmd/go/alldocs.go9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/cmd/go/alldocs.go b/src/cmd/go/alldocs.go
index e61e865c84..05e42a6d31 100644
--- a/src/cmd/go/alldocs.go
+++ b/src/cmd/go/alldocs.go
@@ -2001,10 +2001,13 @@
// ppc64.power8, ppc64.power9, and ppc64.power10
// (or ppc64le.power8, ppc64le.power9, and ppc64le.power10)
// feature build tags.
+// - For GOARCH=riscv64,
+// GORISCV64=rva20u64 and rva22u64 correspond to the riscv64.rva20u64
+// and riscv64.rva22u64 build tags.
// - For GOARCH=wasm, GOWASM=satconv and signext
// correspond to the wasm.satconv and wasm.signext feature build tags.
//
-// For GOARCH=amd64, arm, ppc64, and ppc64le, a particular feature level
+// For GOARCH=amd64, arm, ppc64, ppc64le, and riscv64, a particular feature level
// sets the feature build tags for all previous levels as well.
// For example, GOAMD64=v2 sets the amd64.v1 and amd64.v2 feature flags.
// This ensures that code making use of v2 features continues to compile
@@ -2300,6 +2303,10 @@
// GOPPC64
// For GOARCH=ppc64{,le}, the target ISA (Instruction Set Architecture).
// Valid values are power8 (default), power9, power10.
+// GORISCV64
+// For GOARCH=riscv64, the RISC-V user-mode application profile for which
+// to compile. Valid values are rva20u64 (default), rva22u64.
+// See https://github.com/riscv/riscv-profiles/blob/main/profiles.adoc
// GOWASM
// For GOARCH=wasm, comma-separated list of experimental WebAssembly features to use.
// Valid values are satconv, signext.