* safecall support is meanwhile generic, so enabled for all linux targets

git-svn-id: trunk@44076 -
This commit is contained in:
florian 2020-01-31 21:58:49 +00:00
parent 8f707903df
commit 6b47d9d9ed
4 changed files with 11 additions and 7 deletions

View File

@ -151,6 +151,7 @@
{$define cpumm} {$define cpumm}
{$define cpurox} {$define cpurox}
{$define cpurefshaveindexreg} {$define cpurefshaveindexreg}
{$define SUPPORT_SAFECALL}
{$define SUPPORT_GET_FRAME} {$define SUPPORT_GET_FRAME}
{$endif powerpc} {$endif powerpc}
@ -163,6 +164,7 @@
{$define cpurox} {$define cpurox}
{$define cpurefshaveindexreg} {$define cpurefshaveindexreg}
{$define cpuno32bitops} {$define cpuno32bitops}
{$define SUPPORT_SAFECALL}
{$endif powerpc64} {$endif powerpc64}
{$ifdef arm} {$ifdef arm}

View File

@ -78,6 +78,7 @@ Const
supported_calling_conventions : tproccalloptions = [ supported_calling_conventions : tproccalloptions = [
pocall_internproc, pocall_internproc,
pocall_stdcall, pocall_stdcall,
pocall_safecall,
{ the difference to stdcall is only the name mangling } { the difference to stdcall is only the name mangling }
pocall_cdecl, pocall_cdecl,
{ the difference to stdcall is only the name mangling } { the difference to stdcall is only the name mangling }

View File

@ -74,6 +74,7 @@ Const
supported_calling_conventions: tproccalloptions = [ supported_calling_conventions: tproccalloptions = [
pocall_internproc, pocall_internproc,
pocall_stdcall, pocall_stdcall,
pocall_safecall,
{ the difference to stdcall is only the name mangling } { the difference to stdcall is only the name mangling }
pocall_cdecl, pocall_cdecl,
{ the difference to stdcall is only the name mangling } { the difference to stdcall is only the name mangling }

View File

@ -248,7 +248,7 @@ unit i_linux;
system : system_powerpc_LINUX; system : system_powerpc_LINUX;
name : 'Linux for PowerPC'; name : 'Linux for PowerPC';
shortname : 'Linux'; shortname : 'Linux';
flags : [tf_needs_symbol_size,tf_smartlink_sections, flags : [tf_needs_symbol_size,tf_smartlink_sections,tf_safecall_exceptions,
tf_needs_symbol_type,tf_files_case_sensitive, tf_needs_symbol_type,tf_files_case_sensitive,
tf_has_winlike_resources,tf_supports_hidden_symbols]; tf_has_winlike_resources,tf_supports_hidden_symbols];
cpu : cpu_powerpc; cpu : cpu_powerpc;
@ -317,7 +317,7 @@ unit i_linux;
name : 'Linux for PowerPC64'; name : 'Linux for PowerPC64';
shortname : 'Linux'; shortname : 'Linux';
flags : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive, flags : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
tf_requires_proper_alignment,tf_smartlink_sections,tf_has_winlike_resources, tf_requires_proper_alignment,tf_safecall_exceptions,tf_smartlink_sections,tf_has_winlike_resources,
tf_supports_hidden_symbols]; tf_supports_hidden_symbols];
cpu : cpu_powerpc64; cpu : cpu_powerpc64;
unit_env : ''; unit_env : '';
@ -603,7 +603,7 @@ unit i_linux;
name : 'Linux for ARMHF'; name : 'Linux for ARMHF';
shortname : 'Linux'; shortname : 'Linux';
flags : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive, flags : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
tf_requires_proper_alignment, tf_requires_proper_alignment,tf_safecall_exceptions,
{$ifdef tls_threadvars} {$ifdef tls_threadvars}
tf_section_threadvars, tf_section_threadvars,
{$endif tls_threadvars} {$endif tls_threadvars}
@ -679,7 +679,7 @@ unit i_linux;
name : 'Linux for ARMEL'; name : 'Linux for ARMEL';
shortname : 'Linux'; shortname : 'Linux';
flags : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive, flags : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
tf_requires_proper_alignment, tf_requires_proper_alignment,tf_safecall_exceptions,
{$ifdef tls_threadvars} {$ifdef tls_threadvars}
tf_section_threadvars, tf_section_threadvars,
{$endif tls_threadvars} {$endif tls_threadvars}
@ -752,7 +752,7 @@ unit i_linux;
name : 'Linux for ARMEB'; name : 'Linux for ARMEB';
shortname : 'Linux'; shortname : 'Linux';
flags : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive, flags : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
tf_requires_proper_alignment, tf_requires_proper_alignment,tf_safecall_exceptions,
tf_smartlink_sections,tf_pic_uses_got, tf_smartlink_sections,tf_pic_uses_got,
tf_has_winlike_resources,tf_supports_hidden_symbols]; tf_has_winlike_resources,tf_supports_hidden_symbols];
cpu : cpu_arm; cpu : cpu_arm;
@ -821,7 +821,7 @@ unit i_linux;
name : 'Linux for ARM'; name : 'Linux for ARM';
shortname : 'Linux'; shortname : 'Linux';
flags : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive, flags : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
tf_requires_proper_alignment, tf_requires_proper_alignment,tf_safecall_exceptions,
tf_smartlink_sections,tf_has_winlike_resources,tf_supports_hidden_symbols]; tf_smartlink_sections,tf_has_winlike_resources,tf_supports_hidden_symbols];
cpu : cpu_arm; cpu : cpu_arm;
unit_env : 'LINUXUNITS'; unit_env : 'LINUXUNITS';
@ -894,7 +894,7 @@ unit i_linux;
flags : [tf_needs_symbol_size, flags : [tf_needs_symbol_size,
tf_needs_symbol_type, tf_needs_symbol_type,
tf_files_case_sensitive, tf_files_case_sensitive,
tf_requires_proper_alignment, tf_requires_proper_alignment,tf_safecall_exceptions,
tf_smartlink_sections,tf_pic_uses_got, tf_smartlink_sections,tf_pic_uses_got,
tf_has_winlike_resources tf_has_winlike_resources
{$ifdef llvm} {$ifdef llvm}