Руководство пользователя по сигнальным процессорам Sharc
.pdf
Справочник B вычислительных операций
Rn = Rn OR FDEP Rx BY Ry | <bit6>:<len6>
Синтаксис:
Rn = Rn OR FDEP Rx BY Ry
Rn = Rn OR FDEP Rx BY <bit6>:<len6>
Функция:
Внесение поля из регистра Rx в регистр Rn. Значение поля подвергается логической операции «ИЛИ» поразрядно с определенным полем регистра Rn, а новый результат записывается назад в Rn. Входное поле выравнивается по правому разряду в ПФТ регистра Rx. Его длина определяется полем len6 в регистре Ry или непосредственным полем len6 в команде. Значение bit6 (в регистре Ry или в команде) определяет начальное положение бита для внесения поля в ПФТ Rn. Биты слева и справа от внесенного поля обнуляются.
В расширенное ПФТ Rn (биты 7 0 40 разрядного слова) записываются нули. Bit6 и len6 могут принимать значения между 0 и 63 включительно, что позволяет вносить поле длиной от 0 до 32 разрядов и располагать его в любом месте 32 разрядного слова.
Пример:
39 |
|
|
31 |
23 |
15 |
|
7 |
0 |
||||||||
|
|
|
-------- |
|
--abcdef |
|
ghijklmn |
|
-------- |
|
Rx |
|||||
-------- |
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
\--------------/ |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
len6 бит |
|
|
|
|
||
39 |
|
|
31 |
23 |
15 |
|
7 |
0 |
||||||||
abcdefgh |
|
ijklmnop |
|
qrstuvwx |
|
yzabcdef |
|
ghijklmn |
|
старый Rn |
||||||
|
\----------------/ |
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
значение bit6 относительно точки отсчета |
|
|
|||||||||
39 |
|
|
31 |
23 |
15 |
|
7 |
0 |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||
abcdeopq |
|
rstuvwxy |
|
zabtuvwx |
|
yzabcdef |
|
ghijklmn |
|
новый Rn |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
результат операции «ИЛИ» |
|
|
|
|
|||||||
Флаги состояния: |
|
|
|
|
|
|
|
|
|
|||||||
SZ |
Установлен, если выходной операнд равен 0, иначе сброшен |
|||||||||||||||
SV |
Установлен, если любой бит внесен слева от 32 разрядного выходного поля |
|||||||||||||||
|
(т. е., если len6+bit6>32), иначе — сброшен |
|
|
|
|
|||||||||||
SS |
Сброшен |
|
|
|
|
|
|
|
|
|
||||||
561
В Справочник вычислительных операций
Rn = FDEP Rx BY Ry | <bit6>:<len6> (SE)
Синтаксис:
Rn = FDEP Rx BY Ry (SE)
Rn = FDEP Rx BY <bit6>:<len6> (SE)
Функция:
Внесение и дополнение по знаку поля из регистра Rx в регистр Rn. Входное поле выравнивается по правому разряду ПФТ регистра Rx. Длина поля определяется полем len6 в регистре Ry или непосредственным значением len6 в команде.
Значение bit6 (в регистре Ry или в команде) определяет начальное положение бита для внесения поля в ПФТ Rn. Старшие биты Rn дополняются по знаку старшими битами вносимого поля, если старшие биты вносимого поля не выходят за левую границу. Биты справа от внесенного поля обнуляются.
В расширенное ПФТ Rn (биты 7 0 40 разрядного слова) записываются нули. Bit6 и len6 могут принимать значения между 0 и 63 включительно, что позволяет вносить поле длиной от 0 до 32 разрядов и располагать его в любом месте 32 разрядного слова.
Пример:
39 |
31 |
23 |
15 |
|
7 |
0 |
||||||
|
|
-------- |
|
--abcdef |
|
ghijklmn |
|
|
|
Rx |
||
-------- |
|
|
|
|
-------- |
|
||||||
|
|
|
|
|
\------------------- |
|
|
/ |
|
|
||
|
|
|
|
|
|
len6 бит |
|
|
|
|
||
39 |
31 |
23 |
15 |
|
7 |
0 |
||||||
|
|
|
|
|
|
|
||||||
aaaaaabc |
defghijk |
|
lmn00000 |
|
00000000 |
|
00000000 |
|
Rn |
|||
\--- |
/\--------------- |
|
|
|
/ |
|
|
|
|
|
|
|
Дополнение по |
|
|
|
|
|
|
|
|
|
|
||
знаку |
значение bit6 относительно точки отсчета |
|
|
|||||||||
Флаги состояния: |
|
|
|
|
|
|
|
|
|
|
||
SZ |
Установлен, если выходной операнд равен 0, иначе — сброшен |
|||||||||||
SV |
Установлен, если любой бит внесен слева от 32 разрядного выходного поля |
|||||||||||
|
(т. е., если len6+bit6>32), иначе — сброшен |
|
|
|
|
|||||||
SS |
Сброшен |
|
|
|
|
|
|
|
|
|
|
|
562
Справочник B вычислительных операций
Rn = Rn OR FDEP Rx BY Ry | <bit6>:<len6> (SE)
Синтаксис:
Rn = Rn OR FDEP Rx BY Ry (SE)
Rn = Rn OR FDEP Rx BY <bit6>:<len6> (SE)
Функция:
Внесение и дополнение по знаку поля из регистра Rx в регистр Rn. Дополненное по знаку значение поля подвергается логической операции «ИЛИ» поразрядно с полем регистра Rn, а новый результат записывается назад в Rn. Входное поле выравнивается по правому разряду в ПФТ регистра Rx. Его длина определяется полем len6 в регистре Ry или непосредственным полем len6 в команде. Значение bit6 (в регистре Ry или в команде) определяет начальное положение бита для внесения поля в ПФТ Rn. Bit6 и len6 могут принимать значения между 0 и 63 включительно, что позволяет вносить поле длиной от 0 до 32 разрядов и располагать его в любом месте 32 разрядного слова.
Пример:
39 |
|
31 |
23 |
15 |
|
7 |
0 |
|||||||
|
|
-------- |
|
--abcdef |
|
ghijklmn |
|
-------- |
|
Rx |
||||
-------- |
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
\--------------/ |
|
|
|
|
|||
|
|
|
|
|
|
|
|
len6 бит |
|
|
|
|
||
39 |
|
31 |
23 |
15 |
|
7 |
0 |
|||||||
|
|
|
|
|
|
|
|
|
|
|||||
aaaaaabc |
|
defghijk |
|
lmn00000 |
|
00000000 |
|
00000000 |
|
|
||||
\---/\-----------------/ |
|
|
|
|
|
|
||||||||
Дополнение по |
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
||||
знаку |
|
|
значение bit6 относительно точки отсчета |
|
|
|||||||||
39 |
|
31 |
23 |
15 |
|
7 |
0 |
|||||||
|
|
|
|
|
|
|
|
|
|
|||||
abcdefgh |
|
ijklmnop |
|
qrstuvwx |
|
yzabcdef |
|
ghijklmn |
|
старый Rn |
||||
39 |
|
31 |
23 |
15 |
|
7 |
0 |
|||||||
|
|
|
|
|
|
|
|
|
|
|||||
vwxyzabc |
|
defghijk |
|
lmntuvwx |
|
yzabcdef |
|
ghijklmn |
|
новый Rn |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
результат операции «ИЛИ» |
|
|
|
|
||||||
Флаги состояния: |
|
|
|
|
|
|
|
|
||||||
SZ |
Установлен, если выходной операнд равен 0, иначе — сброшен |
|||||||||||||
SV |
Установлен, если любой бит внесен слева от 32 разрядного выходного поля |
|||||||||||||
|
(т. е., если len6+bit6>32), иначе — сброшен |
|
|
|
|
|||||||||
SS |
Сброшен |
|
|
|
|
|
|
|
|
|||||
563
В Справочник вычислительных операций
Rn = FEXT Rx BY Ry | <bit6>:<len6>
Синтаксис:
Rn = FEXT Rx BY Ry
Rn = FEXT Rx BY <bit6>:<len6>
Функция:
Извлечение поля из регистра Rx в регистр Rn. Выходное поле выравнивается по правому разряду в ПФТ регистра Rn. Его длина определяется полем len6 в регистре Ry или непосредственным значением len6 в команде. Значение bit6 (в регистре Ry или в команде) определяет начальное положение бита для извлечения поля в ПФТ Rx. Биты слева от извлеченного поля в Rn обнуляются. В расширенное ПФТ Rn (биты 7 0 40 разрядного слова) записываются нули. Bit6 и len6 могут принимать значения между 0 и 63 включительно, что позволяет извлекать поле длиной от 0 до 32 разрядов и располагать его в любом месте 32 разрядного слова.
39 |
19 |
|
13 |
7 |
0 |
|||||
Ry |
|
|
|
len6 |
|
|
bit6 |
|
|
|
39 |
|
|
|
|
|
7 |
0 |
|||
Rx |
|
извлекаемое поле |
|
|
|
|
|
|
|
|
|
|
|
bit 6 |
|
|
точка отсчета |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
||||
bit6=начальное положение бита для внесения, указанное от младшего бита 32-разрядного поля |
|
|||||||||
39 |
|
|
|
|
|
7 |
0 |
|||
Rn |
извлеченное поле размещается в Rn, начиная с младшего бита 32-разрядного поля |
Пример:
39 |
|
31 |
23 |
15 |
|
7 |
0 |
|||||||
|
-----abc |
|
defghijk |
|
lmn----- |
|
-------- |
|
-------- |
|
Rx |
|||
|
|
|
|
|
|
|||||||||
|
|
\-----------------/ |
|
|
|
|
|
|
||||||
|
|
len6 бит |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
значение bit6 относительно точки отсчета |
|
|
||||||||
39 |
|
31 |
23 |
15 |
|
7 |
0 |
|||||||
|
|
|
|
|
|
|
|
|||||||
|
0000000 |
|
00000000 |
|
00abcdef |
|
ghijklmn |
|
00000000 |
|
Rn |
|||
Флаги состояния: |
|
|
|
|
|
|
|
|
|
|
||||
SZ |
Установлен, если выходной операнд равен 0, иначе — сброшен |
|||||||||||||
SV |
Установлен, если любой бит извлечен слева от 32 разрядного входного |
|||||||||||||
|
|
поля (т. е., если len6+bit6>32), иначе — сброшен |
|
|
||||||||||
SS |
Сброшен |
|
|
|
|
|
|
|
|
|
|
|||
564
Справочник B вычислительных операций
Rn = FEXT Rx BY Ry | <bit6>:<len6> (SE)
Синтаксис:
Rn = FEXT Rx BY Ry (SE)
Rn = FEXT Rx BY <bit6>:<len6> (SE)
Функция:
Извлечение и дополнение по знаку поля из регистра Rx в регистр Rn. Выходное поле выравнивается по правому разряду в ПФТ регистра Rn. Его длина определяется полем len6 в регистре Ry или непосредственным значением len6 в команде. Значение bit6 (в регистре Ry или в команде) определяет начальное положение бита для извлечения поля в ПФТ Rx. Старшие разряды в Rn дополняются по знаку старшими битами извлекаемого поля, если они не извлекаются снаружи от левой границы 40 разрядного слова. В расширенное ПФТ Rn (биты 7 0 40 разрядного слова) записываются нули. Bit6 и len6 могут принимать значения между 0 и 63 включительно, что позволяет извлекать поле длиной от 0 до 32 разрядов и располагать его в любом месте 32 разрядного слова.
Пример:
39 |
|
31 |
23 |
15 |
|
7 |
0 |
||||||
-----abc |
|
defghijk |
|
lmn----- |
|
-------- |
|
-------- |
|
Rx |
|||
|
\-----------------/ |
|
|
|
|
|
|
||||||
|
len6 бит |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|||||||
|
|
|
значение bit6 относительно точки отсчета |
|
|
||||||||
39 |
|
31 |
23 |
15 |
|
7 |
0 |
||||||
|
|
|
|
|
|
|
|
||||||
aaaaaaaa |
|
aaaaaaaa |
|
аaabcdef |
|
ghijklmn |
|
00000000 |
|
Rn |
|||
\--------------------/ |
|
|
|
|
|
|
|
||||||
Дополнение по знаку |
|
|
|
|
|
|
|
|
|||||
Флаги состояния: |
|
|
|
|
|
|
|
|
|
|
|||
SZ |
Установлен, если выходной операнд равен 0, иначе — сброшен |
||||||||||||
SV |
Установлен, если любой бит извлечен слева от 32 разрядного входного |
||||||||||||
|
поля (т. е., если len6+bit6>32), иначе — сброшен |
|
|
||||||||||
SS |
Сброшен |
|
|
|
|
|
|
|
|
|
|
||
565
В Справочник вычислительных операций
Rn = EXP Rx
Синтаксис:
Rn = EXP Rx
Функция:
Извлечение порядка операнда с фиксированной точкой в Rx. Порядок помещается в поле shf8 в регистре Rn. Порядок вычисляется как двоичное дополнение от:
♦ число начальных знаковых бит в Rx – 1
Флаги состояния:
SZ |
Установлен, если извлеченный порядок равен 0, иначе — сброшен |
SV |
Сброшен |
SSУстановлен, если операнд с фиксированной точкой в Rx отрицательный (бит 31 равен 1), иначе сброшен
566
Справочник B вычислительных операций
Rn = EXP Rx (EX)
Синтаксис:
Rn = EXP Rx (EX)
Функция:
Извлечение порядка операнда с фиксированной точкой в Rn, предполагая, что операнд является результатом операции ALU. Порядок помещается в поле shf8 в регистре Rn. Если бит состояния переполнения AV установлен, то в поле shf8 помещается значение порядка +1, указывая на то, что перед операцией EXP произошло переполнение ALU. Если бит AV не установлен, порядок вычисляется как двоичное дополнение от:
♦ число начальных знаковых бит в Rx – 1
Флаги состояния:
SZ |
Установлен, если извлеченный порядок равен 0, иначе — сброшен |
SV |
Сброшен |
SSУстановлен, если результат операции «исключающее ИЛИ» между битом состояния AV и знаковым битом (бит 31) операнда с фиксированной точкой в Rx равен 1, иначе — сброшен
567
В Справочник вычислительных операций
Rn = LEFTZ Rx
Синтаксис:
Rn = LEFTZ Rx
Функция:
Извлечение числа начальных нулей из операнда с фиксированной точкой в Rx. Извлеченное число помещается в поле bit6 в Rn.
Флаги состояния:
SZ |
Установлен, если старший бит в Rx равен 1, иначе — сброшен |
SV |
Установлен, если результат равен 32, иначе — сброшен |
SS |
Сброшен |
568
Справочник B вычислительных операций
Rn = LEFTO Rx
Синтаксис:
Rn = LEFTO Rx
Функция:
Извлекает число начальных единиц из операнда с фиксированной точкой в Rx. Извлеченное число помещается в поле bit6 в Rn.
Флаги состояния:
SZ |
Установлен, если старший бит в Rx равен 0, иначе — сброшен |
SV |
Установлен, если результат равен 32, иначе— сброшен |
SS |
Сброшен |
569
В Справочник вычислительных операций
Rn = FPACK Fx
Синтаксис:
Rn = FPACK Fx
Функция:
Преобразование 32 разрядного числа с плавающей точкой стандарта IEEE в регистре Fx в 16 разрядное число с плавающей точкой, записываемое в Rn. Формат коротких слов с плавающей точкой имеет 11 разрядную мантиссу с 4 разрядным порядком плюс знаковый бит. 16 разрядные числа с плавающей точкой размещаются в младших 16 битах 32 разрядного поля с плавающей точкой.
Результат операции FPACK следующий:
Условие |
Результат |
exp>135 |
Наибольшая представимая величина |
120<exp≤135 |
Порядок является старшим битом порядка источника, связанным с |
|
тремя младшими битами порядка источника. Упакованная дробная |
|
часть является округленными старшими 11 ю битами дробной части |
109<exp≤120 |
источника |
Порядок равен 0. Упакованная дробная часть – это старшие биты |
|
|
(порядок источника – 110) дробной части источника, к которым |
|
спереди добавлены нули и «скрытая» 1. Упакованная дробная часть |
|
округляется |
Exp<110 |
Упакованное слово нулевое |
еxp = порядок источника.
Знаковый бит остается одинаковым во всех случаях.
Для формата коротких слов с плавающей точкой поддерживается постепенная потеря значащих разрядов. При этом для снижения динамического диапазона снижается точность. Когда упаковывается число, потерявшее значащие разряды, порядок устанавливается в 0 и мантисса (включая «скрытую» 1) сдвигается вправо на соответствующую величину. Упакованный результат является ненормализованным и может быть распакован в стандартное число с плавающей точкой стандарта IEEE.
Флаги состояния:
SZ |
Сброшен |
SV |
Установлен, если произошло переполнение, иначе — сброшен |
SS |
Сброшен |
570
