pi32bmAddrBuf1 = &bm[0][i]; // &bm[0][i] #pragma UNROLL(1) for (k = 0, m = 0; k < (NO_OF_STATES/2); k++, m += 2) { ui32packedStates = _amem4(pi32softIdealOp++); path1 = _amem4(pi32bmAddrBuf1); pi32bmAddrBuf1 += MAX_DECODER_OP_LENGTH_PLUS1; path2 = _amem4(pi32bmAddrBuf1); pi32bmAddrBuf1 += MAX_DECODER_OP_LENGTH_PLUS1; i64TmpVar = _ddotp4(i32_decoderIP01, ui32packedStates); i32Tmp1 = _loll(i64TmpVar); i32Tmp2 = _hill(i64TmpVar); path1 += i32Tmp1; path2 += i32Tmp2; if (path1 > path2) { *pui8bestState1 = (m); _amem4(pi32bmAddrBuf2) = path1; } else { *pui8bestState1 = (m+1); _amem4(pi32bmAddrBuf2) = path2; } pui8bestState1 += MAX_DECODER_OP_LENGTH; pi32bmAddrBuf2 += MAX_DECODER_OP_LENGTH_PLUS1; }