В руководстве разработчика программного обеспечения Intel IA-32. В нем говорится, что бит 8 и 9 управляющего слова x87 FPU определяет точность вычислений с плавающей запятой. Точность по умолчанию - двойная расширенная точность. После выполнения инструкции «FINIT» точность устанавливается на двойное число с плавающей запятой. Проблема в том, что после выполнения «FINIT» x87 FPU использует для вычислений только 64 бита из 80-битных регистров данных. И FPU не может принимать (выводить) плавающее значение двойной расширенной точности из (в) памяти. Это правильно?
О точности x87 FPU
Ответы (1)
Нет, это не так. FPU автоматически преобразуется из 64-битного в 80-битный при загрузке / сохранении в памяти.
person
Robin Green
schedule
22.12.2013
Спасибо. Тогда какова цель контроля точности? Что он используется для контроля?
- person Gary Yin; 22.12.2013
Для контроля промежуточной точности. Это полезно, если вы хотите воспроизводимого поведения.
- person Robin Green; 22.12.2013
Контроль точности выбирает, сколько цифр вычисляет внутреннее устройство FPU. Снижение точности ускоряет вычисления FPU (или, по крайней мере, используется) и позволяет точно эмулировать 64-битный или 32-битный FPU с FPU x87 без необходимости постоянно хранить и перезагружать его регистры, чтобы избавиться от битов дополнительной точности.
- person fuz; 09.07.2018