On Thu, Apr 08, 2021 at 09:32:29AM +0000, Barbier, Renaud via Gcc-help wrote: > We recently build Linux 5.9/5.11 with Yocto gatesgarth for the Freescale P1014 (e500). The gcc compiler used is version 10.2.0. What did you use for --with-cpu= when configuring? Or for -mcpu= when using the compiler. > In both cases Linux crashes. It was traced to the instruction mtocrf which now replaces mtcrf. > This issue does not exist with gcc 9.3.0 which uses the instruction mtcrf instead. > > PPC documentation says that mtocrf may be an illegal instruction for some processors. > Is there a way to turn off the use of mtocrf? Building my boot loader shows that only the mtcrf instruction is used. GCC still only ever generates mtcrf. But that instruction is an extended mnemonic (see C.10 in the ISA, B.9 in very old ISA versions... the "Move To/From Condition Register" section in "Miscellaneous Mnemonics"). So, if you selected a -mcpu= that supports mtocrf (every CPU that implements ISA 2.xx) you get mtocrf, and otherwise the assembler will emit an old-style mtcrf opcode. It sounds like you selected a value for -mcpu= that cannot work with your system. Segher