Компилирую код для тини2313. Использую регистры GPIOR0,1,2 как флаговые. Компилятор ни в какую не хочет работать с ними командами SBI, CBI (пишу на С). Оптимизацией баловался, и отключал её. Ничего не даёт

Регистры находятся в адресном пространстве, где эти команды должны работать.
Ещё компилятор мне умудряется сделать следующее:
Если регистр флаговый описывают как ниже, то он вместо применения GPIOR0 использует GPIOR2. Я что-то видимо недопонимаю среди ночи
Код
__io union
{
unsigned char f1_b;
struct
{ //
unsigned char err:1;
unsigned char tst;
unsigned char :1;
unsigned char :1;
unsigned char :1;
unsigned char rl_scr:1;
unsigned char scr:1;
unsigned char :1; //
}f1;
}@ 0x13; // GPIOR0