aboutsummaryrefslogtreecommitdiff
path: root/src/Specific/solinas32_2e384m2e128m2e96p2e32m1
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2017-11-02 01:36:04 -0400
committerGravatar Jason Gross <jgross@mit.edu>2017-11-02 01:36:04 -0400
commit5b45aa93efa19d54e50299ff0df8ee46c60f891b (patch)
tree9cea98ab783f557b5cbca0456a4dc3b4498e43c5 /src/Specific/solinas32_2e384m2e128m2e96p2e32m1
parente8bda9b779d5762c5868cd09c85142151655d5ca (diff)
Update display logs and c files
Diffstat (limited to 'src/Specific/solinas32_2e384m2e128m2e96p2e32m1')
-rw-r--r--src/Specific/solinas32_2e384m2e128m2e96p2e32m1/freeze.c25
-rw-r--r--src/Specific/solinas32_2e384m2e128m2e96p2e32m1/freeze.h6
-rw-r--r--src/Specific/solinas32_2e384m2e128m2e96p2e32m1/freezeDisplay.log28
3 files changed, 45 insertions, 14 deletions
diff --git a/src/Specific/solinas32_2e384m2e128m2e96p2e32m1/freeze.c b/src/Specific/solinas32_2e384m2e128m2e96p2e32m1/freeze.c
new file mode 100644
index 000000000..200b9760d
--- /dev/null
+++ b/src/Specific/solinas32_2e384m2e128m2e96p2e32m1/freeze.c
@@ -0,0 +1,25 @@
+#include <stdint.h>
+#include <stdbool.h>
+#include <x86intrin.h>
+#include "liblow.h"
+
+#include "freeze.h"
+
+typedef unsigned int uint128_t __attribute__((mode(TI)));
+
+#if (defined(__GNUC__) || defined(__GNUG__)) && !(defined(__clang__)||defined(__INTEL_COMPILER))
+// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81294
+#define _subborrow_u32 __builtin_ia32_sbb_u32
+#define _subborrow_u64 __builtin_ia32_sbb_u64
+#endif
+
+#undef force_inline
+#define force_inline __attribute__((always_inline))
+
+void force_inline freeze(uint64_t* out, uint64_t x29, uint64_t x30, uint64_t x28, uint64_t x26, uint64_t x24, uint64_t x22, uint64_t x20, uint64_t x18, uint64_t x16, uint64_t x14, uint64_t x12, uint64_t x10, uint64_t x8, uint64_t x6, uint64_t x4, uint64_t x2)
+out[0] = uint32_t x32;
+out[1] = uint8_t x33 = Op Syntax.SubWithGetBorrow 24 Syntax.TWord 3 Syntax.TWord 5 Syntax.TWord 5 Syntax.TWord 5 Syntax.TWord 3 0x0;
+out[2] = x2;
+out[3] = 0xffffff;;
+}
+// caller: uint64_t out[4];
diff --git a/src/Specific/solinas32_2e384m2e128m2e96p2e32m1/freeze.h b/src/Specific/solinas32_2e384m2e128m2e96p2e32m1/freeze.h
new file mode 100644
index 000000000..a955633b6
--- /dev/null
+++ b/src/Specific/solinas32_2e384m2e128m2e96p2e32m1/freeze.h
@@ -0,0 +1,6 @@
+#include <stdint.h>
+
+#undef force_inline
+#define force_inline __attribute__((always_inline))
+
+void force_inline freeze(uint64_t* out, uint64_t x29, uint64_t x30, uint64_t x28, uint64_t x26, uint64_t x24, uint64_t x22, uint64_t x20, uint64_t x18, uint64_t x16, uint64_t x14, uint64_t x12, uint64_t x10, uint64_t x8, uint64_t x6, uint64_t x4, uint64_t x2);
diff --git a/src/Specific/solinas32_2e384m2e128m2e96p2e32m1/freezeDisplay.log b/src/Specific/solinas32_2e384m2e128m2e96p2e32m1/freezeDisplay.log
index 5f8d74511..d5dad97fa 100644
--- a/src/Specific/solinas32_2e384m2e128m2e96p2e32m1/freezeDisplay.log
+++ b/src/Specific/solinas32_2e384m2e128m2e96p2e32m1/freezeDisplay.log
@@ -19,35 +19,35 @@ Interp-η
uint32_t x74, uint8_t x75 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x72, Return x30, 0xffffff);
uint32_t x77, uint8_t x78 = Op (Syntax.SubWithGetBorrow 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x75, Return x29, 0xffffff);
uint32_t x79 = (uint32_t)cmovznz(x78, 0x0, 0xffffffff);
- uint32_t x80 = x79 & 0xffffff;
+ uint32_t x80 = (x79 & 0xffffff);
uint32_t x82, uint8_t x83 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x32, Return x80);
- uint8_t x84 = (uint8_t) x79 & 0xff;
+ uint8_t x84 = ((uint8_t)x79 & 0xff);
uint32_t x86, uint8_t x87 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x83, Return x35, Return x84);
uint32_t x89, uint8_t x90 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x87, Return x38, 0x0);
uint32_t x92, uint8_t x93 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x90, Return x41, 0x0);
- uint32_t x94 = x79 & 0xffffff;
+ uint32_t x94 = (x79 & 0xffffff);
uint32_t x96, uint8_t x97 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x93, Return x44, Return x94);
- uint32_t x98 = x79 & 0xfffeff;
+ uint32_t x98 = (x79 & 0xfffeff);
uint32_t x100, uint8_t x101 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x97, Return x47, Return x98);
- uint32_t x102 = x79 & 0xffffff;
+ uint32_t x102 = (x79 & 0xffffff);
uint32_t x104, uint8_t x105 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x101, Return x50, Return x102);
- uint32_t x106 = x79 & 0xffffff;
+ uint32_t x106 = (x79 & 0xffffff);
uint32_t x108, uint8_t x109 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x105, Return x53, Return x106);
- uint32_t x110 = x79 & 0xffffff;
+ uint32_t x110 = (x79 & 0xffffff);
uint32_t x112, uint8_t x113 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x109, Return x56, Return x110);
- uint32_t x114 = x79 & 0xffffff;
+ uint32_t x114 = (x79 & 0xffffff);
uint32_t x116, uint8_t x117 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x113, Return x59, Return x114);
- uint32_t x118 = x79 & 0xffffff;
+ uint32_t x118 = (x79 & 0xffffff);
uint32_t x120, uint8_t x121 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x117, Return x62, Return x118);
- uint32_t x122 = x79 & 0xffffff;
+ uint32_t x122 = (x79 & 0xffffff);
uint32_t x124, uint8_t x125 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x121, Return x65, Return x122);
- uint32_t x126 = x79 & 0xffffff;
+ uint32_t x126 = (x79 & 0xffffff);
uint32_t x128, uint8_t x129 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x125, Return x68, Return x126);
- uint32_t x130 = x79 & 0xffffff;
+ uint32_t x130 = (x79 & 0xffffff);
uint32_t x132, uint8_t x133 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x129, Return x71, Return x130);
- uint32_t x134 = x79 & 0xffffff;
+ uint32_t x134 = (x79 & 0xffffff);
uint32_t x136, uint8_t x137 = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x133, Return x74, Return x134);
- uint32_t x138 = x79 & 0xffffff;
+ uint32_t x138 = (x79 & 0xffffff);
uint32_t x140, uint8_t _ = Op (Syntax.AddWithGetCarry 24 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x137, Return x77, Return x138);
(Return x140, Return x136, Return x132, Return x128, Return x124, Return x120, Return x116, Return x112, Return x108, Return x104, Return x100, Return x96, Return x92, Return x89, Return x86, Return x82))
x