TMIA - MIA 與 TMIAxy 上的傳輸指令對映

此主題包括 TMIATMIAxy 的介紹。

TMIA

語法

TMIA[Condition] dest, op1, op2

其中:
condition
可選。16 個條件之一。請參閱:條件執行
dest
64 位“英特爾(R) 無線 MMX™”技術目標數據暫存器
op1
“英特爾 XScale(R)”核心數據暫存器,提供 32 位源運算元之一
op2
“英特爾 XScale(R)”核心數據暫存器,提供第二個 32 位源運算元

說明

提供與“英特爾 XScale(R)”核心 MIA 指令相同的功能;使用兩個“英特爾 XScale(R)”核心源暫存器(op1 與 op2)的有符號 32 位運算元執行乘法累加,並使用“英特爾(R) 無線 MMX™”技術目標暫存器 dest 累加結果。

指令中指定的任何條件必須與條件程式碼狀態相匹配,否則不執行該指令。

備註

也可以使用不帶前導 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 標誌

不影響 SIMD PSR 標誌 (wCASF) 或“飽和”標誌 (wCSSF)。

操作

dest[63:0] = (op1[31:0] * op2[31:0]) + dest[63:0]

更多資訊

TMIAPH

TMIAxy

語法

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”核心數據暫存器,提供第二個運算元

說明

提供與“英特爾 XScale(R)”核心 MIAxy 指令相同的功能;使用兩個“英特爾 XScale(R)”核心暫存器(op1 與 op2)的有符號運算元執行 16 位乘法累加,並使用“英特爾(R) 無線 MMX™”技術目標暫存器 dest 累加結果。通過在指令助記符的每個 x 與 y 位置中指定 B(底部)或 T(限定符),可以選擇每個源暫存器的高 16 位或低 16 位。

指令中指定的任何條件必須與條件程式碼狀態匹配,否則不執行指令。

備註

也可以不帶前導 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 標誌

不影響 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]

更多資訊

TMIAPH