aboutsummaryrefslogtreecommitdiff
path: root/secp256k1_32.c
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2019-01-14 20:09:21 -0500
committerGravatar Jason Gross <jasongross9@gmail.com>2019-01-15 14:00:52 -0500
commit456cffcd2e808a3a9c3ff47f988138bbce555e0e (patch)
tree1ad646e6b3a65ae30e5e02fe09c0e64cb04affb8 /secp256k1_32.c
parentc61d5be86e3efb978883fc60687af42192aacaff (diff)
Fix computation of INTX_MIN
The minimum is -2^(bitwidth-1), not -2^bitwidth. Oops.
Diffstat (limited to 'secp256k1_32.c')
-rw-r--r--secp256k1_32.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/secp256k1_32.c b/secp256k1_32.c
index 3286161d4..94744d26a 100644
--- a/secp256k1_32.c
+++ b/secp256k1_32.c
@@ -14,8 +14,6 @@
#include <stdint.h>
typedef unsigned char fiat_secp256k1_uint1;
typedef signed char fiat_secp256k1_int1;
-typedef signed __int128 fiat_secp256k1_int128;
-typedef unsigned __int128 fiat_secp256k1_uint128;
/*
@@ -46,7 +44,7 @@ static void fiat_secp256k1_addcarryx_u32(uint32_t* out1, fiat_secp256k1_uint1* o
*/
static void fiat_secp256k1_subborrowx_u32(uint32_t* out1, fiat_secp256k1_uint1* out2, fiat_secp256k1_uint1 arg1, uint32_t arg2, uint32_t arg3) {
int64_t x1 = ((arg2 - (int64_t)arg1) - arg3);
- fiat_secp256k1_int1 x2 = (fiat_secp256k1_int1)((fiat_secp256k1_int128)x1 >> 32);
+ fiat_secp256k1_int1 x2 = (fiat_secp256k1_int1)(x1 >> 32);
uint32_t x3 = (uint32_t)(x1 & UINT32_C(0xffffffff));
*out1 = x3;
*out2 = (fiat_secp256k1_uint1)(0x0 - x2);
@@ -3847,7 +3845,7 @@ static void fiat_secp256k1_to_bytes(uint8_t out1[32], const uint32_t arg1[8]) {
uint8_t x12 = (uint8_t)(x9 & UINT8_C(0xff));
uint8_t x13 = (uint8_t)(x11 >> 8);
uint8_t x14 = (uint8_t)(x11 & UINT8_C(0xff));
- fiat_secp256k1_uint1 x15 = (fiat_secp256k1_uint1)((int64_t)x13 >> 8);
+ fiat_secp256k1_uint1 x15 = (fiat_secp256k1_uint1)(x13 >> 8);
uint8_t x16 = (uint8_t)(x13 & UINT8_C(0xff));
uint32_t x17 = (x15 + x7);
uint32_t x18 = (x17 >> 8);
@@ -3856,7 +3854,7 @@ static void fiat_secp256k1_to_bytes(uint8_t out1[32], const uint32_t arg1[8]) {
uint8_t x21 = (uint8_t)(x18 & UINT8_C(0xff));
uint8_t x22 = (uint8_t)(x20 >> 8);
uint8_t x23 = (uint8_t)(x20 & UINT8_C(0xff));
- fiat_secp256k1_uint1 x24 = (fiat_secp256k1_uint1)((int64_t)x22 >> 8);
+ fiat_secp256k1_uint1 x24 = (fiat_secp256k1_uint1)(x22 >> 8);
uint8_t x25 = (uint8_t)(x22 & UINT8_C(0xff));
uint32_t x26 = (x24 + x6);
uint32_t x27 = (x26 >> 8);
@@ -3865,7 +3863,7 @@ static void fiat_secp256k1_to_bytes(uint8_t out1[32], const uint32_t arg1[8]) {
uint8_t x30 = (uint8_t)(x27 & UINT8_C(0xff));
uint8_t x31 = (uint8_t)(x29 >> 8);
uint8_t x32 = (uint8_t)(x29 & UINT8_C(0xff));
- fiat_secp256k1_uint1 x33 = (fiat_secp256k1_uint1)((int64_t)x31 >> 8);
+ fiat_secp256k1_uint1 x33 = (fiat_secp256k1_uint1)(x31 >> 8);
uint8_t x34 = (uint8_t)(x31 & UINT8_C(0xff));
uint32_t x35 = (x33 + x5);
uint32_t x36 = (x35 >> 8);
@@ -3874,7 +3872,7 @@ static void fiat_secp256k1_to_bytes(uint8_t out1[32], const uint32_t arg1[8]) {
uint8_t x39 = (uint8_t)(x36 & UINT8_C(0xff));
uint8_t x40 = (uint8_t)(x38 >> 8);
uint8_t x41 = (uint8_t)(x38 & UINT8_C(0xff));
- fiat_secp256k1_uint1 x42 = (fiat_secp256k1_uint1)((int64_t)x40 >> 8);
+ fiat_secp256k1_uint1 x42 = (fiat_secp256k1_uint1)(x40 >> 8);
uint8_t x43 = (uint8_t)(x40 & UINT8_C(0xff));
uint32_t x44 = (x42 + x4);
uint32_t x45 = (x44 >> 8);
@@ -3883,7 +3881,7 @@ static void fiat_secp256k1_to_bytes(uint8_t out1[32], const uint32_t arg1[8]) {
uint8_t x48 = (uint8_t)(x45 & UINT8_C(0xff));
uint8_t x49 = (uint8_t)(x47 >> 8);
uint8_t x50 = (uint8_t)(x47 & UINT8_C(0xff));
- fiat_secp256k1_uint1 x51 = (fiat_secp256k1_uint1)((int64_t)x49 >> 8);
+ fiat_secp256k1_uint1 x51 = (fiat_secp256k1_uint1)(x49 >> 8);
uint8_t x52 = (uint8_t)(x49 & UINT8_C(0xff));
uint32_t x53 = (x51 + x3);
uint32_t x54 = (x53 >> 8);
@@ -3892,7 +3890,7 @@ static void fiat_secp256k1_to_bytes(uint8_t out1[32], const uint32_t arg1[8]) {
uint8_t x57 = (uint8_t)(x54 & UINT8_C(0xff));
uint8_t x58 = (uint8_t)(x56 >> 8);
uint8_t x59 = (uint8_t)(x56 & UINT8_C(0xff));
- fiat_secp256k1_uint1 x60 = (fiat_secp256k1_uint1)((int64_t)x58 >> 8);
+ fiat_secp256k1_uint1 x60 = (fiat_secp256k1_uint1)(x58 >> 8);
uint8_t x61 = (uint8_t)(x58 & UINT8_C(0xff));
uint32_t x62 = (x60 + x2);
uint32_t x63 = (x62 >> 8);
@@ -3901,7 +3899,7 @@ static void fiat_secp256k1_to_bytes(uint8_t out1[32], const uint32_t arg1[8]) {
uint8_t x66 = (uint8_t)(x63 & UINT8_C(0xff));
uint8_t x67 = (uint8_t)(x65 >> 8);
uint8_t x68 = (uint8_t)(x65 & UINT8_C(0xff));
- fiat_secp256k1_uint1 x69 = (fiat_secp256k1_uint1)((int64_t)x67 >> 8);
+ fiat_secp256k1_uint1 x69 = (fiat_secp256k1_uint1)(x67 >> 8);
uint8_t x70 = (uint8_t)(x67 & UINT8_C(0xff));
uint32_t x71 = (x69 + x1);
uint32_t x72 = (x71 >> 8);