Max_QNX (10.12.2004 10:41, просмотров: 1) ответил paska на Ответ: r0 - r3 - вх. параметры (что не влазит - в стек), r0 - возвращаемое знач.
в qnx не удалось передать через регистры вообще ни под каким соусом только через стек. могу заявить абсолютно уверенно что линух и куних по разному суют данные в стек. то что 100% работало в линуксе - бред дредястый гонит в кунихе - отсюда вывод - пользуйте С - и подальше от греха. В результате во имя совместимости хоть миниммальной - пишу если СИЛЬНО НАДО заготовку на С - а потом вставляю обработку на асме. вот пример
void sse_kontur ( int * m1, float * m2, float * res, unsigned int x, unsigned int )
{
int * image1;
float * destination_1;
unsigned int i,j;
char p;
// load operator 3x3 to register
__asm__
("
movups (%0), %%xmm0
movups 16(%0), %%xmm2
movups 32(%0), %%xmm4"
:
:"d" (m2)
);
....
}