mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-13 12:39:09 +02:00
* fixed to compile the rtl again
This commit is contained in:
parent
b9168c3cf0
commit
be7067445a
@ -81,6 +81,7 @@ unit cpupara;
|
|||||||
|
|
||||||
begin
|
begin
|
||||||
fillchar(result,sizeof(tparalocation),0);
|
fillchar(result,sizeof(tparalocation),0);
|
||||||
|
result.lochigh:=LOC_INVALID;
|
||||||
if nr<1 then
|
if nr<1 then
|
||||||
internalerror(2002070801)
|
internalerror(2002070801)
|
||||||
else if nr<=8 then
|
else if nr<=8 then
|
||||||
@ -212,6 +213,7 @@ unit cpupara;
|
|||||||
fillchar(paraloc,sizeof(tparalocation),0);
|
fillchar(paraloc,sizeof(tparalocation),0);
|
||||||
paraloc.alignment:= std_param_align;
|
paraloc.alignment:= std_param_align;
|
||||||
paraloc.size:=def_cgsize(p.rettype.def);
|
paraloc.size:=def_cgsize(p.rettype.def);
|
||||||
|
paraloc.lochigh:=LOC_INVALID;
|
||||||
{ Return in FPU register? }
|
{ Return in FPU register? }
|
||||||
if p.rettype.def.deftype=floatdef then
|
if p.rettype.def.deftype=floatdef then
|
||||||
begin
|
begin
|
||||||
@ -228,6 +230,7 @@ unit cpupara;
|
|||||||
begin
|
begin
|
||||||
paraloc.register64.reglo:=NR_FUNCTION_RETURN64_LOW_REG;
|
paraloc.register64.reglo:=NR_FUNCTION_RETURN64_LOW_REG;
|
||||||
paraloc.register64.reghi:=NR_FUNCTION_RETURN64_HIGH_REG;
|
paraloc.register64.reghi:=NR_FUNCTION_RETURN64_HIGH_REG;
|
||||||
|
paraloc.lochigh:=LOC_REGISTER;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
{$endif cpu64bit}
|
{$endif cpu64bit}
|
||||||
@ -289,6 +292,7 @@ unit cpupara;
|
|||||||
begin
|
begin
|
||||||
{ hack: the paraloc must be valid, but is not actually used }
|
{ hack: the paraloc must be valid, but is not actually used }
|
||||||
hp.paraloc[side].loc := LOC_REGISTER;
|
hp.paraloc[side].loc := LOC_REGISTER;
|
||||||
|
hp.paraloc[side].lochigh := LOC_INVALID;
|
||||||
hp.paraloc[side].register := NR_R0;
|
hp.paraloc[side].register := NR_R0;
|
||||||
hp.paraloc[side].size := OS_ADDR;
|
hp.paraloc[side].size := OS_ADDR;
|
||||||
break;
|
break;
|
||||||
@ -307,6 +311,7 @@ unit cpupara;
|
|||||||
{ make sure all alignment bytes are 0 as well }
|
{ make sure all alignment bytes are 0 as well }
|
||||||
fillchar(paraloc,sizeof(paraloc),0);
|
fillchar(paraloc,sizeof(paraloc),0);
|
||||||
paraloc.alignment:= std_param_align;
|
paraloc.alignment:= std_param_align;
|
||||||
|
paraloc.lochigh:=LOC_INVALID;
|
||||||
case loc of
|
case loc of
|
||||||
LOC_REGISTER:
|
LOC_REGISTER:
|
||||||
begin
|
begin
|
||||||
@ -323,6 +328,7 @@ unit cpupara;
|
|||||||
if odd(nextintreg-RS_R3) and (target_info.abi=abi_powerpc_sysv) Then
|
if odd(nextintreg-RS_R3) and (target_info.abi=abi_powerpc_sysv) Then
|
||||||
inc(nextintreg);
|
inc(nextintreg);
|
||||||
paraloc.registerhigh:=newreg(R_INTREGISTER,nextintreg,R_SUBNONE);
|
paraloc.registerhigh:=newreg(R_INTREGISTER,nextintreg,R_SUBNONE);
|
||||||
|
paraloc.lochigh:=LOC_REGISTER;
|
||||||
inc(nextintreg);
|
inc(nextintreg);
|
||||||
if target_info.abi=abi_powerpc_aix then
|
if target_info.abi=abi_powerpc_aix then
|
||||||
inc(stack_offset,4);
|
inc(stack_offset,4);
|
||||||
@ -425,6 +431,7 @@ unit cpupara;
|
|||||||
while assigned(hp) do
|
while assigned(hp) do
|
||||||
begin
|
begin
|
||||||
paraloc.size:=def_cgsize(hp.paratype.def);
|
paraloc.size:=def_cgsize(hp.paratype.def);
|
||||||
|
paraloc.lochigh:=LOC_INVALID;
|
||||||
paraloc.loc:=LOC_REFERENCE;
|
paraloc.loc:=LOC_REFERENCE;
|
||||||
paraloc.alignment:=4;
|
paraloc.alignment:=4;
|
||||||
paraloc.reference.index:=NR_STACK_POINTER_REG;
|
paraloc.reference.index:=NR_STACK_POINTER_REG;
|
||||||
@ -446,7 +453,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.57 2004-01-17 15:55:11 jonas
|
Revision 1.58 2004-02-11 23:18:59 florian
|
||||||
|
* fixed to compile the rtl again
|
||||||
|
|
||||||
|
Revision 1.57 2004/01/17 15:55:11 jonas
|
||||||
* fixed allocation of parameters passed by reference for powerpc in
|
* fixed allocation of parameters passed by reference for powerpc in
|
||||||
callee
|
callee
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user