+ introduce cstylearrayofconst because pocall_mwcall was forgotten at several places

git-svn-id: trunk@22012 -
This commit is contained in:
florian 2012-08-05 08:48:23 +00:00
parent ad3aa937d3
commit eb1efdff8a
8 changed files with 13 additions and 11 deletions

View File

@ -345,7 +345,7 @@ unit cpupara;
{ currently only support C-style array of const, { currently only support C-style array of const,
there should be no location assigned to the vararg array itself } there should be no location assigned to the vararg array itself }
if (p.proccalloption in [pocall_cdecl,pocall_cppdecl]) and if (p.proccalloption in cstylearrayofconst) and
is_array_of_const(paradef) then is_array_of_const(paradef) then
begin begin
paraloc:=hp.paraloc[side].add_location; paraloc:=hp.paraloc[side].add_location;
@ -701,7 +701,7 @@ unit cpupara;
init_values(curintreg,curfloatreg,curmmreg,cur_stack_offset,sparesinglereg); init_values(curintreg,curfloatreg,curmmreg,cur_stack_offset,sparesinglereg);
result:=create_paraloc_info_intern(p,callerside,p.paras,curintreg,curfloatreg,curmmreg,cur_stack_offset,sparesinglereg,true); result:=create_paraloc_info_intern(p,callerside,p.paras,curintreg,curfloatreg,curmmreg,cur_stack_offset,sparesinglereg,true);
if (p.proccalloption in [pocall_cdecl,pocall_cppdecl]) then if (p.proccalloption in cstylearrayofconst) then
{ just continue loading the parameters in the registers } { just continue loading the parameters in the registers }
result:=create_paraloc_info_intern(p,callerside,varargspara,curintreg,curfloatreg,curmmreg,cur_stack_offset,sparesinglereg,true) result:=create_paraloc_info_intern(p,callerside,varargspara,curintreg,curfloatreg,curmmreg,cur_stack_offset,sparesinglereg,true)
else else

View File

@ -260,7 +260,7 @@ unit cpupara;
{ currently only support C-style array of const, { currently only support C-style array of const,
there should be no location assigned to the vararg array itself } there should be no location assigned to the vararg array itself }
if (p.proccalloption in [pocall_cdecl,pocall_cppdecl]) and if (p.proccalloption in cstylearrayofconst) and
is_array_of_const(paradef) then is_array_of_const(paradef) then
begin begin
paraloc:=hp.paraloc[side].add_location; paraloc:=hp.paraloc[side].add_location;
@ -478,7 +478,7 @@ unit cpupara;
init_values(curintreg,curfloatreg,curmmreg,cur_stack_offset); init_values(curintreg,curfloatreg,curmmreg,cur_stack_offset);
result:=create_paraloc_info_intern(p,callerside,p.paras,curintreg,curfloatreg,curmmreg,cur_stack_offset); result:=create_paraloc_info_intern(p,callerside,p.paras,curintreg,curfloatreg,curmmreg,cur_stack_offset);
if (p.proccalloption in [pocall_cdecl,pocall_cppdecl]) then if (p.proccalloption in cstylearrayofconst) then
{ just continue loading the parameters in the registers } { just continue loading the parameters in the registers }
result:=create_paraloc_info_intern(p,callerside,varargspara,curintreg,curfloatreg,curmmreg,cur_stack_offset) result:=create_paraloc_info_intern(p,callerside,varargspara,curintreg,curfloatreg,curmmreg,cur_stack_offset)
else else

View File

