+ add memory barrier routines for powerpc/64

git-svn-id: trunk@8179 -
This commit is contained in:
micha 2007-07-28 12:47:48 +00:00
parent ca11d53d0e
commit 7475f656f8
3 changed files with 56 additions and 0 deletions

View File

@ -1573,3 +1573,19 @@ function NtoLE(const AValue: QWord): QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
Result := SwapEndian(AValue);
{$ENDIF}
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}

View File

@ -1253,3 +1253,23 @@ begin
softfloat_exception_mask:=float_flag_underflow or float_flag_inexact or float_flag_denormal;
end;
{$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}

View File

@ -836,3 +836,23 @@ asm
bne .LInterlockedCompareExchangeLoop
mr r3, r6
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}