Откуда компилятору знать - какое из них родное и как ещё может менятся эта переменная (да хоть аппаратно по фазе луны).)
Отправлено
ReAl 16 мая 2007 г. 00:15
В ответ на: WinAVR, дубль 2. отправлено
<font color=gray>Неофит</font> 15 мая 2007 г. 22:29
А по -O0 - нормальные места с in/out/тра-ля-ля были, вероятно, в простых местах, где сразу было видно что к чему. Работа с портами в avr-gcc сделана так - в io.h все SFR описаны в терминах обращений по константным указателям, т.е. lds/sts первично. Далее оптимизатор смотрит - если адрес константа и лежит в диапазоне I/O пространства - то вычитает 0x20 и подставляет команду in/out, для всяких |= 0x01 тоже - при попадании в пространство IO заменяет на sbi