mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-23 17:09:21 +02:00
+ add memory barrier routines for powerpc/64
git-svn-id: trunk@8179 -
This commit is contained in:
parent
ca11d53d0e
commit
7475f656f8
@ -1573,3 +1573,19 @@ function NtoLE(const AValue: QWord): QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
|
|||||||
Result := SwapEndian(AValue);
|
Result := SwapEndian(AValue);
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{$ifndef FPC_SYSTEM_HAS_MEM_BARRIER}
|
||||||
|
|
||||||
|
procedure ReadBarrier;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||||
|
begin
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure ReadWriteBarrier;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||||
|
begin
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure WriteBarrier;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||||
|
begin
|
||||||
|
end;
|
||||||
|
|
||||||
|
{$endif}
|
||||||
|
@ -1253,3 +1253,23 @@ begin
|
|||||||
softfloat_exception_mask:=float_flag_underflow or float_flag_inexact or float_flag_denormal;
|
softfloat_exception_mask:=float_flag_underflow or float_flag_inexact or float_flag_denormal;
|
||||||
end;
|
end;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
{$ifndef FPC_SYSTEM_HAS_MEM_BARRIER}
|
||||||
|
{$define FPC_SYSTEM_HAS_MEM_BARRIER}
|
||||||
|
|
||||||
|
procedure ReadBarrier;assembler;nostackframe;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||||
|
asm
|
||||||
|
sync
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure ReadWriteBarrier;assembler;nostackframe;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||||
|
asm
|
||||||
|
sync
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure WriteBarrier;assembler;nostackframe;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||||
|
asm
|
||||||
|
eieio
|
||||||
|
end;
|
||||||
|
|
||||||
|
{$endif}
|
||||||
|
@ -836,3 +836,23 @@ asm
|
|||||||
bne .LInterlockedCompareExchangeLoop
|
bne .LInterlockedCompareExchangeLoop
|
||||||
mr r3, r6
|
mr r3, r6
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{$ifndef FPC_SYSTEM_HAS_MEM_BARRIER}
|
||||||
|
{$define FPC_SYSTEM_HAS_MEM_BARRIER}
|
||||||
|
|
||||||
|
procedure ReadBarrier;assembler;nostackframe;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||||
|
asm
|
||||||
|
sync
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure ReadWriteBarrier;assembler;nostackframe;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||||
|
asm
|
||||||
|
sync
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure WriteBarrier;assembler;nostackframe;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||||
|
asm
|
||||||
|
eieio
|
||||||
|
end;
|
||||||
|
|
||||||
|
{$endif}
|
||||||
|
Loading…
Reference in New Issue
Block a user