The OpenNET Project / Index page

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



"OpenNews: Анонсирован финальный релиз Adobe Flash Player 10"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Анонсирован финальный релиз Adobe Flash Player 10" +/
Сообщение от User294 (ok), 21-Окт-08, 00:14 
>Функция _всегда_ обязана сохранять в стек все используемые в ней регистры,

А не факт.Если заранее об этом договориться.И договариваются (это называется calling conventions): дескать вот в тех регистрах - исходные аргументы, а вон те вы не имеете права гробить и если они вам нужны, извольте сохранить их и потом вернуть как было, а вон те дескать - ваши и можете их засрать в свое удовольствие (а если они за каким-то вдруг нужны caller'у - пусть сам сохраняет!).

>потому что в вызвавшей её функции они тоже могут использоваться.

Подсказываю: гуглим: AMD64 calling conventions. Например вот: http://www.x86-64.org/documentation/abi-0.99.pdf

>Больше регистров, да еще и 64 битных - тормознее вызов функции.

В идеальном случае (обычная не очень сложная функция с небольшим числом параметров на вход которые указатели или числа, что чаще всего и бывает + не очень зубодробильные расчеты которые лезут в временные регистры отведенные для вызываемой функции) - насколько я понимаю тех push и pop которые делает х86 - нафиг не надо.Вызывающий не будет расчитыывать что временные регистры не засрут а вызываемая функция может юзать группу регистров под временные расчеты, которые как раз можно с чистой совестью загадить.

>В остальном да - сложные функции используют стек меньше внутри себя - это
>те самые относительно редкие случаи где в общем получится более эффективный
>код.

Вы еще про calling conventions забыли :).Если что насколько я помню линухи юзают описанные в амдшных доках методы (т.е. по идее ссылка которая выше вполне применима).Ну а майкрософт как всегда попер своим путем =).Впрочем скажем честно - с дизассемблером я не корпел так что если наврал местами - I'm sorry.Общая идея надеюсь все-таки понятна.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
OpenNews: Анонсирован финальный релиз Adobe Flash Player 10, opennews, 15-Окт-08, 14:17  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



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

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