raaz-0.3.11: libverse/poly1305/c/portable.c
#include <stdint.h>
#include <verse.h>
#define XOR ^
void verse_poly1305_c_portable_incremental(uint64_t(*bPtr)[2],
uint64_t cTr, uint64_t v0[3],
uint64_t v1[2])
{
auto uint64_t v2;
auto uint64_t v3;
auto uint64_t v4;
auto uint64_t v5;
auto uint64_t v6;
auto uint64_t v7;
auto uint64_t v8;
auto uint64_t v9;
auto uint64_t v10;
auto uint64_t v11;
auto uint64_t v12;
auto uint64_t v13;
auto uint64_t v14;
auto uint64_t v15;
auto uint64_t v16;
v3 = v0[0];
v2 = v3 & 0x00000000ffffffffULL;
v3 >>= 32;
v5 = v0[1];
v4 = v5 & 0x00000000ffffffffULL;
v5 >>= 32;
v6 = v0[2];
v8 = v1[0];
v7 = v8 & 0x00000000ffffffffULL;
v8 >>= 32;
v10 = v1[1];
v9 = v10 & 0x00000000ffffffffULL;
v10 >>= 32;
while (cTr > 0) {
v16 = verse_from_le64((*bPtr)[0]);
v15 = v16 & 0x00000000ffffffffULL;
v16 >>= 32;
v2 += v15;
v3 += v16;
v16 = verse_from_le64((*bPtr)[1]);
v15 = v16 & 0x00000000ffffffffULL;
v16 >>= 32;
v4 += v15;
v5 += v16;
v6 += 0x0000000000000001ULL;
v13 = v2 * v10;
v15 = v3 * v9;
v13 += v15;
v15 = v4 * v8;
v13 += v15;
v15 = v5 * v7;
v13 += v15;
v12 = v2 * v9;
v15 = v3 * v8;
v12 += v15;
v15 = v4 * v7;
v12 += v15;
v11 = v2 * v8;
v15 = v3 * v7;
v11 += v15;
v2 *= v7;
v15 = v10 >> 2;
v15 += v10;
v16 = v3 * v15;
v2 += v16;
v16 = v4 * v15;
v3 = v11 + v16;
v16 = v5 * v15;
v12 += v16;
v16 = v6 * v15;
v13 += v16;
v15 = v9 >> 2;
v15 += v9;
v16 = v4 * v15;
v2 += v16;
v16 = v5 * v15;
v3 += v16;
v16 = v6 * v15;
v4 = v12 + v16;
v15 = v8 >> 2;
v15 += v8;
v16 = v5 * v15;
v2 += v16;
v16 = v6 * v15;
v3 += v16;
v15 = v7 >> 2;
v15 *= 0x0000000000000005ULL;
v16 = v6 * v15;
v2 += v16;
v5 = v13;
v14 = v7 & 0x0000000000000003ULL;
v6 *= v14;
v15 = v5 >> 32;
v5 &= 0x00000000ffffffffULL;
v6 += v15;
v15 = v6 >> 2;
v6 &= 0x0000000000000003ULL;
v15 *= 0x0000000000000005ULL;
v2 += v15;
v15 = v2 >> 32;
v2 &= 0x00000000ffffffffULL;
v3 += v15;
v15 = v3 >> 32;
v3 &= 0x00000000ffffffffULL;
v4 += v15;
v15 = v4 >> 32;
v4 &= 0x00000000ffffffffULL;
v5 += v15;
v15 = v5 >> 32;
v5 &= 0x00000000ffffffffULL;
v6 += v15;
++bPtr;
--cTr;
};
v3 <<= 32;
v3 |= v2;
v0[0] = v3;
v5 <<= 32;
v5 |= v4;
v0[1] = v5;
v0[2] = v6;
}
void verse_poly1305_c_portable_blockmac(uint64_t(*bPtr)[2],
uint64_t cTr, uint64_t v0[3],
uint64_t v1[2], uint64_t v2[2])
{
auto uint64_t v3;
auto uint64_t v4;
auto uint64_t v5;
auto uint64_t v6;
auto uint64_t v7;
auto uint64_t v8;
auto uint64_t v9;
auto uint64_t v10;
auto uint64_t v11;
auto uint64_t v12;
auto uint64_t v13;
auto uint64_t v14;
auto uint64_t v15;
auto uint64_t v16;
auto uint64_t v17;
v4 = v0[0];
v3 = v4 & 0x00000000ffffffffULL;
v4 >>= 32;
v6 = v0[1];
v5 = v6 & 0x00000000ffffffffULL;
v6 >>= 32;
v7 = v0[2];
v9 = v1[0];
v8 = v9 & 0x00000000ffffffffULL;
v9 >>= 32;
v11 = v1[1];
v10 = v11 & 0x00000000ffffffffULL;
v11 >>= 32;
while (cTr > 0) {
v17 = verse_from_le64((*bPtr)[0]);
v16 = v17 & 0x00000000ffffffffULL;
v17 >>= 32;
v3 += v16;
v4 += v17;
v17 = verse_from_le64((*bPtr)[1]);
v16 = v17 & 0x00000000ffffffffULL;
v17 >>= 32;
v5 += v16;
v6 += v17;
v7 += 0x0000000000000001ULL;
v14 = v3 * v11;
v16 = v4 * v10;
v14 += v16;
v16 = v5 * v9;
v14 += v16;
v16 = v6 * v8;
v14 += v16;
v13 = v3 * v10;
v16 = v4 * v9;
v13 += v16;
v16 = v5 * v8;
v13 += v16;
v12 = v3 * v9;
v16 = v4 * v8;
v12 += v16;
v3 *= v8;
v16 = v11 >> 2;
v16 += v11;
v17 = v4 * v16;
v3 += v17;
v17 = v5 * v16;
v4 = v12 + v17;
v17 = v6 * v16;
v13 += v17;
v17 = v7 * v16;
v14 += v17;
v16 = v10 >> 2;
v16 += v10;
v17 = v5 * v16;
v3 += v17;
v17 = v6 * v16;
v4 += v17;
v17 = v7 * v16;
v5 = v13 + v17;
v16 = v9 >> 2;
v16 += v9;
v17 = v6 * v16;
v3 += v17;
v17 = v7 * v16;
v4 += v17;
v16 = v8 >> 2;
v16 *= 0x0000000000000005ULL;
v17 = v7 * v16;
v3 += v17;
v6 = v14;
v15 = v8 & 0x0000000000000003ULL;
v7 *= v15;
v16 = v6 >> 32;
v6 &= 0x00000000ffffffffULL;
v7 += v16;
v16 = v7 >> 2;
v7 &= 0x0000000000000003ULL;
v16 *= 0x0000000000000005ULL;
v3 += v16;
v16 = v3 >> 32;
v3 &= 0x00000000ffffffffULL;
v4 += v16;
v16 = v4 >> 32;
v4 &= 0x00000000ffffffffULL;
v5 += v16;
v16 = v5 >> 32;
v5 &= 0x00000000ffffffffULL;
v6 += v16;
v16 = v6 >> 32;
v6 &= 0x00000000ffffffffULL;
v7 += v16;
++bPtr;
--cTr;
};
v16 = v7 >> 2;
v7 &= 0x0000000000000003ULL;
v16 *= 0x0000000000000005ULL;
v3 += v16;
v16 = v3 + 0x0000000000000005ULL;
v16 >>= 32;
v16 += v4;
v16 >>= 32;
v16 += v5;
v16 >>= 32;
v16 += v6;
v16 >>= 32;
v16 += v7;
v16 >>= 2;
v16 = v16 * 0x0000000000000005ULL;
v3 += v16;
v16 = v3 >> 32;
v3 &= 0x00000000ffffffffULL;
v4 += v16;
v16 = v4 >> 32;
v4 &= 0x00000000ffffffffULL;
v5 += v16;
v16 = v5 >> 32;
v5 &= 0x00000000ffffffffULL;
v6 += v16;
v16 = v6 >> 32;
v6 &= 0x00000000ffffffffULL;
v7 += v16;
v17 = v2[0];
v16 = v17 & 0x00000000ffffffffULL;
v17 >>= 32;
v3 += v16;
v4 += v17;
v17 = v2[1];
v16 = v17 & 0x00000000ffffffffULL;
v17 >>= 32;
v5 += v16;
v6 += v17;
v16 = v3 >> 32;
v3 &= 0x00000000ffffffffULL;
v4 += v16;
v16 = v4 >> 32;
v4 &= 0x00000000ffffffffULL;
v5 += v16;
v16 = v5 >> 32;
v5 &= 0x00000000ffffffffULL;
v6 += v16;
v16 = v6 >> 32;
v6 &= 0x00000000ffffffffULL;
v7 += v16;
v4 <<= 32;
v4 |= v3;
v0[0] = v4;
v6 <<= 32;
v6 |= v5;
v0[1] = v6;
v0[2] = v7;
}
void verse_poly1305_c_portable_partialmac(uint64_t v0[2], uint64_t v1[3],
uint64_t v2[2], uint64_t v3[2])
{
auto uint64_t v4;
auto uint64_t v5;
auto uint64_t v6;
auto uint64_t v7;
auto uint64_t v8;
auto uint64_t v9;
auto uint64_t v10;
auto uint64_t v11;
auto uint64_t v12;
auto uint64_t v13;
auto uint64_t v14;
auto uint64_t v15;
auto uint64_t v16;
auto uint64_t v17;
auto uint64_t v18;
v5 = v1[0];
v4 = v5 & 0x00000000ffffffffULL;
v5 >>= 32;
v7 = v1[1];
v6 = v7 & 0x00000000ffffffffULL;
v7 >>= 32;
v8 = v1[2];
v10 = v2[0];
v9 = v10 & 0x00000000ffffffffULL;
v10 >>= 32;
v12 = v2[1];
v11 = v12 & 0x00000000ffffffffULL;
v12 >>= 32;
v18 = verse_from_le64(v0[0]);
v17 = v18 & 0x00000000ffffffffULL;
v18 >>= 32;
v4 += v17;
v5 += v18;
v18 = verse_from_le64(v0[1]);
v17 = v18 & 0x00000000ffffffffULL;
v18 >>= 32;
v6 += v17;
v7 += v18;
v15 = v4 * v12;
v17 = v5 * v11;
v15 += v17;
v17 = v6 * v10;
v15 += v17;
v17 = v7 * v9;
v15 += v17;
v14 = v4 * v11;
v17 = v5 * v10;
v14 += v17;
v17 = v6 * v9;
v14 += v17;
v13 = v4 * v10;
v17 = v5 * v9;
v13 += v17;
v4 *= v9;
v17 = v12 >> 2;
v17 += v12;
v18 = v5 * v17;
v4 += v18;
v18 = v6 * v17;
v5 = v13 + v18;
v18 = v7 * v17;
v14 += v18;
v18 = v8 * v17;
v15 += v18;
v17 = v11 >> 2;
v17 += v11;
v18 = v6 * v17;
v4 += v18;
v18 = v7 * v17;
v5 += v18;
v18 = v8 * v17;
v6 = v14 + v18;
v17 = v10 >> 2;
v17 += v10;
v18 = v7 * v17;
v4 += v18;
v18 = v8 * v17;
v5 += v18;
v17 = v9 >> 2;
v17 *= 0x0000000000000005ULL;
v18 = v8 * v17;
v4 += v18;
v7 = v15;
v16 = v9 & 0x0000000000000003ULL;
v8 *= v16;
v17 = v7 >> 32;
v7 &= 0x00000000ffffffffULL;
v8 += v17;
v17 = v8 >> 2;
v8 &= 0x0000000000000003ULL;
v17 *= 0x0000000000000005ULL;
v4 += v17;
v17 = v4 >> 32;
v4 &= 0x00000000ffffffffULL;
v5 += v17;
v17 = v5 >> 32;
v5 &= 0x00000000ffffffffULL;
v6 += v17;
v17 = v6 >> 32;
v6 &= 0x00000000ffffffffULL;
v7 += v17;
v17 = v7 >> 32;
v7 &= 0x00000000ffffffffULL;
v8 += v17;
v17 = v8 >> 2;
v8 &= 0x0000000000000003ULL;
v17 *= 0x0000000000000005ULL;
v4 += v17;
v17 = v4 + 0x0000000000000005ULL;
v17 >>= 32;
v17 += v5;
v17 >>= 32;
v17 += v6;
v17 >>= 32;
v17 += v7;
v17 >>= 32;
v17 += v8;
v17 >>= 2;
v17 = v17 * 0x0000000000000005ULL;
v4 += v17;
v17 = v4 >> 32;
v4 &= 0x00000000ffffffffULL;
v5 += v17;
v17 = v5 >> 32;
v5 &= 0x00000000ffffffffULL;
v6 += v17;
v17 = v6 >> 32;
v6 &= 0x00000000ffffffffULL;
v7 += v17;
v17 = v7 >> 32;
v7 &= 0x00000000ffffffffULL;
v8 += v17;
v18 = v3[0];
v17 = v18 & 0x00000000ffffffffULL;
v18 >>= 32;
v4 += v17;
v5 += v18;
v18 = v3[1];
v17 = v18 & 0x00000000ffffffffULL;
v18 >>= 32;
v6 += v17;
v7 += v18;
v17 = v4 >> 32;
v4 &= 0x00000000ffffffffULL;
v5 += v17;
v17 = v5 >> 32;
v5 &= 0x00000000ffffffffULL;
v6 += v17;
v17 = v6 >> 32;
v6 &= 0x00000000ffffffffULL;
v7 += v17;
v17 = v7 >> 32;
v7 &= 0x00000000ffffffffULL;
v8 += v17;
v5 <<= 32;
v5 |= v4;
v1[0] = v5;
v7 <<= 32;
v7 |= v6;
v1[1] = v7;
v1[2] = v8;
}
void verse_poly1305_c_portable_clamp(uint64_t(*bPtr)[2], uint64_t cTr)
{
auto uint64_t v0;
while (cTr > 0) {
v0 = (*bPtr)[0];
v0 &= 0x0ffffffc0fffffffULL;
(*bPtr)[0] = v0;
v0 = (*bPtr)[1];
v0 &= 0x0ffffffc0ffffffcULL;
(*bPtr)[1] = v0;
++bPtr;
--cTr;
};
}