AnsweredAssumed Answered

Issue with powerpc-eabivle-gcc.exe, revision 4.9.4: The builtin __builtin_ppc_get_timebase() fails to compile in VLE mode

Question asked by Peter Vranken on Dec 4, 2017
Latest reply on Dec 7, 2017 by Peter Vranken

The builtin __builtin_ppc_get_timebase() fails to compile in VLE mode of the compiler powerpc-eabivle-gcc.exe, revision 4.9.4. The error message is:

 

bin/ppc/DEBUG/obj/mai_main.s:73: Error: operand out of range (7 is not between 0 and 3)

 

The C code is

 

    uint64_t tiStart = __builtin_ppc_get_timebase();

 

The assembly listing looks like:

 

 .loc 1 414 0
 mftbu %r4  # D.18848
 mftb %r5  # D.18848
 mftbu %r7  #
 cmpw %cr7,%r4,%r7  #, D.18848,
 e_bne %cr7,$-16  #

 

Using CR7 seems to be not available with VLE instructions yet it is used in the instructions emitted by the compiler.

Outcomes