2
0
Эх сурвалжийг харах

* correctly handle LDRD in TAoptBaseCpu.RegModifiedByInstruction

git-svn-id: trunk@41130 -
florian 6 жил өмнө
parent
commit
afd4599d26

+ 9 - 0
compiler/arm/aoptcpub.pas

@@ -119,6 +119,15 @@ Implementation
       i : Longint;
       i : Longint;
     begin
     begin
       result:=false;
       result:=false;
+      case taicpu(p1).opcode of
+        A_LDR:
+          { special handling for LDRD }
+          if (taicpu(p1).oppostfix=PF_D) and (getsupreg(taicpu(p1).oper[0]^.reg)+1=getsupreg(Reg)) then
+            begin
+              result:=true;
+              exit;
+            end;
+      end;
       for i:=0 to taicpu(p1).ops-1 do
       for i:=0 to taicpu(p1).ops-1 do
         case taicpu(p1).oper[i]^.typ of
         case taicpu(p1).oper[i]^.typ of
           top_reg:
           top_reg: