The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Релиз набора компиляторов LLVM 15.0, opennews (?), 06-Сен-22, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


18. "Релиз набора компиляторов LLVM 15.0"  +/
Сообщение от Брат Анон (ok), 07-Сен-22, 09:03 
Не несколько команд. Регистров не несколько. Но в 2 раза вполне может. С учётом относительно медленной оперативной памяти не так страшно, но размер программ вырастает, кеш используется менее эффективно.
Ответить | Правка | Наверх | Cообщить модератору

23. "Релиз набора компиляторов LLVM 15.0"  –1 +/
Сообщение от Бывалый смузихлёб (?), 07-Сен-22, 09:57 
Даже будучи смузихлёбом смутно припоминаю, что были команды для сохранения всех регистров в стеке-восстановления всех регистров из стека
Вроде popad-pushad. Что-то подобное, вроде бы, даже под 64 бита было( pushfq ? )
Ответить | Правка | Наверх | Cообщить модератору

29. "Релиз набора компиляторов LLVM 15.0"  –2 +/
Сообщение от n00by (ok), 07-Сен-22, 10:51 
PUSHF (опкод 9D) сохраняет регистр флагов (F). В 64-х разрядном режиме тот же опкод называется PUSHFQ и сохраняет расширенный регистр флагов RFLAGS. POPA довольно медленная, вместо неё рекомендовалось использовать серию POP или MOV. В 64-х разрядном режиме её убрали. Но сохранять-восстанавливать регистры как раз не надо (это упростило бы создание ROP-цепочек), обнулять быстрее (нет работы с памятью).
Ответить | Правка | Наверх | Cообщить модератору

85. "Релиз набора компиляторов LLVM 15.0"  +/
Сообщение от Брат Анон (ok), 08-Сен-22, 13:43 
> Даже будучи смузихлёбом смутно припоминаю, что были команды для сохранения всех регистров
> в стеке-восстановления всех регистров из стека
> Вроде popad-pushad. Что-то подобное, вроде бы, даже под 64 бита было( pushfq
> ? )

Вы новость читали? При чём тут сохранение на стеке, если речь в статье шла про возможность утечки данных по остаточным данным в регистрах?

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

88. "Релиз набора компиляторов LLVM 15.0"  +/
Сообщение от Аноним (83), 08-Сен-22, 13:57 
>Вроде popad-pushad

Эти команды чудовищно медленные и в тактах выигрыша не будет, только в объёме кода, плюс нужно завершить все спекулятивные операции. Там ещё есть команды для сохранения FPU/SSE и это уже настолько большая боль, что ОС старается по возможности его не сохранять даже при переключении процессов/потоков.
>pushfq

Это инструкция сохранения 64-битного регистра флагов. Инструкций сохранения всех регистров на архитектуре  x86-64 совсем нет. Даже тех, что были на x86-32 вроде pusha, pushad, опкод 0x60 просто пуст.

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

28. "Релиз набора компиляторов LLVM 15.0"  –3 +/
Сообщение от n00by (ok), 07-Сен-22, 10:37 
> Не несколько команд. Регистров не несколько. Но в 2 раза вполне может.

Медленный Silvermont исполняет 2 (две) XOR за такт. CALL - 1-2 такта. RET - 1 такт. Так что прежде чем писать что-то с аватаркой Ленина, хорошо бы последовать его примеру и три раза поучиться арифметике.

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

84. "Релиз набора компиляторов LLVM 15.0"  +1 +/
Сообщение от Брат Анон (ok), 08-Сен-22, 13:42 
>> Не несколько команд. Регистров не несколько. Но в 2 раза вполне может.
> Медленный Silvermont исполняет 2 (две) XOR за такт. CALL - 1-2 такта.
> RET - 1 такт. Так что прежде чем писать что-то с
> аватаркой Ленина, хорошо бы последовать его примеру и три раза поучиться
> арифметике.

Это же две команды? И сколько их нужно всего? И на сколько при этом упадёт эффективность кеша?

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

89. "Релиз набора компиляторов LLVM 15.0"  –1 +/
Сообщение от n00by (ok), 08-Сен-22, 14:49 
>>> Не несколько команд. Регистров не несколько. Но в 2 раза вполне может.
>> Медленный Silvermont исполняет 2 (две) XOR за такт. CALL - 1-2 такта.
>> RET - 1 такт. Так что прежде чем писать что-то с
>> аватаркой Ленина, хорошо бы последовать его примеру и три раза поучиться
>> арифметике.
> Это же две команды? И сколько их нужно всего?

Что тут нужно, так это доказать утверждение «снижение производительности в несколько раз». Доказывает его заявитель. Я понимаю, что доказательство невозможно даже для вырожденного частного случая, потому вместо него будет всевозможная чушь и плюсики самому себе.

> И на сколько при этом упадёт эффективность кеша?

Кеш данных не имеет отношения к вопросу. Вообще. Но человеку, кто видел асм лишь на картинках, я объяснять не берусь. Да, начиная демагогию, будь готов к зеркальному ответу.

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

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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