ソースを参照

* fixed interference generation for top_local

git-svn-id: trunk@6343 -
florian 18 年 前
コミット
a800b2a3d3
1 ファイル変更2 行追加1 行削除
  1. 2 1
      compiler/arm/rgcpu.pas

+ 2 - 1
compiler/arm/rgcpu.pas

@@ -182,7 +182,8 @@ unit rgcpu;
               A_LDRH,
               A_STRH:
                 { don't mix up the framepointer and stackpointer with pre/post indexed operations }
-                if (taicpu(p).oper[1]^.ref^.addressmode in [AM_PREINDEXED,AM_POSTINDEXED]) then
+                if (taicpu(p).oper[1]^.typ=top_ref) and
+                  (taicpu(p).oper[1]^.ref^.addressmode in [AM_PREINDEXED,AM_POSTINDEXED]) then
                   begin
                     add_edge(getsupreg(taicpu(p).oper[1]^.ref^.base),getsupreg(current_procinfo.framepointer));
                     { FIXME: temp variable r is needed here to avoid Internal error 20060521 }