From aaf9ba10c5695c4df9b753ac73184a1bb9547e9a Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Sun, 19 May 2024 11:45:43 +0200 Subject: [PATCH] Add support for riscv64 --- exp2_asm.go | 4 ++-- exp2_noasm.go | 4 ++-- exp_asm.go | 4 ++-- exp_noasm.go | 4 ++-- log_asm.go | 4 ++-- log_noasm.go | 4 ++-- remainder_asm.go | 4 ++-- remainder_noasm.go | 4 ++-- sqrt_asm.go | 4 ++-- sqrt_noasm.go | 4 ++-- stubs_riscv64.s | 21 +++++++++++++++++++++ 11 files changed, 41 insertions(+), 20 deletions(-) create mode 100644 stubs_riscv64.s diff --git a/exp2_asm.go b/exp2_asm.go index 3d2e1d6..144e723 100644 --- a/exp2_asm.go +++ b/exp2_asm.go @@ -2,10 +2,10 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build !noasm && !tinygo && (amd64 || 386 || arm || ppc64le || wasm) +//go:build !noasm && !tinygo && (amd64 || 386 || arm || ppc64le || riscv64 || wasm) // +build !noasm // +build !tinygo -// +build amd64 386 arm ppc64le wasm +// +build amd64 386 arm ppc64le riscv64 wasm package math32 diff --git a/exp2_noasm.go b/exp2_noasm.go index 13ca9c4..35d7212 100644 --- a/exp2_noasm.go +++ b/exp2_noasm.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build noasm || tinygo || !(amd64 || 386 || arm || ppc64le || wasm) -// +build noasm tinygo !amd64,!386,!arm,!ppc64le,!wasm +//go:build noasm || tinygo || !(amd64 || 386 || arm || ppc64le || riscv64 || wasm) +// +build noasm tinygo !amd64,!386,!arm,!ppc64le,!riscv64,!wasm package math32 diff --git a/exp_asm.go b/exp_asm.go index 5b6f7d2..22f9474 100644 --- a/exp_asm.go +++ b/exp_asm.go @@ -2,10 +2,10 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build !noasm && !tinygo && (amd64 || 386 || arm || ppc64le || wasm || s390x) +//go:build !noasm && !tinygo && (amd64 || 386 || arm || ppc64le || riscv64 || wasm || s390x) // +build !noasm // +build !tinygo -// +build amd64 386 arm ppc64le wasm s390x +// +build amd64 386 arm ppc64le riscv64 wasm s390x package math32 diff --git a/exp_noasm.go b/exp_noasm.go index 838022b..fae250d 100644 --- a/exp_noasm.go +++ b/exp_noasm.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build noasm || tinygo || !(amd64 || 386 || arm || ppc64le || wasm || s390x) -// +build noasm tinygo !amd64,!386,!arm,!ppc64le,!wasm,!s390x +//go:build noasm || tinygo || !(amd64 || 386 || arm || ppc64le || riscv64 || wasm || s390x) +// +build noasm tinygo !amd64,!386,!arm,!ppc64le,!riscv64,!wasm,!s390x package math32 diff --git a/log_asm.go b/log_asm.go index 9491e1a..6dc21e1 100644 --- a/log_asm.go +++ b/log_asm.go @@ -2,10 +2,10 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build !noasm && !tinygo && (amd64 || arm || s390x || 386 || arm64 || ppc64le || wasm) +//go:build !noasm && !tinygo && (amd64 || arm || s390x || 386 || arm64 || ppc64le || riscv64 || wasm) // +build !noasm // +build !tinygo -// +build amd64 arm s390x 386 arm64 ppc64le wasm +// +build amd64 arm s390x 386 arm64 ppc64le riscv64 wasm package math32 diff --git a/log_noasm.go b/log_noasm.go index e7eb6f1..3428ea0 100644 --- a/log_noasm.go +++ b/log_noasm.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build noasm || tinygo || (!amd64 && !arm && !s390x && !386 && !arm64 && !ppc64le && !wasm) -// +build noasm tinygo !amd64,!arm,!s390x,!386,!arm64,!ppc64le,!wasm +//go:build noasm || tinygo || (!amd64 && !arm && !s390x && !386 && !arm64 && !ppc64le && !riscv64 && !wasm) +// +build noasm tinygo !amd64,!arm,!s390x,!386,!arm64,!ppc64le,!riscv64,!wasm package math32 diff --git a/remainder_asm.go b/remainder_asm.go index d4e41c1..c724a31 100644 --- a/remainder_asm.go +++ b/remainder_asm.go @@ -1,7 +1,7 @@ -//go:build !noasm && !tinygo && (amd64 || s390x || arm || ppc64le || 386 || wasm) +//go:build !noasm && !tinygo && (amd64 || s390x || arm || ppc64le || riscv64 || 386 || wasm) // +build !noasm // +build !tinygo -// +build amd64 s390x arm ppc64le 386 wasm +// +build amd64 s390x arm ppc64le riscv64 386 wasm package math32 diff --git a/remainder_noasm.go b/remainder_noasm.go index f240675..4de18ac 100644 --- a/remainder_noasm.go +++ b/remainder_noasm.go @@ -1,5 +1,5 @@ -//go:build noasm || tinygo || (!amd64 && !s390x && !arm && !ppc64le && !386 && !wasm) -// +build noasm tinygo !amd64,!s390x,!arm,!ppc64le,!386,!wasm +//go:build noasm || tinygo || (!amd64 && !s390x && !arm && !ppc64le && !riscv64 && !386 && !wasm) +// +build noasm tinygo !amd64,!s390x,!arm,!ppc64le,!riscv64,!386,!wasm package math32 diff --git a/sqrt_asm.go b/sqrt_asm.go index 879fec4..2870c2c 100644 --- a/sqrt_asm.go +++ b/sqrt_asm.go @@ -2,10 +2,10 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build !noasm && !tinygo && (386 || amd64 || arm64 || arm || ppc64le || s390x || wasm) +//go:build !noasm && !tinygo && (386 || amd64 || arm64 || arm || ppc64le || riscv64 || s390x || wasm) // +build !noasm // +build !tinygo -// +build 386 amd64 arm64 arm ppc64le s390x wasm +// +build 386 amd64 arm64 arm ppc64le riscv64 s390x wasm package math32 diff --git a/sqrt_noasm.go b/sqrt_noasm.go index 35ec316..dc64485 100644 --- a/sqrt_noasm.go +++ b/sqrt_noasm.go @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build noasm || tinygo || (!386 && !amd64 && !arm64 && !arm && !ppc64le && !s390x && !wasm) -// +build noasm tinygo !386,!amd64,!arm64,!arm,!ppc64le,!s390x,!wasm +//go:build noasm || tinygo || (!386 && !amd64 && !arm64 && !arm && !ppc64le && !riscv64 && !s390x && !wasm) +// +build noasm tinygo !386,!amd64,!arm64,!arm,!ppc64le,!riscv64,!s390x,!wasm package math32 diff --git a/stubs_riscv64.s b/stubs_riscv64.s new file mode 100644 index 0000000..7c4f15f --- /dev/null +++ b/stubs_riscv64.s @@ -0,0 +1,21 @@ +#include "textflag.h" + +// func archExp(x float32) float32 +TEXT ·archExp(SB),NOSPLIT,$0 + JMP ·exp(SB) + +// func archExp2(x float32) float32 +TEXT ·archExp2(SB),NOSPLIT,$0 + JMP ·exp2(SB) + +// func archLog(x float32) float32 +TEXT ·archLog(SB),NOSPLIT,$0 + JMP ·log(SB) + +// func archRemainder(x, y float32) float32 +TEXT ·archRemainder(SB),NOSPLIT,$0 + JMP ·remainder(SB) + +// func archSqrt(x float32) float32 +TEXT ·archSqrt(SB),NOSPLIT,$0 + JMP ·sqrt(SB)