mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-16 16:59:12 +02:00
* 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 -
This commit is contained in:
parent
f5b1c64d36
commit
c29e6bbcb8
@ -505,6 +505,7 @@ end;
|
|||||||
{$endif}
|
{$endif}
|
||||||
|
|
||||||
|
|
||||||
|
{$ifndef darwin}
|
||||||
{$define FPC_SYSTEM_HAS_ANSISTR_DECR_REF}
|
{$define FPC_SYSTEM_HAS_ANSISTR_DECR_REF}
|
||||||
function fpc_freemem_x(p:pointer):ptrint; [external name 'FPC_FREEMEM_X'];
|
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
|
// Jump without a link, so freemem directly returns to our caller
|
||||||
b FPC_FREEMEM_X
|
b FPC_FREEMEM_X
|
||||||
end;
|
end;
|
||||||
|
{$endif not darwin}
|
||||||
|
|
||||||
var
|
var
|
||||||
fpc_system_lock: longint; export name 'fpc_system_lock';
|
fpc_system_lock: longint; export name 'fpc_system_lock';
|
||||||
@ -613,6 +615,8 @@ asm
|
|||||||
{$endif}
|
{$endif}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{$ifndef darwin}
|
||||||
{$define FPC_SYSTEM_HAS_ANSISTR_INCR_REF}
|
{$define FPC_SYSTEM_HAS_ANSISTR_INCR_REF}
|
||||||
|
|
||||||
Procedure fpc_ansistr_incr_ref (S : Pointer); [Public,Alias:'FPC_ANSISTR_INCR_REF'];assembler;nostackframe; compilerproc;
|
Procedure fpc_ansistr_incr_ref (S : Pointer); [Public,Alias:'FPC_ANSISTR_INCR_REF'];assembler;nostackframe; compilerproc;
|
||||||
@ -635,6 +639,7 @@ asm
|
|||||||
bge InterLockedIncrement
|
bge InterLockedIncrement
|
||||||
// Freepascal will generate a proper return here, save some cachespace
|
// Freepascal will generate a proper return here, save some cachespace
|
||||||
end;
|
end;
|
||||||
|
{$endif not darwin}
|
||||||
|
|
||||||
function InterLockedIncrement (var Target: longint) : longint; assembler; nostackframe;
|
function InterLockedIncrement (var Target: longint) : longint; assembler; nostackframe;
|
||||||
asm
|
asm
|
||||||
|
Loading…
Reference in New Issue
Block a user