Нужно ли хранить параметр функции в ОЗУ? - PullRequest
0 голосов
/ 30 мая 2018

предполагается, что функция

void foo(uint8_t value)
{
    somearray[some_idx] = value;
}

CodeVision производит следующее

ST   -Y,R26    // the parameter "value" is in R26
;   value -> Y+0

LDS  R30,_some_idx
LDI  R31,0
SUBI R30,LOW(-_somearray)
SBCI R31,HIGH(-_somearray)    

LD   R26,Y
STD  Z+0,R26

Хранение и загрузка R26 в и из Y совершенно не нужны и занимают 2 + 2 цикла ни за что.Я просто хочу понять, почему CodeVision делает это, так как обычно он очень умный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...