瀏覽代碼

+ add for MLA the same register interferences as for MUL
* register interferences for MUL/MLA are only needed for less than ARMv6

git-svn-id: trunk@21385 -

florian 13 年之前
父節點
當前提交
21b94f675f
共有 1 個文件被更改,包括 4 次插入2 次删除
  1. 4 2
      compiler/arm/rgcpu.pas

+ 4 - 2
compiler/arm/rgcpu.pas

@@ -57,7 +57,7 @@ unit rgcpu;
   implementation
   implementation
 
 
     uses
     uses
-      verbose, cutils,globtype,
+      verbose, cutils,globtype,globals,cpuinfo,
       cgobj,
       cgobj,
       procinfo;
       procinfo;
 
 
@@ -368,8 +368,10 @@ unit rgcpu;
         if p.typ=ait_instruction then
         if p.typ=ait_instruction then
           begin
           begin
             case taicpu(p).opcode of
             case taicpu(p).opcode of
+              A_MLA,
               A_MUL:
               A_MUL:
-                add_edge(getsupreg(taicpu(p).oper[0]^.reg),getsupreg(taicpu(p).oper[1]^.reg));
+                if current_settings.cputype<cpu_armv6 then
+                  add_edge(getsupreg(taicpu(p).oper[0]^.reg),getsupreg(taicpu(p).oper[1]^.reg));
               A_UMULL,
               A_UMULL,
               A_UMLAL,
               A_UMLAL,
               A_SMULL,
               A_SMULL,