mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-18 02:29:19 +02:00
* fixed int64 regvar bug in location_force_register
This commit is contained in:
parent
2bd47e8ce6
commit
7c9d8d8872
@ -459,22 +459,26 @@ implementation
|
|||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
{ 64bit to 64bit }
|
{ 64bit to 64bit }
|
||||||
if (l.loc=LOC_REGISTER) or
|
if ((l.loc=LOC_CREGISTER) and maybeconst) then
|
||||||
((l.loc=LOC_CREGISTER) and maybeconst) then
|
|
||||||
begin
|
begin
|
||||||
hregister:=l.register64.reglo;
|
hregister:=l.register64.reglo;
|
||||||
hregisterhi:=l.register64.reghi;
|
hregisterhi:=l.register64.reghi;
|
||||||
|
const_location := true;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
hregister:=cg.getintregister(list,OS_INT);
|
hregister:=cg.getintregister(list,OS_INT);
|
||||||
hregisterhi:=cg.getintregister(list,OS_INT);
|
hregisterhi:=cg.getintregister(list,OS_INT);
|
||||||
|
const_location := false;
|
||||||
end;
|
end;
|
||||||
hreg64.reglo:=hregister;
|
hreg64.reglo:=hregister;
|
||||||
hreg64.reghi:=hregisterhi;
|
hreg64.reghi:=hregisterhi;
|
||||||
{ load value in new register }
|
{ load value in new register }
|
||||||
cg64.a_load64_loc_reg(list,l,hreg64);
|
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.reglo:=hregister;
|
||||||
l.register64.reghi:=hregisterhi;
|
l.register64.reghi:=hregisterhi;
|
||||||
end;
|
end;
|
||||||
@ -2286,7 +2290,10 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$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
|
* procvar handling for tp procvar mode fixed
|
||||||
* proc to procvar moved from addrnode to typeconvnode
|
* proc to procvar moved from addrnode to typeconvnode
|
||||||
* inlininginfo is now allocated only for inline routines that
|
* inlininginfo is now allocated only for inline routines that
|
||||||
|
Loading…
Reference in New Issue
Block a user