英特爾 XScale(R) 技術主題LDM/STM 的指令選擇

XSC_IS_LDMSTM

解釋

LDM/STM 指令總是比 LDR/STR 或 LDRD/STRD 指令要多花幾個時鐘週期。如果不考慮程式碼空間,可以使用 LDR/STR 或 LDRD/STRD 替換 LDM/STM。根據不同的情況,如列表中的暫存器數、定址模式及是否更新基址暫存器等等,此“指令選擇”可以選擇不同的替換指令。

備註

此“指令選擇”與 XSC_LDMSTM 懲罰/警告配合使用。

示例

原始程式碼

指令選擇

LDMIA  R2, {R4, R5}

STMIB  R6!,{R3, R7}

LDMDA  R1, {R3, R6, R7}

STMDB  R3, {R4, R5, R9}

LDRD    R4, [R2]

STR R3, [R6, #4]!; STR R7, [R6, #4]!

LDR R3, [R1, #-8]; LDRD R6, [R1, #-4]

STR R9, [R3, #-4]; STRD R4, [R3, #-12]