“乘法/乘法累加”(MLA) 指令並不是真正管道化的,這是因為處理一條指令可能需要使用相同的數據路徑資源幾個週期,然後才能接受新的指令。這會導致乘法指令資源延遲。受懲罰的指令使用目前未準備就緒的資源。
任何記憶體操作後面跟著 LDRD 指令時,都可能導致 1 個週期的暫停。
儘可能重新調整指令順序,以填補乘法資源可用之前的額外延遲週期。
重新調整指令順序,以避免記憶體操作指令後面跟著 LDRD。
MLA r0,r1,r2,r3
UMLALS r4,r2,r3,r1 ;; XSC_RESOURCE
LDRD R2, [R5, #0x0]!
LDMIA R6,{R7} ;; XSC_RESOURCE, XSC_LDMSTM_1