فهرست منبع

* take care of the fact that x and w registers overlap when carrying out the Str/LdrAdd/Sub2Str/Ldr Postindex optimization

git-svn-id: trunk@40023 -
florian 6 سال پیش
والد
کامیت
112fb4613b
1فایلهای تغییر یافته به همراه1 افزوده شده و 3 حذف شده
  1. 1 3
      compiler/aarch64/aoptcpu.pas

+ 1 - 3
compiler/aarch64/aoptcpu.pas

@@ -128,10 +128,8 @@ Implementation
          (abs(taicpu(hp1).oper[2]^.val)<256)
         ) and
         { don't apply the optimization if the base register is loaded }
-        (p.oper[0]^.reg<>p.oper[1]^.ref^.base) and
+        (getsupreg(p.oper[0]^.reg)<>getsupreg(p.oper[1]^.ref^.base)) and
         not(RegModifiedBetween(taicpu(hp1).oper[0]^.reg,p,hp1)) and
-        { don't apply the optimization if the (new) index register is loaded }
-        (p.oper[0]^.reg<>taicpu(hp1).oper[2]^.reg) and
         not(RegModifiedBetween(taicpu(hp1).oper[2]^.reg,p,hp1)) then
         begin
           DebugMsg('Peephole Str/LdrAdd/Sub2Str/Ldr Postindex done', p);