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.

msp430 compiler 4.1.7 code generation

Why does this simple C statement generate a function call rather than a simple shift operation?

C source:

mask = (1 << channel);                                        

assembler result:
    1209 000018 4A4D          MOV.B     r10,r13               ; [] |124|
    1210 00001a 431C          MOV.W     #1,r12                ; [] |124|
    1215 00001c 12B0          CALL      #__mspabi_slli        ; [] |124|