##
8.1.8 Bit-shifting Operations.

Bit shifting is one of the most frequently used operation in embedded programming. SDCC tries to implement bit-shift operations in the most efficient way possible, e.g.:

> unsigned char i;
> ...
> i »= 4;
> ...

generates the following code:

> mov a,_i
> swap a
> anl a,#0x0f
> mov _i,a

Typically, SDCC will not setup a loop if the shift count is known. Another example:

> unsigned int i;
> ...
> i »= 9;
> ...

will generate:

> mov a,(_i + 1)
> mov (_i + 1),#0x00
> clr c
> rrc a
> mov _i,a