diff --git a/src/math/big/arith_386.s b/src/math/big/arith_386.s index eb17bc1459eb737ff107b1677e05f470aa39a88e..7c8ab8feb752b91c5d97665c982d6d600742e790 100644 --- a/src/math/big/arith_386.s +++ b/src/math/big/arith_386.s @@ -2,6 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +// +build !math_big_pure_go + #include "textflag.h" // This file provides fast assembly versions for the elementary diff --git a/src/math/big/arith_amd64.s b/src/math/big/arith_amd64.s index bb06e69b782b3430d8babb403c0d54ad26e6fc8e..d2d5187a485c7fd44151383dd365cd1ef4d82ce1 100644 --- a/src/math/big/arith_amd64.s +++ b/src/math/big/arith_amd64.s @@ -2,6 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +// +build !math_big_pure_go + #include "textflag.h" // This file provides fast assembly versions for the elementary diff --git a/src/math/big/arith_amd64p32.s b/src/math/big/arith_amd64p32.s index 908dbbdc5856c530dd0ef727c1063e0505c78b4c..8610e908fe7ce5a4ec54e6f8d0b5d94656602a95 100644 --- a/src/math/big/arith_amd64p32.s +++ b/src/math/big/arith_amd64p32.s @@ -2,6 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +// +build !math_big_pure_go + #include "textflag.h" TEXT ·mulWW(SB),NOSPLIT,$0 diff --git a/src/math/big/arith_arm.s b/src/math/big/arith_arm.s index a4c51c2127f07aab622c4bd36fd0db9c97a30125..69590ff39e1a4b584c6e1fb6c2c6d6fb6e08e4aa 100644 --- a/src/math/big/arith_arm.s +++ b/src/math/big/arith_arm.s @@ -2,6 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +// +build !math_big_pure_go + #include "textflag.h" // This file provides fast assembly versions for the elementary diff --git a/src/math/big/arith_arm64.s b/src/math/big/arith_arm64.s index 4447ec554f7caca2b816b8476d2eff436537401f..6e10e47be3d1d998cf137ec993f643a65c0d9165 100644 --- a/src/math/big/arith_arm64.s +++ b/src/math/big/arith_arm64.s @@ -2,6 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +// +build !math_big_pure_go + #include "textflag.h" // This file provides fast assembly versions for the elementary diff --git a/src/math/big/arith_decl.go b/src/math/big/arith_decl.go index 068cc8d93888f82385d614b4e5e023b865707b28..1707aa4e209c0f2bac3397fca2f1d1c65e99cba4 100644 --- a/src/math/big/arith_decl.go +++ b/src/math/big/arith_decl.go @@ -2,6 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +// +build !math_big_pure_go + package big // implemented in arith_$GOARCH.s diff --git a/src/math/big/arith_decl_pure.go b/src/math/big/arith_decl_pure.go new file mode 100644 index 0000000000000000000000000000000000000000..e760a3816b3c94ff7a63a0804e013b5c03d9d1ce --- /dev/null +++ b/src/math/big/arith_decl_pure.go @@ -0,0 +1,55 @@ +// Copyright 2015 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. + +// +build math_big_pure_go + +package big + +func mulWW(x, y Word) (z1, z0 Word) { + return mulWW_g(x, y) +} + +func divWW(x1, x0, y Word) (q, r Word) { + return divWW_g(x1, x0, y) +} + +func addVV(z, x, y []Word) (c Word) { + return addVV_g(z, x, y) +} + +func subVV(z, x, y []Word) (c Word) { + return subVV_g(z, x, y) +} + +func addVW(z, x []Word, y Word) (c Word) { + return addVW_g(z, x, y) +} + +func subVW(z, x []Word, y Word) (c Word) { + return subVW_g(z, x, y) +} + +func shlVU(z, x []Word, s uint) (c Word) { + return shlVU_g(z, x, s) +} + +func shrVU(z, x []Word, s uint) (c Word) { + return shrVU_g(z, x, s) +} + +func mulAddVWW(z, x []Word, y, r Word) (c Word) { + return mulAddVWW_g(z, x, y, r) +} + +func addMulVVW(z, x []Word, y Word) (c Word) { + return addMulVVW_g(z, x, y) +} + +func divWVW(z []Word, xn Word, x []Word, y Word) (r Word) { + return divWVW_g(z, xn, x, y) +} + +func bitLen(x Word) (n int) { + return bitLen_g(x) +} diff --git a/src/math/big/arith_ppc64x.s b/src/math/big/arith_ppc64x.s index 0cbd126d83c9518334491b79941dc0537ee23f55..d4d4171f305e2cc9cc577d5a120d7506b77a9533 100644 --- a/src/math/big/arith_ppc64x.s +++ b/src/math/big/arith_ppc64x.s @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build ppc64 ppc64le +// +build !math_big_pure_go,ppc64 !math_big_pure_go,ppc64le #include "textflag.h"