Other Parts Discussed in Thread: TCI6638K2K
My customer uses C6000 compiler(CGTool v7.4.4) for TCI6638K2K. They found a issue about multiple assignment when they had some troubles in their system. Attached text file is extracted from their code. It seems that the assembler code that compiler generated is related to 6.6.1 Single Assignment Programming in TMS320C66x DSP CPU and Instruction Set Reference Guide(SPRUGH7). It is described methods for preventing problems but this issue is generated from compiler. So it is difficult to find the multiple assignment in their program.
1. Is this a compiler bug?
2. Do you have any idea to find multiple assignment that compiler generated or workaround?
/* Assmble code generated from C6000 compiler (CGtool v7.4.4) */
/* It is wrong value in ILC (or A5). */
; PIPED LOOP PROLOG
; EXCLUSIVE CPU CYCLES: 25
SHL .S1 A16,5,A3
|| MPYLI .M1X A4,B6,A5:A4
MVK .S1 1000,A31
|| ADD .L1X A6,B8,A5
|| SUBAW .D1 A3,A16,A3
ADD .L1 A31,A5,A9 ; <-interrupt is happened here
SHL .S1 A16,4,A6
|| LDHU .D1T1 *A9,A5
MVK .S1 10000,A4
|| ADD .L1 A13,A4,A30
ADDAW .D1 A6,A16,A29
|| ADD .L1 A4,A30,A18
ADD .L1 A18,A29,A4
ADD .D1 A4,28,A4
SPLOOPD 8 ;24 ; (P)
|| MVC .S2X A5,ILC
Regards,
M.Ohhashi