… | |
… | |
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>). |
737 | |
737 | |
|
|
738 | The valid range for C<count> is C<1> to the number of bits in the |
|
|
739 | underlying datatype minus one (7/15/31/63). If you need a rotate count |
|
|
740 | of zero you need to add an extra check before calling these functions |
|
|
741 | currently. |
|
|
742 | |
738 | Current GCC/clang versions understand these functions and usually compile |
743 | 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> |
744 | them to "optimal" code (e.g. a single C<rol> or a combination of C<shld> |
740 | on x86). |
745 | on x86). |
741 | |
746 | |
742 | =item T ecb_rotl (T x, unsigned int count) [C++] |
747 | =item T ecb_rotl (T x, unsigned int count) [C++] |