Обычно на ассемблере, когда вызываемая процедура заканчивается переходом на другую процедуру, то я пишу вместо:
call SecondMethod
ret
->
jmp SecondMethod
Однако если я на AVR GCC (-Os) пишу в конце метода
{
...
SecondMethod();
}
то компилятор генерит следующий код:
...
call SecondMethod
ret
Как избавиться от этого двойного вызова, который ничем кроме увеличением времени выполнения и глубины стека не отличается?