[asm & mmx] [VS -> gcc] проблемы при переносе на гцц

serge18

встала задача о переносе С-шного проекта из под студии под линукс. компилить собрался гцц, хотя наверное потом попробую прикрутить интеловский компилятор
возникло 2 проблемы:
1) не перевариваются ассемблерные вставки - гцц, как я понял, совсем другой синтаксис хочет. куски кода довольно большие, тач что вопрос - есть ли утилиты\возможные способы автоматического перевода ассемблера из VC (интеловский синтаксис) для гцц (АТ&T синтаксис)
2) гцц в упор не видит включенных интринсиков ммх, ссе и ссе2. хеадеры включены, машина поддерживает сабж, но пишет undefined __m64 на первом же использовании, в чем может быть проблема?
пойду дальше мучить гугль =(

procenkotanya

1. Автоматический перевод не возможен в принципе. Насколько я знаю, рекомендуемый подход — это выделение вставок в отдельные функции, сбор их в отдельном файле, и ассемблирование его с помощью отдельного ассемблера (можно будет воспользоваться nasm или yasm). Писать правильные constraints для GCC inline asm тяжело.
2. Если при задавании подобных вопросов показывать маленький пример, который обрабатывается не так, как ожидается, вероятность получить полезный ответ сильно возрастает. -march правильно указан?

Werdna

встала задача о переносе С-шного проекта из под студии под линукс.
Прочитал тред, советую сразу не пытаться "портировать как есть", а писать заново кроссплатформенно.
Ассемблер нафиг сразу, или выноси отдельные библиотеки и начни портирование с них. Хотя я с трудом представляю зачем они вообще могут быть нужны.

durka82

Может сразу попробовать интелловский компилятор?

serge18

да, собственно интелловский компилятор и помог
всем спасибо
за -march отдельное спасибо =)
Оставить комментарий
Имя или ник:
Комментарий: