From bc23fc13abc782ffd3a26d3c275fbcf1ffec8378 Mon Sep 17 00:00:00 2001
From: Felix Lange <fjl@twurst.com>
Date: Wed, 24 Jun 2020 12:51:32 +0200
Subject: [PATCH] crypto/secp256k1: enable 128-bit int code and endomorphism
 optimization (#21203)

* crypto/secp256k1: enable use of __int128

This speeds up scalar & field calculations a lot.

* crypto/secp256k1: enable endomorphism optimization
---
 crypto/secp256k1/secp256.go | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/crypto/secp256k1/secp256.go b/crypto/secp256k1/secp256.go
index 8990da6c93..d4996350f1 100644
--- a/crypto/secp256k1/secp256.go
+++ b/crypto/secp256k1/secp256.go
@@ -8,6 +8,17 @@ package secp256k1
 /*
 #cgo CFLAGS: -I./libsecp256k1
 #cgo CFLAGS: -I./libsecp256k1/src/
+
+#ifdef __SIZEOF_INT128__
+#  define HAVE___INT128
+#  define USE_FIELD_5X52
+#  define USE_SCALAR_4X64
+#else
+#  define USE_FIELD_10X26
+#  define USE_SCALAR_8X32
+#endif
+
+#define USE_ENDOMORPHISM
 #define USE_NUM_NONE
 #define USE_FIELD_INV_BUILTIN
 #define USE_SCALAR_INV_BUILTIN
-- 
GitLab