| 71 | } |
| 72 | |
| 73 | inline void Hashing32::ProcessLastStripe(uint32_t mask1, uint32_t mask2, uint32_t mask3, |
| 74 | uint32_t mask4, const uint8_t* last_stripe, |
| 75 | uint32_t* acc1, uint32_t* acc2, uint32_t* acc3, |
| 76 | uint32_t* acc4) { |
| 77 | uint32_t stripe1 = util::SafeLoadAs<const uint32_t>(last_stripe); |
| 78 | uint32_t stripe2 = util::SafeLoadAs<const uint32_t>(last_stripe + sizeof(uint32_t)); |
| 79 | uint32_t stripe3 = util::SafeLoadAs<const uint32_t>(last_stripe + 2 * sizeof(uint32_t)); |
| 80 | uint32_t stripe4 = util::SafeLoadAs<const uint32_t>(last_stripe + 3 * sizeof(uint32_t)); |
| 81 | stripe1 &= mask1; |
| 82 | stripe2 &= mask2; |
| 83 | stripe3 &= mask3; |
| 84 | stripe4 &= mask4; |
| 85 | *acc1 = Round(*acc1, stripe1); |
| 86 | *acc2 = Round(*acc2, stripe2); |
| 87 | *acc3 = Round(*acc3, stripe3); |
| 88 | *acc4 = Round(*acc4, stripe4); |
| 89 | } |
| 90 | |
| 91 | inline void Hashing32::StripeMask(int i, uint32_t* mask1, uint32_t* mask2, |
| 92 | uint32_t* mask3, uint32_t* mask4) { |