This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28379D: CLA compare

Part Number: TMS320F28379D

Hi,

I have a small compare:

Uint16 a;
Uint16 b;
The values are always between 0 and 200.

if ( a < b)

and I get the following assembler code:

MMOVZ16  MR0, @0x1502
MMOVZ16  MR1, @0x8000
MLSL32   MR0, 16
MLSL32   MR1, 16
MLSR32   MR0, 16
MLSR32   MR1, 16
MCMP32   MR0, MR1

The compiler found that there are unsigned values. If there were signed values, the compiler would use MASR32.

But why does the compiler generates the MLSL32 and MLSR32? The upper words are filled with 0x0000 (MMOVZ16)?
What can I do against these commands?

Thanks, Gerd