github.com/cloudflare/circl@v1.5.0/dh/x25519/curve_amd64.go (about) 1 //go:build amd64 && !purego 2 // +build amd64,!purego 3 4 package x25519 5 6 import ( 7 fp "github.com/cloudflare/circl/math/fp25519" 8 "golang.org/x/sys/cpu" 9 ) 10 11 var hasBmi2Adx = cpu.X86.HasBMI2 && cpu.X86.HasADX 12 13 var _ = hasBmi2Adx 14 15 func double(x, z *fp.Elt) { doubleAmd64(x, z) } 16 func diffAdd(w *[5]fp.Elt, b uint) { diffAddAmd64(w, b) } 17 func ladderStep(w *[5]fp.Elt, b uint) { ladderStepAmd64(w, b) } 18 func mulA24(z, x *fp.Elt) { mulA24Amd64(z, x) } 19 20 //go:noescape 21 func ladderStepAmd64(w *[5]fp.Elt, b uint) 22 23 //go:noescape 24 func diffAddAmd64(w *[5]fp.Elt, b uint) 25 26 //go:noescape 27 func doubleAmd64(x, z *fp.Elt) 28 29 //go:noescape 30 func mulA24Amd64(z, x *fp.Elt)