I'm puzzled as to why gcc is producing code for rrc as follows:
f97e: 1f 42 02 02 mov &0x0202,r15
f982: 12 c3 clrc
f984: 0f 10 rrc r15
f986: 82 4f 02 02 mov r15, &0x0202
whereas bit set is:
f96c: b2 d0 80 00 bis #128, &0x0164 ;#0x0080
f970: 64 01
slau144 seems to indicate that rrc supports absolute mode; am I missing something here (besides possible lost clock cycles). Why the extra mov instructions?
(note: for the variable at 0x202, I have tried with and without the volatile keyword and get the same result)