|
@@ -105,16 +105,16 @@ implementation
|
|
current_tokenpos:=tprocdef(pd).fileinfo;
|
|
current_tokenpos:=tprocdef(pd).fileinfo;
|
|
|
|
|
|
{$if defined(i386)}
|
|
{$if defined(i386)}
|
|
- { For left to right add it at the end to be delphi compatible }
|
|
|
|
|
|
+ { For left to right add it at the end to be delphi compatible.
|
|
|
|
+ In the case of safecalls with safecal-exceptions support the
|
|
|
|
+ funcret-para is (from the 'c'-point of view) a normal parameter
|
|
|
|
+ which has to be added to the end of the parameter-list }
|
|
if (pd.proccalloption in (pushleftright_pocalls)) or
|
|
if (pd.proccalloption in (pushleftright_pocalls)) or
|
|
- ((target_info.system in systems_all_windows) and
|
|
|
|
|
|
+ ((tf_safecall_exceptions in target_info.flags) and
|
|
(pd.proccalloption=pocall_safecall)) then
|
|
(pd.proccalloption=pocall_safecall)) then
|
|
paranr:=paranr_result_leftright
|
|
paranr:=paranr_result_leftright
|
|
else
|
|
else
|
|
{$elseif defined(x86) or defined(arm)}
|
|
{$elseif defined(x86) or defined(arm)}
|
|
- { other platforms don't have a "safecall" convention,
|
|
|
|
- and never reverse the parameter pushing order
|
|
|
|
- }
|
|
|
|
if (target_info.system in systems_all_windows) and
|
|
if (target_info.system in systems_all_windows) and
|
|
(pd.proccalloption = pocall_safecall) then
|
|
(pd.proccalloption = pocall_safecall) then
|
|
paranr:=paranr_result_leftright
|
|
paranr:=paranr_result_leftright
|