- const int offset_minus_4 = 4 - (block_len & 3);
-
- const int selector = (0x76543210 >> (offset_minus_4 * 4)) & 0xffff;
-
- tmp0 = __byte_perm ( 0, append[0], selector);
- tmp1 = __byte_perm (append[0], append[1], selector);
- tmp2 = __byte_perm (append[1], append[2], selector);
- tmp3 = __byte_perm (append[2], append[3], selector);
- tmp4 = __byte_perm (append[3], append[4], selector);
- tmp5 = __byte_perm (append[4], append[5], selector);
- tmp6 = __byte_perm (append[5], append[6], selector);
- tmp7 = __byte_perm (append[6], append[7], selector);
- tmp8 = __byte_perm (append[7], 0, selector);
+ const int selector = (0x76543210 >> ((block_len & 3) * 4)) & 0xffff;
+
+ tmp00 = __byte_perm (append[ 0], 0, selector);
+ tmp01 = __byte_perm (append[ 1], append[ 0], selector);
+ tmp02 = __byte_perm (append[ 2], append[ 1], selector);
+ tmp03 = __byte_perm (append[ 3], append[ 2], selector);
+ tmp04 = __byte_perm (append[ 4], append[ 3], selector);
+ tmp05 = __byte_perm (append[ 5], append[ 4], selector);
+ tmp06 = __byte_perm (append[ 6], append[ 5], selector);
+ tmp07 = __byte_perm (append[ 7], append[ 6], selector);
+ tmp08 = __byte_perm (append[ 8], append[ 7], selector);
+ tmp09 = __byte_perm (append[ 9], append[ 8], selector);
+ tmp10 = __byte_perm (append[10], append[ 9], selector);
+ tmp11 = __byte_perm (append[11], append[10], selector);
+ tmp12 = __byte_perm (append[12], append[11], selector);
+ tmp13 = __byte_perm (append[13], append[12], selector);
+ tmp14 = __byte_perm (append[14], append[13], selector);
+ tmp15 = __byte_perm (append[15], append[14], selector);
+ tmp16 = __byte_perm ( 0, append[15], selector);