* fixed bug with intregvars

* locapara.loc can also be LOC_CFPUREGISTER -> also fixed
    rcgppc.a_param_ref, which previously got bogus size values
This commit is contained in:
Jonas Maebe 2003-05-30 18:52:10 +00:00
parent d321606bc5
commit fefdcc6331
2 changed files with 16 additions and 8 deletions
compiler

View File

@ -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

View File

@ -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