Removed xor swaps to fix GCC warnings

This commit is contained in:
Marcos Vives Del Sol
2015-05-06 16:44:38 +02:00
committed by Romain Tartière
parent 92f7413beb
commit a8a605e1b4
2 changed files with 16 additions and 6 deletions

View File

@@ -43,13 +43,19 @@ static void quicksort(uint32_t *const start, uint32_t *const stop)
++it; ++it;
else if (*rit > *start) else if (*rit > *start)
--rit; --rit;
else else {
*it ^= (*it ^= *rit, *rit ^= *it); uint32_t x = *it;
*it = *rit;
*rit = x;
}
if (*rit >= *start) if (*rit >= *start)
--rit; --rit;
if (rit != start) if (rit != start) {
*rit ^= (*rit ^= *start, *start ^= *rit); uint32_t x = *it;
*it = *rit;
*rit = x;
}
quicksort(start, rit - 1); quicksort(start, rit - 1);
quicksort(rit + 1, stop); quicksort(rit + 1, stop);
@@ -322,7 +328,9 @@ uint8_t lfsr_rollback_bit(struct Crypto1State *s, uint32_t in, int fb)
uint8_t ret; uint8_t ret;
s->odd &= 0xffffff; s->odd &= 0xffffff;
s->odd ^= (s->odd ^= s->even, s->even ^= s->odd); uint32_t x = s->odd;
s->odd = s->even;
s->even = x;
out = s->even & 1; out = s->even & 1;
out ^= LF_POLY_EVEN & (s->even >>= 1); out ^= LF_POLY_EVEN & (s->even >>= 1);

View File

@@ -56,7 +56,9 @@ uint8_t crypto1_bit(struct Crypto1State *s, uint8_t in, int is_encrypted)
feedin ^= LF_POLY_EVEN & s->even; feedin ^= LF_POLY_EVEN & s->even;
s->even = s->even << 1 | parity(feedin); s->even = s->even << 1 | parity(feedin);
s->odd ^= (s->odd ^= s->even, s->even ^= s->odd); uint32_t x = s->odd;
s->odd = s->even;
s->even = x;
return ret; return ret;
} }