* fixed handling of doubles in softemu mode if they are split between register and memory

git-svn-id: trunk@2047 -
This commit is contained in:
florian 2005-12-24 17:43:57 +00:00
parent b08eccdbf0
commit dae84f282f

View File

@ -212,10 +212,16 @@ unit cgcpu;
a_load_ref_reg(list,location^.size,location^.size,tmpref,location^.register);
LOC_REFERENCE:
begin
reference_reset_base(ref,location^.reference.index,location^.reference.offset);
g_concatcopy(list,tmpref,ref,sizeleft);
if assigned(location^.next) then
internalerror(2005010710);
reference_reset_base(ref,location^.reference.index,location^.reference.offset);
{ doubles in softemu mode have a strange order of registers and references }
if location^.size=OS_32 then
g_concatcopy(list,tmpref,ref,4)
else
begin
g_concatcopy(list,tmpref,ref,sizeleft);
if assigned(location^.next) then
internalerror(2005010710);
end;
end;
LOC_FPUREGISTER,LOC_CFPUREGISTER:
case location^.size of