* fixed loading of floating point constants

git-svn-id: trunk@3667 -
This commit is contained in:
florian 2006-05-25 09:57:07 +00:00
parent 8a17b1c1e3
commit 30e7d87c11

View File

@ -1486,7 +1486,6 @@ unit cgcpu;
end; end;
begin begin
if len=0 then if len=0 then
exit; exit;
helpsize:=12+maxtmpreg*4;//52 with maxtmpreg=10 helpsize:=12+maxtmpreg*4;//52 with maxtmpreg=10
@ -1498,8 +1497,19 @@ unit cgcpu;
begin begin
tmpregi:=0; tmpregi:=0;
srcreg:=getintregister(list,OS_ADDR); srcreg:=getintregister(list,OS_ADDR);
a_loadaddr_ref_reg(list,source,srcreg);
reference_reset_base(srcref,srcreg,0); { explicit pc relative addressing, could be
e.g. a floating point constant }
if source.base=NR_PC then
begin
{ ... then we don't need a loadaddr }
srcref:=source;
end
else
begin
a_loadaddr_ref_reg(list,source,srcreg);
reference_reset_base(srcref,srcreg,0);
end;
while (len div 4 <> 0) and (tmpregi<=maxtmpreg) do while (len div 4 <> 0) and (tmpregi<=maxtmpreg) do
begin begin