* 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

View File

@ -817,7 +817,7 @@ implementation
LOC_REFERENCE, LOC_REFERENCE,
LOC_CREFERENCE : LOC_CREFERENCE :
begin 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) cg.a_paramfpu_ref(list,def_cgsize(p.resulttype.def),p.location.reference,locpara)
else else
begin begin
@ -1342,7 +1342,7 @@ implementation
hp:=tparaitem(current_procdef.para.first); hp:=tparaitem(current_procdef.para.first);
while assigned(hp) do while assigned(hp) do
begin begin
if Tvarsym(hp.parasym).reg.enum>lastreg then if Tvarsym(hp.parasym).reg.enum>R_INTREGISTER then
internalerror(200301081); internalerror(200301081);
if (tvarsym(hp.parasym).reg.enum<>R_NO) then if (tvarsym(hp.parasym).reg.enum<>R_NO) then
case hp.paraloc.loc of case hp.paraloc.loc of
@ -1904,7 +1904,12 @@ implementation
end. end.
{ {
$Log$ $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 * fixed ppc cycle
Revision 1.108 2003/05/27 14:28:14 jonas Revision 1.108 2003/05/27 14:28:14 jonas

View File

@ -201,10 +201,8 @@ const
end; end;
LOC_FPUREGISTER,LOC_CFPUREGISTER: LOC_FPUREGISTER,LOC_CFPUREGISTER:
case size of case size of
OS_32: OS_F32, OS_F64:
a_loadfpu_ref_reg(list,OS_F32,r,locpara.register); a_loadfpu_ref_reg(list,size,r,locpara.register);
OS_64:
a_loadfpu_ref_reg(list,OS_F64,r,locpara.register);
else else
internalerror(2002072801); internalerror(2002072801);
end; end;
@ -2542,7 +2540,12 @@ begin
end. end.
{ {
$Log$ $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 * compile with -dppc603 to not use unaligned float loads in move() and
g_concatcopy, because the 603 and 604 take an exception for those g_concatcopy, because the 603 and 604 take an exception for those
(and netbsd doesn't even handle those in the kernel). There are (and netbsd doesn't even handle those in the kernel). There are