This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320C28346: CPU-to-FPU UI16TOF32 Errata applies to I16TOF32, too?

Part Number: TMS320C28346

Tool/software:

Dear Experts,

I have problems with the following code:

void someFunc(int32_t someInt32, uint16_t index)
{
    float fl1 = (float)someInt32;
    float fl2 = (float)someGlobInt16Array[index];
    ...
}

which gets compiled to:

MOV32     R1H,XAR2
I16TOF32  R3H,*+XAR6[AR0]
...
I32TOF32  R1H,R1H

Like described in TMS320C2834x Errata, the result of the I16TOF32 instruction also gets loaded into the R1H register.
The compiler doesn't take care of this instruction by filling in NOPs.
If I put in 5 NOPs, the behavior is gone.

MOV32     R1H,XAR2
NOP
NOP
NOP
NOP
NOP
I16TOF32  R3H,*+XAR6[AR0]

Is there a suggested workaround?

Thanks!