Ответ: опять про Whetstone, сравнил на железе версии иар 3.20а и 3.21а - в новой версии есть прирост скорости при 32-bit double
void tst_whetstone( void )
{
int cr;
long t;
// Прерывания разрешены, время измерялось на живом макете по тикам таймерного (TIMERA) прерывания (1 ms)
// Другие прерывания запрещены.
// процессор MSP430F149, MCLK = 6 МГц, компиляторы IAR v3.20a и IAR v3.21a, полная оптимизация по скорости с выключеным
// "Code Motion" (он глючит в этой версии), умножение по железу включено
// -1L т.к. время старта, после ожидания начала тика, на 1 > (t = tick_ms)
#define TIM_MINUS 1L
// tick_ms - милисекундные тики таймера, unsigned long
// 32-bit double
// 6385 ms v.3.20a
// 5060 ms v.3.21a
// 64-bit double
// 40128 ms v.3.20a
// 40128 ms v.3.21a
printf( "\fStart" );
for ( cr = 0; ; cr++ )
{ for ( t = tick_ms; t == tick_ms; ) // на начало тика
;
whetstone();
t = tick_ms - t - TIM_MINUS;
printf( "\vt = %ld \n%d ", t, cr );
}
}