Вверх ↑
Администрация
Ответов: 15295
Рейтинг: 1519
#1: 2009-07-15 10:05:04 ЛС | профиль | цитата
Pirr писал(а):
Почему не эффективно используются или совсем не используются инструкции (MMX, 3DNOW и т.д.) современных процессоров в копиляторах?

потому что эти инструкции настолько далеки от того, с что предоставляет инструментарий яву, что вставка их в конечную программу практически исключена.
Простой пример: есть положим такая инструкция из набора команд SSE, которая загружает в один регистр аж 4 числа с плавающей точкой и инструкция, которая такие четверки из двух регистров умеет перемножать. Допустим у нас есть два массива чисел по 4 элемента, которые надо перемножить друг на друга:
A : (1.1, 0.4, 9.4, 0.5)
B : (2.1, 1.4, 2.4, 9.5)

как такая задача решится в hiasm? достаточно просто: ставим ArrayEnum на один массив, читаем элемент в другом(ArrayRW), перемножаем и выводим. В ЯВУ решается точно так же. Вот и откуда интересно компилятор смог бы узнать, что весь этот замысловатый алгоритм с циклом и массивами можно превратить в три команды проца? точно такая же ситуация возникает на каждом шагу при компиляции программы и тут правило ровно тоже самое самое, какое действует в отношении hiAsm - чем больше примитивов в алгоритме на яву, тем в большей степени он будет проигрывать аналогичному решению на ASM.
карма: 27
0