Browse Source

* optimized ppc memory barrier implementations

git-svn-id: trunk@14803 -
Jonas Maebe 15 years ago
parent
commit
a527b6b2b4
2 changed files with 11 additions and 7 deletions
  1. 3 2
      rtl/powerpc/powerpc.inc
  2. 8 5
      rtl/powerpc64/powerpc64.inc

+ 3 - 2
rtl/powerpc/powerpc.inc

@@ -1208,7 +1208,7 @@ end;
 
 procedure ReadBarrier;assembler;nostackframe;{$ifdef SYSTEMINLINE}inline;{$endif}
 asm
-  sync
+  isync
 end;
 
 procedure ReadDependencyBarrier;{$ifdef SYSTEMINLINE}inline;{$endif}
@@ -1218,7 +1218,8 @@ end;
 
 procedure ReadWriteBarrier;assembler;nostackframe;{$ifdef SYSTEMINLINE}inline;{$endif}
 asm
-  sync
+  isync
+  eieio
 end;
 
 procedure WriteBarrier;assembler;nostackframe;{$ifdef SYSTEMINLINE}inline;{$endif}

+ 8 - 5
rtl/powerpc64/powerpc64.inc

@@ -762,9 +762,7 @@ end;
 
 procedure ReadBarrier;assembler;nostackframe;{$ifdef SYSTEMINLINE}inline;{$endif}
 asm
-{$ifdef FPC_HAS_LWSYNC}
-  lwsync
-{$endif}
+  isync
 end;
 
 procedure ReadDependencyBarrier;{$ifdef SYSTEMINLINE}inline;{$endif}
@@ -774,12 +772,17 @@ end;
 
 procedure ReadWriteBarrier;assembler;nostackframe;{$ifdef SYSTEMINLINE}inline;{$endif}
 asm
-  sync
+  isync
+{$ifdef FPC_HAS_LWSYNC}
+  lwsync
+{$endif}
 end;
 
 procedure WriteBarrier;assembler;nostackframe;{$ifdef SYSTEMINLINE}inline;{$endif}
 asm
-  eieio
+{$ifdef FPC_HAS_LWSYNC}
+  lwsync
+{$endif}
 end;
 
 {$endif}