The issue is not solved at the following post: https://e2e.ti.com/support/dsp/omap_applications_processors/f/42/t/438821
I have reproduced the issue by a simple code with correct argument ordering. The SUB instruction does not work when the same unit is used for the instructions and when there is NOP 2 between instructions.
For example:
06B4F218 ADDSP.L1X A7,B13,A13
00002000 NOP 2
060440D8 SUB.L1 2,A1,A12
06B4FE3A SUBSP.S2X B7,A13,B13
00002000 NOP 2
0604A5A2 SUB.S2 5,B1,B12
Please see the attached file for a series of assembly code: (Please visit the site to view this file)
If the instructions are successive (there is not NOP) or there is NOP except 2 cycles between the instructions, it works fine. It seems not to work only when 3 cycles passed after the ADDSP or SUBSP instruction.
In addition, the ADD instruction does not also work.
For example:
0119B21A ADDSP.L2X B13,A6,B2
00002000 NOP 2
0604405A ADD.L2 2,B1,B12
0119BEB8 SUBSP.S1X B6,A13,A2
00002000 NOP 2
0604A1A0 ADD.S1 5,A1,A12
Please see the attached file for a series of assembly code: (Please visit the site to view this file)
Furthermore, I have reproduced the issue on C6713.
Please see the attached file for a series of assembly code: (Please visit the site to view this file) (Please visit the site to view this file)
Why do the ADD and SUB instructions not work?
Best regards,
Daisuke