packages feed

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;
	};
}