Привет, я учусь на ядре x86_64 и пытаюсь следовать простой книге для начинающих.
В главе о переключении задач автор использовал сборку для pu sh и вставил регистры исполнения. Тем не менее, я использую более новые g cc, которые имеют опции «no_caller_saved_registers» и «interrupt».
Я протестировал атрибут и каким-то образом выяснил, что вместо нажатия всех регистров он сохранит только несколько из них в соответствии с кодом в функции.
Поэтому я хотел бы спросить, если Я jmp или retq для переключения задачи, будет ли компилятор достаточно умен, чтобы сохранить все связанные регистры ??
Спасибо