@ -462,6 +462,8 @@ interface
pocall_default = pocall_stdcall; pocall_default = pocall_stdcall;
{$endif} {$endif}
cstylearrayofconst = [pocall_cdecl,pocall_cppdecl,pocall_mwpascal];
modeswitchstr : array[tmodeswitch] of string[18] = ('','', modeswitchstr : array[tmodeswitch] of string[18] = ('','',
'','','','','','', '','','','','','',
{$ifdef fpc_mode}'',{$endif} {$ifdef fpc_mode}'',{$endif}

View File

@ -285,7 +285,7 @@ unit cpupara;
hp.paraloc[side].reset; hp.paraloc[side].reset;
{ currently only support C-style array of const } { currently only support C-style array of const }
if (p.proccalloption in [pocall_cdecl,pocall_cppdecl]) and if (p.proccalloption in cstylearrayofconst) and
is_array_of_const(paradef) then is_array_of_const(paradef) then
begin begin
{$ifdef DEBUG_CHARLIE} {$ifdef DEBUG_CHARLIE}
@ -549,7 +549,7 @@ unit cpupara;
init_values(curintreg,curfloatreg,cur_stack_offset); init_values(curintreg,curfloatreg,cur_stack_offset);
result:=create_paraloc_info_intern(p,callerside,p.paras,curintreg,curfloatreg,cur_stack_offset); result:=create_paraloc_info_intern(p,callerside,p.paras,curintreg,curfloatreg,cur_stack_offset);
if (p.proccalloption in [pocall_cdecl,pocall_cppdecl]) then if (p.proccalloption in cstylearrayofconst) then
{ just continue loading the parameters in the registers } { just continue loading the parameters in the registers }
result:=create_paraloc_info_intern(p,callerside,varargspara,curintreg,curfloatreg,cur_stack_offset) result:=create_paraloc_info_intern(p,callerside,varargspara,curintreg,curfloatreg,cur_stack_offset)
else else

View File

@ -288,7 +288,7 @@ implementation
paradef := hp.vardef; paradef := hp.vardef;
{ currently only support C-style array of const } { currently only support C-style array of const }
if (p.proccalloption in [pocall_cdecl,pocall_cppdecl]) and if (p.proccalloption in cstylearrayofconst) and
is_array_of_const(paradef) then is_array_of_const(paradef) then
begin begin
paraloc:=hp.paraloc[side].add_location; paraloc:=hp.paraloc[side].add_location;

View File

@ -2175,7 +2175,7 @@ const
handler : @pd_interrupt; handler : @pd_interrupt;
pocall : pocall_oldfpccall; pocall : pocall_oldfpccall;
pooption : [po_interrupt]; pooption : [po_interrupt];
mutexclpocall : [pocall_internproc,pocall_cdecl,pocall_cppdecl,pocall_stdcall, mutexclpocall : [pocall_internproc,pocall_cdecl,pocall_cppdecl,pocall_stdcall,pocall_mwpascal,
pocall_pascal,pocall_far16,pocall_oldfpccall]; pocall_pascal,pocall_far16,pocall_oldfpccall];
mutexclpotype : [potype_constructor,potype_destructor,potype_operator,potype_class_constructor,potype_class_destructor]; mutexclpotype : [potype_constructor,potype_destructor,potype_operator,potype_class_constructor,potype_class_destructor];
mutexclpo : [po_external,po_inline] mutexclpo : [po_external,po_inline]

View File

@ -356,7 +356,7 @@ unit cpupara;
end; end;
hp.paraloc[side].reset; hp.paraloc[side].reset;
{ currently only support C-style array of const } { currently only support C-style array of const }
if (p.proccalloption in [pocall_cdecl,pocall_cppdecl,pocall_mwpascal]) and if (p.proccalloption in cstylearrayofconst) and
is_array_of_const(paradef) then is_array_of_const(paradef) then
begin begin
paraloc:=hp.paraloc[side].add_location; paraloc:=hp.paraloc[side].add_location;
@ -573,7 +573,7 @@ unit cpupara;
firstfloatreg:=curfloatreg; firstfloatreg:=curfloatreg;
result:=create_paraloc_info_intern(p,callerside,p.paras,curintreg,curfloatreg,curmmreg,cur_stack_offset, false); result:=create_paraloc_info_intern(p,callerside,p.paras,curintreg,curfloatreg,curmmreg,cur_stack_offset, false);
if (p.proccalloption in [pocall_cdecl,pocall_cppdecl,pocall_mwpascal]) then if (p.proccalloption in cstylearrayofconst) then
{ just continue loading the parameters in the registers } { just continue loading the parameters in the registers }
begin begin
result:=create_paraloc_info_intern(p,callerside,varargspara,curintreg,curfloatreg,curmmreg,cur_stack_offset,true); result:=create_paraloc_info_intern(p,callerside,varargspara,curintreg,curfloatreg,curmmreg,cur_stack_offset,true);

View File

@ -214,7 +214,7 @@ implementation
paradef:=hp.vardef; paradef:=hp.vardef;
{ currently only support C-style array of const, { currently only support C-style array of const,
there should be no location assigned to the vararg array itself } there should be no location assigned to the vararg array itself }
if (p.proccalloption in [pocall_cdecl,pocall_cppdecl]) and if (p.proccalloption in cstylearrayofconst) and
is_array_of_const(paradef) then is_array_of_const(paradef) then
begin begin
paraloc:=hp.paraloc[side].add_location; paraloc:=hp.paraloc[side].add_location;