Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Руководство пользователя по сигнальным процессорам Sharc

.pdf
Скачиваний:
150
Добавлен:
01.05.2014
Размер:
9 Мб
Скачать
☆

Справочник 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