The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Релиз набора компиляторов LLVM 13.0"
Отправлено n00by, 07-Окт-21 07:35 
По поводу push rax смотрим AMD64 ABI Draft 1.0

3.2.2 The Stack Frame

"the value (%rsp + 8) is always a multiple of 16 (32 or 64) when control is transferred to the function entry point."

Требование обусловлено возможным сохранением в стеке 128-битных регистров (xmm).

Т.о. команда дополняет 6 предыдущих push, с учётом сохранения rip на стеке при call имеем выровненный указатель (насколько оправдано следовать требованиям, когда копилятор видит определение вызываемой функции, где отсутствует запись в стек 128-битных данных -- другой вопрос).


По поводу "add rsp, 8" смотрим 64-ia-32-architectures-optimization-manual.pdf

3.4.2.6 Optimization for Decoded ICache

Assembly/Compiler Coding Rule 25. (M impact, M generality) Avoid putting explicit references to
ESP in a sequence of stack operations (POP, PUSH, CALL, RET).

Правило исключать явное обращение к указателю стека из последовательностей push обусловлено в

2.4.2.4 Micro-op Queue and the Loop Stream Detector (LSD)

The Loop Stream Detector (LSD)
...
Cannot have mismatched stack operations. For example, more PUSH than POP instructions.

Вопрос по "add rsp, 8" открыт.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру