Hello,

I have been browsing the web somewhat to figure out how I can have
access to a cmpxchg function in freepascal. At the momente I found very
little information. Some references on people arguing that this is
unnecessary. Others that it takes too much time etcetera. In any case: I
_really_ want to have access to a cmpxchg function and tried to find
information on the assembler routines on how to get access to such
function.

I got as far as the following statement, which doesn't compile of course

function cmpxchg(CompareVal, NewVal: Cardinal; var Target: Cardinal):
Cardinal; assembler;
asm
 lock cmpxchg [%eax], %ecx
end;

Now, the problem is twofold:
1. in which registers are the incoming values ?
2. there are syntax errors in this couple of lines and I have no idea
what the proper syntax would be (and the freepascal wiki, has very
little information on the assembler directives themselves).

I will of course be grateful to anybody helping me solve this problem
and send a very nice 'thank you' email  :-) 

Wkr,

-- 
http://werner.yellowcouch.org/


Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to