Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Оптимизация для pentium процессора - список инструкций с плавающей точкой

21. СПИСОК ИНСТРУКЦИЙ С ПЛАВАЮЩЕЙ ТОЧКОЙ
========================================
Пояснения:
Операнды: r - регистр, m - память, m32 - 32 битный операнд памяти, и т.д.

Такты:
Цифры указывают минимальные значения. Промахи кеша, рассогласование и
исключения могут увеличить количество тактов.

Спариваемость:
+=спаривается с FXCH, np=не спаривается с FXCH.

i:
Перекрываются с целочисленными инструкциями. i=4 означает, что последние 4
такта могут перекрыться с целочисленными инструкциями.

fp:
Перекрываются с инструкциями с плавающей точкой. fp=2 означает. что
последние 2 такта могут перекрыться с инструкцией с плавающей точкой.
(WAIT - здесь считается инструкцией с плавающей точкой)

Опкод                Операнд     Число тактов    Спариваемость  i      fp
-----------------------------------------------------------------------------
FLD                  r/m32/m64         1         +              0      0
FLD                  m80               3         np             0      0
FBLD                 m80              49         np             0      0
FST(P)               r                 1         np             0      0
FST(P)               m32/m64           2 з)      np             0      0
FST(P)               m80               3 з)      np             0      0
FBSTP                m80             153         np             0      0
FILD                 m                 3         np             2      2
FIST(P)              m                 6         np             0      0
FLDZ FLD1                              2         np             0      0
FLDPI FLDL2E etc.                      5         np             0      0
FNSTSW               AX/m16            6         np             0      0
FLDCW                m16               8         np             0      0
FNSTCW               m16               2         np             0      0

FADD(P)              r/m               3         +              2      2
FSUB(R)(P)           r/m               3         +              2      2
FMUL(P)              r/m               3         +              2      2 и)
FDIV(R)(P)           r/m        19/33/39 м)      + к)          38 л)   2
FCHS FABS                              1         +              0      0
FCOM(P)(P) FUCOM     r/m               1         +              0      0
FIADD FISUB(R)       m                 6         np             2      2
FIMUL                m                 6         np             2      2
FIDIV(R)             m          22/36/42 м)      np            38 л)   2
FICOM                m                 4         np             0      0
FTST                                   1         np             0      0
FXAM                                  17         np             4      0
FPREM                              16-64         np             2      2
FPREM1                             20-70         np             2      2
FRNDINT                               19         np             0      0
FSCALE                                32         np             5      0
FXTRACT                            12-66         np             0      0

FSQRT                                 70         np            69 л)   2
FSIN FCOS FSINCOS            варьируется         np             2      2
F2XM1 FYL2X FYL2XP1          варьируется         np             2      2
FPATAN                       варьируется         np             2      2
FPTAN                        варьируется         np            36 л)   0

FNOP                                   2         np             0      0
FXCH                 r                 1         np             0      0
FINCSTP FDECSTP                        2         np             0      0
FFREE                r                 2         np             0      0
FNCLEX                                 6-9       np             0      0
FNINIT                                22         np             0      0
FNSAVE               m         около 300         np             0      0
FRSTOR               m                73         np             0      0
WAIT                                   1         np             0      0
-----------------------------------------------------------------------------
Пояснения:
з) Что бы загрузить значение требуется один такт заранее.
и) 1, если перекрывается, например как FMUL
к) Если за инструкцией FXCH следует целочисленная инструкция, то спаривание
   будет не полным, на один такт больше, так что целочисленная инструкция
   начнется в 3 такта.
л) Не может перекрыться с инструкцией целочисленного умножения.
м) FDIV исполниться за 19, 33, 39 тактов, если операнд имеет точность 24, 53
   и 64 бита соответственно. FIDIV потребуется на 3 такта больше. Точность
   определяется 8-9 битами слова управления операциями с плавающей точкой.

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог