mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-16 09:59:17 +02:00
just incase some one wolud help me debugging that\!
This commit is contained in:
parent
fdfb33d117
commit
34df2e8e09
@ -245,59 +245,61 @@ WriteLn('***********************************************');
|
|||||||
end;
|
end;
|
||||||
else
|
else
|
||||||
internalerror(2002071002);
|
internalerror(2002071002);
|
||||||
end;
|
end;
|
||||||
hp:=tparaitem(hp.previous);
|
hp:=TParaItem(hp.previous);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
function tSparcParaManager.GetFuncRetParaLoc(p:TAbstractProcDef):TParaLocation;
|
||||||
function tSparcparamanager.getfuncretparaloc(p : tabstractprocdef) : tparalocation;
|
begin
|
||||||
begin
|
case p.rettype.def.deftype of
|
||||||
case p.rettype.def.deftype of
|
orddef,enumdef:
|
||||||
orddef,
|
begin
|
||||||
enumdef:
|
WriteLn('Allocating i0 as return register');
|
||||||
begin
|
GetFuncRetParaLoc.loc:=LOC_REGISTER;
|
||||||
getfuncretparaloc.loc:=LOC_REGISTER;
|
GetFuncRetParaLoc.register:=R_i0;
|
||||||
getfuncretparaloc.register:=R_O0;
|
GetFuncRetParaLoc.size:=def_cgsize(p.rettype.def);
|
||||||
getfuncretparaloc.size:=def_cgsize(p.rettype.def);
|
if GetFuncRetParaLoc.size in [OS_S64,OS_64]
|
||||||
if getfuncretparaloc.size in [OS_S64,OS_64] then
|
then
|
||||||
getfuncretparaloc.registerhigh:=R_O1;
|
GetFuncRetParaLoc.RegisterHigh:=R_O1;
|
||||||
end;
|
end;
|
||||||
floatdef:
|
floatdef:
|
||||||
begin
|
begin
|
||||||
getfuncretparaloc.loc:=LOC_FPUREGISTER;
|
GetFuncRetParaLoc.loc:=LOC_FPUREGISTER;
|
||||||
getfuncretparaloc.register:=R_F1;
|
GetFuncRetParaLoc.register:=R_F1;
|
||||||
getfuncretparaloc.size:=def_cgsize(p.rettype.def);
|
GetFuncRetParaLoc.size:=def_cgsize(p.rettype.def);
|
||||||
end;
|
end;
|
||||||
{ smallsets are OS_INT in R3, others are OS_ADDR in R3 -> the same }
|
{ smallsets are OS_INT in R3, others are OS_ADDR in R3 -> the same }
|
||||||
{ ugly, I know :) (JM) }
|
{ ugly, I know :) (JM) }
|
||||||
setdef,
|
setdef,
|
||||||
variantdef,
|
variantdef,
|
||||||
pointerdef,
|
pointerdef,
|
||||||
formaldef,
|
formaldef,
|
||||||
classrefdef,
|
classrefdef,
|
||||||
recorddef,
|
recorddef,
|
||||||
objectdef,
|
objectdef,
|
||||||
stringdef,
|
stringdef,
|
||||||
procvardef,
|
procvardef,
|
||||||
filedef,
|
filedef,
|
||||||
arraydef,
|
arraydef,
|
||||||
errordef:
|
errordef:
|
||||||
begin
|
begin
|
||||||
getfuncretparaloc.loc:=LOC_REGISTER;
|
GetFuncRetParaLoc.loc:=LOC_REGISTER;
|
||||||
getfuncretparaloc.register:=R_O0;
|
GetFuncRetParaLoc.register:=R_O0;
|
||||||
getfuncretparaloc.size:=OS_ADDR;
|
GetFuncRetParaLoc.size:=OS_ADDR;
|
||||||
end;
|
|
||||||
else
|
|
||||||
internalerror(2002090903);
|
|
||||||
end;
|
end;
|
||||||
end;
|
else
|
||||||
|
internalerror(2002090903);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
begin
|
begin
|
||||||
ParaManager:=TSparcParaManager.create;
|
ParaManager:=TSparcParaManager.create;
|
||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.4 2002-10-08 21:02:22 mazen
|
Revision 1.5 2002-10-09 13:52:19 mazen
|
||||||
|
just incase some one wolud help me debugging that\!
|
||||||
|
|
||||||
|
Revision 1.4 2002/10/08 21:02:22 mazen
|
||||||
* debugging register allocation
|
* debugging register allocation
|
||||||
|
|
||||||
Revision 1.3 2002/10/07 20:33:05 mazen
|
Revision 1.3 2002/10/07 20:33:05 mazen
|
||||||
|
Loading…
Reference in New Issue
Block a user