question: public static long [ ] xorI ( long [ ] v , long [ ] o , int off ) { if ( off == 0 ) { return xorI ( v , o ) ; } if ( off < 0 ) { throw new UnsupportedOperationException ( "Negative shifts are not supported." ) ; } final int shiftWords = off > > > LONG_LOG2_SIZE ; final int shiftBits = off & LONG_LOG2_MASK ; if ( shiftWords >= v . length ) { return v ; } if ( shiftBits == 0 ) { final int end = Math . min ( v . length , o . length + shiftWords ) ; for ( int i = shiftWords ; i < end ; i ++ ) { v [ i ] ^= o [ i - shiftWords ] ; } return v ; } final int unshiftBits = Long . SIZE - shiftBits ; final int end = Math . min ( v . length , o . length + shiftWords ) - 1 ; for ( int i = end ; i > shiftWords ; i -- ) { final int src = i - shiftWords ; v [ i ] ^= ( o [ src ] << shiftBits ) | ( o [ src - 1 ] > > > unshiftBits ) ; } v [ shiftWords ] ^= o [ 0 ] << shiftBits ; return v ; }
target:  XOR o onto v inplace, i.e. v ^= (o << off)