add port of field operations assembler from libsecp256k1
This commit is contained in:
23
field_amd64.go
Normal file
23
field_amd64.go
Normal file
@@ -0,0 +1,23 @@
|
||||
//go:build amd64
|
||||
|
||||
package p256k1
|
||||
|
||||
// fieldMulAsm multiplies two field elements using x86-64 assembly.
|
||||
// This is a direct port of bitcoin-core secp256k1_fe_mul_inner.
|
||||
// r, a, b are 5x52-bit limb representations.
|
||||
//
|
||||
//go:noescape
|
||||
func fieldMulAsm(r, a, b *FieldElement)
|
||||
|
||||
// fieldSqrAsm squares a field element using x86-64 assembly.
|
||||
// This is a direct port of bitcoin-core secp256k1_fe_sqr_inner.
|
||||
// Squaring is optimized compared to multiplication.
|
||||
//
|
||||
//go:noescape
|
||||
func fieldSqrAsm(r, a *FieldElement)
|
||||
|
||||
// hasFieldAsm returns true if field assembly is available.
|
||||
// On amd64, this is always true.
|
||||
func hasFieldAsm() bool {
|
||||
return true
|
||||
}
|
||||
Reference in New Issue
Block a user