From c29e6bbcb8a4ae8e511dbea4823672e8cb60787c Mon Sep 17 00:00:00 2001 From: Jonas Maebe <jonas@freepascal.org> Date: Sun, 19 Aug 2012 09:37:07 +0000 Subject: [PATCH] * disabled assembler implementations of fpc_ansistr_decr_ref/ fpc_ansistr_incr_ref for Darwin/ARM: they don't follow the Darwin/ARM ABI for function calls, the code already contains enough ifdefs and I don't want to spend time on maintaining OS-specific assembler implementations git-svn-id: trunk@22121 - --- rtl/arm/arm.inc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rtl/arm/arm.inc b/rtl/arm/arm.inc index 8150094022..a07a8baee1 100644 --- a/rtl/arm/arm.inc +++ b/rtl/arm/arm.inc @@ -505,6 +505,7 @@ end; {$endif} +{$ifndef darwin} {$define FPC_SYSTEM_HAS_ANSISTR_DECR_REF} function fpc_freemem_x(p:pointer):ptrint; [external name 'FPC_FREEMEM_X']; @@ -548,6 +549,7 @@ asm // Jump without a link, so freemem directly returns to our caller b FPC_FREEMEM_X end; +{$endif not darwin} var fpc_system_lock: longint; export name 'fpc_system_lock'; @@ -613,6 +615,8 @@ asm {$endif} end; + +{$ifndef darwin} {$define FPC_SYSTEM_HAS_ANSISTR_INCR_REF} Procedure fpc_ansistr_incr_ref (S : Pointer); [Public,Alias:'FPC_ANSISTR_INCR_REF'];assembler;nostackframe; compilerproc; @@ -635,6 +639,7 @@ asm bge InterLockedIncrement // Freepascal will generate a proper return here, save some cachespace end; +{$endif not darwin} function InterLockedIncrement (var Target: longint) : longint; assembler; nostackframe; asm