Explorar o código

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

git-svn-id: trunk@25171 -
florian %!s(int64=12) %!d(string=hai) anos
pai
achega
6f5bcaae2b
Modificáronse 1 ficheiros con 6 adicións e 3 borrados
  1. 6 3
      compiler/arm/rgcpu.pas

+ 6 - 3
compiler/arm/rgcpu.pas

@@ -493,9 +493,12 @@ unit rgcpu;
               A_SMULL,
               A_SMLAL:
                 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;
               A_LDRB,
               A_STRB,