Selaa lähdekoodia

* fixed interference generation for top_local

git-svn-id: trunk@6343 -
florian 18 vuotta sitten
vanhempi
commit
a800b2a3d3
1 muutettua tiedostoa jossa 2 lisäystä ja 1 poistoa
  1. 2 1
      compiler/arm/rgcpu.pas

+ 2 - 1
compiler/arm/rgcpu.pas

@@ -182,7 +182,8 @@ unit rgcpu;
               A_LDRH,
               A_LDRH,
               A_STRH:
               A_STRH:
                 { don't mix up the framepointer and stackpointer with pre/post indexed operations }
                 { 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
                   begin
                     add_edge(getsupreg(taicpu(p).oper[1]^.ref^.base),getsupreg(current_procinfo.framepointer));
                     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 }
                     { FIXME: temp variable r is needed here to avoid Internal error 20060521 }