October 20 2017 00:39:06
Навигация
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации .

Забыли пароль?
Запросите новый здесь.
Команды арифметических операций FPU
ФОРМАТЫ ПРЕДСТАВЛЕНИЯ ДАННЫХ И ВЫПОЛНЕНИЕ ОПЕРАЦИЙ
FPRF Результаты арифметической операции или округления
19 18 17 16 15
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
He-число QNAN
- ¥
Нормализованное число, < 0
Денормализованное число, < 0
-0
+0
Денормализованное число, > 0
Нормализованное число, >0
+ ¥
FPCC Результат операции сравнения
19 18 17 16 15
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
-
-
-
-
Меньше
Больше
Равен
Не сравним (не-числа)

При выполнении команд FPU, вызывающих изменение содержимого регистра условий CR (такие команды имеют символ «.» после мнемокода, см. табл. 2.73-2.75), содержимое четырех младших разрядов регистра FPSCR (признаки FX, FEX, VX, ОХ) копируется в поле CR1 регистра CR (рис. 2.67, а).

Признаки FX, OX, UX, ZX, XX, VXSNAN, VXISI, VXIDI, VXZDZ, VXIMZ, VXVC, VXSOFT, VXSQRT, VXCVI сохраняют установленное значение «1», пока оно не будет изменено с помощью команд mcrfs, mtfsfi, mtfsf, mtfsbO. Таким образом, эти признаки хранят информацию о причинах возникших замаскированных исключений, которая в дальнейшем может быть использована подпрограммой обслуживания.

Таблица 2.73 Команды арифметических операций FPU

Синтаксис Ассемблера Операция
fadd (fadd., fadds, fadds.)
fsub (fsub., fsubs, fsubs.)
fmul (fmul., fmuls, fmuls.)
fdiv (fdiv., fdivs, fdivs.)
fsqrf (fsqrt., fsqrts, fsqrts.)
fres (fres.)
frsqrte (frsqrte.)
fsel
frD, frA, frB
frD, frA, frB
frD, frA, frB
frD, frA, frB
frD, frB
frD, frB
frD, frB
frD, frA, frC, frB
frA + frB ® frD
frA - frB ® frD
frA * frB ® frD
frA / frB ® frD
frB ® frD
1/frB ® frD
frC ® frD, если (frA) = 0
frB ® frD, если (frA) <> 0, NAN
fmadd (fmadd., fmadds, fmadds.)
fmsub (fmsub., fmsubs, fmsubs.)
fnmadd (fnmadd., fnmadds, fnmadds.)
fnmsub (fnmsub., fnmsubs, fnmsubs.)
frD, frA, frC, frB
frD, frA, frC, frB
frD, frA, frC, frB
frD, frA, frC, frB
frA * frC + frB ® frD
frA * frC - frB ® frD
-(frA * frC + frB) ® frD
-(frA * frC - frB) ® frD

Значения битов 15-19 в регистре FPSCR (поле FPRF или FPCC) зависят от типа выполняемой команды. При арифметических операциях (табл. 2.73) и операциях округления (табл. 2.74) значения битов FPRF устанавливаются согласно табл. 2.72 в соответствии с полученным результатом. При выполнении команд сравнения fcmpu, fcmpo биты 16-19 (поле FPCC) принимают такие же значения (табл. 2.71), как признаки FL (меньше), FG (больше), FE (равно), FU (не сравнимо) в поле CRi регистра условий CR, номер которого задается операндом crfd команды (табл. 2.74).

Команды арифметических операций сложения (fadd), вычитания (fsub), умножения (fmul), деления (fdiv), вычисления квадратного корня (fsqrt), обратной величины (fres) и обратной величины от квадратного корня (fsqrte) выполняются с операндами, располагаемыми в регистрах FPR, номера которых frA, frB, frC, frD задаются в команде (табл. 2.73). Блок FPU реализует также комбинированные операции умножение-сложение (fmadd), умножение-вычитание (fmsub) и аналогичные операции с изменением знака результата (fnmadd, fnmsub). Операции производятся над вещественными числами одинарной точности ОТ, если мнемокод команды имеет в конце суффикс «s», или двойной точности ДТ, если суффикс отсутствует.

Команды fres, frsqrte выполняются только с числами двойной точности. Команда fsel производит сравнение содержимого регистра frA с нулем: если оно больше или равно нулю, то в регистр frD загружается содержимое frC, если меньше нуля или не-число, то содержимое frB.

Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, авторизуйтесьили зарегистрируйтесь для голосования.

Нет данных для оценки.

Время загрузки: 0.04 секунд 2,256,551 уникальных посетителей