On Tue, Nov 10, 2020 at 06:59:30PM +0100, Stefan Kanthak via Gcc-patches wrote: > The implementation of the __ashlDI3(), __ashrDI3() and __lshrDI3() functions > is rather bad, it yields bad machine code at least on i386 and AMD64. > Since GCC knows how to shift integers twice the register size these functions > can be written as one-liners. > > The implementation of the __bswapsi2() function uses SIGNED instead of > unsigned mask values; cf. __bswapdi2()
The 0xff000000 constant is unsigned, the others are signed, but that doesn't really matter as the high bits are masked off. Jakub