From fefdcc6331584fbf2ab41c8a2765530654ebb501 Mon Sep 17 00:00:00 2001 From: Jonas Maebe Date: Fri, 30 May 2003 18:52:10 +0000 Subject: [PATCH] * fixed bug with intregvars * locapara.loc can also be LOC_CFPUREGISTER -> also fixed rcgppc.a_param_ref, which previously got bogus size values --- compiler/ncgutil.pas | 11 ++++++++--- compiler/powerpc/cgcpu.pas | 13 ++++++++----- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/compiler/ncgutil.pas b/compiler/ncgutil.pas index 8806b6cfd8..7d4adc35ab 100644 --- a/compiler/ncgutil.pas +++ b/compiler/ncgutil.pas @@ -817,7 +817,7 @@ implementation LOC_REFERENCE, LOC_CREFERENCE : begin - if locpara.loc=LOC_FPUREGISTER then + if locpara.loc in [LOC_FPUREGISTER,LOC_CFPUREGISTER] then cg.a_paramfpu_ref(list,def_cgsize(p.resulttype.def),p.location.reference,locpara) else begin @@ -1342,7 +1342,7 @@ implementation hp:=tparaitem(current_procdef.para.first); while assigned(hp) do begin - if Tvarsym(hp.parasym).reg.enum>lastreg then + if Tvarsym(hp.parasym).reg.enum>R_INTREGISTER then internalerror(200301081); if (tvarsym(hp.parasym).reg.enum<>R_NO) then case hp.paraloc.loc of @@ -1904,7 +1904,12 @@ implementation end. { $Log$ - Revision 1.109 2003-05-27 21:19:08 jonas + Revision 1.110 2003-05-30 18:52:10 jonas + * fixed bug with intregvars + * locapara.loc can also be LOC_CFPUREGISTER -> also fixed + rcgppc.a_param_ref, which previously got bogus size values + + Revision 1.109 2003/05/27 21:19:08 jonas * fixed ppc cycle Revision 1.108 2003/05/27 14:28:14 jonas diff --git a/compiler/powerpc/cgcpu.pas b/compiler/powerpc/cgcpu.pas index f85f432387..0bdd91ef0d 100644 --- a/compiler/powerpc/cgcpu.pas +++ b/compiler/powerpc/cgcpu.pas @@ -201,10 +201,8 @@ const end; LOC_FPUREGISTER,LOC_CFPUREGISTER: case size of - OS_32: - a_loadfpu_ref_reg(list,OS_F32,r,locpara.register); - OS_64: - a_loadfpu_ref_reg(list,OS_F64,r,locpara.register); + OS_F32, OS_F64: + a_loadfpu_ref_reg(list,size,r,locpara.register); else internalerror(2002072801); end; @@ -2542,7 +2540,12 @@ begin end. { $Log$ - Revision 1.100 2003-05-29 21:17:27 jonas + Revision 1.101 2003-05-30 18:52:10 jonas + * fixed bug with intregvars + * locapara.loc can also be LOC_CFPUREGISTER -> also fixed + rcgppc.a_param_ref, which previously got bogus size values + + Revision 1.100 2003/05/29 21:17:27 jonas * compile with -dppc603 to not use unaligned float loads in move() and g_concatcopy, because the 603 and 604 take an exception for those (and netbsd doesn't even handle those in the kernel). There are