TMIA[Condition] dest, op1, op2
其中:
condition
|
可選。16 個條件之一。請參閱:條件執行。
|
dest
|
64 位“英特爾(R) 無線 MMX™”技術目標數據暫存器
|
op1
|
“英特爾 XScale(R)”核心數據暫存器,提供 32 位源運算元之一
|
op2
|
“英特爾 XScale(R)”核心數據暫存器,提供第二個 32 位源運算元
|
也可以使用不帶前導 T 的助記符(即 MIA);它與“英特爾 XScale(R)”核心 MIA 指令提供相同的功能(請注意,核心 MIA 計算 40 位的結果,而“英特爾(R) 無線 MMX™”技術則提供完整的 64 位暫存器結果;如果結果發生 40 位上溢,則核心 MIA 上溢,而“英特爾(R) 無線 MMX™”技術 TMIA 要等到發生 64 位上溢時,才會產生正確的結果,因此核心與“英特爾(R) 無線 MMX™”技術會產生不同的結果)。
將 R15 指定為 op1 或 op2 時,將會產生無法預知的結果。
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
|
001
|
0
|
0000
|
op2
|
000
|
dest
|
1
|
op1
|
不影響 SIMD PSR 標誌 (wCASF) 或“飽和”標誌 (wCSSF)。
dest[63:0] = (op1[31:0] * op2[31:0]) + dest[63:0]
TMIAxy[Condition] dest, op1, op2
其中:
x
|
選擇運算元 op1 的哪個半字(16 位)
B -- 使用低 16 位
T -- 使用高 16 位
|
y
|
選擇運算元 op1 的哪個半字(16 位)
B -- 使用低 16 位
T -- 使用高 16 位
|
condition
|
可選。16 個條件之一。請參閱:條件執行。
|
dest
|
64 位“英特爾(R) 無線 MMX(TM)”技術目標數據暫存器
|
op1
|
“英特爾(R) XScale”核心數據暫存器,提供第一個運算元
|
op2
|
“英特爾(R) XScale”核心數據暫存器,提供第二個運算元
|
指令中指定的任何條件必須與條件程式碼狀態匹配,否則不執行指令。
也可以不帶前導 T 的助記符(即 MIAxy);它與“英特爾 XScale(R)”核心 MIAxy 指令提供相同的功能(請注意,核心 MIAxy 計算 40 位的結果,而“英特爾(R) 無線 MMX™”技術則提供完整的 64 位暫存器結果;如果結果發生 40 位上溢,則核心 MIAxy 上溢,而“英特爾(R) 無線 MMX™”技術 TMIAxy 要等到發生 64 位上溢時,才會產生正確的結果,因此核心與“英特爾(R) 無線 MMX™”技術會產生不同的結果)。
將 R15 指定為 op1 或 op2 時,將會產生無法預知的結果。
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
|
001
|
0
|
11xy
|
op2
|
000
|
dest
|
1
|
op1
|
限定符 |
欄位 |
值 |
T |
x |
1 |
B |
x |
0 |
T |
y |
1 |
B |
y |
0 |
不影響 SIMD PSR 標誌 (wCASF) 或“飽和”標誌 (wCSSF)。
<operand1> = (T Specified in x position)>? op1[31:16] : op1[15:0]
<operand2> = (T Specified in y position)>? op2[31:16] : op2[15:0]
dest[63:0] = sign_extend((<operand1>*<operand2>),64) + dest[63:0]