2
0
Эх сурвалжийг харах

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

git-svn-id: trunk@13133 -

Jonas Maebe 16 жил өмнө
parent
commit
a24db8854c

+ 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}