From 2c600ffb1b59a946ad55c9b53793372fadb61d06 Mon Sep 17 00:00:00 2001 From: Matt Clarkson Date: Tue, 26 Mar 2024 10:55:14 +0000 Subject: [PATCH] Align to the `purego` build tag, removing `noasm` build tag The `purego` build tag has been proposed[1] as the de-facto tag for pure Go builds. This is a superset of the `noasm` tag currently used. This patch aligns the code base to toggle to pure Go implementation when `purego` is defined. Verified that all assembly is excluded by doing: find . -name '*.s' -exec sed -i -e '$athis-is-not-valid-assembly 12345' {} \; go test --tags purego ./... [1]: https://github.com/golang/go/issues/23172 --- Makefile | 2 +- dh/csidh/fp511_amd64.go | 4 ++-- dh/csidh/fp511_amd64.s | 3 ++- dh/sidh/internal/p434/arith_amd64.s | 2 +- dh/sidh/internal/p434/arith_amd64_test.go | 4 ++-- dh/sidh/internal/p434/arith_decl.go | 4 ++-- dh/sidh/internal/p434/arith_generic.go | 4 ++-- dh/sidh/internal/p503/arith_amd64.s | 2 +- dh/sidh/internal/p503/arith_amd64_test.go | 4 ++-- dh/sidh/internal/p503/arith_arm64.s | 2 +- dh/sidh/internal/p503/arith_decl.go | 4 ++-- dh/sidh/internal/p503/arith_generic.go | 4 ++-- dh/sidh/internal/p751/arith_amd64.s | 2 +- dh/sidh/internal/p751/arith_amd64_test.go | 4 ++-- dh/sidh/internal/p751/arith_arm64.s | 2 +- dh/sidh/internal/p751/arith_decl.go | 4 ++-- dh/sidh/internal/p751/arith_generic.go | 4 ++-- dh/sidh/internal/templates/arith_decl.gotemp | 4 ++-- dh/sidh/internal/templates/arith_generic.gotemp | 4 ++-- dh/x25519/curve_amd64.s | 3 ++- dh/x448/curve_amd64.s | 3 ++- ecc/p384/arith.go | 4 ++-- ecc/p384/arith_amd64.go | 4 ++-- ecc/p384/arith_amd64.s | 2 +- ecc/p384/arith_arm64.s | 2 +- ecc/p384/arith_test.go | 4 ++-- ecc/p384/opt_test.go | 4 ++-- ecc/p384/p384_generic.go | 4 ++-- ecc/p384/p384opt.go | 4 ++-- ecc/p384/point.go | 4 ++-- ecc/p384/point_test.go | 4 ++-- ecc/p384/tableBase.go | 4 ++-- math/fp25519/fp_amd64.s | 3 ++- math/fp448/fp_amd64.s | 3 ++- pke/kyber/internal/common/amd64.go | 4 ++-- pke/kyber/internal/common/amd64.s | 2 +- pke/kyber/internal/common/asm/src.go | 2 +- pke/kyber/internal/common/generic.go | 4 ++-- pke/kyber/internal/common/stubs_amd64.go | 2 +- sign/dilithium/internal/common/amd64.go | 4 ++-- sign/dilithium/internal/common/amd64.s | 2 +- sign/dilithium/internal/common/asm/src.go | 2 +- sign/dilithium/internal/common/generic.go | 4 ++-- sign/dilithium/internal/common/stubs_amd64.go | 2 +- simd/keccakf1600/f1600x2_arm64.go | 4 ++-- simd/keccakf1600/f1600x2_arm64.s | 2 +- simd/keccakf1600/f1600x4_amd64.go | 3 +++ simd/keccakf1600/f1600x4_amd64.s | 2 +- simd/keccakf1600/f1600x4stubs_amd64.go | 2 +- simd/keccakf1600/fallback.go | 4 ++-- simd/keccakf1600/internal/asm/src.go | 2 +- 51 files changed, 85 insertions(+), 77 deletions(-) diff --git a/Makefile b/Makefile index 5d53d65cb..f7dd5e0bb 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,7 @@ GOARCH ?= BUILD_ARCH = $(shell $(GO) env GOARCH) ifeq ($(NOASM),1) - OPTS+=--tags noasm + OPTS+=--tags purego endif ifeq ($(V),1) diff --git a/dh/csidh/fp511_amd64.go b/dh/csidh/fp511_amd64.go index 90b5a6585..4f05c82ef 100644 --- a/dh/csidh/fp511_amd64.go +++ b/dh/csidh/fp511_amd64.go @@ -1,5 +1,5 @@ -//go:build amd64 && !noasm -// +build amd64,!noasm +//go:build amd64 && !purego +// +build amd64,!purego package csidh diff --git a/dh/csidh/fp511_amd64.s b/dh/csidh/fp511_amd64.s index 612a0c5f3..18dfdff9d 100644 --- a/dh/csidh/fp511_amd64.s +++ b/dh/csidh/fp511_amd64.s @@ -1,4 +1,5 @@ -// +build amd64 +//go:build amd64 && !purego +// +build amd64,!purego #include "textflag.h" diff --git a/dh/sidh/internal/p434/arith_amd64.s b/dh/sidh/internal/p434/arith_amd64.s index 785997b5d..a84728a47 100644 --- a/dh/sidh/internal/p434/arith_amd64.s +++ b/dh/sidh/internal/p434/arith_amd64.s @@ -1,4 +1,4 @@ -// +build amd64,!noasm +// +build amd64,!purego #include "textflag.h" diff --git a/dh/sidh/internal/p434/arith_amd64_test.go b/dh/sidh/internal/p434/arith_amd64_test.go index 70945cf07..deb3121c2 100644 --- a/dh/sidh/internal/p434/arith_amd64_test.go +++ b/dh/sidh/internal/p434/arith_amd64_test.go @@ -1,8 +1,8 @@ // Code generated by go generate; DO NOT EDIT. // This file was generated by robots. -//go:build amd64 && !noasm -// +build amd64,!noasm +//go:build amd64 && !purego +// +build amd64,!purego package p434 diff --git a/dh/sidh/internal/p434/arith_decl.go b/dh/sidh/internal/p434/arith_decl.go index ab2d676c0..714f01b1c 100644 --- a/dh/sidh/internal/p434/arith_decl.go +++ b/dh/sidh/internal/p434/arith_decl.go @@ -1,8 +1,8 @@ // Code generated by go generate; DO NOT EDIT. // This file was generated by robots. -//go:build amd64 && !noasm -// +build amd64,!noasm +//go:build amd64 && !purego +// +build amd64,!purego package p434 diff --git a/dh/sidh/internal/p434/arith_generic.go b/dh/sidh/internal/p434/arith_generic.go index c90304e9c..6cb71ba97 100644 --- a/dh/sidh/internal/p434/arith_generic.go +++ b/dh/sidh/internal/p434/arith_generic.go @@ -1,8 +1,8 @@ // Code generated by go generate; DO NOT EDIT. // This file was generated by robots. -//go:build noasm || !amd64 -// +build noasm !amd64 +//go:build purego || !amd64 +// +build purego !amd64 package p434 diff --git a/dh/sidh/internal/p503/arith_amd64.s b/dh/sidh/internal/p503/arith_amd64.s index 2845cbd17..0aa77d237 100644 --- a/dh/sidh/internal/p503/arith_amd64.s +++ b/dh/sidh/internal/p503/arith_amd64.s @@ -1,4 +1,4 @@ -// +build amd64,!noasm +// +build amd64,!purego #include "textflag.h" diff --git a/dh/sidh/internal/p503/arith_amd64_test.go b/dh/sidh/internal/p503/arith_amd64_test.go index 5e1ff84cf..d14e31d3b 100644 --- a/dh/sidh/internal/p503/arith_amd64_test.go +++ b/dh/sidh/internal/p503/arith_amd64_test.go @@ -1,8 +1,8 @@ // Code generated by go generate; DO NOT EDIT. // This file was generated by robots. -//go:build amd64 && !noasm -// +build amd64,!noasm +//go:build amd64 && !purego +// +build amd64,!purego package p503 diff --git a/dh/sidh/internal/p503/arith_arm64.s b/dh/sidh/internal/p503/arith_arm64.s index e4acb90b3..f04c2c652 100644 --- a/dh/sidh/internal/p503/arith_arm64.s +++ b/dh/sidh/internal/p503/arith_arm64.s @@ -1,4 +1,4 @@ -// +build arm64,!noasm +// +build arm64,!purego #include "textflag.h" diff --git a/dh/sidh/internal/p503/arith_decl.go b/dh/sidh/internal/p503/arith_decl.go index 0bd95e669..2f7799ea2 100644 --- a/dh/sidh/internal/p503/arith_decl.go +++ b/dh/sidh/internal/p503/arith_decl.go @@ -1,8 +1,8 @@ // Code generated by go generate; DO NOT EDIT. // This file was generated by robots. -//go:build (amd64 && !noasm) || (arm64 && !noasm) -// +build amd64,!noasm arm64,!noasm +//go:build (amd64 && !purego) || (arm64 && !purego) +// +build amd64,!purego arm64,!purego package p503 diff --git a/dh/sidh/internal/p503/arith_generic.go b/dh/sidh/internal/p503/arith_generic.go index f7566f818..ea0252516 100644 --- a/dh/sidh/internal/p503/arith_generic.go +++ b/dh/sidh/internal/p503/arith_generic.go @@ -1,8 +1,8 @@ // Code generated by go generate; DO NOT EDIT. // This file was generated by robots. -//go:build noasm || (!amd64 && !arm64) -// +build noasm !amd64,!arm64 +//go:build purego || (!amd64 && !arm64) +// +build purego !amd64,!arm64 package p503 diff --git a/dh/sidh/internal/p751/arith_amd64.s b/dh/sidh/internal/p751/arith_amd64.s index 59f5fa601..bae529634 100644 --- a/dh/sidh/internal/p751/arith_amd64.s +++ b/dh/sidh/internal/p751/arith_amd64.s @@ -1,4 +1,4 @@ -// +build amd64,!noasm +// +build amd64,!purego #include "textflag.h" diff --git a/dh/sidh/internal/p751/arith_amd64_test.go b/dh/sidh/internal/p751/arith_amd64_test.go index a3a431f08..460521266 100644 --- a/dh/sidh/internal/p751/arith_amd64_test.go +++ b/dh/sidh/internal/p751/arith_amd64_test.go @@ -1,8 +1,8 @@ // Code generated by go generate; DO NOT EDIT. // This file was generated by robots. -//go:build amd64 && !noasm -// +build amd64,!noasm +//go:build amd64 && !purego +// +build amd64,!purego package p751 diff --git a/dh/sidh/internal/p751/arith_arm64.s b/dh/sidh/internal/p751/arith_arm64.s index 42fe8bd91..f5f50118d 100644 --- a/dh/sidh/internal/p751/arith_arm64.s +++ b/dh/sidh/internal/p751/arith_arm64.s @@ -1,4 +1,4 @@ -// +build arm64,!noasm +// +build arm64,!purego #include "textflag.h" diff --git a/dh/sidh/internal/p751/arith_decl.go b/dh/sidh/internal/p751/arith_decl.go index 9b74d0eb2..0a112d571 100644 --- a/dh/sidh/internal/p751/arith_decl.go +++ b/dh/sidh/internal/p751/arith_decl.go @@ -1,8 +1,8 @@ // Code generated by go generate; DO NOT EDIT. // This file was generated by robots. -//go:build (amd64 && !noasm) || (arm64 && !noasm) -// +build amd64,!noasm arm64,!noasm +//go:build (amd64 && !purego) || (arm64 && !purego) +// +build amd64,!purego arm64,!purego package p751 diff --git a/dh/sidh/internal/p751/arith_generic.go b/dh/sidh/internal/p751/arith_generic.go index 767a4accf..5033ae175 100644 --- a/dh/sidh/internal/p751/arith_generic.go +++ b/dh/sidh/internal/p751/arith_generic.go @@ -1,8 +1,8 @@ // Code generated by go generate; DO NOT EDIT. // This file was generated by robots. -//go:build noasm || (!amd64 && !arm64) -// +build noasm !amd64,!arm64 +//go:build purego || (!amd64 && !arm64) +// +build purego !amd64,!arm64 package p751 diff --git a/dh/sidh/internal/templates/arith_decl.gotemp b/dh/sidh/internal/templates/arith_decl.gotemp index e460e643c..323abda43 100644 --- a/dh/sidh/internal/templates/arith_decl.gotemp +++ b/dh/sidh/internal/templates/arith_decl.gotemp @@ -1,8 +1,8 @@ // Code generated by go generate; DO NOT EDIT. // This file was generated by robots. -//go:build {{if .OPT_ARM}}({{end}}amd64 && !noasm{{if .OPT_ARM}}) || (arm64 && !noasm){{end}} -// +build amd64,!noasm{{if .OPT_ARM}} arm64,!noasm{{end}} +//go:build {{if .OPT_ARM}}({{end}}amd64 && !purego{{if .OPT_ARM}}) || (arm64 && !purego){{end}} +// +build amd64,!purego{{if .OPT_ARM}} arm64,!purego{{end}} package {{.PACKAGE}} diff --git a/dh/sidh/internal/templates/arith_generic.gotemp b/dh/sidh/internal/templates/arith_generic.gotemp index a497da89e..8d8a89716 100644 --- a/dh/sidh/internal/templates/arith_generic.gotemp +++ b/dh/sidh/internal/templates/arith_generic.gotemp @@ -1,8 +1,8 @@ // Code generated by go generate; DO NOT EDIT. // This file was generated by robots. -//go:build {{if .OPT_ARM}}noasm || (!amd64 && !arm64){{else}}noasm || !amd64{{end}} -// +build {{if .OPT_ARM}}noasm !amd64,!arm64{{else}}noasm !amd64{{end}} +//go:build {{if .OPT_ARM}}purego || (!amd64 && !arm64){{else}}purego || !amd64{{end}} +// +build {{if .OPT_ARM}}purego !amd64,!arm64{{else}}purego !amd64{{end}} package {{.PACKAGE}} diff --git a/dh/x25519/curve_amd64.s b/dh/x25519/curve_amd64.s index b7723185b..ce9f06289 100644 --- a/dh/x25519/curve_amd64.s +++ b/dh/x25519/curve_amd64.s @@ -1,4 +1,5 @@ -// +build amd64 +//go:build amd64 && !purego +// +build amd64,!purego #include "textflag.h" diff --git a/dh/x448/curve_amd64.s b/dh/x448/curve_amd64.s index 810aa9e64..ed33ba3d0 100644 --- a/dh/x448/curve_amd64.s +++ b/dh/x448/curve_amd64.s @@ -1,4 +1,5 @@ -// +build amd64 +//go:build amd64 && !purego +// +build amd64,!purego #include "textflag.h" diff --git a/ecc/p384/arith.go b/ecc/p384/arith.go index 1b742de87..889e7771f 100644 --- a/ecc/p384/arith.go +++ b/ecc/p384/arith.go @@ -1,5 +1,5 @@ -//go:build (!noasm && arm64) || (!noasm && amd64) -// +build !noasm,arm64 !noasm,amd64 +//go:build (!purego && arm64) || (!purego && amd64) +// +build !purego,arm64 !purego,amd64 package p384 diff --git a/ecc/p384/arith_amd64.go b/ecc/p384/arith_amd64.go index 1ea343b5d..2e9d8fddb 100644 --- a/ecc/p384/arith_amd64.go +++ b/ecc/p384/arith_amd64.go @@ -1,5 +1,5 @@ -//go:build amd64 && !noasm -// +build amd64,!noasm +//go:build amd64 && !purego +// +build amd64,!purego package p384 diff --git a/ecc/p384/arith_amd64.s b/ecc/p384/arith_amd64.s index 5f53c637d..eaf6fb7a7 100644 --- a/ecc/p384/arith_amd64.s +++ b/ecc/p384/arith_amd64.s @@ -1,4 +1,4 @@ -// +build amd64,!noasm +// +build amd64,!purego #include "textflag.h" diff --git a/ecc/p384/arith_arm64.s b/ecc/p384/arith_arm64.s index ec93991d4..a02e76d57 100644 --- a/ecc/p384/arith_arm64.s +++ b/ecc/p384/arith_arm64.s @@ -1,4 +1,4 @@ -// +build arm64,!noasm +// +build arm64,!purego #include "textflag.h" diff --git a/ecc/p384/arith_test.go b/ecc/p384/arith_test.go index 48003935e..12d647b8a 100644 --- a/ecc/p384/arith_test.go +++ b/ecc/p384/arith_test.go @@ -1,5 +1,5 @@ -//go:build (!noasm && arm64) || (!noasm && amd64) -// +build !noasm,arm64 !noasm,amd64 +//go:build (!purego && arm64) || (!purego && amd64) +// +build !purego,arm64 !purego,amd64 package p384 diff --git a/ecc/p384/opt_test.go b/ecc/p384/opt_test.go index 57bb848a8..5256b4490 100644 --- a/ecc/p384/opt_test.go +++ b/ecc/p384/opt_test.go @@ -1,5 +1,5 @@ -//go:build (!noasm && arm64) || (!noasm && amd64) -// +build !noasm,arm64 !noasm,amd64 +//go:build (!purego && arm64) || (!purego && amd64) +// +build !purego,arm64 !purego,amd64 package p384 diff --git a/ecc/p384/p384_generic.go b/ecc/p384/p384_generic.go index 8444a59e2..9b14feaec 100644 --- a/ecc/p384/p384_generic.go +++ b/ecc/p384/p384_generic.go @@ -1,5 +1,5 @@ -//go:build noasm || (!amd64 && !arm64) -// +build noasm !amd64,!arm64 +//go:build purego || (!amd64 && !arm64) +// +build purego !amd64,!arm64 package p384 diff --git a/ecc/p384/p384opt.go b/ecc/p384/p384opt.go index 91d177051..5f744eac8 100644 --- a/ecc/p384/p384opt.go +++ b/ecc/p384/p384opt.go @@ -1,5 +1,5 @@ -//go:build (!noasm && arm64) || (!noasm && amd64) -// +build !noasm,arm64 !noasm,amd64 +//go:build (!purego && arm64) || (!purego && amd64) +// +build !purego,arm64 !purego,amd64 package p384 diff --git a/ecc/p384/point.go b/ecc/p384/point.go index 0ba1da8bd..e20b57b01 100644 --- a/ecc/p384/point.go +++ b/ecc/p384/point.go @@ -1,5 +1,5 @@ -//go:build (!noasm && arm64) || (!noasm && amd64) -// +build !noasm,arm64 !noasm,amd64 +//go:build (!purego && arm64) || (!purego && amd64) +// +build !purego,arm64 !purego,amd64 package p384 diff --git a/ecc/p384/point_test.go b/ecc/p384/point_test.go index 183e31cf7..219522d6d 100644 --- a/ecc/p384/point_test.go +++ b/ecc/p384/point_test.go @@ -1,5 +1,5 @@ -//go:build (!noasm && arm64) || (!noasm && amd64) -// +build !noasm,arm64 !noasm,amd64 +//go:build (!purego && arm64) || (!purego && amd64) +// +build !purego,arm64 !purego,amd64 package p384 diff --git a/ecc/p384/tableBase.go b/ecc/p384/tableBase.go index 59cd319f3..5132565ef 100644 --- a/ecc/p384/tableBase.go +++ b/ecc/p384/tableBase.go @@ -1,5 +1,5 @@ -//go:build (!noasm && arm64) || (!noasm && amd64) -// +build !noasm,arm64 !noasm,amd64 +//go:build (!purego && arm64) || (!purego && amd64) +// +build !purego,arm64 !purego,amd64 package p384 diff --git a/math/fp25519/fp_amd64.s b/math/fp25519/fp_amd64.s index 5c4aeddec..1fcc2dee1 100644 --- a/math/fp25519/fp_amd64.s +++ b/math/fp25519/fp_amd64.s @@ -1,4 +1,5 @@ -// +build amd64 +//go:build amd64 && !purego +// +build amd64,!purego #include "textflag.h" #include "fp_amd64.h" diff --git a/math/fp448/fp_amd64.s b/math/fp448/fp_amd64.s index 435addf5e..3f1f07c98 100644 --- a/math/fp448/fp_amd64.s +++ b/math/fp448/fp_amd64.s @@ -1,4 +1,5 @@ -// +build amd64 +//go:build amd64 && !purego +// +build amd64,!purego #include "textflag.h" #include "fp_amd64.h" diff --git a/pke/kyber/internal/common/amd64.go b/pke/kyber/internal/common/amd64.go index 6ffd94b1f..2c96563c7 100644 --- a/pke/kyber/internal/common/amd64.go +++ b/pke/kyber/internal/common/amd64.go @@ -1,5 +1,5 @@ -//go:build amd64 -// +build amd64 +//go:build amd64 && !purego +// +build amd64,!purego package common diff --git a/pke/kyber/internal/common/amd64.s b/pke/kyber/internal/common/amd64.s index f721482fb..5c7536b70 100644 --- a/pke/kyber/internal/common/amd64.s +++ b/pke/kyber/internal/common/amd64.s @@ -1,6 +1,6 @@ // Code generated by command: go run src.go -out ../amd64.s -stubs ../stubs_amd64.go -pkg common. DO NOT EDIT. -//go:build amd64 +//go:build amd64 && !purego #include "textflag.h" diff --git a/pke/kyber/internal/common/asm/src.go b/pke/kyber/internal/common/asm/src.go index 418a7a38b..e1082fd9a 100644 --- a/pke/kyber/internal/common/asm/src.go +++ b/pke/kyber/internal/common/asm/src.go @@ -1147,7 +1147,7 @@ func normalizeAVX2() { } func main() { - ConstraintExpr("amd64") + ConstraintExpr("amd64,!purego") addAVX2() subAVX2() diff --git a/pke/kyber/internal/common/generic.go b/pke/kyber/internal/common/generic.go index 2b742b95a..66e0e86dc 100644 --- a/pke/kyber/internal/common/generic.go +++ b/pke/kyber/internal/common/generic.go @@ -1,5 +1,5 @@ -//go:build !amd64 -// +build !amd64 +//go:build !amd64 || purego +// +build !amd64 purego package common diff --git a/pke/kyber/internal/common/stubs_amd64.go b/pke/kyber/internal/common/stubs_amd64.go index cf14cff91..4b4700dfd 100644 --- a/pke/kyber/internal/common/stubs_amd64.go +++ b/pke/kyber/internal/common/stubs_amd64.go @@ -1,6 +1,6 @@ // Code generated by command: go run src.go -out ../amd64.s -stubs ../stubs_amd64.go -pkg common. DO NOT EDIT. -//go:build amd64 +//go:build amd64 && !purego package common diff --git a/sign/dilithium/internal/common/amd64.go b/sign/dilithium/internal/common/amd64.go index a58e4bf46..11f0e3dcf 100644 --- a/sign/dilithium/internal/common/amd64.go +++ b/sign/dilithium/internal/common/amd64.go @@ -1,5 +1,5 @@ -//go:build amd64 -// +build amd64 +//go:build amd64 && !purego +// +build amd64,!purego package common diff --git a/sign/dilithium/internal/common/amd64.s b/sign/dilithium/internal/common/amd64.s index 90953ac1e..94180fb73 100644 --- a/sign/dilithium/internal/common/amd64.s +++ b/sign/dilithium/internal/common/amd64.s @@ -1,6 +1,6 @@ // Code generated by command: go run src.go -out ../amd64.s -stubs ../stubs_amd64.go -pkg common. DO NOT EDIT. -//go:build amd64 +//go:build amd64 && !purego #include "textflag.h" diff --git a/sign/dilithium/internal/common/asm/src.go b/sign/dilithium/internal/common/asm/src.go index 834efff93..ef5f9b7de 100644 --- a/sign/dilithium/internal/common/asm/src.go +++ b/sign/dilithium/internal/common/asm/src.go @@ -1054,7 +1054,7 @@ func mulBy2toDAVX2() { } func main() { - ConstraintExpr("amd64") + ConstraintExpr("amd64,!purego") nttAVX2() invNttAVX2() diff --git a/sign/dilithium/internal/common/generic.go b/sign/dilithium/internal/common/generic.go index f10545246..2736e1617 100644 --- a/sign/dilithium/internal/common/generic.go +++ b/sign/dilithium/internal/common/generic.go @@ -1,5 +1,5 @@ -//go:build !amd64 -// +build !amd64 +//go:build !amd64 || purego +// +build !amd64 purego package common diff --git a/sign/dilithium/internal/common/stubs_amd64.go b/sign/dilithium/internal/common/stubs_amd64.go index 97451507f..3afeda4dd 100644 --- a/sign/dilithium/internal/common/stubs_amd64.go +++ b/sign/dilithium/internal/common/stubs_amd64.go @@ -1,6 +1,6 @@ // Code generated by command: go run src.go -out ../amd64.s -stubs ../stubs_amd64.go -pkg common. DO NOT EDIT. -//go:build amd64 +//go:build amd64 && !purego package common diff --git a/simd/keccakf1600/f1600x2_arm64.go b/simd/keccakf1600/f1600x2_arm64.go index 44f05436a..0cb9692c3 100644 --- a/simd/keccakf1600/f1600x2_arm64.go +++ b/simd/keccakf1600/f1600x2_arm64.go @@ -1,5 +1,5 @@ -//go:build arm64 && go1.16 -// +build arm64,go1.16 +//go:build arm64 && go1.16 && !purego +// +build arm64,go1.16,!purego package keccakf1600 diff --git a/simd/keccakf1600/f1600x2_arm64.s b/simd/keccakf1600/f1600x2_arm64.s index 68dd0e37b..998aeca5b 100644 --- a/simd/keccakf1600/f1600x2_arm64.s +++ b/simd/keccakf1600/f1600x2_arm64.s @@ -1,4 +1,4 @@ -// +build arm64,go1.16 +// +build arm64,go1.16,!purego // Taken from https://github.com/bwesterb/armed-keccak diff --git a/simd/keccakf1600/f1600x4_amd64.go b/simd/keccakf1600/f1600x4_amd64.go index 669ce65f4..bf5b865d0 100644 --- a/simd/keccakf1600/f1600x4_amd64.go +++ b/simd/keccakf1600/f1600x4_amd64.go @@ -1,3 +1,6 @@ +//go:build amd64 && !purego +// +build amd64,!purego + package keccakf1600 import "github.com/cloudflare/circl/internal/sha3" diff --git a/simd/keccakf1600/f1600x4_amd64.s b/simd/keccakf1600/f1600x4_amd64.s index 314a85553..67b64550c 100644 --- a/simd/keccakf1600/f1600x4_amd64.s +++ b/simd/keccakf1600/f1600x4_amd64.s @@ -1,6 +1,6 @@ // Code generated by command: go run src.go -out ../../f1600x4_amd64.s -stubs ../../f1600x4stubs_amd64.go -pkg keccakf1600. DO NOT EDIT. -//go:build amd64 +//go:build amd64 && !purego #include "textflag.h" diff --git a/simd/keccakf1600/f1600x4stubs_amd64.go b/simd/keccakf1600/f1600x4stubs_amd64.go index de289441e..102fdd04d 100644 --- a/simd/keccakf1600/f1600x4stubs_amd64.go +++ b/simd/keccakf1600/f1600x4stubs_amd64.go @@ -1,6 +1,6 @@ // Code generated by command: go run src.go -out ../../f1600x4_amd64.s -stubs ../../f1600x4stubs_amd64.go -pkg keccakf1600. DO NOT EDIT. -//go:build amd64 +//go:build amd64 && !purego package keccakf1600 diff --git a/simd/keccakf1600/fallback.go b/simd/keccakf1600/fallback.go index 5287c1f5d..0da75e9b7 100644 --- a/simd/keccakf1600/fallback.go +++ b/simd/keccakf1600/fallback.go @@ -1,5 +1,5 @@ -//go:build (!amd64 && !arm64) || (arm64 && !go1.16) -// +build !amd64,!arm64 arm64,!go1.16 +//go:build (!amd64 && !arm64) || (arm64 && !go1.16) || purego +// +build !amd64,!arm64 arm64,!go1.16 purego package keccakf1600 diff --git a/simd/keccakf1600/internal/asm/src.go b/simd/keccakf1600/internal/asm/src.go index 1ccfde35a..122f54645 100644 --- a/simd/keccakf1600/internal/asm/src.go +++ b/simd/keccakf1600/internal/asm/src.go @@ -11,7 +11,7 @@ import ( // nolint:funlen func main() { - ConstraintExpr("amd64") + ConstraintExpr("amd64,!purego") // Must be called on 32 byte aligned memory. TEXT("f1600x4AVX2", NOSPLIT, "func(state *uint64, rc *[24]uint64, turbo bool)")