mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-17 20:49:09 +02:00
* fixed a_param64_reg
This commit is contained in:
parent
18ed72101a
commit
6ecd566473
@ -479,16 +479,36 @@ unit cg64f32;
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure tcg64f32.a_param64_reg(list : taasmoutput;reg : tregister64;const locpara : tparalocation);
|
procedure tcg64f32.a_param64_reg(list : taasmoutput;reg : tregister64;const locpara : tparalocation);
|
||||||
|
var
|
||||||
|
tmplochi,tmploclo: tparalocation;
|
||||||
begin
|
begin
|
||||||
{$ifdef FPC}
|
tmplochi:=locpara;
|
||||||
{$warning FIX ME}
|
tmploclo:=locpara;
|
||||||
{$endif}
|
if locpara.size=OS_S64 then
|
||||||
cg.a_param_reg(list,OS_32,reg.reghi,locpara);
|
tmplochi.size:=OS_S32
|
||||||
{ the nr+1 needs definitivly a fix FK }
|
else
|
||||||
{ maybe the parameter numbering needs }
|
tmplochi.size:=OS_32;
|
||||||
{ to take care of this on 32 Bit }
|
tmploclo.size:=OS_32;
|
||||||
{ systems FK }
|
case locpara.loc of
|
||||||
cg.a_param_reg(list,OS_32,reg.reglo,locpara);
|
LOC_REGISTER:
|
||||||
|
tmplochi.register:=tmplochi.registerhigh;
|
||||||
|
{ !!! i386 doesn't pass proper locations here
|
||||||
|
so always take a loc_reference, since that's what it uses (JM)
|
||||||
|
LOC_REFERENCE:
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if target_info.endian=endian_big then
|
||||||
|
inc(tmploclo.reference.offset,4)
|
||||||
|
else
|
||||||
|
inc(tmplochi.reference.offset,4);
|
||||||
|
{
|
||||||
|
else
|
||||||
|
internalerror(2003042702);
|
||||||
|
}
|
||||||
|
end;
|
||||||
|
|
||||||
|
cg.a_param_reg(list,OS_32,reg.reghi,tmplochi);
|
||||||
|
cg.a_param_reg(list,OS_32,reg.reglo,tmploclo);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -577,9 +597,6 @@ unit cg64f32;
|
|||||||
|
|
||||||
procedure tcg64f32.a_param64_loc(list : taasmoutput;const l:tlocation;const locpara : tparalocation);
|
procedure tcg64f32.a_param64_loc(list : taasmoutput;const l:tlocation;const locpara : tparalocation);
|
||||||
begin
|
begin
|
||||||
{$ifdef fpc}
|
|
||||||
{$warning FIX ME}
|
|
||||||
{$endif}
|
|
||||||
case l.loc of
|
case l.loc of
|
||||||
LOC_REGISTER,
|
LOC_REGISTER,
|
||||||
LOC_CREGISTER :
|
LOC_CREGISTER :
|
||||||
@ -881,7 +898,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.43 2003-04-27 14:48:09 jonas
|
Revision 1.44 2003-05-14 19:31:37 jonas
|
||||||
|
* fixed a_param64_reg
|
||||||
|
|
||||||
|
Revision 1.43 2003/04/27 14:48:09 jonas
|
||||||
* fixed Florian's quick hack :)
|
* fixed Florian's quick hack :)
|
||||||
* fixed small bug 64bit range checking code
|
* fixed small bug 64bit range checking code
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user