Цитата(bav @ Sep 7 2005, 14:45)
файл на ассемблере сохранен как conv.sa - все работает, передача параметров не вызывает вопросов. Но...компилятор не дает мне параллелить инструкции.
Обычно у TI файлы с расширением .sa - это файлы написанные на линейном ассамблере. Линейный ассемблер - это ни есть ассемблер в чистом виде.
Вы конечно можете написать программу и на "чистом" ассемблере и ручками все попытаться оптимизировать, но я не уверен, что вы сможете соптимизировать лучше чем компилятор. По крайней мере у меня не получалось.
При компиляции файлов на линейном ассемблере компилятор сам все что можно распараллелит. Вы можете задать ключик -k (если я не ошибаюсь) и тогда компилятор сохранит ассемблерный файл, который у него получился после оптимизации Вашего файла на линейном ассемблере. Вот в этом ассемблеррном файле Вы и можете посмотреть как у Вас все распараллелилось.
Более подробно про линейный ассемблер и опитимзацию кода можно почитать тут:
TMS320C6000 Programmer’s Guide (Literature Number: SPRU198)
TMS320C6000 Optimizing Compiler User’s Guide (Literature Number: SPRU187)
Цитата(bav @ Sep 7 2005, 14:45)
как передавать параметры?
Первые десять аргументов размещаются в регистрах A4, B4, A6, B6, A8, B8, A10, B10, A12, and B12 (т.е. первый аргумент в A4, второй в B4 и так далее). Если нужно передать long, double или long double в этом случае используются регистровые пары: A5:A4, B5:B4, A7:A6, и так далее.
Если Вы пишите на линейном асемблере, то компилятор сам разместит ваши аргументы в соответствующих регистрах.
Более подробно про calling convention можно почитать тут (стр. 8-18):
TMS320C6000 Optimizing Compiler User’s Guide (Literature Number: SPRU187)
Best regards,
Hercules