Нашел. Пересылать с помощю последователтных fild и fistp это так себе решение. Оно конвертит туда а потом обратно. Можно было спокойно пересылать через fld и fstp . Хотя возмржно на некоторых значениях спотыкнулся бы об неверный формат
И получилось бы почти тоже самое)) На fild/fld - вполне можно было бы на большинстве процессорах сэкономить такты, а вот на fstp и fistp снова провал по тактам
Ну может раза в 2 было быстрее. Похоже что проблема в том что при загрузках через sse срабатывает логика предварителтной загрузки из памяти в кеш а на фпу это не реализовано. Вероятно спец командамм или определенным порядком чтения можно ускорить. И кстати почему там fild dword ptr а не ddword или как его там, qword
надо еще не забывать что fpu это НЕ cpu, а сопроцессор, который раньше был представлен отдельной микросхемой. а sse уже и есть инструкции cpu, поэтому, возможно, для них доступен кеш
Пожалуй не соглашусь. Не знаю как там было в 486 но начиная с пентиума чсопроцессор полностью интегрирован в основной конвейер и работает полностью по тем же самым схемам загрузки и записи и всего остального
Во всех процветания интеллекта х86 сопроцессор был в основном конвейере. Сопроцессор не был там только для тех процессоров где наборы инструкций сопроцессора были самостоятельными наборами. И таких больше нет не выжили.