Делаю расчёты в формате floating point.
К примеру - делю одно на другое.
В асм-листинге вижу такое:
$C$RL64: ; CALL OCCURS {__c6xabi_divf} {0} ; [] |147|
;** --------------------------------------------------------------------------*
CALLP .S2 __c6xabi_divf,B3 ; [B_Sb674] |147|
Как это безобразие называется???
Аппаратная поддержка floating point?
C6745 вообще поддерживает операции с плавающей точкой или нет? Я ожидал инлайнинга иструкций на
Да. Хочешь умножения - дели на константу, а не на переменную.
А вообще-то аппаратное деление это довольно экзотическое явление. В цпос обычно реализована команда малоразрядного вычисления 1/y. Затем через ньютона-рафсона достигается требуемая точность и результат умножается на x. Использовать либские функции в масовом делении не надо. Надо написать собственную инлайн без глупостей типо проверок деления на 0 и пр наны. Вычисление квадратного корня реализовано примерно так же. Только прим