- m68k: removed garbage (tab characters, commented out code, unused variables, debug output and alike). Functionality unchanged.

git-svn-id: trunk@28070 -
This commit is contained in:
sergei 2014-06-26 06:01:29 +00:00
parent f7dd4f640a
commit 3ffa32a660

View File

@ -19,8 +19,6 @@
**************************************************************************** ****************************************************************************
} }
{ Generates the argument location information for 680x0.
}
unit cpupara; unit cpupara;
{$i fpcdefs.inc} {$i fpcdefs.inc}
@ -113,65 +111,6 @@ unit cpupara;
end; end;
end; end;
function getparaloc(p : tdef) : tcgloc;
begin
result:=LOC_REFERENCE;
(* Later, the LOC_REFERENCE is in most cases changed into LOC_REGISTER
if push_addr_param for the def is true
case p.typ of
orddef:
result:=LOC_REGISTER;
floatdef:
result:=LOC_FPUREGISTER;
enumdef:
result:=LOC_REGISTER;
pointerdef:
result:=LOC_REGISTER;
formaldef:
result:=LOC_REGISTER;
classrefdef:
result:=LOC_REGISTER;
recorddef:
if (target_info.abi<>abi_powerpc_aix) then
result:=LOC_REFERENCE
else
result:=LOC_REGISTER;
objectdef:
if is_object(p) then
result:=LOC_REFERENCE
else
result:=LOC_REGISTER;
stringdef:
if is_shortstring(p) or is_longstring(p) then
result:=LOC_REFERENCE
else
result:=LOC_REGISTER;
procvardef:
if (po_methodpointer in tprocvardef(p).procoptions) then
result:=LOC_REFERENCE
else
result:=LOC_REGISTER;
filedef:
result:=LOC_REGISTER;
arraydef:
result:=LOC_REFERENCE;
setdef:
if is_smallset(p) then
result:=LOC_REGISTER
else
result:=LOC_REFERENCE;
variantdef:
result:=LOC_REFERENCE;
{ avoid problems with errornous definitions }
errordef:
result:=LOC_REGISTER;
else
internalerror(2002071001);
end;
*)
end;
{ TODO: copied from ppc cg, needs work} { TODO: copied from ppc cg, needs work}
function tm68kparamanager.push_addr_param(varspez:tvarspez;def : tdef;calloption : tproccalloption) : boolean; function tm68kparamanager.push_addr_param(varspez:tvarspez;def : tdef;calloption : tproccalloption) : boolean;
@ -296,29 +235,21 @@ unit cpupara;
hp : tparavarsym; hp : tparavarsym;
paracgsize : tcgsize; paracgsize : tcgsize;
paralen : aint; paralen : aint;
parasize : longint; paradef : tdef;
paradef : tdef;
i : longint; i : longint;
loc : tcgloc; stack_offset : longint;
nextintreg,
nextfloatreg : tsuperregister;
stack_offset : longint;
firstparaloc : boolean; firstparaloc : boolean;
begin begin
result:=0; result:=0;
nextintreg:=curintreg; stack_offset:=cur_stack_offset;
nextfloatreg:=curfloatreg;
stack_offset:=cur_stack_offset;
parasize:=0;
for i:=0 to paras.count-1 do for i:=0 to paras.count-1 do
begin begin
hp:=tparavarsym(paras[i]); hp:=tparavarsym(paras[i]);
paradef:=hp.vardef; paradef:=hp.vardef;
{ syscall for AmigaOS can have already a paraloc set } { syscall for AmigaOS can have already a paraloc set }
if (vo_has_explicit_paraloc in hp.varoptions) then if (vo_has_explicit_paraloc in hp.varoptions) then
begin begin
if not(vo_is_syscall_lib in hp.varoptions) then if not(vo_is_syscall_lib in hp.varoptions) then
@ -331,13 +262,10 @@ unit cpupara;
if (p.proccalloption in cstylearrayofconst) and if (p.proccalloption in cstylearrayofconst) and
is_array_of_const(paradef) then is_array_of_const(paradef) then
begin begin
{$ifdef DEBUG_CHARLIE}
writeln('loc register');
{$endif DEBUG_CHARLIE}
paraloc:=hp.paraloc[side].add_location; paraloc:=hp.paraloc[side].add_location;
{ hack: the paraloc must be valid, but is not actually used } { hack: the paraloc must be valid, but is not actually used }
paraloc^.loc:=LOC_REGISTER; paraloc^.loc:=LOC_REGISTER;
paraloc^.register:=NR_D0; paraloc^.register:=NR_D0;
paraloc^.size:=OS_ADDR; paraloc^.size:=OS_ADDR;
paraloc^.def:=voidpointertype; paraloc^.def:=voidpointertype;
break; break;
@ -345,11 +273,7 @@ unit cpupara;
if push_addr_param(hp.varspez,paradef,p.proccalloption) then if push_addr_param(hp.varspez,paradef,p.proccalloption) then
begin begin
{$ifdef DEBUG_CHARLIE}
writeln('loc register');
{$endif DEBUG_CHARLIE}
paradef:=getpointerdef(paradef); paradef:=getpointerdef(paradef);
loc:=LOC_REGISTER;
paracgsize := OS_ADDR; paracgsize := OS_ADDR;
paralen := tcgsize2size[OS_ADDR]; paralen := tcgsize2size[OS_ADDR];
end end
@ -360,7 +284,6 @@ unit cpupara;
else else
paralen:=tcgsize2size[def_cgsize(paradef)]; paralen:=tcgsize2size[def_cgsize(paradef)];
loc:=getparaloc(paradef);
paracgsize:=def_cgsize(paradef); paracgsize:=def_cgsize(paradef);
{ for things like formaldef } { for things like formaldef }
if (paracgsize=OS_NO) then if (paracgsize=OS_NO) then
@ -388,90 +311,30 @@ unit cpupara;
while (paralen > 0) do while (paralen > 0) do
begin begin
paraloc:=hp.paraloc[side].add_location; paraloc:=hp.paraloc[side].add_location;
(*
by default, the m68k doesn't know any register parameters (FK) paraloc^.loc:=LOC_REFERENCE;
if (loc = LOC_REGISTER) and paraloc^.def:=get_paraloc_def(paradef,paralen,firstparaloc);
(nextintreg <= RS_D2) then if paradef.typ<>orddef then
begin paracgsize:=int_cgsize(paralen);
//writeln('loc register'); if paracgsize=OS_NO then
paraloc^.loc := loc; paraloc^.size:=OS_INT
{ make sure we don't lose whether or not the type is signed } else
if (paradef.typ <> orddef) then paraloc^.size:=paracgsize;
paracgsize := int_cgsize(paralen); if (side = callerside) then
if (paracgsize in [OS_NO,OS_64,OS_S64]) then paraloc^.reference.index:=NR_STACK_POINTER_REG
paraloc^.size := OS_INT else
else paraloc^.reference.index:=NR_FRAME_POINTER_REG;
paraloc^.size := paracgsize; paraloc^.reference.offset:=stack_offset;
paraloc^.register:=newreg(R_INTREGISTER,nextintreg,R_SUBNONE); inc(stack_offset,align(paralen,4));
inc(nextintreg); paralen := 0;
dec(paralen,tcgsize2size[paraloc^.size]);
end
else if (loc = LOC_FPUREGISTER) and
(nextfloatreg <= RS_FP2) then
begin
// writeln('loc fpuregister');
paraloc^.loc:=loc;
paraloc^.size := paracgsize;
paraloc^.register:=newreg(R_FPUREGISTER,nextfloatreg,R_SUBWHOLE);
inc(nextfloatreg);
dec(paralen,tcgsize2size[paraloc^.size]);
end
else { LOC_REFERENCE }
*)
begin
{$ifdef DEBUG_CHARLIE}
writeln('loc reference');
{$endif DEBUG_CHARLIE}
paraloc^.loc:=LOC_REFERENCE;
paraloc^.def:=get_paraloc_def(paradef,paralen,firstparaloc);
if paradef.typ<>orddef then
paracgsize:=int_cgsize(paralen);
if paracgsize=OS_NO then
paraloc^.size:=OS_INT
else
paraloc^.size:=paracgsize;
if (side = callerside) then
paraloc^.reference.index:=NR_STACK_POINTER_REG
else
paraloc^.reference.index:=NR_FRAME_POINTER_REG;
paraloc^.reference.offset:=stack_offset;
inc(stack_offset,align(paralen,4));
paralen := 0;
end;
firstparaloc:=false; firstparaloc:=false;
end; end;
end; end;
result:=stack_offset; result:=stack_offset;
// writeln('stack offset:',stack_offset);
end; end;
{
if push_addr_param(hp.varspez,paradef,p.proccalloption) then
paracgsize:=OS_ADDR
else
begin
paracgsize:=def_cgsize(paradef);
if paracgsize=OS_NO then
paracgsize:=OS_ADDR;
end;
hp.paraloc[side].size:=paracgsize;
hp.paraloc[side].Alignment:=std_param_align;
paraloc:=hp.paraloc[side].add_location;
paraloc^.size:=paracgsize;
paraloc^.loc:=LOC_REFERENCE;
if side=callerside then
paraloc^.reference.index:=NR_STACK_POINTER_REG
else
paraloc^.reference.index:=NR_FRAME_POINTER_REG;
paraloc^.reference.offset:=target_info.first_parm_offset+parasize;
end;
create_funcretloc_info(p,side);
result:=parasize;
end;
}
function tm68kparamanager.parse_loc_string_to_register(var locreg: tregister; const s : string): boolean; function tm68kparamanager.parse_loc_string_to_register(var locreg: tregister; const s : string): boolean;
begin begin
locreg:=std_regnum_search(lowercase(s)); locreg:=std_regnum_search(lowercase(s));
@ -516,10 +379,7 @@ unit cpupara;
procedure tm68kparamanager.createtempparaloc(list: TAsmList;calloption : tproccalloption;parasym : tparavarsym;can_use_final_stack_loc : boolean;var cgpara:TCGPara); procedure tm68kparamanager.createtempparaloc(list: TAsmList;calloption : tproccalloption;parasym : tparavarsym;can_use_final_stack_loc : boolean;var cgpara:TCGPara);
var
paraloc : pcgparalocation;
begin begin
paraloc:=parasym.paraloc[callerside].location;
{ Never a need for temps when value is pushed (calls inside parameters { Never a need for temps when value is pushed (calls inside parameters
will simply allocate even more stack space for their parameters) } will simply allocate even more stack space for their parameters) }
if not(use_fixed_stack) then if not(use_fixed_stack) then