英特爾 XScale(R) 技術主題暫存器相關懲罰/警告

XSC_REG_DEP

解釋

指令將暫存器 REG 用作運算元之一,但由於前一條指令尚未完成值的儲存,因此暫存器值不可用。這會導致管道暫停以等待結果,從而導致指令花費額外的一些週期去執行。

建議

如果可能,請調整前面指令的順序,以填補使用暫存器 REG 的指令執行之前額外的延遲週期。

備註

XSC_REG_REG 中的 REG 可以是 R0, R1, ..., R15

示例

對於以下示例程式碼,給出 XSC_REG_R8 XSC_MULTIPLY_RES 替代 SUB 指令。

彙編程式碼

懲罰與警告

UMLAL r6, r8, r0, r1

ADD r9, r10, r11

 

SUB r2, r8, r9

/* XSC_REG_R8; XSC_MULTIPLY_RES */

MOV r0, r1

 

 

情形示例

彙編程式碼

懲罰與警告

RSB r6, r7, r8

 

SBC r10, r9, r6, lsl #0x8

/* XSC_REG_R6; XSC_DATAPROC_RES */

MUL r2, r3, r4

 

SBC r10, r9, r2, lsl #0x8

/* XSC_REG_R2; XSC_MULTIPLY_RES*/

QDSUB r3, r10, r1

 

ADC r12, r11, r5, lsr r3

/* XSC_REG_R3; XSC_SATURATED_RES*/

LDR r1, [r2, r3]

 

ADD r4, r1, r5

/* XSC_REG_R1; XSC_LDRSTR_RES*/