Вопросы по теме 'fpu'
странные результаты простых операций с плавающей запятой - плохое внутреннее состояние FPU?
У меня есть программный проект, в котором я иногда получаю странные результаты от небольших простых операций с плавающей запятой. Я предполагаю, что кое-что я упустил, и хотел бы получить несколько советов о том, как отладить следующие проблемы:...
839 просмотров
schedule
08.04.2022
Pow реализация для двойного
Я разрабатываю код, который будет использоваться для управления движением, и у меня возникла проблема с функцией pow. Я использую VS2010 в качестве IDE.
Вот моя проблема: у меня есть:
double p = 100.0000;
double d = 1000.0000;
t1 =...
771 просмотров
schedule
21.01.2024
Как переместить ST (0) в EAX?
Здравствуйте, я изучаю сборку x86 FPU, и у меня есть простой вопрос, на который я не могу найти ответа:
Как переместить значение из ST(0) (верх стека FPU) в EAX ?
также: правильный ли этот код:
; multiply (dot) two vectors of 3...
8776 просмотров
schedule
24.11.2022
asm (fpu) normalize - как это оптимизировать
Я написал некоторую подпрограмму x86 asm - fpu для нормализации вектора из трех чисел с плавающей запятой - вот она
_asm_normalize10:; Function begin
push ebp ; 002E _ 55
mov ebp, esp...
748 просмотров
schedule
30.07.2023
использование FFREE и FDECSTP
Вот этого я понять не могу: зачем такие команды (FFREE, FDECSTP)? Может ли он использоваться для извлечения значения из стека fpu, или это для какой-то другой цели? Я не понимаю :/ Может кто-нибудь объяснить это, спасибо
1267 просмотров
schedule
12.05.2022
x86: задержка и пропускная способность трансцендентных функций
Intel В Справочном руководстве по оптимизации архитектур ® 64 и IA-32 приведены показатели задержки и пропускной способности для различных инструкций ЦП.
Для трансцендентных функций ( FSIN и т. д.) некоторые цифры указаны как диапазоны (стр....
498 просмотров
schedule
06.05.2022
Инструкция FLD x64 бит
У меня есть небольшая проблема с инструкцией FLD в x64 бит ... хочу загрузить значение Double в указатель стека FPU в регистре st0, но это кажется невозможным. В Delphi x32 я могу использовать этот код:
function DoSomething(X:Double):Double;
asm...
2016 просмотров
schedule
22.11.2022
Различные значения в зависимости от установленных флагов исключения с плавающей запятой
Короткий вопрос:
Как установка флага исключения _EM_INVALID на FPU может привести к другим значениям?
Длинный вопрос:
В нашем проекте мы отключили исключения с плавающей запятой в нашей сборке Release, но включили ZERODIVIDE, INVALID и...
291 просмотров
schedule
07.08.2022
Сборка FASM как использовать FPU в 64 битных программах
У меня есть этот код в FASM, который вычисляет измерение с использованием FPU, который отлично работает в 32-битных программах. Как бы я преобразовал его, чтобы он работал в 64-битной программе. когда я использую этот код в 64-битной программе, он...
1286 просмотров
schedule
13.04.2022
О точности x87 FPU
В руководстве разработчика программного обеспечения Intel IA-32. В нем говорится, что бит 8 и 9 управляющего слова x87 FPU определяет точность вычислений с плавающей запятой. Точность по умолчанию - двойная расширенная точность. После выполнения...
643 просмотров
schedule
07.05.2023
Сравните два числа в сборке Intel x86 (nasm)
У меня есть следующий код сборки:
%include 'rw32.inc'
[segment .data use32]
a dd 2.0
b dd 1.0
[segment .code use32]
prologue ; macro -- inicialization
fld dword [a]
fld dword [b]
fcom
jc greater
jmp less
greater:...
1559 просмотров
schedule
01.07.2023
SSE: массовое целочисленное преобразование + умножение с SSE медленнее, чем с FPU?
Я работаю над приложением, которому очень часто требуется преобразовать от 6 до 8 32-битных целых чисел со знаком в 32-битные действительные числа. Я заменил код delphi на собственный код ассемблера, и, к моему большому удивлению, преобразование FPU...
330 просмотров
schedule
12.01.2023
Почему MSVC использует инструкцию SSE2 для такой тривиальной вещи?
Код:
double Ret_Value=0;
при настройках по умолчанию VS2012 компилируется в:
10112128 xorps xmm0,xmm0
1011212E movsd mmword ptr [Ret_Value],xmm0
Если SSE2 отключен в настройках проекта, он компилируется в:...
391 просмотров
schedule
24.07.2023
Сборка: преобразование в оператор if с использованием двух fld, fcomp, fnstsw и теста 41h
Может ли кто-нибудь помочь мне понять следующий код?
fld qword ptr [L1000F168]
fcomp qword ptr [L1000A2F0]
fld qword ptr [L1000F168]
fnstsw ax
test ah,41h
jnz L100012F0
Это вывод компилятора, преобразованный в ассемблер из...
1346 просмотров
schedule
06.08.2022
Как использовать инструкции VFMA в armv7 (Cortex A5) iOS?
Я хочу использовать инструкцию VFMA в своем проекте. Однако ассемблер сообщит об ошибке, так как инструкция требует VFP4.
256 просмотров
schedule
06.02.2024
Операции FPU, генерируемые GCC во время преобразования целого числа в число с плавающей запятой
Я хочу выполнить деление на FPU в C (используя целочисленные значения):
float foo;
uint32_t *ptr1, *ptr2;
foo = (float)*(ptr1) / (float)*(ptr2);
А в NASM (из объекта, скомпилированного через GCC ) он имеет следующее представление:...
859 просмотров
schedule
02.02.2023
Встроенный ассемблер вызывает зависание внутри другой функции
Я заметил, что при использовании моего встроенного ассемблерного кода он либо невероятно медленный, либо останавливается по сравнению с моим кодом на C++, который завершается очень быстро. Мне любопытно, почему это происходит, когда я вызываю...
138 просмотров
schedule
15.06.2022
Жесткие сбои STM32 Cortex-M4F FPU на базовом VLDR
Да, в моем конкретном MCU присутствует FPU.
Код компилируется с флагом -mfloat-abi=soft , иначе переменная с плавающей запятой никогда не будет передана в R0.
FPU включается через SCB->CPACR |= ((3UL << (10 * 2)) | (3UL << (11 *...
111 просмотров
schedule
18.11.2023