def copy.pick

bend-kit-bytes@0.3.3.0 · bytes.bend:99

import bend-kit-bytes@0.3.3.0/bytes.bend as Bytes
import Base

99def copy.pick(aligned: Bool, +m: U32, src: Array<U32>, dst: Array<U32>, +s: U32, +d: U32) -> Array<U32> & Array<U32>:
100  match aligned:
101    case True{}:
102      +w = (m >> 2n : U32)
103      +k = (w * 4 : U32)
104      copy.tail((m - k : U32), (s + k : U32), (d + k : U32), copy.words(U32.to_nat(w), Array.get(U32, src, (s >> 2n : U32)), dst, (s >> 2n : U32), (d >> 2n : U32)))
105    case False{}:
106      +w = (m >> 2n : U32)
107      +k = (w * 4 : U32)
108      copy.tail((m - k : U32), (s + k : U32), (d + k : U32), copy.shift.at(w, ((s .&. 3 : U32) * 8 : U32), (s >> 2n : U32), (d >> 2n : U32), Array.get(U32, src, (s >> 2n : U32)), dst))

Uses (14)

Used by (1)