WADDlengthsign[Condition] dest, op1, op2
其中:
length
|
所需的數據長度,可以由以下字元之一指定:
B -- 操作 8 位(位元組)SIMD 欄位
H -- 操作 16 位(半字)SIMD 欄位
W -- 操作 32 位(字)SIMD 欄位
|
sign
|
飽和選項。如果應用:
US -- 無符號飽和
SS -- 有符號飽和
其它情況則不應用“飽和”選項
|
condition
|
可選。16 個條件之一。請參閱:條件執行。
|
dest
|
目標,“英特爾(R) 無線 MMX™”技術數據暫存器
|
op1
|
第一個源運算元,“英特爾(R) 無線 MMX™”技術數據暫存器
|
op2
|
第二個源運算元,“英特爾(R) 無線 MMX™”技術數據暫存器
|
31
|
30
|
29
|
28
|
27
|
26
|
25
|
24
|
23
|
22
|
21
|
20
|
19
|
18
|
17
|
16
|
15
|
14
|
13
|
12
|
11
|
10
|
|
|
|
|
|
|
|
|
|
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Cond
|
1110
|
wwss
|
op1
|
dest
|
0001
|
100
|
|
op2
|
限定符
|
欄位
|
值
|
---|---|---|
B |
ww
|
00
|
H |
ww
|
01
|
W |
ww
|
10
|
保留
|
ww
|
11
|
US
|
ss
|
01
|
SS
|
ss
|
11
|
無飽和
|
ss
|
00
|
保留
|
ss
|
10
|
標誌
|
未指定飽和
|
指定 US/SS 但未產生飽和
|
指定 US/SS 且產生飽和
|
---|---|---|---|
N |
根據最終結果設定
|
根據最終結果設定
|
根據最終結果設定
|
Z |
根據最終結果設定
|
根據最終結果設定
|
根據最終結果設定
|
C |
根據最終結果設定
|
根據最終結果設定
|
清除
|
V |
根據最終結果設定
|
根據最終結果設定
|
清除
|
if (B Specified) then
dest[byte 7] = saturate(op1[byte 7] + op2[byte 7], {US,SS}, 8)
dest[byte 6] = saturate(op1[byte 6] + op2[byte 6], {US,SS}, 8)
dest[byte 5] = saturate(op1[byte 5] + op2[byte 5], {US,SS}, 8)
dest[byte 4] = saturate(op1[byte 4] + op2[byte 4], {US,SS}, 8)
dest[byte 3] = saturate(op1[byte 3] + op2[byte 3], {US,SS}, 8)
dest[byte 2] = saturate(op1[byte 2] + op2[byte 2], {US,SS}, 8)
dest[byte 1] = saturate(op1[byte 1] + op2[byte 1], {US,SS}, 8)
dest[byte 0] = saturate(op1[byte 0] + op2[byte 0], {US,SS}, 8)
else if (H Specified)then
dest[half 3] = saturate(op1[half 3] + op2[half 3], {US,SS}, 16)
dest[half 2] = saturate(op1[half 2] + op2[half 2], {US,SS}, 16)
dest[half 1] = saturate(op1[half 1] + op2[half 1], {US,SS}, 16)
dest[half 0] = saturate(op1[half 0] + op2[half 0], {US,SS}, 16)
else if (W Specified) then
dest[word 1] = saturate(op1[word 1] + op2[word 1], {US,SS}, 32)
dest[word 0] = saturate(op1[word 0] + op2[word 0], {US,SS}, 32)