Hi! On Tue, Jan 19, 2021 at 03:18:00PM +1100, Michael Ellerman wrote: > Newer binutils (>= 2.36) refuse to assemble lmw/stmw when building in > little endian mode. That breaks compilation of our alignment handler > test: > > /tmp/cco4l14N.s: Assembler messages: > /tmp/cco4l14N.s:1440: Error: `lmw' invalid when little-endian > /tmp/cco4l14N.s:1814: Error: `stmw' invalid when little-endian > make[2]: *** [../../lib.mk:139: > /output/kselftest/powerpc/alignment/alignment_handler] Error 1 > > These tests do pass on little endian machines, as the kernel will > still emulate those instructions even when running little > endian (which is arguably a kernel bug).
The opposite: in older ISAs it is *required* to. On all very old ISA versions, and when not on the Server Environment on everything before ISA 2.07. Many older implementations did an alignment interrupt, but that was an implementation detail (they could still be compliant with proper system software support, e.g. kernel emulation handlers). Nowadays that interrupt is required, so you can still support it like that. (The patch is fine of course.) Segher