github.com/cloudflare/circl@v1.5.0/dh/x448/curve_amd64.go (about)

     1  //go:build amd64 && !purego
     2  // +build amd64,!purego
     3  
     4  package x448
     5  
     6  import (
     7  	fp "github.com/cloudflare/circl/math/fp448"
     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 doubleAmd64(x, z *fp.Elt)
    22  
    23  //go:noescape
    24  func diffAddAmd64(w *[5]fp.Elt, b uint)
    25  
    26  //go:noescape
    27  func ladderStepAmd64(w *[5]fp.Elt, b uint)
    28  
    29  //go:noescape
    30  func mulA24Amd64(z, x *fp.Elt)