SMLALxy - DSP 指令

語法

SMLALxy [condition] dest_lo, dest_hi, op1, op2

其中:

 x

B:
x==0
使用 op1 的位 [15:0]

T:
x==0
使用 op1 的位 [31:16]

 y

B:
x==0
使用 op2 的位 [15:0]

T:
x==0
使用 op2 的位 [31:16]

 condition

16 個條件之一。
請參閱條件程式碼狀態

 dest_lo

包含累加值的低 32 位的暫存器,也是低 32 位的目標暫存器

 dest_hi

包含累加值的高 32 位的暫存器,也是高 32 位的目標暫存器

說明

SMLALxy 指令使用有符號 16 位運算元 op1op2 執行乘法。乘法的 32 位結果加到 op3 中包含的 32 位值。乘法的 32 位結果進行符號擴充套件,並加到 dest_lodest_hi。和寫入 dest_lodest_hi。condition 必須是有效值;否則將指令當作 NOP。

備註

此指令不檢測上溢。發生上溢時,結果模除 264。

定址模式

無運算元

影響的標誌

N

Z

C

V

Q

S

I

F

T

T

T

T

T

 

 

 

 

 

編碼

31

 

28

27

26

25

24

23

22

21

20

19

 

16

15

 

12

11

 

8

7

6

5

4

3

 

0

condition

0

0

0

1

0

1

0

0

dest_hi

dest_lo

op2

1

x

y

0

op1

示例

1                          @.text
2                          @.globl funcsmlalxy
3                          @.align 0
4
5                          @ * * * SMLALxy * * *
6
7                    AREA example, CODE, READONLY
8
9    00000000   E3A00000   MOV      R0, #0xF00D
10   00000004   E3A01000   MOV      R1, #0xBEEF
11
12   00000008   E5678086   SMLALBB   R5, R6, R0, R1
13   00000012   E10710A8   SMLALBT   R7, R8, R0, R1
14   00000016   E10910EA   SMLALTT   R9, R10, R0, R1
15
16                         END