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;
else if (*rit > *start)
--rit;
else
*it ^= (*it ^= *rit, *rit ^= *it);
else {
uint32_t x = *it;
*it = *rit;
*rit = x;
}
if (*rit >= *start)
--rit;
if (rit != start)
*rit ^= (*rit ^= *start, *start ^= *rit);
if (rit != start) {
uint32_t x = *it;
*it = *rit;
*rit = x;
}
quicksort(start, rit - 1);
quicksort(rit + 1, stop);
@ -322,7 +328,9 @@ uint8_t lfsr_rollback_bit(struct Crypto1State *s, uint32_t in, int fb)
uint8_t ret;
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 ^= 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;
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;
}