LINUX.ORG.RU

[ARM]iwmmx на gcc вообще был когда-нибудь юзабельным?

 


0

1

В последних релизах gcc при попытке компильнуть(кросскомпиляция) простенький пример использования builtin-функций iwmmx стабильно уходит в ICE. Кроме того, есть ещё несколько подобных ошибок. В багзиле всё это висит годами, но видимо nobody cares. Сейчас в моде кортексы и прочие неоны. Что же получается, PXA вроде бы как тупиковая ветвь? Да вроде делает же марвел новые процы на этом ядре(судя по их сайту).

Ну так вот, проблема известна со времён 4.1.x, компиляторы в ветке 4.0.x вроде бы были вообще не юзабельны по другим причинам. Поддержку iwmmx добавили в gcc 3.4 Так вот интересует, там-то хоть оно работало? А может кто нативно успешно компилирует?


Во-первых, прекратите насиловать труп. PXA не тупиковая, она просто вымершая.
Во-вторых, эти ошибки были очень давно и никто их не фиксил и фиксить уже не собирается. Я забил и сидел без iwmmxt.

anonymous
()
Ответ на: комментарий от anonymous

прекратите насиловать труп

Есть обстоятельства по которым приходится.

PXA не тупиковая, она просто вымершая.

Я знаю. Ну марвел делает http://www.marvell.com/products/processors/armada.html Жив получается ещё iwmmx? Так вот странно что никто не озабочен его поддержкой в gcc.

gogi
() автор топика
Ответ на: комментарий от gogi

>Ну марвел делает http://www.marvell.com/products/processors/armada.html Жив получается ещё iwmmx?

Насколько я знаю, в ARM11 и Cortex'ах его уже нет. Там VFP и NEON его заменили.

Так вот странно что никто не озабочен его поддержкой в gcc.


Посмотрел сейчас баг - ему уже 3 года.
https://bugs.gentoo.org/show_bug.cgi?id=194973
Если тогда никто не почесался, то врядли кто-то сейчас будет.

И, кстати, можно попробовать собрать систему без iwmmxt, а конкретное приложение с ним. Оно ведь падает спонтанно. Хорошо бы и glibc, конечно, но не уверен, что получится.

anonymous
()

Я использовал iWMMXt года три назад. Компилятор и окружение собиралось с поддержкой нужного ABI и дальше был написан код на инлайн асме - оптимизировал софтварный рендеринг + fixed point math + сглаживание в одном из приложений под телефоны.

anonymous
()
Ответ на: комментарий от anonymous

Я вообще-то имел ввиду вот эти баги: http://gcc.gnu.org/bugzilla/buglist.cgi?quicksearch=iwmmx
Собственно я на них и натыкаюсь.

И, кстати, можно попробовать собрать систему без iwmmxt, а конкретное приложение с ним. Оно ведь падает спонтанно. Хорошо бы и glibc, конечно, но не уверен, что получится.


У меня дело даже до падения не доходит. Затыки на этапах сборки. Указание флага "-march=iwmmxt" это в моём понимании не означает включить поддержку iwmmx в какой-то конкретной программе. Вроде бы софтварная плавучка может обсчитываться этими инструкцияим, это да - в libc поддержка должна быть. Но я имею ввиду пойти ещё дальше и запользовать функции вида _mm_srli_pi16, _mm_setzero_si64...

gogi
() автор топика
Ответ на: комментарий от anonymous

>Компилятор и окружение собиралось с поддержкой нужного ABI
Тогда ещё видимо в ходу oabi было?


Я использовал iWMMXt года три назад. Компилятор и окружение собиралось с поддержкой нужного ABI и дальше был написан код на инлайн асме - оптимизировал софтварный рендеринг + fixed point math + сглаживание в одном из приложений под телефоны.


А можете поделиться своими вставками, хотя бы базовыми примитивами? Интересно было бы взглянуть.

gogi
() автор топика
Ответ на: комментарий от anonymous

>Насколько я знаю, в ARM11 и Cortex'ах его уже нет. Там VFP и NEON его заменили.

А там и не кортексы. VFPv3 есть, в качестве SIMD'a - IWMMX2, частоты до гигагерца, жручесть как у всех армов маленькая. Если цена нормальная, думаю что вполне конкурентноспособные процы.

gogi
() автор топика
Ответ на: комментарий от anonymous

>Если есть конкретные вопросы или проблемы - пиши

Да вообще есть о чём спросить.
Ну вот например

fixed point math

сами всё придумывали или где подсмотрели? Я вот сейчас нашёл примеры использования opensource-кода с iwmmx в составе libavcodec(из ffmpeg), Qt. В glibc вроде ничего нету. А в исходниках gcc вроде ничего целостного.
Я вот сейчас хочу написать свои примитивы-функции из mmintrin.h типа _mm_packs_pi16, _mm_sub_pi32 и др.

PS Создал такую же тему на electronix.ru, думал там скорее всего ответят, а вот фиг.

gogi
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.