* fixed int64 regvar bug in location_force_register

This commit is contained in:
Jonas Maebe 2004-12-11 01:03:01 +00:00
parent 2bd47e8ce6
commit 7c9d8d8872

View File

@ -459,22 +459,26 @@ implementation
else
begin
{ 64bit to 64bit }
if (l.loc=LOC_REGISTER) or
((l.loc=LOC_CREGISTER) and maybeconst) then
if ((l.loc=LOC_CREGISTER) and maybeconst) then
begin
hregister:=l.register64.reglo;
hregisterhi:=l.register64.reghi;
const_location := true;
end
else
begin
hregister:=cg.getintregister(list,OS_INT);
hregisterhi:=cg.getintregister(list,OS_INT);
const_location := false;
end;
hreg64.reglo:=hregister;
hreg64.reghi:=hregisterhi;
{ load value in new register }
cg64.a_load64_loc_reg(list,l,hreg64);
location_reset(l,LOC_REGISTER,dst_size);
if not const_location then
location_reset(l,LOC_REGISTER,dst_size)
else
location_reset(l,LOC_CREGISTER,dst_size);
l.register64.reglo:=hregister;
l.register64.reghi:=hregisterhi;
end;
@ -2286,7 +2290,10 @@ implementation
end.
{
$Log$
Revision 1.247 2004-12-05 12:28:11 peter
Revision 1.248 2004-12-11 01:03:01 jonas
* fixed int64 regvar bug in location_force_register
Revision 1.247 2004/12/05 12:28:11 peter
* procvar handling for tp procvar mode fixed
* proc to procvar moved from addrnode to typeconvnode
* inlininginfo is now allocated only for inline routines that