Explorar o código

* fixed interference generation for top_local

git-svn-id: trunk@6343 -
florian %!s(int64=18) %!d(string=hai) anos
pai
achega
a800b2a3d3
Modificáronse 1 ficheiros con 2 adicións e 1 borrados
  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 }