* fld/fst can have a base register+offset

git-svn-id: trunk@22016 -
This commit is contained in:
florian 2012-08-05 18:34:13 +00:00
parent df01717c38
commit f619a1aaf6

View File

@ -984,7 +984,10 @@ unit cgcpu;
ref.symbol:=nil;
end;
if (ref.base<>NR_NO) and (ref.index<>NR_NO) and (ref.offset<>0) then
{ fold if there is base, index and offset, however, don't fold
for vfp memory instructions because we later fold the index }
if not(op in [A_FLDS,A_FLDD,A_FSTS,A_FSTD]) and
(ref.base<>NR_NO) and (ref.index<>NR_NO) and (ref.offset<>0) then
begin
if tmpreg<>NR_NO then
a_op_const_reg_reg(list,OP_ADD,OS_ADDR,ref.offset,tmpreg,tmpreg)