Browse Source

* UMUL et al. have only register restrictions on arm below v6

git-svn-id: trunk@25171 -
florian 12 years ago
parent
commit
6f5bcaae2b
1 changed files with 6 additions and 3 deletions
  1. 6 3
      compiler/arm/rgcpu.pas

+ 6 - 3
compiler/arm/rgcpu.pas

@@ -493,9 +493,12 @@ unit rgcpu;
               A_SMULL,
               A_SMULL,
               A_SMLAL:
               A_SMLAL:
                 begin
                 begin
-                  add_edge(getsupreg(taicpu(p).oper[0]^.reg),getsupreg(taicpu(p).oper[1]^.reg));
-                  add_edge(getsupreg(taicpu(p).oper[1]^.reg),getsupreg(taicpu(p).oper[2]^.reg));
-                  add_edge(getsupreg(taicpu(p).oper[0]^.reg),getsupreg(taicpu(p).oper[2]^.reg));
+                  if current_settings.cputype<cpu_armv6 then
+                    begin
+                      add_edge(getsupreg(taicpu(p).oper[0]^.reg),getsupreg(taicpu(p).oper[1]^.reg));
+                      add_edge(getsupreg(taicpu(p).oper[1]^.reg),getsupreg(taicpu(p).oper[2]^.reg));
+                      add_edge(getsupreg(taicpu(p).oper[0]^.reg),getsupreg(taicpu(p).oper[2]^.reg));
+                    end;
                 end;
                 end;
               A_LDRB,
               A_LDRB,
               A_STRB,
               A_STRB,