I am using the ADSP-21479 and like to extract always the head bit of the bit fifo using the bitex(1) instruction. My code is:
r1 = pass r13, r0 = r6; // scaled +1 in 64 bits (r1:r0)
if not sf bitdep r3 by 32, r3 = dm(i0, m6);
r4 = bitext(1), r8 = pm(i12, m14);// extract 1 bit from head of bit fifo and left shift fifo by 1 bit
if sz r1 = pass r14, r0 = r10; // scaled -1 in 64 bits (r1:r0)
This works fine in SISD mode. However, in SIMD mode I have trouble in understanding the behavior. Initially, I thought that there is one bit fifo for PEx (loaded by r3, left channel) and another for the PEy space (loaded by s3, right channel). However, it seems that there is only a single bit fifo and that in SIMD mode r4 is loaded with the MSB and s4 with (MSB-1) and the bffwrp pointer is updated by 2. Can you confirm this? If this is the case then I need to reorganize the data appending to thr fifo (bit interleaving left and right channels) in order to obtain the correct extraction from the fifo.
Thank you for your help.