head 1.1; access; symbols; locks; strict; comment @# @; 1.1 date 2026.09.30.20.01.30; author wiz; state Exp; branches; next ; commitid PfeGIL8m1MPGqGXG; desc @@ 1.1 log @rust: update to 1.98.1 Prepared in wip/rust198 by he@@, thank you! 1.98.1 Rust 1.98.1 fixes a miscompilation in vtable generation. 1.98.0 Algebraic floating-point methods Buffered integer formatting Fix interaction between ManuallyDrop and Box 1.97.1 Rust 1.97.1 fixes a miscompilation in an LLVM optimization. 1.97.0 Symbol mangling v0 enabled by default Cargo support for denying warnings Linker output no longer hidden by default @ text @$NetBSD$ Apply fix for big-endian aarch64 from https://github.com/BurntSushi/memchr/pull/222 --- vendor/memchr-2.7.6/src/vector.rs.orig 2026-07-14 15:13:08.000000000 +0000 +++ vendor/memchr-2.7.6/src/vector.rs @@@@ -319,6 +319,7 @@@@ mod aarch64neon { } #[inline(always)] + #[cfg(target_endian = "little")] unsafe fn movemask(self) -> NeonMoveMask { let asu16s = vreinterpretq_u16_u8(self); let mask = vshrn_n_u16(asu16s, 4); @@@@ -328,6 +329,18 @@@@ mod aarch64neon { } #[inline(always)] + #[cfg(target_endian = "big")] + unsafe fn movemask(self) -> NeonMoveMask { + // Swap the endianness of each 16-bit input. + let asu16s = vreinterpretq_u16_u8(vrev16q_u8(self)); + let mask = vshrn_n_u16(asu16s, 4); + let asu64 = vreinterpret_u64_u8(mask); + // Use `swap_bytes` to swap the endianness of the 64-bit output. + let scalar64 = vget_lane_u64(asu64, 0).swap_bytes(); + NeonMoveMask(scalar64 & 0x8888888888888888) + } + + #[inline(always)] unsafe fn cmpeq(self, vector2: Self) -> uint8x16_t { vceqq_u8(self, vector2) } @