ethnum/intrinsics/native/
rot.rs

1//! This module implements right and left rotation (**not** shifting) intrinsics
2//! for 256-bit integers.
3
4use crate::uint::U256;
5use core::mem::MaybeUninit;
6
7#[inline]
8pub fn rol3(r: &mut MaybeUninit<U256>, a: &U256, b: u32) {
9    r.write((a << (b & 0xff)) | (a >> ((256 - b) & 0xff)));
10}
11
12#[inline]
13pub fn ror3(r: &mut MaybeUninit<U256>, a: &U256, b: u32) {
14    r.write((a >> (b & 0xff)) | (a << ((256 - b) & 0xff)));
15}