Hexagon_V65_Programmers_Reference_Manual(40)

Hexagon_V65_Programmers_Reference_Manual(40)

  • 11.10.5 XTYPE/MPY
    • 11.10.5.1 相乘并使用较低的结果
    • 11.10.5.2 向量乘以有符号的一半 (32x16)
    • 11.10.5.4 向量乘以无符号一半 (32x16)
    • 11.10.5.5乘以有符号的半字
    • 11.10.5.6 将无符号半字相乘
    • 11.10.5.7 多项式乘词

11.10.5 XTYPE/MPY

XTYPE/MPY 指令子类包括执行乘法的指令

11.10.5.1 相乘并使用较低的结果

将 Rs 中的有符号 32 位整数乘以 Rt 中的有符号 32 位整数或无符号立即数。 64 位结果可选地与 32 位累加目的地,或添加到即时。 结果的最低有效 32 位被写入到单个目标寄存器。
这个乘法产生两个有符号或的 ANSI C 乘法的正确结果具有整数结果的无符号整数。
Hexagon_V65_Programmers_Reference_Manual(40)_第1张图片
Hexagon_V65_Programmers_Reference_Manual(40)_第2张图片
类别:XTYPE(插槽 2,3)
内部函数
Hexagon_V65_Programmers_Reference_Manual(40)_第3张图片
编码Hexagon_V65_Programmers_Reference_Manual(40)_第4张图片

11.10.5.2 向量乘以有符号的一半 (32x16)

执行混合精度向量乘法运算。 来自向量 Rss 的 32 位字是
乘以向量 Rtt 的 16 位半字(偶数或奇数)。 乘法是
以带符号的 32x16 执行,产生 48 位结果。 这个结果是可选的
向左缩放一位。 然后将该结果右移 16 位,可选择累加
然后饱和到 32 位。 此操作以矢量形式提供
(vmpyweh/vmpywoh)和非向量形式(乘以并使用上结果)。
Hexagon_V65_Programmers_Reference_Manual(40)_第5张图片
Hexagon_V65_Programmers_Reference_Manual(40)_第6张图片
类别:XTYPE(插槽 2,3)
笔记
■ 如果在执行该指令期间发生饱和(结果被钳位到
最大值或最小值),设置状态寄存器中的 OVF 位。
OVF 保持设置,直到通过传输到 SR 明确清除。

内部函数
Hexagon_V65_Programmers_Reference_Manual(40)_第7张图片

编码
Hexagon_V65_Programmers_Reference_Manual(40)_第8张图片

11.10.5.4 向量乘以无符号一半 (32x16)

执行混合精度向量乘法运算。 来自向量的 32 位有符号字Rss 乘以来自向量 Rtt 的 16 位无符号半字(奇数或偶数)。 这个乘法产生 48 位结果。 这个结果可以选择向左缩放一位,并且可选地将舍入常数添加到低 16 位。 然后这个结果被转移右移 16 位,可选地累加然后饱和到 32 位。 这是一个对偶向量操作并为 Rss 的高和低字执行。
Hexagon_V65_Programmers_Reference_Manual(40)_第9张图片
类别:XTYPE(插槽 2,3)

笔记
■ 如果在执行该指令期间发生饱和(结果被钳位到
最大值或最小值),设置状态寄存器中的 OVF 位。
OVF 保持设置,直到通过传输到 SR 明确清除
内部函数
Hexagon_V65_Programmers_Reference_Manual(40)_第10张图片

编码
Hexagon_V65_Programmers_Reference_Manual(40)_第11张图片

11.10.5.5乘以有符号的半字

将两个有符号半字相乘。 可选择将乘法器结果移动 1 位。 这个结果可以累加或舍入。 目标/累加器可以是 32 位或 64 位。
对于 32 位结果,饱和度是可选的。
Hexagon_V65_Programmers_Reference_Manual(40)_第12张图片
类别:XTYPE(插槽 2,3)
笔记
■ 如果在执行该指令期间发生饱和(结果被钳位到
最大值或最小值),设置状态寄存器中的 OVF 位。
OVF 保持设置,直到通过传输到 SR 明确清除。
内部函数

编码
Hexagon_V65_Programmers_Reference_Manual(40)_第13张图片
Hexagon_V65_Programmers_Reference_Manual(40)_第14张图片
Hexagon_V65_Programmers_Reference_Manual(40)_第15张图片
Hexagon_V65_Programmers_Reference_Manual(40)_第16张图片
编码
Hexagon_V65_Programmers_Reference_Manual(40)_第17张图片
Hexagon_V65_Programmers_Reference_Manual(40)_第18张图片

11.10.5.6 将无符号半字相乘

将两个无符号半字相乘。 将结果缩放 0-3 位。 可选地,添加或减去累加器的结果。
Hexagon_V65_Programmers_Reference_Manual(40)_第19张图片类别:XTYPE(插槽 2,3)
内部函数
Hexagon_V65_Programmers_Reference_Manual(40)_第20张图片
Hexagon_V65_Programmers_Reference_Manual(40)_第21张图片

编码

Hexagon_V65_Programmers_Reference_Manual(40)_第22张图片

11.10.5.7 多项式乘词

使用 32 位源寄存器 Rs 和 Rt 执行 32x32 无进位多项式乘法。
64 位结果可选地与目标寄存器进行累加(异或)。 有限字段乘法指令可用于许多算法,包括扰码生成、密码算法、卷积和 Reed Solomon 码。
Hexagon_V65_Programmers_Reference_Manual(40)_第23张图片
类别:XTYPE(插槽 2,3)
内部函数

在这里插入图片描述
编码
Hexagon_V65_Programmers_Reference_Manual(40)_第24张图片

你可能感兴趣的:(笔记,dsp开发,嵌入式硬件)