calc(float *arr, int) // буду вызывать ее из Си кода
—
1) Правильно ли я понимаю, что для работы над float числами, нужно их сначала записывать в floating point unit (FPU) регистры, то есть в регистаы st0, st1 ... и дальше уже применять всякие операции над ними?
2) Если так, то как должен выглядеть воркфлоу? Вот я передаю массив флоатов в свою x86 функцию calc, дальше я так понял нужно использовать fld dword [rdi] для записи в st0 и в конце обратно записываю величину в свой массив fst dword [rdi]. Или как-то это иначе все делается?
NASM, X86_64
используй SSE насколько это возможнл
Обсуждают сегодня