WAVG2length[R][condition] dest, op1, op2
其中:length | 所需的數據長度,可以由以下字元之一指定: B -- 操作 8 位(位元組)SIMD 數據 H -- 操作 16 位(半字)SIMD 數據 |
R | (可選) 對於使用 +1 的取整,此處放入字元 R。 其它情況則忽略,不進行取整 |
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
|
9
|
8
|
7
|
6
|
5
|
4
|
3
|
2
|
1
|
0
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Cond
|
1110
|
1h0r
|
op1
|
dest
|
0000
|
000
|
0
|
op2
|
限定符
|
欄位
|
值
|
---|---|---|
B
|
h
|
0
|
H
|
h
|
1
|
R
|
r
|
1
|
無 R
|
r
|
0
|
標誌
|
操作
|
---|---|
N
|
清除
|
Z
|
根據最終結果設定
|
C
|
清除
|
V
|
清除
|
if R specified then Round = 1, Else Round = 0
if (B Specified) then
dest[byte 7] = (op1[byte 7] + op2[byte 7] + Round)/2
dest[byte 6] = (op1[byte 6] + op2[byte 6] + Round)/2
dest[byte 5] = (op1[byte 5] + op2[byte 5] + Round)/2
dest[byte 4] = (op1[byte 4] + op2[byte 4] + Round)/2
dest[byte 3] = (op1[byte 3] + op2[byte 3] + Round)/2
dest[byte 2] = (op1[byte 2] + op2[byte 2] + Round)/2
dest[byte 1] = (op1[byte 1] + op2[byte 1] + Round)/2
dest[byte 0] = (op1[byte 0] + op2[byte 0] + Round)/2
else if (H Specified) then
dest[half 3] = (op1[half 3] + op2[half 3] + Round)/2
dest[half 2] = (op1[half 2] + op2[half 2] + Round)/2
dest[half 1] = (op1[half 1] + op2[half 1] + Round)/2
dest[half 0] = (op1[half 0] + op2[half 0] + Round)/2