diff --git a/compiler/powerpc/cpupara.pas b/compiler/powerpc/cpupara.pas index 86dc176de0..e79df28f53 100644 --- a/compiler/powerpc/cpupara.pas +++ b/compiler/powerpc/cpupara.pas @@ -81,6 +81,7 @@ unit cpupara; begin fillchar(result,sizeof(tparalocation),0); + result.lochigh:=LOC_INVALID; if nr<1 then internalerror(2002070801) else if nr<=8 then @@ -212,6 +213,7 @@ unit cpupara; fillchar(paraloc,sizeof(tparalocation),0); paraloc.alignment:= std_param_align; paraloc.size:=def_cgsize(p.rettype.def); + paraloc.lochigh:=LOC_INVALID; { Return in FPU register? } if p.rettype.def.deftype=floatdef then begin @@ -228,6 +230,7 @@ unit cpupara; begin paraloc.register64.reglo:=NR_FUNCTION_RETURN64_LOW_REG; paraloc.register64.reghi:=NR_FUNCTION_RETURN64_HIGH_REG; + paraloc.lochigh:=LOC_REGISTER; end else {$endif cpu64bit} @@ -289,6 +292,7 @@ unit cpupara; begin { hack: the paraloc must be valid, but is not actually used } hp.paraloc[side].loc := LOC_REGISTER; + hp.paraloc[side].lochigh := LOC_INVALID; hp.paraloc[side].register := NR_R0; hp.paraloc[side].size := OS_ADDR; break; @@ -307,6 +311,7 @@ unit cpupara; { make sure all alignment bytes are 0 as well } fillchar(paraloc,sizeof(paraloc),0); paraloc.alignment:= std_param_align; + paraloc.lochigh:=LOC_INVALID; case loc of LOC_REGISTER: begin @@ -323,6 +328,7 @@ unit cpupara; if odd(nextintreg-RS_R3) and (target_info.abi=abi_powerpc_sysv) Then inc(nextintreg); paraloc.registerhigh:=newreg(R_INTREGISTER,nextintreg,R_SUBNONE); + paraloc.lochigh:=LOC_REGISTER; inc(nextintreg); if target_info.abi=abi_powerpc_aix then inc(stack_offset,4); @@ -425,6 +431,7 @@ unit cpupara; while assigned(hp) do begin paraloc.size:=def_cgsize(hp.paratype.def); + paraloc.lochigh:=LOC_INVALID; paraloc.loc:=LOC_REFERENCE; paraloc.alignment:=4; paraloc.reference.index:=NR_STACK_POINTER_REG; @@ -446,7 +453,10 @@ begin end. { $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 callee