aboutsummaryrefslogtreecommitdiffstats
path: root/test/monniaux/sha-2
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-03-16 21:15:10 +0100
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-03-16 21:15:10 +0100
commit633da3a44acb0d18f7ff0363d9e446b72826a268 (patch)
treee721e56162fce23ad9bcb031a5eb71861e979a2f /test/monniaux/sha-2
parent7ab24b18b1c9a08b0d092c2c8144ee7b3a029c1d (diff)
downloadcompcert-kvx-633da3a44acb0d18f7ff0363d9e446b72826a268.tar.gz
compcert-kvx-633da3a44acb0d18f7ff0363d9e446b72826a268.zip
the inliner is rotten
Diffstat (limited to 'test/monniaux/sha-2')
-rw-r--r--test/monniaux/sha-2/sha-256.c70
1 files changed, 44 insertions, 26 deletions
diff --git a/test/monniaux/sha-2/sha-256.c b/test/monniaux/sha-2/sha-256.c
index 05cda24f..b16741a7 100644
--- a/test/monniaux/sha-2/sha-256.c
+++ b/test/monniaux/sha-2/sha-256.c
@@ -52,6 +52,24 @@ static inline uint32_t right_rot(uint32_t value, unsigned int count)
return value >> count | value << (32 - count);
}
+/* BEGIN DM */
+#define DEF_ROT(n) \
+static inline uint32_t right_rot##n(uint32_t value) \
+{ \
+ return value >> n | value << (32 - n); \
+}
+DEF_ROT(2)
+DEF_ROT(6)
+DEF_ROT(7)
+DEF_ROT(11)
+DEF_ROT(13)
+DEF_ROT(17)
+DEF_ROT(18)
+DEF_ROT(19)
+DEF_ROT(22)
+DEF_ROT(25)
+/* END DM */
+
static void init_buf_state(struct buffer_state * state, const void * input, size_t len)
{
state->p = input;
@@ -175,8 +193,8 @@ void calc_sha_256(uint8_t hash[32], const void * input, size_t len)
/* Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array: */
for (i = 16; i < 64; i++) {
- const uint32_t s0 = right_rot(w[i - 15], 7) ^ right_rot(w[i - 15], 18) ^ (w[i - 15] >> 3);
- const uint32_t s1 = right_rot(w[i - 2], 17) ^ right_rot(w[i - 2], 19) ^ (w[i - 2] >> 10);
+ const uint32_t s0 = right_rot7(w[i - 15]) ^ right_rot18(w[i - 15]) ^ (w[i - 15] >> 3);
+ const uint32_t s1 = right_rot17(w[i - 2]) ^ right_rot19(w[i - 2]) ^ (w[i - 2] >> 10);
w[i] = w[i - 16] + s0 + w[i - 7] + s1;
}
@@ -186,10 +204,10 @@ void calc_sha_256(uint8_t hash[32], const void * input, size_t len)
/* Compression function main loop: */
for (i = 0; i < 64; i++) {
- const uint32_t s1 = right_rot(ah[4], 6) ^ right_rot(ah[4], 11) ^ right_rot(ah[4], 25);
+ const uint32_t s1 = right_rot6(ah[4]) ^ right_rot11(ah[4]) ^ right_rot25(ah[4]);
const uint32_t ch = (ah[4] & ah[5]) ^ (~ah[4] & ah[6]);
const uint32_t temp1 = ah[7] + s1 + ch + k[i] + w[i];
- const uint32_t s0 = right_rot(ah[0], 2) ^ right_rot(ah[0], 13) ^ right_rot(ah[0], 22);
+ const uint32_t s0 = right_rot2(ah[0]) ^ right_rot13(ah[0]) ^ right_rot22(ah[0]);
const uint32_t maj = (ah[0] & ah[1]) ^ (ah[0] & ah[2]) ^ (ah[1] & ah[2]);
const uint32_t temp2 = s0 + maj;
@@ -265,8 +283,8 @@ void calc_sha_256(uint8_t hash[32], const void * input, size_t len)
/* Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array: */
for (i = 16; i < 64; i++) {
- const uint32_t s0 = right_rot(w[i - 15], 7) ^ right_rot(w[i - 15], 18) ^ (w[i - 15] >> 3);
- const uint32_t s1 = right_rot(w[i - 2], 17) ^ right_rot(w[i - 2], 19) ^ (w[i - 2] >> 10);
+ const uint32_t s0 = right_rot7(w[i - 15]) ^ right_rot18(w[i - 15]) ^ (w[i - 15] >> 3);
+ const uint32_t s1 = right_rot17(w[i - 2]) ^ right_rot19(w[i - 2]) ^ (w[i - 2] >> 10);
w[i] = w[i - 16] + s0 + w[i - 7] + s1;
}
@@ -285,7 +303,7 @@ void calc_sha_256(uint8_t hash[32], const void * input, size_t len)
const uint32_t *ki = k, *wi = w;
#endif
for (i = 0; i < 64; i++) {
- const uint32_t s1 = right_rot(ah4, 6) ^ right_rot(ah4, 11) ^ right_rot(ah4, 25);
+ const uint32_t s1 = right_rot6(ah4) ^ right_rot11(ah4) ^ right_rot25(ah4);
const uint32_t ch = (ah4 & ah5) ^ (~ah4 & ah6);
const uint32_t temp1 = ah7 + s1 + ch +
#if AUTOINCREMENT
@@ -293,7 +311,7 @@ void calc_sha_256(uint8_t hash[32], const void * input, size_t len)
#else
k[i] + w[i];
#endif
- const uint32_t s0 = right_rot(ah0, 2) ^ right_rot(ah0, 13) ^ right_rot(ah0, 22);
+ const uint32_t s0 = right_rot2(ah0) ^ right_rot13(ah0) ^ right_rot22(ah0);
const uint32_t maj = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);
const uint32_t temp2 = s0 + maj;
@@ -374,8 +392,8 @@ void calc_sha_256(uint8_t hash[32], const void * input, size_t len)
/* Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array: */
for (i = 16; i < 64; i++) {
- const uint32_t s0 = right_rot(w[i - 15], 7) ^ right_rot(w[i - 15], 18) ^ (w[i - 15] >> 3);
- const uint32_t s1 = right_rot(w[i - 2], 17) ^ right_rot(w[i - 2], 19) ^ (w[i - 2] >> 10);
+ const uint32_t s0 = right_rot7(w[i - 15]) ^ right_rot18(w[i - 15]) ^ (w[i - 15] >> 3);
+ const uint32_t s1 = right_rot17(w[i - 2]) ^ right_rot19(w[i - 2]) ^ (w[i - 2] >> 10);
w[i] = w[i - 16] + s0 + w[i - 7] + s1;
}
@@ -392,10 +410,10 @@ void calc_sha_256(uint8_t hash[32], const void * input, size_t len)
/* Compression function main loop: */
for (i = 0; i < 64; ) {
{
- const uint32_t s1 = right_rot(ah4, 6) ^ right_rot(ah4, 11) ^ right_rot(ah4, 25);
+ const uint32_t s1 = right_rot6(ah4) ^ right_rot11(ah4) ^ right_rot25(ah4);
const uint32_t ch = (ah4 & ah5) ^ (~ah4 & ah6);
const uint32_t temp1 = ah7 + s1 + ch + k[i] + w[i];
- const uint32_t s0 = right_rot(ah0, 2) ^ right_rot(ah0, 13) ^ right_rot(ah0, 22);
+ const uint32_t s0 = right_rot2(ah0) ^ right_rot13(ah0) ^ right_rot22(ah0);
const uint32_t maj = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);
const uint32_t temp2 = s0 + maj;
@@ -410,10 +428,10 @@ void calc_sha_256(uint8_t hash[32], const void * input, size_t len)
i++;
}
{
- const uint32_t s1 = right_rot(ah4, 6) ^ right_rot(ah4, 11) ^ right_rot(ah4, 25);
+ const uint32_t s1 = right_rot6(ah4) ^ right_rot11(ah4) ^ right_rot25(ah4);
const uint32_t ch = (ah4 & ah5) ^ (~ah4 & ah6);
const uint32_t temp1 = ah7 + s1 + ch + k[i] + w[i];
- const uint32_t s0 = right_rot(ah0, 2) ^ right_rot(ah0, 13) ^ right_rot(ah0, 22);
+ const uint32_t s0 = right_rot2(ah0) ^ right_rot13(ah0) ^ right_rot22(ah0);
const uint32_t maj = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);
const uint32_t temp2 = s0 + maj;
@@ -428,10 +446,10 @@ void calc_sha_256(uint8_t hash[32], const void * input, size_t len)
i++;
}
{
- const uint32_t s1 = right_rot(ah4, 6) ^ right_rot(ah4, 11) ^ right_rot(ah4, 25);
+ const uint32_t s1 = right_rot6(ah4) ^ right_rot11(ah4) ^ right_rot25(ah4);
const uint32_t ch = (ah4 & ah5) ^ (~ah4 & ah6);
const uint32_t temp1 = ah7 + s1 + ch + k[i] + w[i];
- const uint32_t s0 = right_rot(ah0, 2) ^ right_rot(ah0, 13) ^ right_rot(ah0, 22);
+ const uint32_t s0 = right_rot2(ah0) ^ right_rot13(ah0) ^ right_rot22(ah0);
const uint32_t maj = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);
const uint32_t temp2 = s0 + maj;
@@ -446,10 +464,10 @@ void calc_sha_256(uint8_t hash[32], const void * input, size_t len)
i++;
}
{
- const uint32_t s1 = right_rot(ah4, 6) ^ right_rot(ah4, 11) ^ right_rot(ah4, 25);
+ const uint32_t s1 = right_rot6(ah4) ^ right_rot11(ah4) ^ right_rot25(ah4);
const uint32_t ch = (ah4 & ah5) ^ (~ah4 & ah6);
const uint32_t temp1 = ah7 + s1 + ch + k[i] + w[i];
- const uint32_t s0 = right_rot(ah0, 2) ^ right_rot(ah0, 13) ^ right_rot(ah0, 22);
+ const uint32_t s0 = right_rot2(ah0) ^ right_rot13(ah0) ^ right_rot22(ah0);
const uint32_t maj = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);
const uint32_t temp2 = s0 + maj;
@@ -464,10 +482,10 @@ void calc_sha_256(uint8_t hash[32], const void * input, size_t len)
i++;
}
{
- const uint32_t s1 = right_rot(ah4, 6) ^ right_rot(ah4, 11) ^ right_rot(ah4, 25);
+ const uint32_t s1 = right_rot6(ah4) ^ right_rot11(ah4) ^ right_rot25(ah4);
const uint32_t ch = (ah4 & ah5) ^ (~ah4 & ah6);
const uint32_t temp1 = ah7 + s1 + ch + k[i] + w[i];
- const uint32_t s0 = right_rot(ah0, 2) ^ right_rot(ah0, 13) ^ right_rot(ah0, 22);
+ const uint32_t s0 = right_rot2(ah0) ^ right_rot13(ah0) ^ right_rot22(ah0);
const uint32_t maj = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);
const uint32_t temp2 = s0 + maj;
@@ -482,10 +500,10 @@ void calc_sha_256(uint8_t hash[32], const void * input, size_t len)
i++;
}
{
- const uint32_t s1 = right_rot(ah4, 6) ^ right_rot(ah4, 11) ^ right_rot(ah4, 25);
+ const uint32_t s1 = right_rot6(ah4) ^ right_rot11(ah4) ^ right_rot25(ah4);
const uint32_t ch = (ah4 & ah5) ^ (~ah4 & ah6);
const uint32_t temp1 = ah7 + s1 + ch + k[i] + w[i];
- const uint32_t s0 = right_rot(ah0, 2) ^ right_rot(ah0, 13) ^ right_rot(ah0, 22);
+ const uint32_t s0 = right_rot2(ah0) ^ right_rot13(ah0) ^ right_rot22(ah0);
const uint32_t maj = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);
const uint32_t temp2 = s0 + maj;
@@ -500,10 +518,10 @@ void calc_sha_256(uint8_t hash[32], const void * input, size_t len)
i++;
}
{
- const uint32_t s1 = right_rot(ah4, 6) ^ right_rot(ah4, 11) ^ right_rot(ah4, 25);
+ const uint32_t s1 = right_rot6(ah4) ^ right_rot11(ah4) ^ right_rot25(ah4);
const uint32_t ch = (ah4 & ah5) ^ (~ah4 & ah6);
const uint32_t temp1 = ah7 + s1 + ch + k[i] + w[i];
- const uint32_t s0 = right_rot(ah0, 2) ^ right_rot(ah0, 13) ^ right_rot(ah0, 22);
+ const uint32_t s0 = right_rot2(ah0) ^ right_rot13(ah0) ^ right_rot22(ah0);
const uint32_t maj = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);
const uint32_t temp2 = s0 + maj;
@@ -518,10 +536,10 @@ void calc_sha_256(uint8_t hash[32], const void * input, size_t len)
i++;
}
{
- const uint32_t s1 = right_rot(ah4, 6) ^ right_rot(ah4, 11) ^ right_rot(ah4, 25);
+ const uint32_t s1 = right_rot6(ah4) ^ right_rot11(ah4) ^ right_rot25(ah4);
const uint32_t ch = (ah4 & ah5) ^ (~ah4 & ah6);
const uint32_t temp1 = ah7 + s1 + ch + k[i] + w[i];
- const uint32_t s0 = right_rot(ah0, 2) ^ right_rot(ah0, 13) ^ right_rot(ah0, 22);
+ const uint32_t s0 = right_rot2(ah0) ^ right_rot13(ah0) ^ right_rot22(ah0);
const uint32_t maj = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);
const uint32_t temp2 = s0 + maj;