The OpenNET Project / Index page

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



"Первый стабильный выпуск zlib-ng, высокопроизводительного форка zlib "
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Подсказка: Для слежения за появлением новых сообщений в нити, нажмите "Проследить за развитием треда".
. "Первый стабильный выпуск zlib-ng, высокопроизводительного фо..." +/
Сообщение от Аноним (-), 27-Мрт-21, 01:24 
> теперь тебе надо не только знать ассемблер и архитектуру (три разных, как
> в этом проекте), но еще и замысловатый синтаксис конкретного компилятора ;-)

Немного не так. Теперь надо знать "возможности архитектуры" и "желаемую операцию". При этом есть шанс что на разных платформах смогут относительно эффективно скроить вон то (интринсик с этим синтаксисом) из того что у платформы есть.

Если что я таки запиливал интринсики себе, "как у ARM и STM32 в cmsis, но моим кодом с моей лицензией" (а почему бы и нет?!). Т.е. некий "compat".

Caller однако понятия не имеет что там унутрях __disable_irq() какого. И, более того, это сработает и на ARM и на RISCV, если я (или кто-то еще) запилит это __disable_irq() в тамошних абастракциях. Внутрях ARM и RISCV конечно разные, но caller эту разницу не увидит.

С математикой ессно сложнее - часто фичи того или иного набора команд достаточно уникальны и не имеют прямых аналогов. Сэмулировать можно что угодно, но если это не ускоряет операцию, смысл теряется и зачем такой интринсик надо? Он на раз окажется хуже сишного кода :)

> Фиг знает, удобнее или нет - я так и не осилил, каждый
> раз матерюсь, натыкаясь в чужом коде.

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

> Как по мне - asm {} были удобочитаемей. Правда, регистры надо сохранять самому.

Технически интринсики и есть в общем то это самое, просто делается не тобой а ты уже готовое дергаешь, и по задумке сие может быть сделано под разные платформы/компилеры. В чем пойнт? В том что код при миграции менять не надо в идеале. Это головняк system implementer'а, тулчейна, либы, или кого-то еще, но не вон того прогера, который просто дергает фичу.

> Причем от необходимости проверять, умеет ли данная связка конкретной версии gcc и
> конкретной версии gas конкретно твой avx2 ни разу не избавляет.

Ну, вообще, если хочешь вы...ся можешь попробовать incbin :D :D прекомпильнутого блоба :))) делать из асма, при этом его понимание набора команд до лампочки. Но за такую реализацию интринсика желающие тебя линчевать выстроятся в очередь...

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

Оглавление
Первый стабильный выпуск zlib-ng, высокопроизводительного форка zlib , opennews, 17-Мрт-21, 14:38  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



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

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