乘法指令條件程式碼懲罰/警告

XSC_MUL_CONDITION

解釋

如果設定了條件程式碼,乘法指令將需要額外的週期來執行併產生結果。如果未使用條件程式碼,或是被隨後的指令覆蓋,則可以禁止產生條件程式碼,從而消除額外的延遲。

建議

如果未使用條件程式碼,或是被隨後的指令覆蓋,則不要設定條件程式碼。實際上,即使條件程式碼有用,我們也建議不要使用帶條件程式碼的乘法指令,而是將它替換成兩條相關的指令。

示例 1

MLAS       r0,r1,r2,r3                    ;; XSC_MUL_CONDITION

UMLALS     r1,r2,r3,r4

. . .

示例 2

MULS       r0,r1,r2                      ;; XSC_MUL_CONDITION

ADD        r3,r3,#1

SUB        r4,r4,#1

SUB        r5,r5,#1

替代性方案

MUL        r0,r1,r2

ADD        r3,r3,#1

SUB        r4,r4,#1

SUB        r5,r5,#1

CMP        r0,#0