|
|
@@ -4,7 +4,7 @@ package p503 |
|
|
|
|
|
|
|
import ( |
|
|
|
. "github.com/cloudflare/p751sidh/internal/isogeny" |
|
|
|
// cpu "github.com/cloudflare/p751sidh/internal/utils" |
|
|
|
cpu "github.com/cloudflare/p751sidh/internal/utils" |
|
|
|
) |
|
|
|
|
|
|
|
// If choice = 0, leave x,y unchanged. If choice = 1, set x,y = y,x. |
|
|
@@ -54,8 +54,13 @@ func mulWithMULX(z *FpElementX2, x, y *FpElement) |
|
|
|
|
|
|
|
// Mul implementation for CPUs supporting two independent carry chain |
|
|
|
// (ADOX/ADCX) instructions and carry-less MULX multiplier |
|
|
|
//go:noescape |
|
|
|
func fp503Mul(z *FpElementX2, x, y *FpElement) |
|
|
|
func fp503Mul(z *FpElementX2, x, y *FpElement) { |
|
|
|
if cpu.HasBMI2 { |
|
|
|
mulWithMULXADX(z, x, y) |
|
|
|
} else { |
|
|
|
mul(z, x, y) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//go:noescape |
|
|
|
func fp503MulXXX(z, x, y []uint64) |
|
|
|