… | |
… | |
731 | |
731 | |
732 | =item uint64_t ecb_rotr64 (uint64_t x, unsigned int count) |
732 | =item uint64_t ecb_rotr64 (uint64_t x, unsigned int count) |
733 | |
733 | |
734 | These two families of functions return the value of C<x> after rotating |
734 | These two families of functions return the value of C<x> after rotating |
735 | all the bits by C<count> positions to the right (C<ecb_rotr>) or left |
735 | all the bits by C<count> positions to the right (C<ecb_rotr>) or left |
736 | (C<ecb_rotl>). |
736 | (C<ecb_rotl>). There are no restrictions on the value C<count>, i.e. both |
|
|
737 | zero and values equal or larger than the word width work correctly. |
737 | |
738 | |
738 | Current GCC/clang versions understand these functions and usually compile |
739 | Current GCC/clang versions understand these functions and usually compile |
739 | them to "optimal" code (e.g. a single C<rol> or a combination of C<shld> |
740 | them to "optimal" code (e.g. a single C<rol> or a combination of C<shld> |
740 | on x86). |
741 | on x86). |
741 | |
742 | |