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