]> git.ipfire.org Git - thirdparty/wireguard-tools.git/commitdiff
curve25519-fiat32: uninline certain functions
authorJason A. Donenfeld <Jason@zx2c4.com>
Thu, 18 Jan 2018 17:41:45 +0000 (18:41 +0100)
committerJason A. Donenfeld <Jason@zx2c4.com>
Thu, 18 Jan 2018 19:14:27 +0000 (20:14 +0100)
While this has a negative performance impact on x86_64, it has a
positive performance impact on smaller machines, which is where we're
actually using this code. For example, an A53:

Before: fiat32: 228605 cycles per call
After: fiat32: 188307 cycles per call
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
contrib/keygen-html/src/curve25519_generate.c
src/curve25519.c

index 1633275554f49d89a6d5b073622071d8482efa47..c5f86dc682bb1cd5f076877fe3bd8c1d4d6f8cfb 100644 (file)
@@ -232,7 +232,7 @@ static __always_inline void fe_1(fe *h)
        h->v[0] = 1;
 }
 
-static __always_inline void fe_add_impl(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10])
+static void fe_add_impl(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10])
 {
        { const uint32_t x20 = in1[9];
        { const uint32_t x21 = in1[8];
@@ -275,7 +275,7 @@ static __always_inline void fe_add(fe_loose *h, const fe *f, const fe *g)
        fe_add_impl(h->v, f->v, g->v);
 }
 
-static __always_inline void fe_sub_impl(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10])
+static void fe_sub_impl(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10])
 {
        { const uint32_t x20 = in1[9];
        { const uint32_t x21 = in1[8];
@@ -318,7 +318,7 @@ static __always_inline void fe_sub(fe_loose *h, const fe *f, const fe *g)
        fe_sub_impl(h->v, f->v, g->v);
 }
 
-static __always_inline void fe_mul_impl(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10])
+static void fe_mul_impl(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10])
 {
        { const uint32_t x20 = in1[9];
        { const uint32_t x21 = in1[8];
@@ -449,7 +449,7 @@ static __always_inline void fe_mul_tll(fe *h, const fe_loose *f, const fe_loose
        fe_mul_impl(h->v, f->v, g->v);
 }
 
-static __always_inline void fe_sqr_impl(uint32_t out[10], const uint32_t in1[10])
+static void fe_sqr_impl(uint32_t out[10], const uint32_t in1[10])
 {
        { const uint32_t x17 = in1[9];
        { const uint32_t x18 = in1[8];
index ee7df843ef5759f835daf58b4cb9c3d8e15f7322..7f6c9bfa0d1453fa76ac73871bd2f0852ccfda87 100644 (file)
@@ -957,7 +957,7 @@ static __always_inline void fe_1(fe *h)
        h->v[0] = 1;
 }
 
-static __always_inline void fe_add_impl(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10])
+static void fe_add_impl(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10])
 {
        { const uint32_t x20 = in1[9];
        { const uint32_t x21 = in1[8];
@@ -1000,7 +1000,7 @@ static __always_inline void fe_add(fe_loose *h, const fe *f, const fe *g)
        fe_add_impl(h->v, f->v, g->v);
 }
 
-static __always_inline void fe_sub_impl(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10])
+static void fe_sub_impl(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10])
 {
        { const uint32_t x20 = in1[9];
        { const uint32_t x21 = in1[8];
@@ -1043,7 +1043,7 @@ static __always_inline void fe_sub(fe_loose *h, const fe *f, const fe *g)
        fe_sub_impl(h->v, f->v, g->v);
 }
 
-static __always_inline void fe_mul_impl(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10])
+static void fe_mul_impl(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10])
 {
        { const uint32_t x20 = in1[9];
        { const uint32_t x21 = in1[8];
@@ -1174,7 +1174,7 @@ static __always_inline void fe_mul_tll(fe *h, const fe_loose *f, const fe_loose
        fe_mul_impl(h->v, f->v, g->v);
 }
 
-static __always_inline void fe_sqr_impl(uint32_t out[10], const uint32_t in1[10])
+static void fe_sqr_impl(uint32_t out[10], const uint32_t in1[10])
 {
        { const uint32_t x17 = in1[9];
        { const uint32_t x18 = in1[8];