英特爾 XScale(R) 技術主題將 MUL 替換為移位操作的指令選擇

XSC_IS_MULtoShift

解釋

移位操作比乘法速度快。只要整數是 2n(2n+1)(2n*(2m +1)),都可以使用移位操作優化此整數常數的乘法運算。

示例 1

整數是 2n

原始程式碼

指令選擇

MOV      R2, #0x4

ADD      R1, R3, R4

SUB      R6, R7, R8

MUL      R0, R4, R2

 

 

 

MOV R0, R4, LSL #2

示例 2

整數是 (2n +1)

原始程式碼

指令選擇

MOV      R2, #0x5

ADD      R1, R3, R4

SUB      R6, R7, R8

MUL      R0, R2, R4

 

 

 

ADD R0, R4, R4, LSL #2

示例 3

整數是 (2n*(2m +1))

原始程式碼

指令選擇

MOV      R2, #0x28

ADD      R1, R3, R4

SUB      R6, R7, R8

MUL      R0, R4, R2

 

 

 

ADD R4, R4, R4, LSL #2; MOV R0, R4, LSL #3