AnsweredAssumed Answered

Issue with powerpc-eabivle-gcc.exe 4.9.4 with -mspe2 option using S32r274 (e200Z7 core)

Question asked by Jonathan Cole on Jan 23, 2018
Latest reply on Jan 23, 2018 by Jonathan Cole

I have encountered an issue when compiling the code with powerpc-eabivle-gcc.exe 4.9.4 with -mspe2 option using an s32R274 e200z7 core.  It builds and runs fine without the -mspe2, but it crashes during runtime and gets trapped in a watchdog timer interrupt vector #12 with the -mspe2 option.  I am using S32 Design Studio for Power Architecture v2017.R1.

 

The offending line of code is a simple typecast to a float:

 

tmpFloat = (float)tmpInt64;

 

Where tmpFloat is of type float and tmpInt64 is of type int64_t.

 

According to the disassembly, the code compiles into the following assembly instructions:

 

se_lwz r3,32(r31)
se_lwz r4,36(r31)
e_bl 0x10c2d88 <__floatdisf>
se_mr r7,r3 <-------- Crashes here
e_stw r7,40(r31)

 

To add to the confusion, I get the same assembly output whether the -mspe2 option is included or not.

 

Any advice?

Outcomes