From b9125f97d06619a05d0e69fdcfcd7ac4d663821a Mon Sep 17 00:00:00 2001 From: Jonas Maebe Date: Sun, 25 Jun 2006 18:52:12 +0000 Subject: [PATCH] * fixed InterlockedCompareExchange git-svn-id: trunk@3947 - --- rtl/i386/i386.inc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/rtl/i386/i386.inc b/rtl/i386/i386.inc index 39dbbb405f..9c1fc8de2f 100644 --- a/rtl/i386/i386.inc +++ b/rtl/i386/i386.inc @@ -1176,13 +1176,14 @@ end; function InterlockedCompareExchange(var Target: longint; NewValue: longint; Comperand: longint): longint; assembler; asm {$ifdef REGCALL} - xchgl %eax,%edx + xchgl %eax,%ecx {$else} - movl Target,%edx - movl NewValue,%eax + movl Target,%ecx + movl NewValue,%edx + movl Comparand,%eax {$endif} lock - cmpxchgl %eax, (%edx) + cmpxchgl %edx, (%ecx) end;