Re: gcc 10.2.0 mtocrf instructions on Freescale P1014 (ppc)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux