I use ADSP 21160 and recently discovered that the assembler (Visual DSP++ 5.0 update 8) doesn't flag the following instruction as an error.
i4 = dm(<data32>,i1);
But the following text from the Hardware Reference for ADSP 21160 leads me to believe that the above instruction should be illegal.
"Certain other sequences of instructions cause incorrect results on the DSP
and are flagged as errors by DSP assembler software. These types of
instructions can execute on the processor, but cause incorrect results:
• An instruction that stores a DAG register in memory using indirect
addressing from the same DAG, with or without update of the index
register. The instruction writes the wrong data to memory or
updates the wrong index register."
Could you please resolve this conflict?