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