QUOTE (MaxiMuz @ Mar 30 2012, 10:24)

Чем отличается обьявление:
Ничем. Они эквивалентны.
QUOTE (Xeon @ Mar 30 2012, 11:13)

В пдфке по второй ссылке, говориться что в asm-вставку операнды можно передавать по имени
Да, можно. Смотрите:
CODE
uint8_t Tmp;
bpm_driver::state * pTmp;
asm volatile (
// pTmp = get_update_src();
"PUSH %[tmp] \r\n"
"IN %[tmp], %[sreg] \r\n"
"PUSH %[tmp] \r\n"
"PUSH %A[ptr] \r\n"
"PUSH %B[ptr] \r\n"
"LDS %A[ptr], %[state] \r\n"
"LDS %B[ptr], %[state]+1 \r\n"
:[ptr]"=z"(pTmp), [tmp]"=r"(Tmp)
:[sreg] "I" (_SFR_IO_ADDR(SREG))
,[state]"m"(bpm_driver::pState)
);
QUOTE (Xeon @ Mar 30 2012, 11:13)

У меня почему то это не вышло, писал следующее:
По симптомам "у меня не вышло" можно поставить лишь один диагноз: "значит что-то делали неправильно". Объясните, что вы хотели сделать и что получили?
QUOTE (Xeon @ Mar 30 2012, 11:13)

Вот кусок коды на С который хочу заставить работать быстрей:
CODE
FsummRe[FLookignForFreq] += (int32_t) (Values[CurVal]*cosVal);
В этой строке приведение типа либо абсолютно лишнее либо используется не там, где нужно. Как объявлено Values?
Выложите всю функцию со всеми объявлениями в виде одного файла, который можно компилить отдельно и экспериментировать.
QUOTE (Xeon @ Mar 30 2012, 12:02)

Тип процессора правильный, точно... Использую XMega32 A4... По даташиту данные микроконтроллеры поддерживают команду MULS. Может на самом деле есть где нибудь у компилятора настройка по этому поводу.
С хмегами не работал и не собираюсь, но, возможно, компилятор не очень свежий и еще не умеет гененрить MULS.