* arm thumb: let all registers used in a ldr/str operation interfere with the "hi" registers

git-svn-id: trunk@24202 -
This commit is contained in:
florian 2013-04-07 21:39:30 +00:00
parent 36a32e153d
commit dee35abf41

View File

@ -541,15 +541,15 @@ unit rgcpu;
A_LDRSH, A_LDRSH,
A_LDRD, A_LDRD,
A_STRD: A_STRD:
{ "hi" registers cannot be used as base or index } begin
if (taicpu(p).oper[1]^.typ=top_ref) then { add_edge handles precoloured registers already }
begin for i:=RS_R8 to RS_R15 do
{ add_edge handles precoloured registers already } begin
for i:=RS_R8 to RS_R15 do add_edge(getsupreg(taicpu(p).oper[1]^.ref^.base),i);
add_edge(getsupreg(taicpu(p).oper[1]^.ref^.base),i); add_edge(getsupreg(taicpu(p).oper[1]^.ref^.index),i);
for i:=RS_R8 to RS_R15 do add_edge(getsupreg(taicpu(p).oper[0]^.reg),i);
add_edge(getsupreg(taicpu(p).oper[1]^.ref^.index),i); end;
end; end;
end; end;
end; end;
end; end;