Преглед на файлове

* fixed return value of InterlockedCompareExchange(64) for ppc/ppc64,
bug exposed by tw13281

git-svn-id: trunk@13133 -

Jonas Maebe преди 16 години
родител
ревизия
a24db8854c
променени са 2 файла, в които са добавени 3 реда и са изтрити 3 реда
  1. 1 1
      rtl/powerpc/powerpc.inc
  2. 2 2
      rtl/powerpc64/powerpc64.inc

+ 1 - 1
rtl/powerpc/powerpc.inc

@@ -1174,7 +1174,7 @@ asm
   or     r6,r7,r8
   stwcx. r6,0,r3
   bne .LInterlockedCompareExchangeLoop
-  mr     r3, r6
+  mr     r3, r10
 end;
 
 {$IFDEF MORPHOS}

+ 2 - 2
rtl/powerpc64/powerpc64.inc

@@ -682,7 +682,7 @@ asm
   or     r6,r7,r8
   stwcx. r6,0,r3
   bne .LInterlockedCompareExchangeLoop
-  mr     r3, r6
+  mr     r3, r10
 end;
 
 function InterLockedDecrement64(var Target: Int64) : Int64; assembler; nostackframe;
@@ -754,7 +754,7 @@ asm
   or     r6,r7,r8
   stdcx. r6,0,r3
   bne .LInterlockedCompareExchangeLoop
-  mr     r3, r6
+  mr     r3, r10
 end;
 
 {$ifndef FPC_SYSTEM_HAS_MEM_BARRIER}