From 8d465a7de3c0af6be9bc1f998cbeb43f6f4da7fe Mon Sep 17 00:00:00 2001 From: Jason Gross Date: Tue, 2 Jan 2018 17:57:41 -0500 Subject: Add support for {addcarryx,subborrow}_u{25,26} This closes #286 This is actually a +1,-1 diff in the python script generating the notations, plus running it and rebuilding: ```diff -ADD_CARRY_SUB_BORROW_SIZES = (32, 64, 128, 51) +ADD_CARRY_SUB_BORROW_SIZES = (32, 64, 128, 25, 26, 51) ``` --- src/Specific/solinas32_2e255m19_10limbs/freeze.c | 40 ++++++++++++------------ 1 file changed, 20 insertions(+), 20 deletions(-) (limited to 'src/Specific/solinas32_2e255m19_10limbs/freeze.c') diff --git a/src/Specific/solinas32_2e255m19_10limbs/freeze.c b/src/Specific/solinas32_2e255m19_10limbs/freeze.c index 43d2310ed..0a55529ee 100644 --- a/src/Specific/solinas32_2e255m19_10limbs/freeze.c +++ b/src/Specific/solinas32_2e255m19_10limbs/freeze.c @@ -9,37 +9,37 @@ static void freeze(uint32_t out[10], const uint32_t in1[10]) { { const uint32_t x6 = in1[2]; { const uint32_t x4 = in1[1]; { const uint32_t x2 = in1[0]; - { uint32_t x20, uint8_t x21 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x2, 0x3ffffed); - { uint32_t x23, uint8_t x24 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x21, Return x4, 0x1ffffff); - { uint32_t x26, uint8_t x27 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x24, Return x6, 0x3ffffff); - { uint32_t x29, uint8_t x30 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x27, Return x8, 0x1ffffff); - { uint32_t x32, uint8_t x33 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x30, Return x10, 0x3ffffff); - { uint32_t x35, uint8_t x36 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x33, Return x12, 0x1ffffff); - { uint32_t x38, uint8_t x39 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x36, Return x14, 0x3ffffff); - { uint32_t x41, uint8_t x42 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x39, Return x16, 0x1ffffff); - { uint32_t x44, uint8_t x45 = Op (Syntax.SubWithGetBorrow 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x42, Return x18, 0x3ffffff); - { uint32_t x47, uint8_t x48 = Op (Syntax.SubWithGetBorrow 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x45, Return x17, 0x1ffffff); + { uint32_t x20; uint8_t x21 = _subborrow_u26(0x0, x2, 0x3ffffed, &x20); + { uint32_t x23; uint8_t x24 = _subborrow_u25(x21, x4, 0x1ffffff, &x23); + { uint32_t x26; uint8_t x27 = _subborrow_u26(x24, x6, 0x3ffffff, &x26); + { uint32_t x29; uint8_t x30 = _subborrow_u25(x27, x8, 0x1ffffff, &x29); + { uint32_t x32; uint8_t x33 = _subborrow_u26(x30, x10, 0x3ffffff, &x32); + { uint32_t x35; uint8_t x36 = _subborrow_u25(x33, x12, 0x1ffffff, &x35); + { uint32_t x38; uint8_t x39 = _subborrow_u26(x36, x14, 0x3ffffff, &x38); + { uint32_t x41; uint8_t x42 = _subborrow_u25(x39, x16, 0x1ffffff, &x41); + { uint32_t x44; uint8_t x45 = _subborrow_u26(x42, x18, 0x3ffffff, &x44); + { uint32_t x47; uint8_t x48 = _subborrow_u25(x45, x17, 0x1ffffff, &x47); { uint32_t x49 = cmovznz32(x48, 0x0, 0xffffffff); { uint32_t x50 = (x49 & 0x3ffffed); - { uint32_t x52, uint8_t x53 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (0x0, Return x20, Return x50); + { uint32_t x52; uint8_t x53 = _addcarryx_u26(0x0, x20, x50, &x52); { uint32_t x54 = (x49 & 0x1ffffff); - { uint32_t x56, uint8_t x57 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x53, Return x23, Return x54); + { uint32_t x56; uint8_t x57 = _addcarryx_u25(x53, x23, x54, &x56); { uint32_t x58 = (x49 & 0x3ffffff); - { uint32_t x60, uint8_t x61 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x57, Return x26, Return x58); + { uint32_t x60; uint8_t x61 = _addcarryx_u26(x57, x26, x58, &x60); { uint32_t x62 = (x49 & 0x1ffffff); - { uint32_t x64, uint8_t x65 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x61, Return x29, Return x62); + { uint32_t x64; uint8_t x65 = _addcarryx_u25(x61, x29, x62, &x64); { uint32_t x66 = (x49 & 0x3ffffff); - { uint32_t x68, uint8_t x69 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x65, Return x32, Return x66); + { uint32_t x68; uint8_t x69 = _addcarryx_u26(x65, x32, x66, &x68); { uint32_t x70 = (x49 & 0x1ffffff); - { uint32_t x72, uint8_t x73 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x69, Return x35, Return x70); + { uint32_t x72; uint8_t x73 = _addcarryx_u25(x69, x35, x70, &x72); { uint32_t x74 = (x49 & 0x3ffffff); - { uint32_t x76, uint8_t x77 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x73, Return x38, Return x74); + { uint32_t x76; uint8_t x77 = _addcarryx_u26(x73, x38, x74, &x76); { uint32_t x78 = (x49 & 0x1ffffff); - { uint32_t x80, uint8_t x81 = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x77, Return x41, Return x78); + { uint32_t x80; uint8_t x81 = _addcarryx_u25(x77, x41, x78, &x80); { uint32_t x82 = (x49 & 0x3ffffff); - { uint32_t x84, uint8_t x85 = Op (Syntax.AddWithGetCarry 26 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x81, Return x44, Return x82); + { uint32_t x84; uint8_t x85 = _addcarryx_u26(x81, x44, x82, &x84); { uint32_t x86 = (x49 & 0x1ffffff); - { uint32_t x88, uint8_t _ = Op (Syntax.AddWithGetCarry 25 (Syntax.TWord 3) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 5) (Syntax.TWord 3)) (Return x85, Return x47, Return x86); + { uint32_t x88; uint8_t _ = _addcarryx_u25(x85, x47, x86, &x88); out[0] = x52; out[1] = x56; out[2] = x60; -- cgit v1.2.3