I checked a couple of Chip Support Libraries for the C6x family, and they share the same problem, although the exact code varies: __IRQ_hookFetchPacket: STW B0,*B15-- and a corresponding LDW *++B15,B0 a few instructions later. The problem is that this violates the requirement (documented in the TMS320C6000 Optimizing C Compiler V7.3 User's Guide) that the run-time stack pointer *always* be 8-byte (doubleword) aligned. Presumably the compiler can generate code for some data types that depends on that alignment. My guess is that the coder of the cited code either was oblivious to the requirement, or figured that it didn't matter, since interrupts were masked (GIE bit clear in the CSR) and the SP was restored before the GIE bit could be reenabled. The flaw with that logic is that an NMI (non-maskable interrupt) could occur during the very short window while the SP is misaligned, so whatever C code the NMI handler executes could run afoul of the presumption that the SP is always doubleword-aligned. The fix for this is to change the code to STW B0,*B15--[2] etc.
I have seen that construct used somewhere (I forget where), and have been wondering why, until I read the requirement in the compiler guide.
Admittedly, it is hard to trip over this flaw, but not impossible, and anyone using NMI in a critical application should be aware of the possibility.