Спасибо. Сделал как написали все заработало
Но еще остался один вопрос:
Собственно в асм я полез в надежде ускорить выполнение программы, и попытался "ускорить" простые функции например функция умножения 32 на 32 бит и результат 32 бит:
#define MUL_F(A,B ) (real_t)(((int64_t)(A)*(int64_t)(B )+(1 << (31))) >> 32) // так она была сделана до меня
я сделал функцию:
static INLINE __asm real_t MUL_F(real_t x, real_t y)
{
smull r0, r1, r0, r1;
lsr r1, #31;
add r0, r0, r1;
lsl r0, #1;
mul r0, r1, #2;
BX lr ; Return.
}
в итоге проиграл 30 процентов(естественно при включении оптимизации по времени выполнения программы). Получается действительно компилятор в данном случае царь и бог или я чтото не так делаю?
Сообщение отредактировал drum1987 - Mar 21 2011, 12:34