Kaynağa Gözat

Restricted MlaCmp>Mlas optimization to only work in ARM mode.

git-svn-id: trunk@36602 -
Jeppe Johansen 8 yıl önce
ebeveyn
işleme
09a8cafcd7
1 değiştirilmiş dosya ile 3 ekleme ve 0 silme
  1. 3 0
      compiler/arm/aoptcpu.pas

+ 3 - 0
compiler/arm/aoptcpu.pas

@@ -654,6 +654,9 @@ Implementation
             if MatchInstruction(p, [A_ADC,A_ADD,A_BIC,A_SUB,A_MUL,A_MVN,A_MOV,A_ORR,A_EOR,A_AND,
                                  A_RSB,A_RSC,A_SBC,A_MLA], [C_None], [PF_None]) and
               GetNextInstruction(p, hp1) and
+              { mlas is only allowed in arm mode }
+              ((taicpu(p).opcode<>A_MLA) or
+               (current_settings.instructionset<>is_thumb)) and
               MatchInstruction(hp1, A_CMP, [C_None], [PF_None]) and
               (taicpu(hp1).oper[1]^.typ = top_const) and
               (taicpu(p).oper[0]^.reg = taicpu(hp1).oper[0]^.reg) and