FordPerfect
> Один пример приводится в статье:
Ну это вообще особенности процессора от альтеры. Ну и в остальном вопрос опытности. Есть еще возможность писать чисто асм и его линковать в код с++, это подходит для x64, так как там вставки замочили, по сути тот же naked. А вот на эльбрусе его нету - беда печаль.
foxes
Больше примеров:
https://godbolt.org/g/TiMmpy
Оба из статьи, кстати.
FordPerfect
А дошло вычисления посередине инициализации данных, но это треш с++ из за инлайна. Я тоже могу привести пример без всякого asm где баланс стека восстановление/сохранение ломается.
В таком виде асм вставками лучше не пользоваться. Naked и через динамический указатель - для совместимости с разными платформами, ну в крайнем случае not_inline организовать.
Во, с этим атрибутом сразу все на свои места встает "__attribute__((noinline))". В общем с ассемблером в обоих случаях все как раз впоряде, как написано так и работает.
Тема в архиве.