T
Tomás Ó hÉilidhe
I'm working with a microcontroller at the moment that has a single
instruction for clearing a bit in a byte.
I started off with the following line of code:
x &= ~0x8u; /* Clear the 4th bit */
But then I changed it to the following because I thought I might get
more efficient assembler out of it:
x &= 0xF7u; /* Clear the 4th bit */
Suprisingly, the compiler produced more efficient code for the latter,
presumably because it recognises the pattern of " x &= ~y" for
clearing a single bit.
Anyway just thought I'd give an example of someone winding up with
less efficient code when their aim was to make the code more
efficient :-D
instruction for clearing a bit in a byte.
I started off with the following line of code:
x &= ~0x8u; /* Clear the 4th bit */
But then I changed it to the following because I thought I might get
more efficient assembler out of it:
x &= 0xF7u; /* Clear the 4th bit */
Suprisingly, the compiler produced more efficient code for the latter,
presumably because it recognises the pattern of " x &= ~y" for
clearing a single bit.
Anyway just thought I'd give an example of someone winding up with
less efficient code when their aim was to make the code more
efficient :-D