Цитата(zltigo @ Apr 19 2008, 13:02)

А что за компилятор для TMS320 не имеет в составе intrinsics чего-либо глобально запрещающего прерывания или генерящий "что-то иное"?
Иногда нужно не только на свою голову полагаться, но и обращаться к документации.
CCS3.3, code generation tools v 5.0.1
раздел help'a TMS320C28x C/C++ Compiler Intrinsics видим:
int _ _abs16_sat(int src) Clear the OVM status bit. Load src into AH. Take absolute value of ACC. Store AH into dst. Clear the OVM status bit.
long _ _addcu(long src1, unsigned int src2); The contents of src2 and the value of the carry bit are added to ACC. The result is in ACC.
long dst=_ _ IQmpy(long A, long B, int N); The dst becomes ACC or P, A becomes XT:
long dst = _ _IQsat(long A, long max, long min); The dst becomes ACC. Different code is generated based on the value of max and/or min.
Где тут можно найти то, о чем я говорил?
Цитата(zltigo @ Apr 19 2008, 13:02)

Предлагается не пользоваться бездумно ASM вставками, там, где требуется качество кода, а не живописные заплатки демонстрирующие знание ASM и незнание инструментария. Если нужен ASM (для DSP это весьма частое явление - спору нет), то и писать этот кусочек нужно на ASM.
Спору нет. Для того и спрашиваю, чтобы узнать ответ.
Цитата(zltigo @ Apr 19 2008, 13:02)

Вообще-то "это", полагаю называется intrinsics, посему наверное Вам надо сначала разобраться, что есть одно и что есть другое.
Ну чуток напутал ))
Цитата(zltigo @ Apr 19 2008, 13:02)

Безопасность(работоспособность результата), это только одна из сторон использования ASM вставок. Вторая сторона это способность компилятора нормально оптимизировать такой, ломающий его "домашние заготовки" код.
т.е. имеется ввиду то, что компилятор может оптимизировать ещё такие втсвки? Или же по ошибке опущено "не" в словах "Вторая сторона это способность компилятора".
И всё-же как быть?
В моем коде используются следующие ассемблерные вставочки-макросы
#define EINT asm(" clrc INTM")
#define DINT asm(" setc INTM")
#define ERTM asm(" clrc DBGM")
#define DRTM asm(" setc DBGM")
#define EALLOW asm(" EALLOW")
#define EDIS asm(" EDIS")
#define ESTOP0 asm(" ESTOP0")
#define IDLE asm(" IDLE")
Ответа в документации я не нахожу пока.... Может быть я не там смотрю ))
И я думаю такие безобидные спец. инструкции(не использующие ни регистры, ни память) особо не повлияют на ход событий при оптимизации...
Или тут опять есть свои подводные камни?
Тема для меня в принципе новая, поэтому может быть и всплывают такие вопросы