Могу ли я использовать атрибут «no_caller_saved_registers» или «interrupt» для написания процесса переключения задач? - PullRequest
1 голос
/ 27 марта 2020

Привет, я учусь на ядре x86_64 и пытаюсь следовать простой книге для начинающих.

В главе о переключении задач автор использовал сборку для pu sh и вставил регистры исполнения. Тем не менее, я использую более новые g cc, которые имеют опции «no_caller_saved_registers» и «interrupt».

Я протестировал атрибут и каким-то образом выяснил, что вместо нажатия всех регистров он сохранит только несколько из них в соответствии с кодом в функции.

Поэтому я хотел бы спросить, если Я jmp или retq для переключения задачи, будет ли компилятор достаточно умен, чтобы сохранить все связанные регистры ??

Спасибо

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